proteus  1.8.1
C/C++/Fortran libraries
mprans/BoundaryConditions.cpp
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 1
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 __cplusplus
307  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
308 #endif
309 #ifndef CYTHON_INLINE
310  #if defined(__clang__)
311  #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
312  #else
313  #define CYTHON_INLINE inline
314  #endif
315 #endif
316 template<typename T>
317 void __Pyx_call_destructor(T& x) {
318  x.~T();
319 }
320 template<typename T>
321 class __Pyx_FakeReference {
322  public:
323  __Pyx_FakeReference() : ptr(NULL) { }
324  __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
325  T *operator->() { return ptr; }
326  T *operator&() { return ptr; }
327  operator T&() { return *ptr; }
328  template<typename U> bool operator ==(U other) { return *ptr == other; }
329  template<typename U> bool operator !=(U other) { return *ptr != other; }
330  private:
331  T *ptr;
332 };
333 
334 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
335  #define Py_OptimizeFlag 0
336 #endif
337 #define __PYX_BUILD_PY_SSIZE_T "n"
338 #define CYTHON_FORMAT_SSIZE_T "z"
339 #if PY_MAJOR_VERSION < 3
340  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
341  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
342  PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
343  #define __Pyx_DefaultClassType PyClass_Type
344 #else
345  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
346  #define __Pyx_DefaultClassType PyType_Type
347 #if PY_VERSION_HEX >= 0x030B00A1
348  static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
349  PyObject *code, PyObject *c, PyObject* n, PyObject *v,
350  PyObject *fv, PyObject *cell, PyObject* fn,
351  PyObject *name, int fline, PyObject *lnos) {
352  PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
353  PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
354  const char *fn_cstr=NULL;
355  const char *name_cstr=NULL;
356  PyCodeObject* co=NULL;
357  PyObject *type, *value, *traceback;
358  PyErr_Fetch(&type, &value, &traceback);
359  if (!(kwds=PyDict_New())) goto end;
360  if (!(argcount=PyLong_FromLong(a))) goto end;
361  if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
362  if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
363  if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
364  if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
365  if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
366  if (!(nlocals=PyLong_FromLong(l))) goto end;
367  if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
368  if (!(stacksize=PyLong_FromLong(s))) goto end;
369  if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
370  if (!(flags=PyLong_FromLong(f))) goto end;
371  if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
372  if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
373  if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
374  if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
375  if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
376  if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
377  if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
378  if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
379  if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
380  if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
381  if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
382  if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
383  if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
384  if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
385  Py_XDECREF((PyObject*)co);
386  co = (PyCodeObject*)call_result;
387  call_result = NULL;
388  if (0) {
389  cleanup_code_too:
390  Py_XDECREF((PyObject*)co);
391  co = NULL;
392  }
393  end:
394  Py_XDECREF(kwds);
395  Py_XDECREF(argcount);
396  Py_XDECREF(posonlyargcount);
397  Py_XDECREF(kwonlyargcount);
398  Py_XDECREF(nlocals);
399  Py_XDECREF(stacksize);
400  Py_XDECREF(replace);
401  Py_XDECREF(call_result);
402  Py_XDECREF(empty);
403  if (type) {
404  PyErr_Restore(type, value, traceback);
405  }
406  return co;
407  }
408 #else
409  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
410  PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
411 #endif
412  #define __Pyx_DefaultClassType PyType_Type
413 #endif
414 #ifndef Py_TPFLAGS_CHECKTYPES
415  #define Py_TPFLAGS_CHECKTYPES 0
416 #endif
417 #ifndef Py_TPFLAGS_HAVE_INDEX
418  #define Py_TPFLAGS_HAVE_INDEX 0
419 #endif
420 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
421  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
422 #endif
423 #ifndef Py_TPFLAGS_HAVE_FINALIZE
424  #define Py_TPFLAGS_HAVE_FINALIZE 0
425 #endif
426 #ifndef METH_STACKLESS
427  #define METH_STACKLESS 0
428 #endif
429 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
430  #ifndef METH_FASTCALL
431  #define METH_FASTCALL 0x80
432  #endif
433  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
434  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
435  Py_ssize_t nargs, PyObject *kwnames);
436 #else
437  #define __Pyx_PyCFunctionFast _PyCFunctionFast
438  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
439 #endif
440 #if CYTHON_FAST_PYCCALL
441 #define __Pyx_PyFastCFunction_Check(func)\
442  ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
443 #else
444 #define __Pyx_PyFastCFunction_Check(func) 0
445 #endif
446 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
447  #define PyObject_Malloc(s) PyMem_Malloc(s)
448  #define PyObject_Free(p) PyMem_Free(p)
449  #define PyObject_Realloc(p) PyMem_Realloc(p)
450 #endif
451 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
452  #define PyMem_RawMalloc(n) PyMem_Malloc(n)
453  #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n)
454  #define PyMem_RawFree(p) PyMem_Free(p)
455 #endif
456 #if CYTHON_COMPILING_IN_PYSTON
457  #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co)
458  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
459 #else
460  #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
461  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
462 #endif
463 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
464  #define __Pyx_PyThreadState_Current PyThreadState_GET()
465 #elif PY_VERSION_HEX >= 0x03060000
466  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
467 #elif PY_VERSION_HEX >= 0x03000000
468  #define __Pyx_PyThreadState_Current PyThreadState_GET()
469 #else
470  #define __Pyx_PyThreadState_Current _PyThreadState_Current
471 #endif
472 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
473 #include "pythread.h"
474 #define Py_tss_NEEDS_INIT 0
475 typedef int Py_tss_t;
476 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
477  *key = PyThread_create_key();
478  return 0;
479 }
480 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
481  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
482  *key = Py_tss_NEEDS_INIT;
483  return key;
484 }
485 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
486  PyObject_Free(key);
487 }
488 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
489  return *key != Py_tss_NEEDS_INIT;
490 }
491 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
492  PyThread_delete_key(*key);
493  *key = Py_tss_NEEDS_INIT;
494 }
495 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
496  return PyThread_set_key_value(*key, value);
497 }
498 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
499  return PyThread_get_key_value(*key);
500 }
501 #endif
502 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
503 #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
504 #else
505 #define __Pyx_PyDict_NewPresized(n) PyDict_New()
506 #endif
507 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
508  #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
509  #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
510 #else
511  #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
512  #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
513 #endif
514 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
515 #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
516 #else
517 #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name)
518 #endif
519 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
520  #define CYTHON_PEP393_ENABLED 1
521  #if defined(PyUnicode_IS_READY)
522  #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
523  0 : _PyUnicode_Ready((PyObject *)(op)))
524  #else
525  #define __Pyx_PyUnicode_READY(op) (0)
526  #endif
527  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
528  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
529  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
530  #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u)
531  #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
532  #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
533  #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
534  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
535  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
536  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
537  #else
538  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
539  #endif
540  #else
541  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
542  #endif
543 #else
544  #define CYTHON_PEP393_ENABLED 0
545  #define PyUnicode_1BYTE_KIND 1
546  #define PyUnicode_2BYTE_KIND 2
547  #define PyUnicode_4BYTE_KIND 4
548  #define __Pyx_PyUnicode_READY(op) (0)
549  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
550  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
551  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
552  #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE))
553  #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
554  #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
555  #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
556  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u))
557 #endif
558 #if CYTHON_COMPILING_IN_PYPY
559  #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
560  #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
561 #else
562  #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
563  #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
564  PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
565 #endif
566 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
567  #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
568 #endif
569 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
570  #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
571 #endif
572 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
573  #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
574 #endif
575 #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))
576 #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
577 #if PY_MAJOR_VERSION >= 3
578  #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
579 #else
580  #define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
581 #endif
582 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
583  #define PyObject_ASCII(o) PyObject_Repr(o)
584 #endif
585 #if PY_MAJOR_VERSION >= 3
586  #define PyBaseString_Type PyUnicode_Type
587  #define PyStringObject PyUnicodeObject
588  #define PyString_Type PyUnicode_Type
589  #define PyString_Check PyUnicode_Check
590  #define PyString_CheckExact PyUnicode_CheckExact
591 #ifndef PyObject_Unicode
592  #define PyObject_Unicode PyObject_Str
593 #endif
594 #endif
595 #if PY_MAJOR_VERSION >= 3
596  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
597  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
598 #else
599  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
600  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
601 #endif
602 #ifndef PySet_CheckExact
603  #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
604 #endif
605 #if PY_VERSION_HEX >= 0x030900A4
606  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
607  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
608 #else
609  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
610  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
611 #endif
612 #if CYTHON_ASSUME_SAFE_MACROS
613  #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
614 #else
615  #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
616 #endif
617 #if PY_MAJOR_VERSION >= 3
618  #define PyIntObject PyLongObject
619  #define PyInt_Type PyLong_Type
620  #define PyInt_Check(op) PyLong_Check(op)
621  #define PyInt_CheckExact(op) PyLong_CheckExact(op)
622  #define PyInt_FromString PyLong_FromString
623  #define PyInt_FromUnicode PyLong_FromUnicode
624  #define PyInt_FromLong PyLong_FromLong
625  #define PyInt_FromSize_t PyLong_FromSize_t
626  #define PyInt_FromSsize_t PyLong_FromSsize_t
627  #define PyInt_AsLong PyLong_AsLong
628  #define PyInt_AS_LONG PyLong_AS_LONG
629  #define PyInt_AsSsize_t PyLong_AsSsize_t
630  #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
631  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
632  #define PyNumber_Int PyNumber_Long
633 #endif
634 #if PY_MAJOR_VERSION >= 3
635  #define PyBoolObject PyLongObject
636 #endif
637 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
638  #ifndef PyUnicode_InternFromString
639  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
640  #endif
641 #endif
642 #if PY_VERSION_HEX < 0x030200A4
643  typedef long Py_hash_t;
644  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
645  #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
646 #else
647  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
648  #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
649 #endif
650 #if PY_MAJOR_VERSION >= 3
651  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
652 #else
653  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
654 #endif
655 #if CYTHON_USE_ASYNC_SLOTS
656  #if PY_VERSION_HEX >= 0x030500B1
657  #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
658  #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
659  #else
660  #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
661  #endif
662 #else
663  #define __Pyx_PyType_AsAsync(obj) NULL
664 #endif
665 #ifndef __Pyx_PyAsyncMethodsStruct
666  typedef struct {
667  unaryfunc am_await;
668  unaryfunc am_aiter;
669  unaryfunc am_anext;
670  } __Pyx_PyAsyncMethodsStruct;
671 #endif
672 
673 #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
674  #if !defined(_USE_MATH_DEFINES)
675  #define _USE_MATH_DEFINES
676  #endif
677 #endif
678 #include <math.h>
679 #ifdef NAN
680 #define __PYX_NAN() ((float) NAN)
681 #else
682 static CYTHON_INLINE float __PYX_NAN() {
683  float value;
684  memset(&value, 0xFF, sizeof(value));
685  return value;
686 }
687 #endif
688 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
689 #define __Pyx_truncl trunc
690 #else
691 #define __Pyx_truncl truncl
692 #endif
693 
694 #define __PYX_MARK_ERR_POS(f_index, lineno) \
695  { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
696 #define __PYX_ERR(f_index, lineno, Ln_error) \
697  { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
698 
699 #ifndef __PYX_EXTERN_C
700  #ifdef __cplusplus
701  #define __PYX_EXTERN_C extern "C"
702  #else
703  #define __PYX_EXTERN_C extern
704  #endif
705 #endif
706 
707 #define __PYX_HAVE__mprans__BoundaryConditions
708 #define __PYX_HAVE_API__mprans__BoundaryConditions
709 /* Early includes */
710 #include <string.h>
711 #include <stdio.h>
712 #include "numpy/arrayobject.h"
713 #include "numpy/ndarrayobject.h"
714 #include "numpy/ndarraytypes.h"
715 #include "numpy/arrayscalars.h"
716 #include "numpy/ufuncobject.h"
717 
718  /* NumPy API declarations from "numpy/__init__.pxd" */
719 
720 #include "pythread.h"
721 #include <stdlib.h>
722 #include "pystate.h"
723 #ifdef _OPENMP
724 #include <omp.h>
725 #endif /* _OPENMP */
726 
727 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
728 #define CYTHON_WITHOUT_ASSERTIONS
729 #endif
730 
731 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
732  const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
733 
734 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
735 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
736 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
737 #define __PYX_DEFAULT_STRING_ENCODING ""
738 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
739 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
740 #define __Pyx_uchar_cast(c) ((unsigned char)c)
741 #define __Pyx_long_cast(x) ((long)x)
742 #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
743  (sizeof(type) < sizeof(Py_ssize_t)) ||\
744  (sizeof(type) > sizeof(Py_ssize_t) &&\
745  likely(v < (type)PY_SSIZE_T_MAX ||\
746  v == (type)PY_SSIZE_T_MAX) &&\
747  (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
748  v == (type)PY_SSIZE_T_MIN))) ||\
749  (sizeof(type) == sizeof(Py_ssize_t) &&\
750  (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
751  v == (type)PY_SSIZE_T_MAX))) )
752 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
753  return (size_t) i < (size_t) limit;
754 }
755 #if defined (__cplusplus) && __cplusplus >= 201103L
756  #include <cstdlib>
757  #define __Pyx_sst_abs(value) std::abs(value)
758 #elif SIZEOF_INT >= SIZEOF_SIZE_T
759  #define __Pyx_sst_abs(value) abs(value)
760 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
761  #define __Pyx_sst_abs(value) labs(value)
762 #elif defined (_MSC_VER)
763  #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
764 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
765  #define __Pyx_sst_abs(value) llabs(value)
766 #elif defined (__GNUC__)
767  #define __Pyx_sst_abs(value) __builtin_llabs(value)
768 #else
769  #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
770 #endif
771 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
772 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
773 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
774 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
775 #define __Pyx_PyBytes_FromString PyBytes_FromString
776 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
777 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
778 #if PY_MAJOR_VERSION < 3
779  #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
780  #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
781 #else
782  #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
783  #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
784 #endif
785 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
786 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
787 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
788 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
789 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
790 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
791 #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s))
792 #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s))
793 #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
794 #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
795 #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
796 #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
797 #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
798 #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
799 #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
800 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
801 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
802  const Py_UNICODE *u_end = u;
803  while (*u_end++) ;
804  return (size_t)(u_end - u - 1);
805 }
806 #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
807 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
808 #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
809 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
810 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
811 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
812 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
813 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
814 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
815 #define __Pyx_PySequence_Tuple(obj)\
816  (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
817 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
818 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
819 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
820 #if CYTHON_ASSUME_SAFE_MACROS
821 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
822 #else
823 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
824 #endif
825 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
826 #if PY_MAJOR_VERSION >= 3
827 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
828 #else
829 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
830 #endif
831 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
832 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
833 static int __Pyx_sys_getdefaultencoding_not_ascii;
834 static int __Pyx_init_sys_getdefaultencoding_params(void) {
835  PyObject* sys;
836  PyObject* default_encoding = NULL;
837  PyObject* ascii_chars_u = NULL;
838  PyObject* ascii_chars_b = NULL;
839  const char* default_encoding_c;
840  sys = PyImport_ImportModule("sys");
841  if (!sys) goto bad;
842  default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
843  Py_DECREF(sys);
844  if (!default_encoding) goto bad;
845  default_encoding_c = PyBytes_AsString(default_encoding);
846  if (!default_encoding_c) goto bad;
847  if (strcmp(default_encoding_c, "ascii") == 0) {
848  __Pyx_sys_getdefaultencoding_not_ascii = 0;
849  } else {
850  char ascii_chars[128];
851  int c;
852  for (c = 0; c < 128; c++) {
853  ascii_chars[c] = c;
854  }
855  __Pyx_sys_getdefaultencoding_not_ascii = 1;
856  ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
857  if (!ascii_chars_u) goto bad;
858  ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
859  if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
860  PyErr_Format(
861  PyExc_ValueError,
862  "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
863  default_encoding_c);
864  goto bad;
865  }
866  Py_DECREF(ascii_chars_u);
867  Py_DECREF(ascii_chars_b);
868  }
869  Py_DECREF(default_encoding);
870  return 0;
871 bad:
872  Py_XDECREF(default_encoding);
873  Py_XDECREF(ascii_chars_u);
874  Py_XDECREF(ascii_chars_b);
875  return -1;
876 }
877 #endif
878 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
879 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
880 #else
881 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
882 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
883 static char* __PYX_DEFAULT_STRING_ENCODING;
884 static int __Pyx_init_sys_getdefaultencoding_params(void) {
885  PyObject* sys;
886  PyObject* default_encoding = NULL;
887  char* default_encoding_c;
888  sys = PyImport_ImportModule("sys");
889  if (!sys) goto bad;
890  default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
891  Py_DECREF(sys);
892  if (!default_encoding) goto bad;
893  default_encoding_c = PyBytes_AsString(default_encoding);
894  if (!default_encoding_c) goto bad;
895  __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
896  if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
897  strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
898  Py_DECREF(default_encoding);
899  return 0;
900 bad:
901  Py_XDECREF(default_encoding);
902  return -1;
903 }
904 #endif
905 #endif
906 
907 
908 /* Test for GCC > 2.95 */
909 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
910  #define likely(x) __builtin_expect(!!(x), 1)
911  #define unlikely(x) __builtin_expect(!!(x), 0)
912 #else /* !__GNUC__ or GCC < 2.95 */
913  #define likely(x) (x)
914  #define unlikely(x) (x)
915 #endif /* __GNUC__ */
916 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
917 
918 static PyObject *__pyx_m = NULL;
919 static PyObject *__pyx_d;
920 static PyObject *__pyx_b;
921 static PyObject *__pyx_cython_runtime = NULL;
922 static PyObject *__pyx_empty_tuple;
923 static PyObject *__pyx_empty_bytes;
924 static PyObject *__pyx_empty_unicode;
925 static int __pyx_lineno;
926 static int __pyx_clineno = 0;
927 static const char * __pyx_cfilenm= __FILE__;
928 static const char *__pyx_filename;
929 
930 /* Header.proto */
931 #if !defined(CYTHON_CCOMPLEX)
932  #if defined(__cplusplus)
933  #define CYTHON_CCOMPLEX 1
934  #elif defined(_Complex_I)
935  #define CYTHON_CCOMPLEX 1
936  #else
937  #define CYTHON_CCOMPLEX 0
938  #endif
939 #endif
940 #if CYTHON_CCOMPLEX
941  #ifdef __cplusplus
942  #include <complex>
943  #else
944  #include <complex.h>
945  #endif
946 #endif
947 #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
948  #undef _Complex_I
949  #define _Complex_I 1.0fj
950 #endif
951 
952 
953 static const char *__pyx_f[] = {
954  "proteus/mprans/BoundaryConditions.py",
955  "stringsource",
956  "proteus/mprans/BoundaryConditions.pxd",
957  "__init__.pxd",
958  "type.pxd",
959  "proteus/BoundaryConditions.pxd",
960 };
961 /* MemviewSliceStruct.proto */
962 struct __pyx_memoryview_obj;
963 typedef struct {
964  struct __pyx_memoryview_obj *memview;
965  char *data;
966  Py_ssize_t shape[8];
967  Py_ssize_t strides[8];
968  Py_ssize_t suboffsets[8];
969 } __Pyx_memviewslice;
970 #define __Pyx_MemoryView_Len(m) (m.shape[0])
971 
972 /* Atomics.proto */
973 #include <pythread.h>
974 #ifndef CYTHON_ATOMICS
975  #define CYTHON_ATOMICS 1
976 #endif
977 #define __pyx_atomic_int_type int
978 #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\
979  (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\
980  !defined(__i386__)
981  #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1)
982  #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1)
983  #ifdef __PYX_DEBUG_ATOMICS
984  #warning "Using GNU atomics"
985  #endif
986 #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0
987  #include <Windows.h>
988  #undef __pyx_atomic_int_type
989  #define __pyx_atomic_int_type LONG
990  #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value)
991  #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value)
992  #ifdef __PYX_DEBUG_ATOMICS
993  #pragma message ("Using MSVC atomics")
994  #endif
995 #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0
996  #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value)
997  #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value)
998  #ifdef __PYX_DEBUG_ATOMICS
999  #warning "Using Intel atomics"
1000  #endif
1001 #else
1002  #undef CYTHON_ATOMICS
1003  #define CYTHON_ATOMICS 0
1004  #ifdef __PYX_DEBUG_ATOMICS
1005  #warning "Not using atomics"
1006  #endif
1007 #endif
1008 typedef volatile __pyx_atomic_int_type __pyx_atomic_int;
1009 #if CYTHON_ATOMICS
1010  #define __pyx_add_acquisition_count(memview)\
1011  __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock)
1012  #define __pyx_sub_acquisition_count(memview)\
1013  __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock)
1014 #else
1015  #define __pyx_add_acquisition_count(memview)\
1016  __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
1017  #define __pyx_sub_acquisition_count(memview)\
1018  __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
1019 #endif
1020 
1021 /* ForceInitThreads.proto */
1022 #ifndef __PYX_FORCE_INIT_THREADS
1023  #define __PYX_FORCE_INIT_THREADS 0
1024 #endif
1025 
1026 /* NoFastGil.proto */
1027 #define __Pyx_PyGILState_Ensure PyGILState_Ensure
1028 #define __Pyx_PyGILState_Release PyGILState_Release
1029 #define __Pyx_FastGIL_Remember()
1030 #define __Pyx_FastGIL_Forget()
1031 #define __Pyx_FastGilFuncInit()
1032 
1033 /* BufferFormatStructs.proto */
1034 #define IS_UNSIGNED(type) (((type) -1) > 0)
1035 struct __Pyx_StructField_;
1036 #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
1037 typedef struct {
1038  const char* name;
1039  struct __Pyx_StructField_* fields;
1040  size_t size;
1041  size_t arraysize[8];
1042  int ndim;
1043  char typegroup;
1044  char is_unsigned;
1045  int flags;
1046 } __Pyx_TypeInfo;
1047 typedef struct __Pyx_StructField_ {
1048  __Pyx_TypeInfo* type;
1049  const char* name;
1050  size_t offset;
1051 } __Pyx_StructField;
1052 typedef struct {
1053  __Pyx_StructField* field;
1054  size_t parent_offset;
1055 } __Pyx_BufFmt_StackElem;
1056 typedef struct {
1057  __Pyx_StructField root;
1058  __Pyx_BufFmt_StackElem* head;
1059  size_t fmt_offset;
1060  size_t new_count, enc_count;
1061  size_t struct_alignment;
1062  int is_complex;
1063  char enc_type;
1064  char new_packmode;
1065  char enc_packmode;
1066  char is_valid_array;
1067 } __Pyx_BufFmt_Context;
1068 
1069 
1070 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":690
1071  * # in Cython to enable them only on the right systems.
1072  *
1073  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
1074  * ctypedef npy_int16 int16_t
1075  * ctypedef npy_int32 int32_t
1076  */
1077 typedef npy_int8 __pyx_t_5numpy_int8_t;
1078 
1079 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":691
1080  *
1081  * ctypedef npy_int8 int8_t
1082  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
1083  * ctypedef npy_int32 int32_t
1084  * ctypedef npy_int64 int64_t
1085  */
1086 typedef npy_int16 __pyx_t_5numpy_int16_t;
1087 
1088 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":692
1089  * ctypedef npy_int8 int8_t
1090  * ctypedef npy_int16 int16_t
1091  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1092  * ctypedef npy_int64 int64_t
1093  * #ctypedef npy_int96 int96_t
1094  */
1095 typedef npy_int32 __pyx_t_5numpy_int32_t;
1096 
1097 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":693
1098  * ctypedef npy_int16 int16_t
1099  * ctypedef npy_int32 int32_t
1100  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1101  * #ctypedef npy_int96 int96_t
1102  * #ctypedef npy_int128 int128_t
1103  */
1104 typedef npy_int64 __pyx_t_5numpy_int64_t;
1105 
1106 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":697
1107  * #ctypedef npy_int128 int128_t
1108  *
1109  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1110  * ctypedef npy_uint16 uint16_t
1111  * ctypedef npy_uint32 uint32_t
1112  */
1113 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1114 
1115 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":698
1116  *
1117  * ctypedef npy_uint8 uint8_t
1118  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1119  * ctypedef npy_uint32 uint32_t
1120  * ctypedef npy_uint64 uint64_t
1121  */
1122 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1123 
1124 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":699
1125  * ctypedef npy_uint8 uint8_t
1126  * ctypedef npy_uint16 uint16_t
1127  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1128  * ctypedef npy_uint64 uint64_t
1129  * #ctypedef npy_uint96 uint96_t
1130  */
1131 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1132 
1133 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":700
1134  * ctypedef npy_uint16 uint16_t
1135  * ctypedef npy_uint32 uint32_t
1136  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1137  * #ctypedef npy_uint96 uint96_t
1138  * #ctypedef npy_uint128 uint128_t
1139  */
1140 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1141 
1142 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":704
1143  * #ctypedef npy_uint128 uint128_t
1144  *
1145  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1146  * ctypedef npy_float64 float64_t
1147  * #ctypedef npy_float80 float80_t
1148  */
1149 typedef npy_float32 __pyx_t_5numpy_float32_t;
1150 
1151 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":705
1152  *
1153  * ctypedef npy_float32 float32_t
1154  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1155  * #ctypedef npy_float80 float80_t
1156  * #ctypedef npy_float128 float128_t
1157  */
1158 typedef npy_float64 __pyx_t_5numpy_float64_t;
1159 
1160 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":714
1161  * # The int types are mapped a bit surprising --
1162  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1163  * ctypedef npy_long int_t # <<<<<<<<<<<<<<
1164  * ctypedef npy_longlong long_t
1165  * ctypedef npy_longlong longlong_t
1166  */
1167 typedef npy_long __pyx_t_5numpy_int_t;
1168 
1169 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":715
1170  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1171  * ctypedef npy_long int_t
1172  * ctypedef npy_longlong long_t # <<<<<<<<<<<<<<
1173  * ctypedef npy_longlong longlong_t
1174  *
1175  */
1176 typedef npy_longlong __pyx_t_5numpy_long_t;
1177 
1178 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":716
1179  * ctypedef npy_long int_t
1180  * ctypedef npy_longlong long_t
1181  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1182  *
1183  * ctypedef npy_ulong uint_t
1184  */
1185 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1186 
1187 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":718
1188  * ctypedef npy_longlong longlong_t
1189  *
1190  * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
1191  * ctypedef npy_ulonglong ulong_t
1192  * ctypedef npy_ulonglong ulonglong_t
1193  */
1194 typedef npy_ulong __pyx_t_5numpy_uint_t;
1195 
1196 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":719
1197  *
1198  * ctypedef npy_ulong uint_t
1199  * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<<
1200  * ctypedef npy_ulonglong ulonglong_t
1201  *
1202  */
1203 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1204 
1205 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":720
1206  * ctypedef npy_ulong uint_t
1207  * ctypedef npy_ulonglong ulong_t
1208  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1209  *
1210  * ctypedef npy_intp intp_t
1211  */
1212 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1213 
1214 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":722
1215  * ctypedef npy_ulonglong ulonglong_t
1216  *
1217  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1218  * ctypedef npy_uintp uintp_t
1219  *
1220  */
1221 typedef npy_intp __pyx_t_5numpy_intp_t;
1222 
1223 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":723
1224  *
1225  * ctypedef npy_intp intp_t
1226  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1227  *
1228  * ctypedef npy_double float_t
1229  */
1230 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1231 
1232 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":725
1233  * ctypedef npy_uintp uintp_t
1234  *
1235  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1236  * ctypedef npy_double double_t
1237  * ctypedef npy_longdouble longdouble_t
1238  */
1239 typedef npy_double __pyx_t_5numpy_float_t;
1240 
1241 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":726
1242  *
1243  * ctypedef npy_double float_t
1244  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1245  * ctypedef npy_longdouble longdouble_t
1246  *
1247  */
1248 typedef npy_double __pyx_t_5numpy_double_t;
1249 
1250 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":727
1251  * ctypedef npy_double float_t
1252  * ctypedef npy_double double_t
1253  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1254  *
1255  * ctypedef npy_cfloat cfloat_t
1256  */
1257 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1258 
1259 /* "mprans/BoundaryConditions.pxd":111
1260  * ctypedef double (*cfphirel) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1261  * ctypedef double (*cfphiwave) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1262  * ctypedef np.float64_t float64_t # <<<<<<<<<<<<<<
1263  * ctypedef np.int64_t int64_t
1264  *
1265  */
1266 typedef __pyx_t_5numpy_float64_t __pyx_t_6mprans_18BoundaryConditions_float64_t;
1267 
1268 /* "mprans/BoundaryConditions.pxd":112
1269  * ctypedef double (*cfphiwave) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1270  * ctypedef np.float64_t float64_t
1271  * ctypedef np.int64_t int64_t # <<<<<<<<<<<<<<
1272  *
1273  * cdef class RelaxationZone:
1274  */
1275 typedef __pyx_t_5numpy_int64_t __pyx_t_6mprans_18BoundaryConditions_int64_t;
1276 /* Declarations.proto */
1277 #if CYTHON_CCOMPLEX
1278  #ifdef __cplusplus
1279  typedef ::std::complex< float > __pyx_t_float_complex;
1280  #else
1281  typedef float _Complex __pyx_t_float_complex;
1282  #endif
1283 #else
1284  typedef struct { float real, imag; } __pyx_t_float_complex;
1285 #endif
1286 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1287 
1288 /* Declarations.proto */
1289 #if CYTHON_CCOMPLEX
1290  #ifdef __cplusplus
1291  typedef ::std::complex< double > __pyx_t_double_complex;
1292  #else
1293  typedef double _Complex __pyx_t_double_complex;
1294  #endif
1295 #else
1296  typedef struct { double real, imag; } __pyx_t_double_complex;
1297 #endif
1298 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1299 
1300 
1301 /*--- Type declarations ---*/
1302 struct __pyx_obj_7proteus_18BoundaryConditions_BC_Base;
1303 struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition;
1304 struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS;
1305 struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone;
1306 struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
1307 struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
1308 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh;
1309 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h;
1310 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh;
1311 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction;
1312 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh;
1313 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet;
1314 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet;
1315 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet;
1316 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth;
1317 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet;
1318 struct __pyx_array_obj;
1319 struct __pyx_MemviewEnum_obj;
1320 struct __pyx_memoryview_obj;
1321 struct __pyx_memoryviewslice_obj;
1322 
1323 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":729
1324  * ctypedef npy_longdouble longdouble_t
1325  *
1326  * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
1327  * ctypedef npy_cdouble cdouble_t
1328  * ctypedef npy_clongdouble clongdouble_t
1329  */
1330 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1331 
1332 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":730
1333  *
1334  * ctypedef npy_cfloat cfloat_t
1335  * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
1336  * ctypedef npy_clongdouble clongdouble_t
1337  *
1338  */
1339 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1340 
1341 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":731
1342  * ctypedef npy_cfloat cfloat_t
1343  * ctypedef npy_cdouble cdouble_t
1344  * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
1345  *
1346  * ctypedef npy_cdouble complex_t
1347  */
1348 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1349 
1350 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":733
1351  * ctypedef npy_clongdouble clongdouble_t
1352  *
1353  * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
1354  *
1355  * cdef inline object PyArray_MultiIterNew1(a):
1356  */
1357 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1358 
1359 /* "proteus/BoundaryConditions.pxd":16
1360  * # cpdef void getContext(BC_Base cls, object context=*)
1361  *
1362  * ctypedef double (*cpp_uOfXT) (BoundaryCondition, double[:], double) # <<<<<<<<<<<<<<
1363  * cdef class BoundaryCondition:
1364  * cdef cpp_uOfXT uuOfXT
1365  */
1366 typedef double (*__pyx_t_7proteus_18BoundaryConditions_cpp_uOfXT)(struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *, __Pyx_memviewslice, double);
1367 
1368 /* "mprans/BoundaryConditions.pxd":9
1369  * from proteus cimport BoundaryConditions
1370  *
1371  * ctypedef double[:,:,:] double_memview3 # <<<<<<<<<<<<<<
1372  * ctypedef double[:,:] double_memview2
1373  * ctypedef double[:] double_memview1
1374  */
1375 typedef __Pyx_memviewslice __pyx_t_6mprans_18BoundaryConditions_double_memview3;
1376 
1377 /* "mprans/BoundaryConditions.pxd":10
1378  *
1379  * ctypedef double[:,:,:] double_memview3
1380  * ctypedef double[:,:] double_memview2 # <<<<<<<<<<<<<<
1381  * ctypedef double[:] double_memview1
1382  * ctypedef int[:] int_memview1
1383  */
1384 typedef __Pyx_memviewslice __pyx_t_6mprans_18BoundaryConditions_double_memview2;
1385 
1386 /* "mprans/BoundaryConditions.pxd":11
1387  * ctypedef double[:,:,:] double_memview3
1388  * ctypedef double[:,:] double_memview2
1389  * ctypedef double[:] double_memview1 # <<<<<<<<<<<<<<
1390  * ctypedef int[:] int_memview1
1391  *
1392  */
1393 typedef __Pyx_memviewslice __pyx_t_6mprans_18BoundaryConditions_double_memview1;
1394 
1395 /* "mprans/BoundaryConditions.pxd":12
1396  * ctypedef double[:,:] double_memview2
1397  * ctypedef double[:] double_memview1
1398  * ctypedef int[:] int_memview1 # <<<<<<<<<<<<<<
1399  *
1400  * # ctypedef double (*cpp_uOfXT) (BC_RANS, double[:], double)
1401  */
1402 typedef __Pyx_memviewslice __pyx_t_6mprans_18BoundaryConditions_int_memview1;
1403 
1404 /* "mprans/BoundaryConditions.pxd":106
1405  * cdef double __cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(self, double[:] x, double t)
1406  *
1407  * ctypedef double[:] (*cfvel) (double[3], double) # pointer to velocity function # <<<<<<<<<<<<<<
1408  * ctypedef double (*cfeta) (double[3], double) # pointer to eta function
1409  * ctypedef double[:] (*cfvelrel) (RelaxationZone, double[3], double) # pointer to velocity function of RelaxationZone class
1410  */
1411 typedef __Pyx_memviewslice (*__pyx_t_6mprans_18BoundaryConditions_cfvel)(double *, double);
1412 
1413 /* "mprans/BoundaryConditions.pxd":107
1414  *
1415  * ctypedef double[:] (*cfvel) (double[3], double) # pointer to velocity function
1416  * ctypedef double (*cfeta) (double[3], double) # pointer to eta function # <<<<<<<<<<<<<<
1417  * ctypedef double[:] (*cfvelrel) (RelaxationZone, double[3], double) # pointer to velocity function of RelaxationZone class
1418  * ctypedef double (*cfphirel) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1419  */
1420 typedef double (*__pyx_t_6mprans_18BoundaryConditions_cfeta)(double *, double);
1421 
1422 /* "mprans/BoundaryConditions.pxd":108
1423  * ctypedef double[:] (*cfvel) (double[3], double) # pointer to velocity function
1424  * ctypedef double (*cfeta) (double[3], double) # pointer to eta function
1425  * ctypedef double[:] (*cfvelrel) (RelaxationZone, double[3], double) # pointer to velocity function of RelaxationZone class # <<<<<<<<<<<<<<
1426  * ctypedef double (*cfphirel) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1427  * ctypedef double (*cfphiwave) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1428  */
1429 typedef __Pyx_memviewslice (*__pyx_t_6mprans_18BoundaryConditions_cfvelrel)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
1430 
1431 /* "mprans/BoundaryConditions.pxd":109
1432  * ctypedef double (*cfeta) (double[3], double) # pointer to eta function
1433  * ctypedef double[:] (*cfvelrel) (RelaxationZone, double[3], double) # pointer to velocity function of RelaxationZone class
1434  * ctypedef double (*cfphirel) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class # <<<<<<<<<<<<<<
1435  * ctypedef double (*cfphiwave) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1436  * ctypedef np.float64_t float64_t
1437  */
1438 typedef double (*__pyx_t_6mprans_18BoundaryConditions_cfphirel)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
1439 
1440 /* "mprans/BoundaryConditions.pxd":110
1441  * ctypedef double[:] (*cfvelrel) (RelaxationZone, double[3], double) # pointer to velocity function of RelaxationZone class
1442  * ctypedef double (*cfphirel) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class
1443  * ctypedef double (*cfphiwave) (RelaxationZone, double[3]) # pointer to phi function of RelaxationZone class # <<<<<<<<<<<<<<
1444  * ctypedef np.float64_t float64_t
1445  * ctypedef np.int64_t int64_t
1446  */
1447 typedef double (*__pyx_t_6mprans_18BoundaryConditions_cfphiwave)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
1448 
1449 /* "proteus/BoundaryConditions.pxd":5
1450  * import cython
1451  *
1452  * cdef class BC_Base: # <<<<<<<<<<<<<<
1453  * cdef double[:] _b_or
1454  * cdef public:
1455  */
1456 struct __pyx_obj_7proteus_18BoundaryConditions_BC_Base {
1457  PyObject_HEAD
1458  __Pyx_memviewslice _b_or;
1459  int nd;
1460  PyObject *Shape;
1461  PyObject *name;
1462  PyObject *BC_type;
1463  PyObject *ct;
1464 };
1465 
1466 
1467 /* "proteus/BoundaryConditions.pxd":17
1468  *
1469  * ctypedef double (*cpp_uOfXT) (BoundaryCondition, double[:], double)
1470  * cdef class BoundaryCondition: # <<<<<<<<<<<<<<
1471  * cdef cpp_uOfXT uuOfXT
1472  * cdef public:
1473  */
1474 struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition {
1475  PyObject_HEAD
1476  struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *__pyx_vtab;
1477  __pyx_t_7proteus_18BoundaryConditions_cpp_uOfXT uuOfXT;
1478  PyObject *uOfXT;
1479 };
1480 
1481 
1482 /* "mprans/BoundaryConditions.pxd":16
1483  * # ctypedef double (*cpp_uOfXT) (BC_RANS, double[:], double)
1484  *
1485  * cdef class BC_RANS(BC_Base): # <<<<<<<<<<<<<<
1486  * cdef double[:] zero_array
1487  * cdef double f
1488  */
1489 struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS {
1490  struct __pyx_obj_7proteus_18BoundaryConditions_BC_Base __pyx_base;
1491  struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *__pyx_vtab;
1492  __Pyx_memviewslice zero_array;
1493  double f;
1494  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *waves;
1495  PyObject *body;
1496  __Pyx_memviewslice wind_speed;
1497  __Pyx_memviewslice body_python_rot_matrix;
1498  __Pyx_memviewslice body_python_last_pos;
1499  __Pyx_memviewslice body_python_h;
1500  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *p_dirichlet;
1501  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *u_dirichlet;
1502  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *v_dirichlet;
1503  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *w_dirichlet;
1504  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *phi_dirichlet;
1505  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vof_dirichlet;
1506  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *k_dirichlet;
1507  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *dissipation_dirichlet;
1508  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pAddedMass_dirichlet;
1509  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *p_advective;
1510  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *u_advective;
1511  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *v_advective;
1512  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *w_advective;
1513  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vof_advective;
1514  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *k_advective;
1515  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *dissipation_advective;
1516  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *u_diffusive;
1517  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *v_diffusive;
1518  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *w_diffusive;
1519  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *k_diffusive;
1520  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *dissipation_diffusive;
1521  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *hx_dirichlet;
1522  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *hy_dirichlet;
1523  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *hz_dirichlet;
1524  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *u_stress;
1525  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *v_stress;
1526  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *w_stress;
1527  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *us_dirichlet;
1528  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vs_dirichlet;
1529  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *ws_dirichlet;
1530  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vos_dirichlet;
1531  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *us_advective;
1532  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vs_advective;
1533  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *ws_advective;
1534  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vos_advective;
1535  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *us_diffusive;
1536  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *vs_diffusive;
1537  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *ws_diffusive;
1538  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInit_dirichlet;
1539  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInc_dirichlet;
1540  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInit_advective;
1541  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInc_advective;
1542  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInit_diffusive;
1543  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *pInc_diffusive;
1544  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *clsvof_dirichlet;
1545  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *clsvof_advective;
1546  struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *clsvof_diffusive;
1547 };
1548 
1549 
1550 /* "mprans/BoundaryConditions.pxd":114
1551  * ctypedef np.int64_t int64_t
1552  *
1553  * cdef class RelaxationZone: # <<<<<<<<<<<<<<
1554  * cdef double[:] wind_speed
1555  * cdef double[:] u_calc # calculated velocity
1556  */
1557 struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone {
1558  PyObject_HEAD
1559  struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *__pyx_vtab;
1560  __Pyx_memviewslice wind_speed;
1561  __Pyx_memviewslice u_calc;
1562  __pyx_t_6mprans_18BoundaryConditions_cfvelrel uu;
1563  __pyx_t_6mprans_18BoundaryConditions_cfphirel phi;
1564  double mwl;
1565  __pyx_t_6mprans_18BoundaryConditions_cfeta eta;
1566  double waveHeight;
1567  double wavePhi;
1568  double waterSpeed;
1569  int nd;
1570  __Pyx_memviewslice zero_vel;
1571  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *waves;
1572  PyObject *Shape;
1573  PyObject *zone_type;
1574  double dragAlpha;
1575  double dragBeta;
1576  double porosity;
1577  double epsFact_solid;
1578  double epsFact_porous;
1579  double vert_axis;
1580  __Pyx_memviewslice center;
1581  __Pyx_memviewslice orientation;
1582 };
1583 
1584 
1585 /* "mprans/BoundaryConditions.pxd":152
1586  * cdef double __cpp_calculate_phi_porous_sponge(self, double[3] x)
1587  *
1588  * cdef class RelaxationZoneWaveGenerator: # <<<<<<<<<<<<<<
1589  * cdef int nd # dimension
1590  * cdef int max_flag # maximum region flag of relaxation zones (initialised in calculate_init)
1591  */
1592 struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator {
1593  PyObject_HEAD
1594  struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_vtab;
1595  int nd;
1596  int max_flag;
1597  PyArrayObject *zones_array;
1598  PyObject *zones;
1599  PyObject *model;
1600  PyObject *ar;
1601 };
1602 
1603 
1604 /* "mprans/BoundaryConditions.pxd":172
1605  *
1606  *
1607  * cdef class __cppClass_WavesCharacteristics: # <<<<<<<<<<<<<<
1608  * cdef int vert_axis # vertical axis
1609  * # relaxation zone info (if any)
1610  */
1611 struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics {
1612  PyObject_HEAD
1613  struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_vtab;
1614  int vert_axis;
1615  __Pyx_memviewslice center;
1616  __Pyx_memviewslice orientation;
1617  __Pyx_memviewslice zero_vel;
1618  __Pyx_memviewslice _b_or;
1619  __Pyx_memviewslice wind_speed;
1620  double vof_air;
1621  double vof_water;
1622  double smoothing;
1623  PyObject *WT;
1624 };
1625 
1626 
1627 /* "mprans/BoundaryConditions.py":377
1628  * else:
1629  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
1630  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
1631  * """
1632  * Sets boundary conditions for moving the mesh with a rigid body
1633  */
1634 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh {
1635  PyObject_HEAD
1636  PyObject *__pyx_v_body;
1637 };
1638 
1639 
1640 /* "mprans/BoundaryConditions.py":394
1641  * without loosing their memory address
1642  * """
1643  * def get_DBC_h(i): # <<<<<<<<<<<<<<
1644  * def DBC_h(x, t, n=None):
1645  * x_0 = x - body.last_position
1646  */
1647 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h {
1648  PyObject_HEAD
1649  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *__pyx_outer_scope;
1650  PyObject *__pyx_v_i;
1651 };
1652 
1653 
1654 /* "mprans/BoundaryConditions.py":406
1655  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
1656  *
1657  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
1658  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
1659  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
1660  */
1661 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh {
1662  PyObject_HEAD
1663  PyObject *__pyx_v_body;
1664 };
1665 
1666 
1667 /* "mprans/BoundaryConditions.py":446
1668  * self.dissipation_diffusive.setConstantBC(0.)
1669  *
1670  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
1671  * """
1672  * Sets turbulent boundaries for wall treatment.
1673  */
1674 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction {
1675  PyObject_HEAD
1676  PyObject *__pyx_v_wf;
1677 };
1678 
1679 
1680 /* "mprans/BoundaryConditions.py":494
1681  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
1682  * """
1683  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
1684  * """
1685  * Sets boundary conditions for moving the mesh with a rigid body
1686  */
1687 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh {
1688  PyObject_HEAD
1689  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self;
1690 };
1691 
1692 
1693 /* "mprans/BoundaryConditions.py":544
1694  * return self.__cpp_MoveMesh_h(x, t)[2]
1695  *
1696  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
1697  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
1698  * """
1699  */
1700 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet {
1701  PyObject_HEAD
1702  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self;
1703 };
1704 
1705 
1706 /* "mprans/BoundaryConditions.py":644
1707  * return self.waves.__cpp_calculate_vof(xx, t)
1708  *
1709  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
1710  * vert_axis=None, air=1., water=0.,
1711  * kInflow=None, dissipationInflow=None,
1712  */
1713 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet {
1714  PyObject_HEAD
1715  PyObject *__pyx_v_U;
1716  PyObject *__pyx_v_Uwind;
1717  PyObject *__pyx_v_air;
1718  PyObject *__pyx_v_dissipationInflow;
1719  PyObject *__pyx_v_dissipationInflowAir;
1720  PyObject *__pyx_v_kInflow;
1721  PyObject *__pyx_v_kInflowAir;
1722  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self;
1723  PyObject *__pyx_v_smoothing;
1724  PyObject *__pyx_v_vert_axis;
1725  PyObject *__pyx_v_water;
1726  PyObject *__pyx_v_waterLevel;
1727 };
1728 
1729 
1730 /* "mprans/BoundaryConditions.py":696
1731  * Uwind = np.array(Uwind)
1732  *
1733  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
1734  * def ux_dirichlet(x, t, n=None):
1735  * phi = x[vert_axis] - waterLevel
1736  */
1737 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet {
1738  PyObject_HEAD
1739  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
1740  PyObject *__pyx_v_i;
1741 };
1742 
1743 
1744 /* "mprans/BoundaryConditions.py":774
1745  * self.dissipation_diffusive.resetBC()
1746  *
1747  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
1748  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
1749  * pRef=0.0, vert_axis=None,
1750  */
1751 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth {
1752  PyObject_HEAD
1753  PyObject *__pyx_v_U;
1754  PyObject *__pyx_v_Uwind;
1755  PyObject *__pyx_v_air;
1756  PyObject *__pyx_v_dissipationInflow;
1757  PyObject *__pyx_v_dissipationInflowAir;
1758  PyObject *__pyx_v_g;
1759  PyObject *__pyx_v_kInflow;
1760  PyObject *__pyx_v_kInflowAir;
1761  PyObject *__pyx_v_pRef;
1762  PyObject *__pyx_v_refLevel;
1763  PyObject *__pyx_v_rhoDown;
1764  PyObject *__pyx_v_rhoUp;
1765  PyObject *__pyx_v_seaLevel;
1766  PyObject *__pyx_v_smoothing;
1767  PyObject *__pyx_v_vert_axis;
1768  PyObject *__pyx_v_water;
1769 };
1770 
1771 
1772 /* "mprans/BoundaryConditions.py":878
1773  * self.dissipation_diffusive.setConstantBC(0.)
1774  * if U is not None:
1775  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
1776  * def ux_dirichlet(x, t, n=None):
1777  * phi = x[vert_axis] - seaLevel
1778  */
1779 struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet {
1780  PyObject_HEAD
1781  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
1782  PyObject *__pyx_v_i;
1783 };
1784 
1785 
1786 /* "View.MemoryView":105
1787  *
1788  * @cname("__pyx_array")
1789  * cdef class array: # <<<<<<<<<<<<<<
1790  *
1791  * cdef:
1792  */
1793 struct __pyx_array_obj {
1794  PyObject_HEAD
1795  struct __pyx_vtabstruct_array *__pyx_vtab;
1796  char *data;
1797  Py_ssize_t len;
1798  char *format;
1799  int ndim;
1800  Py_ssize_t *_shape;
1801  Py_ssize_t *_strides;
1802  Py_ssize_t itemsize;
1803  PyObject *mode;
1804  PyObject *_format;
1805  void (*callback_free_data)(void *);
1806  int free_data;
1807  int dtype_is_object;
1808 };
1809 
1810 
1811 /* "View.MemoryView":279
1812  *
1813  * @cname('__pyx_MemviewEnum')
1814  * cdef class Enum(object): # <<<<<<<<<<<<<<
1815  * cdef object name
1816  * def __init__(self, name):
1817  */
1818 struct __pyx_MemviewEnum_obj {
1819  PyObject_HEAD
1820  PyObject *name;
1821 };
1822 
1823 
1824 /* "View.MemoryView":330
1825  *
1826  * @cname('__pyx_memoryview')
1827  * cdef class memoryview(object): # <<<<<<<<<<<<<<
1828  *
1829  * cdef object obj
1830  */
1831 struct __pyx_memoryview_obj {
1832  PyObject_HEAD
1833  struct __pyx_vtabstruct_memoryview *__pyx_vtab;
1834  PyObject *obj;
1835  PyObject *_size;
1836  PyObject *_array_interface;
1837  PyThread_type_lock lock;
1838  __pyx_atomic_int acquisition_count[2];
1839  __pyx_atomic_int *acquisition_count_aligned_p;
1840  Py_buffer view;
1841  int flags;
1842  int dtype_is_object;
1843  __Pyx_TypeInfo *typeinfo;
1844 };
1845 
1846 
1847 /* "View.MemoryView":965
1848  *
1849  * @cname('__pyx_memoryviewslice')
1850  * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<<
1851  * "Internal class for passing memoryview slices to Python"
1852  *
1853  */
1854 struct __pyx_memoryviewslice_obj {
1855  struct __pyx_memoryview_obj __pyx_base;
1856  __Pyx_memviewslice from_slice;
1857  PyObject *from_object;
1858  PyObject *(*to_object_func)(char *);
1859  int (*to_dtype_func)(char *, PyObject *);
1860 };
1861 
1862 
1863 
1864 /* "proteus/BoundaryConditions.pxd":17
1865  *
1866  * ctypedef double (*cpp_uOfXT) (BoundaryCondition, double[:], double)
1867  * cdef class BoundaryCondition: # <<<<<<<<<<<<<<
1868  * cdef cpp_uOfXT uuOfXT
1869  * cdef public:
1870  */
1871 
1872 struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition {
1873  void (*resetBC)(struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *, int __pyx_skip_dispatch);
1874 };
1875 static struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *__pyx_vtabptr_7proteus_18BoundaryConditions_BoundaryCondition;
1876 
1877 
1878 /* "mprans/BoundaryConditions.py":38
1879  *
1880  *
1881  * class BC_RANS(BoundaryConditions.BC_Base): # <<<<<<<<<<<<<<
1882  * """
1883  * Class regrouping boundary conditions for two-phase flows
1884  */
1885 
1886 struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS {
1887  __Pyx_memviewslice (*__pyx___cpp_MoveMesh_h)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch);
1888  double (*__pyx___cpp_MoveMesh_hx)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch);
1889  double (*__pyx___cpp_MoveMesh_hy)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch);
1890  double (*__pyx___cpp_MoveMesh_hz)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch);
1891  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1892  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1893  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1894  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1895  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1896  double (*__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double);
1897 };
1898 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *__pyx_vtabptr_6mprans_18BoundaryConditions_BC_RANS;
1899 
1900 
1901 /* "mprans/BoundaryConditions.py":910
1902  * # for regions
1903  *
1904  * class RelaxationZone: # <<<<<<<<<<<<<<
1905  * """
1906  * Holds information about a relaxation zone (wave generation/absorption
1907  */
1908 
1909 struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone {
1910  void (*calculate_init)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, int __pyx_skip_dispatch);
1911  __Pyx_memviewslice (*calculate_vel)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
1912  __Pyx_memviewslice (*__pyx___cpp_calculate_vel_wave)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
1913  __Pyx_memviewslice (*__pyx___cpp_calculate_vel_zero)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
1914  double (*calculate_phi)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
1915  double (*__pyx___cpp_calculate_phi_porous)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
1916  double (*__pyx___cpp_calculate_phi_porous_sponge)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
1917 };
1918 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *__pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZone;
1919 
1920 
1921 /* "mprans/BoundaryConditions.py":1036
1922  *
1923  *
1924  * class RelaxationZoneWaveGenerator: # <<<<<<<<<<<<<<
1925  * """
1926  * Prescribe a velocity penalty scaling in a material zone via a
1927  */
1928 
1929 struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator {
1930  void (*calculate_init)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *, int __pyx_skip_dispatch);
1931  void (*calculate)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *, int __pyx_skip_dispatch);
1932  void (*__pyx___cpp_iterate)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *);
1933 };
1934 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
1935 
1936 
1937 /* "mprans/BoundaryConditions.py":1109
1938  *
1939  *
1940  * class __cppClass_WavesCharacteristics: # <<<<<<<<<<<<<<
1941  * """
1942  * Class holding information from WaveTools waves and cnvering it to
1943  */
1944 
1945 struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics {
1946  __Pyx_memviewslice (*__pyx___cpp_calculate_velocity)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double);
1947  double (*__pyx___cpp_calculate_pressure)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double);
1948  double (*__pyx___cpp_calculate_phi)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double);
1949  double (*__pyx___cpp_calculate_vof)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double);
1950  double (*__pyx___cpp_calculate_smoothing_H)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double);
1951 };
1952 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_vtabptr_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
1953 
1954 
1955 /* "View.MemoryView":105
1956  *
1957  * @cname("__pyx_array")
1958  * cdef class array: # <<<<<<<<<<<<<<
1959  *
1960  * cdef:
1961  */
1962 
1963 struct __pyx_vtabstruct_array {
1964  PyObject *(*get_memview)(struct __pyx_array_obj *);
1965 };
1966 static struct __pyx_vtabstruct_array *__pyx_vtabptr_array;
1967 
1968 
1969 /* "View.MemoryView":330
1970  *
1971  * @cname('__pyx_memoryview')
1972  * cdef class memoryview(object): # <<<<<<<<<<<<<<
1973  *
1974  * cdef object obj
1975  */
1976 
1977 struct __pyx_vtabstruct_memoryview {
1978  char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *);
1979  PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *);
1980  PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1981  PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *);
1982  PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1983  PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *);
1984  PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *);
1985 };
1986 static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview;
1987 
1988 
1989 /* "View.MemoryView":965
1990  *
1991  * @cname('__pyx_memoryviewslice')
1992  * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<<
1993  * "Internal class for passing memoryview slices to Python"
1994  *
1995  */
1996 
1997 struct __pyx_vtabstruct__memoryviewslice {
1998  struct __pyx_vtabstruct_memoryview __pyx_base;
1999 };
2000 static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice;
2001 
2002 /* --- Runtime support code (head) --- */
2003 /* Refnanny.proto */
2004 #ifndef CYTHON_REFNANNY
2005  #define CYTHON_REFNANNY 0
2006 #endif
2007 #if CYTHON_REFNANNY
2008  typedef struct {
2009  void (*INCREF)(void*, PyObject*, int);
2010  void (*DECREF)(void*, PyObject*, int);
2011  void (*GOTREF)(void*, PyObject*, int);
2012  void (*GIVEREF)(void*, PyObject*, int);
2013  void* (*SetupContext)(const char*, int, const char*);
2014  void (*FinishContext)(void**);
2015  } __Pyx_RefNannyAPIStruct;
2016  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
2017  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
2018  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
2019 #ifdef WITH_THREAD
2020  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2021  if (acquire_gil) {\
2022  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2023  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
2024  PyGILState_Release(__pyx_gilstate_save);\
2025  } else {\
2026  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
2027  }
2028 #else
2029  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2030  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
2031 #endif
2032  #define __Pyx_RefNannyFinishContext()\
2033  __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2034  #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2035  #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2036  #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2037  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2038  #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
2039  #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
2040  #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
2041  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
2042 #else
2043  #define __Pyx_RefNannyDeclarations
2044  #define __Pyx_RefNannySetupContext(name, acquire_gil)
2045  #define __Pyx_RefNannyFinishContext()
2046  #define __Pyx_INCREF(r) Py_INCREF(r)
2047  #define __Pyx_DECREF(r) Py_DECREF(r)
2048  #define __Pyx_GOTREF(r)
2049  #define __Pyx_GIVEREF(r)
2050  #define __Pyx_XINCREF(r) Py_XINCREF(r)
2051  #define __Pyx_XDECREF(r) Py_XDECREF(r)
2052  #define __Pyx_XGOTREF(r)
2053  #define __Pyx_XGIVEREF(r)
2054 #endif
2055 #define __Pyx_XDECREF_SET(r, v) do {\
2056  PyObject *tmp = (PyObject *) r;\
2057  r = v; __Pyx_XDECREF(tmp);\
2058  } while (0)
2059 #define __Pyx_DECREF_SET(r, v) do {\
2060  PyObject *tmp = (PyObject *) r;\
2061  r = v; __Pyx_DECREF(tmp);\
2062  } while (0)
2063 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
2064 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2065 
2066 /* PyObjectGetAttrStr.proto */
2067 #if CYTHON_USE_TYPE_SLOTS
2068 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
2069 #else
2070 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
2071 #endif
2072 
2073 /* GetBuiltinName.proto */
2074 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
2075 
2076 /* RaiseDoubleKeywords.proto */
2077 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2078 
2079 /* ParseKeywords.proto */
2080 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
2081  PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
2082  const char* function_name);
2083 
2084 /* RaiseArgTupleInvalid.proto */
2085 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2086  Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2087 
2088 /* PyThreadStateGet.proto */
2089 #if CYTHON_FAST_THREAD_STATE
2090 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
2091 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
2092 #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type
2093 #else
2094 #define __Pyx_PyThreadState_declare
2095 #define __Pyx_PyThreadState_assign
2096 #define __Pyx_PyErr_Occurred() PyErr_Occurred()
2097 #endif
2098 
2099 /* PyErrFetchRestore.proto */
2100 #if CYTHON_FAST_THREAD_STATE
2101 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2102 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2103 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2104 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2105 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2106 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2107 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2108 #if CYTHON_COMPILING_IN_CPYTHON
2109 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2110 #else
2111 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2112 #endif
2113 #else
2114 #define __Pyx_PyErr_Clear() PyErr_Clear()
2115 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2116 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
2117 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
2118 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
2119 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
2120 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
2121 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
2122 #endif
2123 
2124 /* Profile.proto */
2125 #ifndef CYTHON_PROFILE
2126 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
2127  #define CYTHON_PROFILE 0
2128 #else
2129  #define CYTHON_PROFILE 1
2130 #endif
2131 #endif
2132 #ifndef CYTHON_TRACE_NOGIL
2133  #define CYTHON_TRACE_NOGIL 0
2134 #else
2135  #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE)
2136  #define CYTHON_TRACE 1
2137  #endif
2138 #endif
2139 #ifndef CYTHON_TRACE
2140  #define CYTHON_TRACE 0
2141 #endif
2142 #if CYTHON_TRACE
2143  #undef CYTHON_PROFILE_REUSE_FRAME
2144 #endif
2145 #ifndef CYTHON_PROFILE_REUSE_FRAME
2146  #define CYTHON_PROFILE_REUSE_FRAME 0
2147 #endif
2148 #if CYTHON_PROFILE || CYTHON_TRACE
2149  #include "compile.h"
2150  #include "frameobject.h"
2151  #include "traceback.h"
2152 #if PY_VERSION_HEX >= 0x030b00a6
2153  #ifndef Py_BUILD_CORE
2154  #define Py_BUILD_CORE 1
2155  #endif
2156  #include "internal/pycore_frame.h"
2157 #endif
2158  #if CYTHON_PROFILE_REUSE_FRAME
2159  #define CYTHON_FRAME_MODIFIER static
2160  #define CYTHON_FRAME_DEL(frame)
2161  #else
2162  #define CYTHON_FRAME_MODIFIER
2163  #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame)
2164  #endif
2165  #define __Pyx_TraceDeclarations\
2166  static PyCodeObject *__pyx_frame_code = NULL;\
2167  CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\
2168  int __Pyx_use_tracing = 0;
2169  #define __Pyx_TraceFrameInit(codeobj)\
2170  if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj;
2171 #if PY_VERSION_HEX >= 0x030b00a2
2172  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
2173  (unlikely((tstate)->cframe->use_tracing) &&\
2174  (!(check_tracing) || !(tstate)->tracing) &&\
2175  (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
2176  #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate)
2177  #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate)
2178 #elif PY_VERSION_HEX >= 0x030a00b1
2179  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
2180  (unlikely((tstate)->cframe->use_tracing) &&\
2181  (!(check_tracing) || !(tstate)->tracing) &&\
2182  (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
2183  #define __Pyx_EnterTracing(tstate)\
2184  do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0)
2185  #define __Pyx_LeaveTracing(tstate)\
2186  do {\
2187  tstate->tracing--;\
2188  tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\
2189  || tstate->c_profilefunc != NULL);\
2190  } while (0)
2191 #else
2192  #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\
2193  (unlikely((tstate)->use_tracing) &&\
2194  (!(check_tracing) || !(tstate)->tracing) &&\
2195  (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
2196  #define __Pyx_EnterTracing(tstate)\
2197  do { tstate->tracing++; tstate->use_tracing = 0; } while (0)
2198  #define __Pyx_LeaveTracing(tstate)\
2199  do {\
2200  tstate->tracing--;\
2201  tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\
2202  || tstate->c_profilefunc != NULL);\
2203  } while (0)
2204 #endif
2205  #ifdef WITH_THREAD
2206  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
2207  if (nogil) {\
2208  if (CYTHON_TRACE_NOGIL) {\
2209  PyThreadState *tstate;\
2210  PyGILState_STATE state = PyGILState_Ensure();\
2211  tstate = __Pyx_PyThreadState_Current;\
2212  if (__Pyx_IsTracing(tstate, 1, 1)) {\
2213  __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2214  }\
2215  PyGILState_Release(state);\
2216  if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2217  }\
2218  } else {\
2219  PyThreadState* tstate = PyThreadState_GET();\
2220  if (__Pyx_IsTracing(tstate, 1, 1)) {\
2221  __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2222  if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2223  }\
2224  }
2225  #else
2226  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
2227  { PyThreadState* tstate = PyThreadState_GET();\
2228  if (__Pyx_IsTracing(tstate, 1, 1)) {\
2229  __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2230  if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2231  }\
2232  }
2233  #endif
2234  #define __Pyx_TraceException()\
2235  if (likely(!__Pyx_use_tracing)); else {\
2236  PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2237  if (__Pyx_IsTracing(tstate, 0, 1)) {\
2238  __Pyx_EnterTracing(tstate);\
2239  PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\
2240  if (exc_info) {\
2241  if (CYTHON_TRACE && tstate->c_tracefunc)\
2242  tstate->c_tracefunc(\
2243  tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
2244  tstate->c_profilefunc(\
2245  tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
2246  Py_DECREF(exc_info);\
2247  }\
2248  __Pyx_LeaveTracing(tstate);\
2249  }\
2250  }
2251  static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) {
2252  PyObject *type, *value, *traceback;
2253  __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
2254  __Pyx_EnterTracing(tstate);
2255  if (CYTHON_TRACE && tstate->c_tracefunc)
2256  tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result);
2257  if (tstate->c_profilefunc)
2258  tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result);
2259  CYTHON_FRAME_DEL(frame);
2260  __Pyx_LeaveTracing(tstate);
2261  __Pyx_ErrRestoreInState(tstate, type, value, traceback);
2262  }
2263  #ifdef WITH_THREAD
2264  #define __Pyx_TraceReturn(result, nogil)\
2265  if (likely(!__Pyx_use_tracing)); else {\
2266  if (nogil) {\
2267  if (CYTHON_TRACE_NOGIL) {\
2268  PyThreadState *tstate;\
2269  PyGILState_STATE state = PyGILState_Ensure();\
2270  tstate = __Pyx_PyThreadState_Current;\
2271  if (__Pyx_IsTracing(tstate, 0, 0)) {\
2272  __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2273  }\
2274  PyGILState_Release(state);\
2275  }\
2276  } else {\
2277  PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2278  if (__Pyx_IsTracing(tstate, 0, 0)) {\
2279  __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2280  }\
2281  }\
2282  }
2283  #else
2284  #define __Pyx_TraceReturn(result, nogil)\
2285  if (likely(!__Pyx_use_tracing)); else {\
2286  PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2287  if (__Pyx_IsTracing(tstate, 0, 0)) {\
2288  __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2289  }\
2290  }
2291  #endif
2292  static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno);
2293  static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno);
2294 #else
2295  #define __Pyx_TraceDeclarations
2296  #define __Pyx_TraceFrameInit(codeobj)
2297  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error) if ((1)); else goto_error;
2298  #define __Pyx_TraceException()
2299  #define __Pyx_TraceReturn(result, nogil)
2300 #endif
2301 #if CYTHON_TRACE
2302  static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) {
2303  int ret;
2304  PyObject *type, *value, *traceback;
2305  __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
2306  __Pyx_PyFrame_SetLineNumber(frame, lineno);
2307  __Pyx_EnterTracing(tstate);
2308  ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL);
2309  __Pyx_LeaveTracing(tstate);
2310  if (likely(!ret)) {
2311  __Pyx_ErrRestoreInState(tstate, type, value, traceback);
2312  } else {
2313  Py_XDECREF(type);
2314  Py_XDECREF(value);
2315  Py_XDECREF(traceback);
2316  }
2317  return ret;
2318  }
2319  #ifdef WITH_THREAD
2320  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
2321  if (likely(!__Pyx_use_tracing)); else {\
2322  if (nogil) {\
2323  if (CYTHON_TRACE_NOGIL) {\
2324  int ret = 0;\
2325  PyThreadState *tstate;\
2326  PyGILState_STATE state = PyGILState_Ensure();\
2327  tstate = __Pyx_PyThreadState_Current;\
2328  if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
2329  ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2330  }\
2331  PyGILState_Release(state);\
2332  if (unlikely(ret)) goto_error;\
2333  }\
2334  } else {\
2335  PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2336  if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
2337  int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2338  if (unlikely(ret)) goto_error;\
2339  }\
2340  }\
2341  }
2342  #else
2343  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
2344  if (likely(!__Pyx_use_tracing)); else {\
2345  PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2346  if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\
2347  int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2348  if (unlikely(ret)) goto_error;\
2349  }\
2350  }
2351  #endif
2352 #else
2353  #define __Pyx_TraceLine(lineno, nogil, goto_error) if ((1)); else goto_error;
2354 #endif
2355 
2356 /* PyObjectCall.proto */
2357 #if CYTHON_COMPILING_IN_CPYTHON
2358 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2359 #else
2360 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2361 #endif
2362 
2363 /* PyFunctionFastCall.proto */
2364 #if CYTHON_FAST_PYCALL
2365 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
2366  __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
2367 #if 1 || PY_VERSION_HEX < 0x030600B1
2368 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
2369 #else
2370 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
2371 #endif
2372 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
2373  (sizeof(char [1 - 2*!(cond)]) - 1)
2374 #ifndef Py_MEMBER_SIZE
2375 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
2376 #endif
2377 #if CYTHON_FAST_PYCALL
2378  static size_t __pyx_pyframe_localsplus_offset = 0;
2379  #include "frameobject.h"
2380 #if PY_VERSION_HEX >= 0x030b00a6
2381  #ifndef Py_BUILD_CORE
2382  #define Py_BUILD_CORE 1
2383  #endif
2384  #include "internal/pycore_frame.h"
2385 #endif
2386  #define __Pxy_PyFrame_Initialize_Offsets()\
2387  ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
2388  (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
2389  #define __Pyx_PyFrame_GetLocalsplus(frame)\
2390  (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
2391 #endif // CYTHON_FAST_PYCALL
2392 #endif
2393 
2394 /* PyObjectCallMethO.proto */
2395 #if CYTHON_COMPILING_IN_CPYTHON
2396 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2397 #endif
2398 
2399 /* PyObjectCallNoArg.proto */
2400 #if CYTHON_COMPILING_IN_CPYTHON
2401 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
2402 #else
2403 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
2404 #endif
2405 
2406 /* PyCFunctionFastCall.proto */
2407 #if CYTHON_FAST_PYCCALL
2408 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
2409 #else
2410 #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL)
2411 #endif
2412 
2413 /* PyObjectCallOneArg.proto */
2414 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2415 
2416 /* PyObjectCall2Args.proto */
2417 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
2418 
2419 /* PyIntCompare.proto */
2420 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
2421 
2422 /* GetItemInt.proto */
2423 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2424  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2425  __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
2426  (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
2427  __Pyx_GetItemInt_Generic(o, to_py_func(i))))
2428 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2429  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2430  __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2431  (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
2432 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
2433  int wraparound, int boundscheck);
2434 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2435  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2436  __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2437  (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
2438 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
2439  int wraparound, int boundscheck);
2440 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
2441 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
2442  int is_list, int wraparound, int boundscheck);
2443 
2444 /* PyDictVersioning.proto */
2445 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2446 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
2447 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
2448 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2449  (version_var) = __PYX_GET_DICT_VERSION(dict);\
2450  (cache_var) = (value);
2451 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2452  static PY_UINT64_T __pyx_dict_version = 0;\
2453  static PyObject *__pyx_dict_cached_value = NULL;\
2454  if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2455  (VAR) = __pyx_dict_cached_value;\
2456  } else {\
2457  (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2458  __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2459  }\
2460 }
2461 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2462 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2463 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2464 #else
2465 #define __PYX_GET_DICT_VERSION(dict) (0)
2466 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2467 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
2468 #endif
2469 
2470 /* GetModuleGlobalName.proto */
2471 #if CYTHON_USE_DICT_VERSIONS
2472 #define __Pyx_GetModuleGlobalName(var, name) {\
2473  static PY_UINT64_T __pyx_dict_version = 0;\
2474  static PyObject *__pyx_dict_cached_value = NULL;\
2475  (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
2476  (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
2477  __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2478 }
2479 #define __Pyx_GetModuleGlobalNameUncached(var, name) {\
2480  PY_UINT64_T __pyx_dict_version;\
2481  PyObject *__pyx_dict_cached_value;\
2482  (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2483 }
2484 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
2485 #else
2486 #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2487 #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2488 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
2489 #endif
2490 
2491 /* PyFloatBinop.proto */
2492 #if !CYTHON_COMPILING_IN_PYPY
2493 static PyObject* __Pyx_PyFloat_EqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
2494 #else
2495 #define __Pyx_PyFloat_EqObjC(op1, op2, floatval, inplace, zerodivision_check)\
2496  (PyObject_RichCompare(op1, op2, Py_EQ))
2497  #endif
2498 
2499 /* None.proto */
2500 static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);
2501 
2502 /* ObjectGetItem.proto */
2503 #if CYTHON_USE_TYPE_SLOTS
2504 static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
2505 #else
2506 #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key)
2507 #endif
2508 
2509 /* FetchCommonType.proto */
2510 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
2511 
2512 /* CythonFunctionShared.proto */
2513 #define __Pyx_CyFunction_USED 1
2514 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01
2515 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
2516 #define __Pyx_CYFUNCTION_CCLASS 0x04
2517 #define __Pyx_CyFunction_GetClosure(f)\
2518  (((__pyx_CyFunctionObject *) (f))->func_closure)
2519 #define __Pyx_CyFunction_GetClassObj(f)\
2520  (((__pyx_CyFunctionObject *) (f))->func_classobj)
2521 #define __Pyx_CyFunction_Defaults(type, f)\
2522  ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
2523 #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
2524  ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
2525 typedef struct {
2526  PyCFunctionObject func;
2527 #if PY_VERSION_HEX < 0x030500A0
2528  PyObject *func_weakreflist;
2529 #endif
2530  PyObject *func_dict;
2531  PyObject *func_name;
2532  PyObject *func_qualname;
2533  PyObject *func_doc;
2534  PyObject *func_globals;
2535  PyObject *func_code;
2536  PyObject *func_closure;
2537  PyObject *func_classobj;
2538  void *defaults;
2539  int defaults_pyobjects;
2540  size_t defaults_size; // used by FusedFunction for copying defaults
2541  int flags;
2542  PyObject *defaults_tuple;
2543  PyObject *defaults_kwdict;
2544  PyObject *(*defaults_getter)(PyObject *);
2545  PyObject *func_annotations;
2546 } __pyx_CyFunctionObject;
2547 static PyTypeObject *__pyx_CyFunctionType = 0;
2548 #define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
2549 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
2550  int flags, PyObject* qualname,
2551  PyObject *self,
2552  PyObject *module, PyObject *globals,
2553  PyObject* code);
2554 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
2555  size_t size,
2556  int pyobjects);
2557 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
2558  PyObject *tuple);
2559 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
2560  PyObject *dict);
2561 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
2562  PyObject *dict);
2563 static int __pyx_CyFunction_init(void);
2564 
2565 /* CythonFunction.proto */
2566 static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
2567  int flags, PyObject* qualname,
2568  PyObject *closure,
2569  PyObject *module, PyObject *globals,
2570  PyObject* code);
2571 
2572 /* MemviewSliceInit.proto */
2573 #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d
2574 #define __Pyx_MEMVIEW_DIRECT 1
2575 #define __Pyx_MEMVIEW_PTR 2
2576 #define __Pyx_MEMVIEW_FULL 4
2577 #define __Pyx_MEMVIEW_CONTIG 8
2578 #define __Pyx_MEMVIEW_STRIDED 16
2579 #define __Pyx_MEMVIEW_FOLLOW 32
2580 #define __Pyx_IS_C_CONTIG 1
2581 #define __Pyx_IS_F_CONTIG 2
2582 static int __Pyx_init_memviewslice(
2583  struct __pyx_memoryview_obj *memview,
2584  int ndim,
2585  __Pyx_memviewslice *memviewslice,
2586  int memview_is_new_reference);
2587 static CYTHON_INLINE int __pyx_add_acquisition_count_locked(
2588  __pyx_atomic_int *acquisition_count, PyThread_type_lock lock);
2589 static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(
2590  __pyx_atomic_int *acquisition_count, PyThread_type_lock lock);
2591 #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p)
2592 #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview))
2593 #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__)
2594 #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__)
2595 static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int);
2596 static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int);
2597 
2598 /* ExtTypeTest.proto */
2599 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
2600 
2601 /* IncludeStringH.proto */
2602 #include <string.h>
2603 
2604 /* SetItemInt.proto */
2605 #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2606  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2607  __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
2608  (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
2609  __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
2610 static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
2611 static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
2612  int is_list, int wraparound, int boundscheck);
2613 
2614 /* WriteUnraisableException.proto */
2615 static void __Pyx_WriteUnraisable(const char *name, int clineno,
2616  int lineno, const char *filename,
2617  int full_traceback, int nogil);
2618 
2619 /* PyFloatBinop.proto */
2620 #if !CYTHON_COMPILING_IN_PYPY
2621 static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
2622 #else
2623 #define __Pyx_PyFloat_TrueDivideObjC(op1, op2, floatval, inplace, zerodivision_check)\
2624  (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2))
2625 #endif
2626 
2627 /* PyIntBinop.proto */
2628 #if !CYTHON_COMPILING_IN_PYPY
2629 static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
2630 #else
2631 #define __Pyx_PyInt_SubtractCObj(op1, op2, intval, inplace, zerodivision_check)\
2632  (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
2633 #endif
2634 
2635 /* None.proto */
2636 static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
2637 
2638 /* PyErrExceptionMatches.proto */
2639 #if CYTHON_FAST_THREAD_STATE
2640 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2641 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2642 #else
2643 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2644 #endif
2645 
2646 /* GetAttr.proto */
2647 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
2648 
2649 /* GetAttr3.proto */
2650 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
2651 
2652 /* PyIntBinop.proto */
2653 #if !CYTHON_COMPILING_IN_PYPY
2654 static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
2655 #else
2656 #define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\
2657  (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
2658 #endif
2659 
2660 /* BytesEquals.proto */
2661 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
2662 
2663 /* UnicodeEquals.proto */
2664 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
2665 
2666 /* StrEquals.proto */
2667 #if PY_MAJOR_VERSION >= 3
2668 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
2669 #else
2670 #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
2671 #endif
2672 
2673 /* RaiseException.proto */
2674 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2675 
2676 /* py_dict_items.proto */
2677 static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);
2678 
2679 /* UnpackUnboundCMethod.proto */
2680 typedef struct {
2681  PyObject *type;
2682  PyObject **method_name;
2683  PyCFunction func;
2684  PyObject *method;
2685  int flag;
2686 } __Pyx_CachedCFunction;
2687 
2688 /* CallUnboundCMethod0.proto */
2689 static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2690 #if CYTHON_COMPILING_IN_CPYTHON
2691 #define __Pyx_CallUnboundCMethod0(cfunc, self)\
2692  (likely((cfunc)->func) ?\
2693  (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\
2694  (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
2695  (PY_VERSION_HEX >= 0x030700A0 ?\
2696  (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
2697  (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
2698  (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
2699  (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
2700  (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
2701  ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\
2702  __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
2703  __Pyx__CallUnboundCMethod0(cfunc, self))
2704 #else
2705 #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
2706 #endif
2707 
2708 /* RaiseTooManyValuesToUnpack.proto */
2709 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
2710 
2711 /* RaiseNeedMoreValuesToUnpack.proto */
2712 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
2713 
2714 /* IterFinish.proto */
2715 static CYTHON_INLINE int __Pyx_IterFinish(void);
2716 
2717 /* UnpackItemEndCheck.proto */
2718 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
2719 
2720 /* DictGetItem.proto */
2721 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
2722 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
2723 #define __Pyx_PyObject_Dict_GetItem(obj, name)\
2724  (likely(PyDict_CheckExact(obj)) ?\
2725  __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
2726 #else
2727 #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
2728 #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name)
2729 #endif
2730 
2731 /* PyObjectSetAttrStr.proto */
2732 #if CYTHON_USE_TYPE_SLOTS
2733 #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
2734 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
2735 #else
2736 #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n)
2737 #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
2738 #endif
2739 
2740 /* PyIntBinop.proto */
2741 #if !CYTHON_COMPILING_IN_PYPY
2742 static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
2743 #else
2744 #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
2745  (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
2746 #endif
2747 
2748 /* ListAppend.proto */
2749 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2750 static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
2751  PyListObject* L = (PyListObject*) list;
2752  Py_ssize_t len = Py_SIZE(list);
2753  if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
2754  Py_INCREF(x);
2755  PyList_SET_ITEM(list, len, x);
2756  __Pyx_SET_SIZE(list, len + 1);
2757  return 0;
2758  }
2759  return PyList_Append(list, x);
2760 }
2761 #else
2762 #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
2763 #endif
2764 
2765 /* set_iter.proto */
2766 static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
2767  Py_ssize_t* p_orig_length, int* p_source_is_set);
2768 static CYTHON_INLINE int __Pyx_set_iter_next(
2769  PyObject* iter_obj, Py_ssize_t orig_length,
2770  Py_ssize_t* ppos, PyObject **value,
2771  int source_is_set);
2772 
2773 /* PySequenceContains.proto */
2774 static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
2775  int result = PySequence_Contains(seq, item);
2776  return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
2777 }
2778 
2779 /* SliceObject.proto */
2780 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
2781  PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
2782  PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
2783  int has_cstart, int has_cstop, int wraparound);
2784 
2785 /* py_abs.proto */
2786 #if CYTHON_USE_PYLONG_INTERNALS
2787 static PyObject *__Pyx_PyLong_AbsNeg(PyObject *num);
2788 #define __Pyx_PyNumber_Absolute(x)\
2789  ((likely(PyLong_CheckExact(x))) ?\
2790  (likely(Py_SIZE(x) >= 0) ? (Py_INCREF(x), (x)) : __Pyx_PyLong_AbsNeg(x)) :\
2791  PyNumber_Absolute(x))
2792 #else
2793 #define __Pyx_PyNumber_Absolute(x) PyNumber_Absolute(x)
2794 #endif
2795 
2796 /* Import.proto */
2797 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
2798 
2799 /* ImportFrom.proto */
2800 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
2801 
2802 /* HasAttr.proto */
2803 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2804 
2805 /* GetTopmostException.proto */
2806 #if CYTHON_USE_EXC_INFO_STACK
2807 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2808 #endif
2809 
2810 /* SaveResetException.proto */
2811 #if CYTHON_FAST_THREAD_STATE
2812 #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2813 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2814 #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2815 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2816 #else
2817 #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2818 #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2819 #endif
2820 
2821 /* GetException.proto */
2822 #if CYTHON_FAST_THREAD_STATE
2823 #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2824 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2825 #else
2826 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2827 #endif
2828 
2829 /* ArgTypeTest.proto */
2830 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
2831  ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
2832  __Pyx__ArgTypeTest(obj, type, name, exact))
2833 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2834 
2835 /* DivInt[Py_ssize_t].proto */
2836 static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t);
2837 
2838 /* UnaryNegOverflows.proto */
2839 #define UNARY_NEG_WOULD_OVERFLOW(x)\
2840  (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
2841 
2842 static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
2843 static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/
2844 /* decode_c_string_utf16.proto */
2845 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) {
2846  int byteorder = 0;
2847  return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
2848 }
2849 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) {
2850  int byteorder = -1;
2851  return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
2852 }
2853 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) {
2854  int byteorder = 1;
2855  return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
2856 }
2857 
2858 /* decode_c_string.proto */
2859 static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
2860  const char* cstring, Py_ssize_t start, Py_ssize_t stop,
2861  const char* encoding, const char* errors,
2862  PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
2863 
2864 /* RaiseNoneIterError.proto */
2865 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
2866 
2867 /* SwapException.proto */
2868 #if CYTHON_FAST_THREAD_STATE
2869 #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
2870 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2871 #else
2872 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
2873 #endif
2874 
2875 /* FastTypeChecks.proto */
2876 #if CYTHON_COMPILING_IN_CPYTHON
2877 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2878 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2879 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2880 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2881 #else
2882 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2883 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2884 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
2885 #endif
2886 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2887 
2888 static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
2889 /* ListCompAppend.proto */
2890 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2891 static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
2892  PyListObject* L = (PyListObject*) list;
2893  Py_ssize_t len = Py_SIZE(list);
2894  if (likely(L->allocated > len)) {
2895  Py_INCREF(x);
2896  PyList_SET_ITEM(list, len, x);
2897  __Pyx_SET_SIZE(list, len + 1);
2898  return 0;
2899  }
2900  return PyList_Append(list, x);
2901 }
2902 #else
2903 #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
2904 #endif
2905 
2906 /* ListExtend.proto */
2907 static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
2908 #if CYTHON_COMPILING_IN_CPYTHON
2909  PyObject* none = _PyList_Extend((PyListObject*)L, v);
2910  if (unlikely(!none))
2911  return -1;
2912  Py_DECREF(none);
2913  return 0;
2914 #else
2915  return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
2916 #endif
2917 }
2918 
2919 /* DivInt[long].proto */
2920 static CYTHON_INLINE long __Pyx_div_long(long, long);
2921 
2922 /* StringJoin.proto */
2923 #if PY_MAJOR_VERSION < 3
2924 #define __Pyx_PyString_Join __Pyx_PyBytes_Join
2925 #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v))
2926 #else
2927 #define __Pyx_PyString_Join PyUnicode_Join
2928 #define __Pyx_PyBaseString_Join PyUnicode_Join
2929 #endif
2930 #if CYTHON_COMPILING_IN_CPYTHON
2931  #if PY_MAJOR_VERSION < 3
2932  #define __Pyx_PyBytes_Join _PyString_Join
2933  #else
2934  #define __Pyx_PyBytes_Join _PyBytes_Join
2935  #endif
2936 #else
2937 static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);
2938 #endif
2939 
2940 /* PyObject_Unicode.proto */
2941 #if PY_MAJOR_VERSION >= 3
2942 #define __Pyx_PyObject_Unicode(obj)\
2943  (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))
2944 #else
2945 #define __Pyx_PyObject_Unicode(obj)\
2946  (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj))
2947 #endif
2948 
2949 /* CallNextTpDealloc.proto */
2950 static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc);
2951 
2952 /* CallNextTpTraverse.proto */
2953 static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);
2954 
2955 /* CallNextTpClear.proto */
2956 static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
2957 
2958 /* PyObject_GenericGetAttrNoDict.proto */
2959 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2960 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
2961 #else
2962 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
2963 #endif
2964 
2965 /* PyObject_GenericGetAttr.proto */
2966 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2967 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
2968 #else
2969 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
2970 #endif
2971 
2972 /* TypeImport.proto */
2973 #ifndef __PYX_HAVE_RT_ImportType_proto
2974 #define __PYX_HAVE_RT_ImportType_proto
2975 enum __Pyx_ImportType_CheckSize {
2976  __Pyx_ImportType_CheckSize_Error = 0,
2977  __Pyx_ImportType_CheckSize_Warn = 1,
2978  __Pyx_ImportType_CheckSize_Ignore = 2
2979 };
2980 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
2981 #endif
2982 
2983 /* SetVTable.proto */
2984 static int __Pyx_SetVtable(PyObject *dict, void *vtable);
2985 
2986 /* PyObjectGetAttrStrNoError.proto */
2987 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2988 
2989 /* SetupReduce.proto */
2990 static int __Pyx_setup_reduce(PyObject* type_obj);
2991 
2992 /* GetVTable.proto */
2993 static void* __Pyx_GetVtable(PyObject *dict);
2994 
2995 /* CalculateMetaclass.proto */
2996 static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);
2997 
2998 /* SetNameInClass.proto */
2999 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
3000 #define __Pyx_SetNameInClass(ns, name, value)\
3001  (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
3002 #elif CYTHON_COMPILING_IN_CPYTHON
3003 #define __Pyx_SetNameInClass(ns, name, value)\
3004  (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
3005 #else
3006 #define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value)
3007 #endif
3008 
3009 /* Py3ClassCreate.proto */
3010 static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
3011  PyObject *mkw, PyObject *modname, PyObject *doc);
3012 static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
3013  PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);
3014 
3015 /* CLineInTraceback.proto */
3016 #ifdef CYTHON_CLINE_IN_TRACEBACK
3017 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
3018 #else
3019 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
3020 #endif
3021 
3022 /* CodeObjectCache.proto */
3023 typedef struct {
3024  PyCodeObject* code_object;
3025  int code_line;
3026 } __Pyx_CodeObjectCacheEntry;
3027 struct __Pyx_CodeObjectCache {
3028  int count;
3029  int max_count;
3030  __Pyx_CodeObjectCacheEntry* entries;
3031 };
3032 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
3033 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
3034 static PyCodeObject *__pyx_find_code_object(int code_line);
3035 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
3036 
3037 /* AddTraceback.proto */
3038 static void __Pyx_AddTraceback(const char *funcname, int c_line,
3039  int py_line, const char *filename);
3040 
3041 #if PY_MAJOR_VERSION < 3
3042  static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
3043  static void __Pyx_ReleaseBuffer(Py_buffer *view);
3044 #else
3045  #define __Pyx_GetBuffer PyObject_GetBuffer
3046  #define __Pyx_ReleaseBuffer PyBuffer_Release
3047 #endif
3048 
3049 
3050 /* BufferStructDeclare.proto */
3051 typedef struct {
3052  Py_ssize_t shape, strides, suboffsets;
3053 } __Pyx_Buf_DimInfo;
3054 typedef struct {
3055  size_t refcount;
3056  Py_buffer pybuffer;
3057 } __Pyx_Buffer;
3058 typedef struct {
3059  __Pyx_Buffer *rcbuffer;
3060  char *data;
3061  __Pyx_Buf_DimInfo diminfo[8];
3062 } __Pyx_LocalBuf_ND;
3063 
3064 /* MemviewSliceIsContig.proto */
3065 static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim);
3066 
3067 /* OverlappingSlices.proto */
3068 static int __pyx_slices_overlap(__Pyx_memviewslice *slice1,
3069  __Pyx_memviewslice *slice2,
3070  int ndim, size_t itemsize);
3071 
3072 /* Capsule.proto */
3073 static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig);
3074 
3075 /* MemviewDtypeToObject.proto */
3076 static CYTHON_INLINE PyObject *__pyx_memview_get_double(const char *itemp);
3077 static CYTHON_INLINE int __pyx_memview_set_double(const char *itemp, PyObject *obj);
3078 
3079 /* IsLittleEndian.proto */
3080 static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
3081 
3082 /* BufferFormatCheck.proto */
3083 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
3084 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
3085  __Pyx_BufFmt_StackElem* stack,
3086  __Pyx_TypeInfo* type);
3087 
3088 /* TypeInfoCompare.proto */
3089 static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b);
3090 
3091 /* MemviewSliceValidateAndInit.proto */
3092 static int __Pyx_ValidateAndInit_memviewslice(
3093  int *axes_specs,
3094  int c_or_f_flag,
3095  int buf_flags,
3096  int ndim,
3097  __Pyx_TypeInfo *dtype,
3098  __Pyx_BufFmt_StackElem stack[],
3099  __Pyx_memviewslice *memviewslice,
3100  PyObject *original_obj);
3101 
3102 /* ObjectToMemviewSlice.proto */
3103 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *, int writable_flag);
3104 
3105 /* ObjectToMemviewSlice.proto */
3106 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *, int writable_flag);
3107 
3108 /* GCCDiagnostics.proto */
3109 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
3110 #define __Pyx_HAS_GCC_DIAGNOSTIC
3111 #endif
3112 
3113 /* ObjectToMemviewSlice.proto */
3114 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(PyObject *, int writable_flag);
3115 
3116 /* ObjectToMemviewSlice.proto */
3117 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *, int writable_flag);
3118 
3119 /* RealImag.proto */
3120 #if CYTHON_CCOMPLEX
3121  #ifdef __cplusplus
3122  #define __Pyx_CREAL(z) ((z).real())
3123  #define __Pyx_CIMAG(z) ((z).imag())
3124  #else
3125  #define __Pyx_CREAL(z) (__real__(z))
3126  #define __Pyx_CIMAG(z) (__imag__(z))
3127  #endif
3128 #else
3129  #define __Pyx_CREAL(z) ((z).real)
3130  #define __Pyx_CIMAG(z) ((z).imag)
3131 #endif
3132 #if defined(__cplusplus) && CYTHON_CCOMPLEX\
3133  && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
3134  #define __Pyx_SET_CREAL(z,x) ((z).real(x))
3135  #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
3136 #else
3137  #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
3138  #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
3139 #endif
3140 
3141 /* Arithmetic.proto */
3142 #if CYTHON_CCOMPLEX
3143  #define __Pyx_c_eq_float(a, b) ((a)==(b))
3144  #define __Pyx_c_sum_float(a, b) ((a)+(b))
3145  #define __Pyx_c_diff_float(a, b) ((a)-(b))
3146  #define __Pyx_c_prod_float(a, b) ((a)*(b))
3147  #define __Pyx_c_quot_float(a, b) ((a)/(b))
3148  #define __Pyx_c_neg_float(a) (-(a))
3149  #ifdef __cplusplus
3150  #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
3151  #define __Pyx_c_conj_float(z) (::std::conj(z))
3152  #if 1
3153  #define __Pyx_c_abs_float(z) (::std::abs(z))
3154  #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
3155  #endif
3156  #else
3157  #define __Pyx_c_is_zero_float(z) ((z)==0)
3158  #define __Pyx_c_conj_float(z) (conjf(z))
3159  #if 1
3160  #define __Pyx_c_abs_float(z) (cabsf(z))
3161  #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
3162  #endif
3163  #endif
3164 #else
3165  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
3166  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
3167  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
3168  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
3169  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
3170  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
3171  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
3172  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
3173  #if 1
3174  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
3175  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
3176  #endif
3177 #endif
3178 
3179 /* Arithmetic.proto */
3180 #if CYTHON_CCOMPLEX
3181  #define __Pyx_c_eq_double(a, b) ((a)==(b))
3182  #define __Pyx_c_sum_double(a, b) ((a)+(b))
3183  #define __Pyx_c_diff_double(a, b) ((a)-(b))
3184  #define __Pyx_c_prod_double(a, b) ((a)*(b))
3185  #define __Pyx_c_quot_double(a, b) ((a)/(b))
3186  #define __Pyx_c_neg_double(a) (-(a))
3187  #ifdef __cplusplus
3188  #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
3189  #define __Pyx_c_conj_double(z) (::std::conj(z))
3190  #if 1
3191  #define __Pyx_c_abs_double(z) (::std::abs(z))
3192  #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
3193  #endif
3194  #else
3195  #define __Pyx_c_is_zero_double(z) ((z)==0)
3196  #define __Pyx_c_conj_double(z) (conj(z))
3197  #if 1
3198  #define __Pyx_c_abs_double(z) (cabs(z))
3199  #define __Pyx_c_pow_double(a, b) (cpow(a, b))
3200  #endif
3201  #endif
3202 #else
3203  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
3204  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
3205  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
3206  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
3207  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
3208  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
3209  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
3210  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
3211  #if 1
3212  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
3213  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
3214  #endif
3215 #endif
3216 
3217 /* MemviewSliceCopyTemplate.proto */
3218 static __Pyx_memviewslice
3219 __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
3220  const char *mode, int ndim,
3221  size_t sizeof_dtype, int contig_flag,
3222  int dtype_is_object);
3223 
3224 /* CIntToPy.proto */
3225 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
3226 
3227 /* CIntFromPy.proto */
3228 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
3229 
3230 /* CIntFromPy.proto */
3231 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
3232 
3233 /* CIntToPy.proto */
3234 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
3235 
3236 /* TypeInfoToFormat.proto */
3237 struct __pyx_typeinfo_string {
3238  char string[3];
3239 };
3240 static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type);
3241 
3242 /* CIntFromPy.proto */
3243 static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);
3244 
3245 /* CIntFromPy.proto */
3246 static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
3247 
3248 /* CheckBinaryVersion.proto */
3249 static int __Pyx_check_binary_version(void);
3250 
3251 /* FunctionExport.proto */
3252 static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);
3253 
3254 /* InitStrings.proto */
3255 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
3256 
3257 __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_h(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, CYTHON_UNUSED double __pyx_v_t, int __pyx_skip_dispatch); /* proto*/
3258 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hx(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch); /* proto*/
3259 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hy(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch); /* proto*/
3260 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hz(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch); /* proto*/
3261 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3262 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3263 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3264 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3265 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3266 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto*/
3267 static void __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
3268 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_phi(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x); /* proto*/
3269 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous_sponge(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x); /* proto*/
3270 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED double *__pyx_v_x); /* proto*/
3271 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_vel(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3272 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_zero(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED double *__pyx_v_x, CYTHON_UNUSED double __pyx_v_t); /* proto*/
3273 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_wave(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3274 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
3275 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
3276 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___cpp_iterate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto*/
3277 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_velocity(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3278 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_pressure(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3279 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_phi(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3280 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_vof(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t); /* proto*/
3281 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_smoothing_H(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double __pyx_v_phi); /* proto*/
3282 static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/
3283 static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/
3284 static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
3285 static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/
3286 static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/
3287 static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/
3288 static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
3289 static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
3290 static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
3291 static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
3292 
3293 /* Module declarations from 'cython.view' */
3294 static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/
3295 
3296 /* Module declarations from 'cython' */
3297 
3298 /* Module declarations from 'libcpp' */
3299 
3300 /* Module declarations from 'cpython.buffer' */
3301 
3302 /* Module declarations from 'libc.string' */
3303 
3304 /* Module declarations from 'libc.stdio' */
3305 
3306 /* Module declarations from '__builtin__' */
3307 
3308 /* Module declarations from 'cpython.type' */
3309 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
3310 
3311 /* Module declarations from 'cpython' */
3312 
3313 /* Module declarations from 'cpython.object' */
3314 
3315 /* Module declarations from 'cpython.ref' */
3316 
3317 /* Module declarations from 'cpython.mem' */
3318 
3319 /* Module declarations from 'numpy' */
3320 
3321 /* Module declarations from 'numpy' */
3322 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
3323 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
3324 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
3325 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
3326 static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
3327 static PyTypeObject *__pyx_ptype_5numpy_number = 0;
3328 static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
3329 static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
3330 static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
3331 static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
3332 static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
3333 static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
3334 static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
3335 static PyTypeObject *__pyx_ptype_5numpy_character = 0;
3336 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
3337 
3338 /* Module declarations from 'proteus.BoundaryConditions' */
3339 static PyTypeObject *__pyx_ptype_7proteus_18BoundaryConditions_BC_Base = 0;
3340 static PyTypeObject *__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition = 0;
3341 
3342 /* Module declarations from 'proteus' */
3343 
3344 /* Module declarations from 'mprans.BoundaryConditions' */
3345 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS = 0;
3346 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone = 0;
3347 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator = 0;
3348 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics = 0;
3349 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh = 0;
3350 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h = 0;
3351 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh = 0;
3352 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction = 0;
3353 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh = 0;
3354 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet = 0;
3355 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet = 0;
3356 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet = 0;
3357 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth = 0;
3358 static PyTypeObject *__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet = 0;
3359 static PyTypeObject *__pyx_array_type = 0;
3360 static PyTypeObject *__pyx_MemviewEnum_type = 0;
3361 static PyTypeObject *__pyx_memoryview_type = 0;
3362 static PyTypeObject *__pyx_memoryviewslice_type = 0;
3363 static PyObject *generic = 0;
3364 static PyObject *strided = 0;
3365 static PyObject *indirect = 0;
3366 static PyObject *contiguous = 0;
3367 static PyObject *indirect_contiguous = 0;
3368 static int __pyx_memoryview_thread_locks_used;
3369 static PyThread_type_lock __pyx_memoryview_thread_locks[8];
3370 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS__set_state(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, PyObject *); /*proto*/
3371 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_RelaxationZoneWaveGenerator__set_state(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *, PyObject *); /*proto*/
3372 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle___cppClass_WavesCharacteristics__set_state(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, PyObject *); /*proto*/
3373 static CYTHON_INLINE PyObject *__Pyx_carray_to_py_double(double *, Py_ssize_t); /*proto*/
3374 static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_double(double *, Py_ssize_t); /*proto*/
3375 static int __Pyx_carray_from_py_double(PyObject *, double *, Py_ssize_t); /*proto*/
3376 static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/
3377 static void *__pyx_align_pointer(void *, size_t); /*proto*/
3378 static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/
3379 static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/
3380 static PyObject *_unellipsify(PyObject *, int); /*proto*/
3381 static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/
3382 static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/
3383 static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/
3384 static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/
3385 static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/
3386 static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/
3387 static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3388 static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3389 static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/
3390 static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3391 static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/
3392 static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/
3393 static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/
3394 static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/
3395 static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/
3396 static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/
3397 static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/
3398 static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/
3399 static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/
3400 static int __pyx_memoryview_err(PyObject *, char *); /*proto*/
3401 static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/
3402 static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/
3403 static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/
3404 static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
3405 static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
3406 static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/
3407 static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/
3408 static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/
3409 static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/
3410 static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), { 0 }, 0, 'R', 0, 0 };
3411 static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, IS_UNSIGNED(int) ? 'U' : 'I', IS_UNSIGNED(int), 0 };
3412 #define __Pyx_MODULE_NAME "mprans.BoundaryConditions"
3413 extern int __pyx_module_is_main_mprans__BoundaryConditions;
3414 int __pyx_module_is_main_mprans__BoundaryConditions = 0;
3415 
3416 /* Implementation of 'mprans.BoundaryConditions' */
3417 static PyObject *__pyx_builtin_super;
3418 static PyObject *__pyx_builtin_TypeError;
3419 static PyObject *__pyx_builtin_ImportError;
3420 static PyObject *__pyx_builtin_OverflowError;
3421 static PyObject *__pyx_builtin_enumerate;
3422 static PyObject *__pyx_builtin_IndexError;
3423 static PyObject *__pyx_builtin_ValueError;
3424 static PyObject *__pyx_builtin_MemoryError;
3425 static PyObject *__pyx_builtin_range;
3426 static PyObject *__pyx_builtin_Ellipsis;
3427 static PyObject *__pyx_builtin_id;
3428 static const char __pyx_k_B[] = "B";
3429 static const char __pyx_k_E[] = "E";
3430 static const char __pyx_k_H[] = "H";
3431 static const char __pyx_k_K[] = "K";
3432 static const char __pyx_k_O[] = "O";
3433 static const char __pyx_k_T[] = "T{";
3434  static const char __pyx_k_U[] = "U";
3435  static const char __pyx_k_Y[] = "Y";
3436  static const char __pyx_k_c[] = "c";
3437  static const char __pyx_k_d[] = "d";
3438  static const char __pyx_k_g[] = "g";
3439  static const char __pyx_k_h[] = "h";
3440  static const char __pyx_k_i[] = "i";
3441  static const char __pyx_k_n[] = "n";
3442  static const char __pyx_k_p[] = "p";
3443  static const char __pyx_k_q[] = "q";
3444  static const char __pyx_k_s[] = "(%s)";
3445  static const char __pyx_k_t[] = "t";
3446  static const char __pyx_k_u[] = "u";
3447  static const char __pyx_k_v[] = "v";
3448  static const char __pyx_k_w[] = "w";
3449  static const char __pyx_k_x[] = "x";
3450  static const char __pyx_k_U0[] = "U0";
3451  static const char __pyx_k_Up[] = "Up";
3452  static const char __pyx_k_a1[] = "a1";
3453  static const char __pyx_k_ar[] = "ar";
3454  static const char __pyx_k_dd[] = "dd";
3455  static const char __pyx_k_eN[] = "eN";
3456  static const char __pyx_k_hx[] = "hx";
3457  static const char __pyx_k_hy[] = "hy";
3458  static const char __pyx_k_hz[] = "hz";
3459  static const char __pyx_k_id[] = "id";
3460  static const char __pyx_k_ke[] = "ke";
3461  static const char __pyx_k_kk[] = "kk";
3462  static const char __pyx_k_kw[] = "kw";
3463  static const char __pyx_k_nP[] = "nP";
3464  static const char __pyx_k_nd[] = "nd";
3465  static const char __pyx_k_np[] = "np";
3466  static const char __pyx_k_nu[] = "nu";
3467  static const char __pyx_k_os[] = "os";
3468  static const char __pyx_k_ph[] = "ph";
3469  static const char __pyx_k_tV[] = "tV";
3470  static const char __pyx_k_tt[] = "tt";
3471  static const char __pyx_k_u0[] = "u0";
3472  static const char __pyx_k_u1[] = "u1";
3473  static const char __pyx_k_u2[] = "u2";
3474  static const char __pyx_k_ut[] = "ut";
3475  static const char __pyx_k_uu[] = "uu";
3476  static const char __pyx_k_vv[] = "vv";
3477  static const char __pyx_k_wf[] = "wf";
3478  static const char __pyx_k_wt[] = "wt";
3479  static const char __pyx_k_ww[] = "ww";
3480  static const char __pyx_k_xi[] = "xi";
3481  static const char __pyx_k_xx[] = "xx";
3482  static const char __pyx_k_Cmu[] = "Cmu";
3483  static const char __pyx_k_MPI[] = "MPI";
3484  static const char __pyx_k_Uin[] = "Uin";
3485  static const char __pyx_k_abs[] = "abs";
3486  static const char __pyx_k_air[] = "air";
3487  static const char __pyx_k_all[] = "__all__";
3488  static const char __pyx_k_b_i[] = "b_i";
3489  static const char __pyx_k_cos[] = "cos";
3490  static const char __pyx_k_doc[] = "__doc__";
3491  static const char __pyx_k_dot[] = "dot";
3492  static const char __pyx_k_eta[] = "eta";
3493  static const char __pyx_k_exp[] = "exp";
3494  static const char __pyx_k_get[] = "get";
3495  static const char __pyx_k_log[] = "log";
3496  static const char __pyx_k_mwl[] = "mwl";
3497  static const char __pyx_k_new[] = "__new__";
3498  static const char __pyx_k_obj[] = "obj";
3499  static const char __pyx_k_pad[] = "pad";
3500  static const char __pyx_k_phi[] = "phi";
3501  static const char __pyx_k_rho[] = "rho";
3502  static const char __pyx_k_sin[] = "sin";
3503  static const char __pyx_k_str[] = "str";
3504  static const char __pyx_k_sum[] = "sum";
3505  static const char __pyx_k_sys[] = "sys";
3506  static const char __pyx_k_u_p[] = "u_p";
3507  static const char __pyx_k_vof[] = "vof";
3508  static const char __pyx_k_x_0[] = "x_0";
3509  static const char __pyx_k_Comm[] = "Comm";
3510  static const char __pyx_k__165[] = "^";
3511  static const char __pyx_k__166[] = "";
3512  static const char __pyx_k__167[] = ":";
3513 static const char __pyx_k__168[] = "}";
3514 static const char __pyx_k__169[] = ",";
3515 static const char __pyx_k_acos[] = "acos";
3516 static const char __pyx_k_asin[] = "asin";
3517 static const char __pyx_k_b_or[] = "b_or";
3518 static const char __pyx_k_base[] = "base";
3519 static const char __pyx_k_body[] = "body";
3520 static const char __pyx_k_comm[] = "comm";
3521 static const char __pyx_k_dict[] = "__dict__";
3522 static const char __pyx_k_init[] = "__init__";
3523 static const char __pyx_k_join[] = "join";
3524 static const char __pyx_k_kVal[] = "kVal";
3525 static const char __pyx_k_main[] = "__main__";
3526 static const char __pyx_k_math[] = "math";
3527 static const char __pyx_k_mesh[] = "mesh";
3528 static const char __pyx_k_mode[] = "mode";
3529 static const char __pyx_k_name[] = "name";
3530 static const char __pyx_k_ndim[] = "ndim";
3531 static const char __pyx_k_node[] = "node";
3532 static const char __pyx_k_pRef[] = "pRef";
3533 static const char __pyx_k_pack[] = "pack";
3534 static const char __pyx_k_ramp[] = "ramp";
3535 static const char __pyx_k_rank[] = "rank";
3536 static const char __pyx_k_self[] = "self";
3537 static const char __pyx_k_size[] = "size";
3538 static const char __pyx_k_sqrt[] = "sqrt";
3539 static const char __pyx_k_step[] = "step";
3540 static const char __pyx_k_stop[] = "stop";
3541 static const char __pyx_k_tanU[] = "tanU";
3542 static const char __pyx_k_test[] = "__test__";
3543 static const char __pyx_k_uDir[] = "uDir";
3544 static const char __pyx_k_wall[] = "wall";
3545 static const char __pyx_k_wave[] = "wave";
3546 static const char __pyx_k_ASCII[] = "ASCII";
3547 static const char __pyx_k_DBC_h[] = "DBC_h";
3548 static const char __pyx_k_Ustar[] = "Ustar";
3549 static const char __pyx_k_Uwind[] = "Uwind";
3550 static const char __pyx_k_Yplus[] = "Yplus";
3551 static const char __pyx_k_Ystar[] = "Ystar";
3552 static const char __pyx_k_array[] = "array";
3553 static const char __pyx_k_atan2[] = "atan2";
3554 static const char __pyx_k_class[] = "__class__";
3555 static const char __pyx_k_dtype[] = "dtype";
3556 static const char __pyx_k_empty[] = "empty";
3557 static const char __pyx_k_error[] = "error";
3558 static const char __pyx_k_flags[] = "flags";
3559 static const char __pyx_k_gradU[] = "gradU";
3560 static const char __pyx_k_items[] = "items";
3561 static const char __pyx_k_kInit[] = "kInit";
3562 static const char __pyx_k_kWall[] = "kWall";
3563 static const char __pyx_k_kappa[] = "kappa";
3564 static const char __pyx_k_meanV[] = "meanV";
3565 static const char __pyx_k_model[] = "model";
3566 static const char __pyx_k_numpy[] = "numpy";
3567 static const char __pyx_k_p_top[] = "p_top";
3568 static const char __pyx_k_q_phi[] = "q_phi";
3569 static const char __pyx_k_query[] = "query";
3570 static const char __pyx_k_range[] = "range";
3571 static const char __pyx_k_relax[] = "relax";
3572 static const char __pyx_k_reset[] = "reset";
3573 static const char __pyx_k_rhoUp[] = "rhoUp";
3574 static const char __pyx_k_scipy[] = "scipy";
3575 static const char __pyx_k_shape[] = "shape";
3576 static const char __pyx_k_start[] = "start";
3577 static const char __pyx_k_state[] = "state";
3578 static const char __pyx_k_super[] = "super";
3579 static const char __pyx_k_uInit[] = "uInit";
3580 static const char __pyx_k_utAbs[] = "utAbs";
3581 static const char __pyx_k_water[] = "water";
3582 static const char __pyx_k_waves[] = "waves";
3583 static const char __pyx_k_zeros[] = "zeros";
3584 static const char __pyx_k_zones[] = "zones";
3585 static const char __pyx_k_Domain[] = "Domain";
3586 static const char __pyx_k_NoSlip[] = "NoSlip";
3587 static const char __pyx_k_Ubound[] = "Ubound";
3588 static const char __pyx_k_avDict[] = "avDict";
3589 static const char __pyx_k_center[] = "center";
3590 static const char __pyx_k_coords[] = "coords";
3591 static const char __pyx_k_dict_2[] = "_dict";
3592 static const char __pyx_k_encode[] = "encode";
3593 static const char __pyx_k_format[] = "format";
3594 static const char __pyx_k_import[] = "__import__";
3595 static const char __pyx_k_kdtree[] = "kdtree";
3596 static const char __pyx_k_module[] = "__module__";
3597 static const char __pyx_k_mpi4py[] = "mpi4py";
3598 static const char __pyx_k_name_2[] = "__name__";
3599 static const char __pyx_k_pickle[] = "pickle";
3600 static const char __pyx_k_porous[] = "porous";
3601 static const char __pyx_k_reduce[] = "__reduce__";
3602 static const char __pyx_k_struct[] = "struct";
3603 static const char __pyx_k_unpack[] = "unpack";
3604 static const char __pyx_k_update[] = "update";
3605 static const char __pyx_k_utStar[] = "utStar";
3606 static const char __pyx_k_AV_base[] = "AV_base";
3607 static const char __pyx_k_BC_RANS[] = "BC_RANS";
3608 static const char __pyx_k_cKDTree[] = "cKDTree";
3609 static const char __pyx_k_dInflow[] = "dInflow";
3610 static const char __pyx_k_eOffset[] = "eOffset";
3611 static const char __pyx_k_element[] = "element";
3612 static const char __pyx_k_fortran[] = "fortran";
3613 static const char __pyx_k_kInflow[] = "kInflow";
3614 static const char __pyx_k_memview[] = "memview";
3615 static const char __pyx_k_new_x_0[] = "new_x_0";
3616 static const char __pyx_k_old_div[] = "old_div";
3617 static const char __pyx_k_phi_top[] = "phi_top";
3618 static const char __pyx_k_prepare[] = "__prepare__";
3619 static const char __pyx_k_proteus[] = "proteus";
3620 static const char __pyx_k_rhoDown[] = "rhoDown";
3621 static const char __pyx_k_setTank[] = "setTank";
3622 static const char __pyx_k_spatial[] = "spatial";
3623 static const char __pyx_k_statem1[] = "statem1";
3624 static const char __pyx_k_tau_rho[] = "tau_rho";
3625 static const char __pyx_k_vof_air[] = "vof_air";
3626 static const char __pyx_k_Ellipsis[] = "Ellipsis";
3627 static const char __pyx_k_FreeSlip[] = "FreeSlip";
3628 static const char __pyx_k_builtins[] = "builtins";
3629 static const char __pyx_k_constant[] = "constant";
3630 static const char __pyx_k_distance[] = "distance";
3631 static const char __pyx_k_dragBeta[] = "dragBeta";
3632 static const char __pyx_k_femSpace[] = "femSpace";
3633 static const char __pyx_k_getKappa[] = "getKappa";
3634 static const char __pyx_k_getValue[] = "getValue";
3635 static const char __pyx_k_getstate[] = "__getstate__";
3636 static const char __pyx_k_itemsize[] = "itemsize";
3637 static const char __pyx_k_last_pos[] = "last_pos";
3638 static const char __pyx_k_logEvent[] = "logEvent";
3639 static const char __pyx_k_porosity[] = "porosity";
3640 static const char __pyx_k_pyx_type[] = "__pyx_type";
3641 static const char __pyx_k_qualname[] = "__qualname__";
3642 static const char __pyx_k_refLevel[] = "refLevel";
3643 static const char __pyx_k_seaLevel[] = "seaLevel";
3644 static const char __pyx_k_setstate[] = "__setstate__";
3645 static const char __pyx_k_tompi4py[] = "tompi4py";
3646 static const char __pyx_k_TypeError[] = "TypeError";
3647 static const char __pyx_k_WaveTools[] = "WaveTools";
3648 static const char __pyx_k_calculate[] = "calculate";
3649 static const char __pyx_k_dragAlpha[] = "dragAlpha";
3650 static const char __pyx_k_enumerate[] = "enumerate";
3651 static const char __pyx_k_get_DBC_h[] = "get_DBC_h";
3652 static const char __pyx_k_metaclass[] = "__metaclass__";
3653 static const char __pyx_k_nodeArray[] = "nodeArray";
3654 static const char __pyx_k_onElement[] = "onElement";
3655 static const char __pyx_k_pyx_state[] = "__pyx_state";
3656 static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
3657 static const char __pyx_k_setNoSlip[] = "setNoSlip";
3658 static const char __pyx_k_smoothing[] = "smoothing";
3659 static const char __pyx_k_turbModel[] = "turbModel";
3660 static const char __pyx_k_vert_axis[] = "vert_axis";
3661 static const char __pyx_k_vof_water[] = "vof_water";
3662 static const char __pyx_k_zone_type[] = "zone_type";
3663 static const char __pyx_k_Atmosphere[] = "Atmosphere";
3664 static const char __pyx_k_IndexError[] = "IndexError";
3665 static const char __pyx_k_ValueError[] = "ValueError";
3666 static const char __pyx_k_absorption[] = "absorption";
3667 static const char __pyx_k_generation[] = "generation";
3668 static const char __pyx_k_kInflowAir[] = "kInflowAir";
3669 static const char __pyx_k_past_utils[] = "past.utils";
3670 static const char __pyx_k_phi_porous[] = "phi_porous";
3671 static const char __pyx_k_pyx_result[] = "__pyx_result";
3672 static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
3673 static const char __pyx_k_rot_matrix[] = "rot_matrix";
3674 static const char __pyx_k_waterLevel[] = "waterLevel";
3675 static const char __pyx_k_wind_speed[] = "wind_speed";
3676 static const char __pyx_k_ImportError[] = "ImportError";
3677 static const char __pyx_k_MemoryError[] = "MemoryError";
3678 static const char __pyx_k_NonMaterial[] = "NonMaterial";
3679 static const char __pyx_k_PickleError[] = "PickleError";
3680 static const char __pyx_k_attachModel[] = "attachModel";
3681 static const char __pyx_k_elementMaps[] = "elementMaps";
3682 static const char __pyx_k_orientation[] = "orientation";
3683 static const char __pyx_k_owning_proc[] = "owning_proc";
3684 static const char __pyx_k_setFreeSlip[] = "setFreeSlip";
3685 static const char __pyx_k_setLinearBC[] = "setLinearBC";
3686 static const char __pyx_k_setMoveMesh[] = "setMoveMesh";
3687 static const char __pyx_k_shearStress[] = "shearStress";
3688 static const char __pyx_k_coefficients[] = "coefficients";
3689 static const char __pyx_k_coords_relax[] = "coords_relax";
3690 static const char __pyx_k_getVariables[] = "getVariables";
3691 static const char __pyx_k_kWall___init[] = "kWall.__init__";
3692 static const char __pyx_k_nearest_node[] = "nearest_node";
3693 static const char __pyx_k_nodes_kdtree[] = "nodes_kdtree";
3694 static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
3695 static const char __pyx_k_q_phi_porous[] = "q_phi_porous";
3696 static const char __pyx_k_stringsource[] = "stringsource";
3697 static const char __pyx_k_use_setstate[] = "use_setstate";
3698 static const char __pyx_k_ux_dirichlet[] = "ux_dirichlet";
3699 static const char __pyx_k_BC_RANS_reset[] = "BC_RANS.reset";
3700 static const char __pyx_k_OverflowError[] = "OverflowError";
3701 static const char __pyx_k_WallFunctions[] = "WallFunctions";
3702 static const char __pyx_k_Wall_function[] = "Wall function";
3703 static const char __pyx_k_kappaNearWall[] = "kappaNearWall";
3704 static const char __pyx_k_last_position[] = "last_position";
3705 static const char __pyx_k_local_element[] = "local_element";
3706 static const char __pyx_k_nSpace_global[] = "nSpace_global";
3707 static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer";
3708 static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
3709 static const char __pyx_k_setAtmosphere[] = "setAtmosphere";
3710 static const char __pyx_k_setChMoveMesh[] = "setChMoveMesh";
3711 static const char __pyx_k_setConstantBC[] = "setConstantBC";
3712 static const char __pyx_k_setFixedNodes[] = "setFixedNodes";
3713 static const char __pyx_k_setLinearRamp[] = "setLinearRamp";
3714 static const char __pyx_k_RelaxationZone[] = "RelaxationZone";
3715 static const char __pyx_k_calculate_init[] = "calculate_init";
3716 static const char __pyx_k_cpp_MoveMesh_h[] = "__cpp_MoveMesh_h";
3717 static const char __pyx_k_dissipationVal[] = "dissipationVal";
3718 static const char __pyx_k_epsFact_porous[] = "epsFact_porous";
3719 static const char __pyx_k_kWall_getKappa[] = "kWall.getKappa";
3720 static const char __pyx_k_levelModelList[] = "levelModelList";
3721 static const char __pyx_k_setNonMaterial[] = "setNonMaterial";
3722 static const char __pyx_k_BC_RANS_setTank[] = "BC_RANS.setTank";
3723 static const char __pyx_k_Closure_0_model[] = "Closure_0_model";
3724 static const char __pyx_k_Closure_1_model[] = "Closure_1_model";
3725 static const char __pyx_k_View_MemoryView[] = "View.MemoryView";
3726 static const char __pyx_k_allocate_buffer[] = "allocate_buffer";
3727 static const char __pyx_k_checkedElements[] = "checkedElements";
3728 static const char __pyx_k_constant_values[] = "constant_values";
3729 static const char __pyx_k_cpp_MoveMesh_hx[] = "__cpp_MoveMesh_hx";
3730 static const char __pyx_k_cpp_MoveMesh_hy[] = "__cpp_MoveMesh_hy";
3731 static const char __pyx_k_cpp_MoveMesh_hz[] = "__cpp_MoveMesh_hz";
3732 static const char __pyx_k_dtype_is_object[] = "dtype_is_object";
3733 static const char __pyx_k_extractVelocity[] = "extractVelocity";
3734 static const char __pyx_k_getInverseValue[] = "getInverseValue";
3735 static const char __pyx_k_getLocalElement[] = "getLocalElement";
3736 static const char __pyx_k_get_k_dirichlet[] = "get_k_dirichlet";
3737 static const char __pyx_k_get_u_diffusive[] = "get_u_diffusive";
3738 static const char __pyx_k_get_u_dirichlet[] = "get_u_dirichlet";
3739 static const char __pyx_k_get_v_diffusive[] = "get_v_diffusive";
3740 static const char __pyx_k_get_v_dirichlet[] = "get_v_dirichlet";
3741 static const char __pyx_k_get_w_diffusive[] = "get_w_diffusive";
3742 static const char __pyx_k_get_w_dirichlet[] = "get_w_dirichlet";
3743 static const char __pyx_k_kWall_calculate[] = "kWall.calculate";
3744 static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
3745 static const char __pyx_k_rotation_matrix[] = "rotation_matrix";
3746 static const char __pyx_k_setWallFunction[] = "setWallFunction";
3747 static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
3748 static const char __pyx_k_timeIntegration[] = "timeIntegration";
3749 static const char __pyx_k_velocity_porous[] = "velocity_porous";
3750 static const char __pyx_k_referenceElement[] = "referenceElement";
3751 static const char __pyx_k_BC_RANS_setNoSlip[] = "BC_RANS.setNoSlip";
3752 static const char __pyx_k_dissipationInflow[] = "dissipationInflow";
3753 static const char __pyx_k_elementNodesArray[] = "elementNodesArray";
3754 static const char __pyx_k_femSpace_velocity[] = "femSpace_velocity";
3755 static const char __pyx_k_inlet_k_dirichlet[] = "inlet_k_dirichlet";
3756 static const char __pyx_k_inlet_p_advective[] = "inlet_p_advective";
3757 static const char __pyx_k_kWall_attachModel[] = "kWall.attachModel";
3758 static const char __pyx_k_nodeElementsArray[] = "nodeElementsArray";
3759 static const char __pyx_k_proteus_Profiling[] = "proteus.Profiling";
3760 static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum";
3761 static const char __pyx_k_q_velocity_porous[] = "q_velocity_porous";
3762 static const char __pyx_k_smoothedHeaviside[] = "smoothedHeaviside";
3763 static const char __pyx_k_AuxiliaryVariables[] = "AuxiliaryVariables";
3764 static const char __pyx_k_BoundaryConditions[] = "BoundaryConditions";
3765 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
3766 static const char __pyx_k_nodeElementOffsets[] = "nodeElementOffsets";
3767 static const char __pyx_k_patchBoundaryNodes[] = "patchBoundaryNodes";
3768 static const char __pyx_k_strided_and_direct[] = "<strided and direct>";
3769 static const char __pyx_k_tangentialVelocity[] = "tangentialVelocity";
3770 static const char __pyx_k_BC_RANS_setFreeSlip[] = "BC_RANS.setFreeSlip";
3771 static const char __pyx_k_BC_RANS_setMoveMesh[] = "BC_RANS.setMoveMesh";
3772 static const char __pyx_k_getLocalNearestNode[] = "getLocalNearestNode";
3773 static const char __pyx_k_inlet_phi_dirichlet[] = "inlet_phi_dirichlet";
3774 static const char __pyx_k_inlet_vof_dirichlet[] = "inlet_vof_dirichlet";
3775 static const char __pyx_k_kWall_kappaNearWall[] = "kWall.kappaNearWall";
3776 static const char __pyx_k_WallFunctions___init[] = "WallFunctions.__init__";
3777 static const char __pyx_k_calculate_phi_python[] = "calculate_phi_python";
3778 static const char __pyx_k_calculate_vel_python[] = "calculate_vel_python";
3779 static const char __pyx_k_dissipationInflowAir[] = "dissipationInflowAir";
3780 static const char __pyx_k_elementMaterialTypes[] = "elementMaterialTypes";
3781 static const char __pyx_k_kWall_calculate_init[] = "kWall.calculate_init";
3782 static const char __pyx_k_pyx_unpickle_BC_RANS[] = "__pyx_unpickle_BC_RANS";
3783 static const char __pyx_k_setRigidBodyMoveMesh[] = "setRigidBodyMoveMesh";
3784 static const char __pyx_k_strided_and_indirect[] = "<strided and indirect>";
3785 static const char __pyx_k_BC_RANS_setAtmosphere[] = "BC_RANS.setAtmosphere";
3786 static const char __pyx_k_BC_RANS_setChMoveMesh[] = "BC_RANS.setChMoveMesh";
3787 static const char __pyx_k_BC_RANS_setFixedNodes[] = "BC_RANS.setFixedNodes";
3788 static const char __pyx_k_TwoPhaseVelocityInlet[] = "TwoPhaseVelocityInlet";
3789 static const char __pyx_k_constantInletVelocity[] = "constantInletVelocity";
3790 static const char __pyx_k_contiguous_and_direct[] = "<contiguous and direct>";
3791 static const char __pyx_k_nearest_node_distance[] = "nearest_node_distance";
3792 static const char __pyx_k_setTurbulentDirichlet[] = "setTurbulentDirichlet";
3793 static const char __pyx_k_BC_RANS_setNonMaterial[] = "BC_RANS.setNonMaterial";
3794 static const char __pyx_k_MemoryView_of_r_object[] = "<MemoryView of %r object>";
3795 static const char __pyx_k_constantOutletPressure[] = "constantOutletPressure";
3796 static const char __pyx_k_get_inlet_ux_dirichlet[] = "get_inlet_ux_dirichlet";
3797 static const char __pyx_k_BC_RANS___reduce_cython[] = "BC_RANS.__reduce_cython__";
3798 static const char __pyx_k_BC_RANS_setWallFunction[] = "BC_RANS.setWallFunction";
3799 static const char __pyx_k_MemoryView_of_r_at_0x_x[] = "<MemoryView of %r at 0x%x>";
3800 static const char __pyx_k_WallFunctions_calculate[] = "WallFunctions.calculate";
3801 static const char __pyx_k_contiguous_and_indirect[] = "<contiguous and indirect>";
3802 static const char __pyx_k_setYplusNormalDirection[] = "setYplusNormalDirection";
3803 static const char __pyx_k_BC_RANS___cpp_MoveMesh_h[] = "BC_RANS.__cpp_MoveMesh_h";
3804 static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'";
3805 static const char __pyx_k_attachAuxiliaryVariables[] = "attachAuxiliaryVariables";
3806 static const char __pyx_k_getFluidKappaLocalCoords[] = "getFluidKappaLocalCoords";
3807 static const char __pyx_k_setConstantInletVelocity[] = "setConstantInletVelocity";
3808 static const char __pyx_k_setTurbulentZeroGradient[] = "setTurbulentZeroGradient";
3809 static const char __pyx_k_setTwoPhaseVelocityInlet[] = "setTwoPhaseVelocityInlet";
3810 static const char __pyx_k_BC_RANS___cpp_MoveMesh_hx[] = "BC_RANS.__cpp_MoveMesh_hx";
3811 static const char __pyx_k_BC_RANS___cpp_MoveMesh_hy[] = "BC_RANS.__cpp_MoveMesh_hy";
3812 static const char __pyx_k_BC_RANS___cpp_MoveMesh_hz[] = "BC_RANS.__cpp_MoveMesh_hz";
3813 static const char __pyx_k_BC_RANS___setstate_cython[] = "BC_RANS.__setstate_cython__";
3814 static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d.";
3815 static const char __pyx_k_WallFunctions_attachModel[] = "WallFunctions.attachModel";
3816 static const char __pyx_k_get_dissipation_dirichlet[] = "get_dissipation_dirichlet";
3817 static const char __pyx_k_mprans_BoundaryConditions[] = "mprans.BoundaryConditions";
3818 static const char __pyx_k_setConstantOutletPressure[] = "setConstantOutletPressure";
3819 static const char __pyx_k_setMoveMesh_locals_lambda[] = "setMoveMesh.<locals>.<lambda>";
3820 static const char __pyx_k_WallFunctions_getVariables[] = "WallFunctions.getVariables";
3821 static const char __pyx_k_smoothedHeaviside_integral[] = "smoothedHeaviside_integral";
3822 static const char __pyx_k_RelaxationZoneWaveGenerator[] = "RelaxationZoneWaveGenerator";
3823 static const char __pyx_k_findElementContainingCoords[] = "findElementContainingCoords";
3824 static const char __pyx_k_getFluidVelocityLocalCoords[] = "getFluidVelocityLocalCoords";
3825 static const char __pyx_k_inlet_dissipation_dirichlet[] = "inlet_dissipation_dirichlet";
3826 static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array";
3827 static const char __pyx_k_setChMoveMesh_locals_lambda[] = "setChMoveMesh.<locals>.<lambda>";
3828 static const char __pyx_k_BC_RANS_setRigidBodyMoveMesh[] = "BC_RANS.setRigidBodyMoveMesh";
3829 static const char __pyx_k_WallFunctions_calculate_init[] = "WallFunctions.calculate_init";
3830 static const char __pyx_k_BC_RANS_setTurbulentDirichlet[] = "BC_RANS.setTurbulentDirichlet";
3831 static const char __pyx_k_RelaxationZone_calculate_init[] = "RelaxationZone.calculate_init";
3832 static const char __pyx_k_WallFunctions_extractVelocity[] = "WallFunctions.extractVelocity";
3833 static const char __pyx_k_WallFunctions_getLocalElement[] = "WallFunctions.getLocalElement";
3834 static const char __pyx_k_WallFunctions_get_k_dirichlet[] = "WallFunctions.get_k_dirichlet";
3835 static const char __pyx_k_WallFunctions_get_u_diffusive[] = "WallFunctions.get_u_diffusive";
3836 static const char __pyx_k_WallFunctions_get_u_dirichlet[] = "WallFunctions.get_u_dirichlet";
3837 static const char __pyx_k_WallFunctions_get_v_diffusive[] = "WallFunctions.get_v_diffusive";
3838 static const char __pyx_k_WallFunctions_get_v_dirichlet[] = "WallFunctions.get_v_dirichlet";
3839 static const char __pyx_k_WallFunctions_get_w_diffusive[] = "WallFunctions.get_w_diffusive";
3840 static const char __pyx_k_WallFunctions_get_w_dirichlet[] = "WallFunctions.get_w_dirichlet";
3841 static const char __pyx_k_cppClass_WavesCharacteristics[] = "__cppClass_WavesCharacteristics";
3842 static const char __pyx_k_setWallFunction_locals_lambda[] = "setWallFunction.<locals>.<lambda>";
3843 static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data.";
3844 static const char __pyx_k_RelaxationZone___reduce_cython[] = "RelaxationZone.__reduce_cython__";
3845 static const char __pyx_k_kWall_attachAuxiliaryVariables[] = "kWall.attachAuxiliaryVariables";
3846 static const char __pyx_k_kWall_getFluidKappaLocalCoords[] = "kWall.getFluidKappaLocalCoords";
3847 static const char __pyx_k_proteus_ctransportCoefficients[] = "proteus.ctransportCoefficients";
3848 static const char __pyx_k_pyx_unpickle_RelaxationZoneWav[] = "__pyx_unpickle_RelaxationZoneWaveGenerator";
3849 static const char __pyx_k_pyx_unpickle___cppClass_WavesC[] = "__pyx_unpickle___cppClass_WavesCharacteristics";
3850 static const char __pyx_k_strided_and_direct_or_indirect[] = "<strided and direct or indirect>";
3851 static const char __pyx_k_Auxiliary_variable_used_to_calc[] = "\n Auxiliary variable used to calculate attributes of an associated shape\n class instance acting as a wall.\n ";
3852 static const char __pyx_k_WARNING_Dirichlet_condition_for[] = "WARNING: Dirichlet condition for k in ";
3853 static const char __pyx_k_cppClass_WavesCharacteristics_2[] = "_cppClass_WavesCharacteristics";
3854 static const char __pyx_k_cppClass_WavesCharacteristics_3[] = "__cppClass_WavesCharacteristics.__reduce_cython__";
3855 static const char __pyx_k_cppClass_WavesCharacteristics_4[] = "__cppClass_WavesCharacteristics.__setstate_cython__";
3856 static const char __pyx_k_has_not_been_set_Ignore_if_RANS[] = " has not been set. Ignore if RANS is not used";
3857 static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
3858 static const char __pyx_k_oritentation_must_be_set_for_BC[] = "oritentation must be set for BC";
3859 static const char __pyx_k_setRigidBodyMoveMesh_locals_get[] = "setRigidBodyMoveMesh.<locals>.get_DBC_h.<locals>.DBC_h";
3860 static const char __pyx_k_setTwoPhaseVelocityInlet_locals[] = "setTwoPhaseVelocityInlet.<locals>.get_inlet_ux_dirichlet.<locals>.ux_dirichlet";
3861 static const char __pyx_k_BC_RANS_setConstantInletVelocity[] = "BC_RANS.setConstantInletVelocity";
3862 static const char __pyx_k_BC_RANS_setConstantOutletPressur[] = "BC_RANS.setConstantOutletPressure";
3863 static const char __pyx_k_BC_RANS_setHydrostaticPressureOu[] = "BC_RANS.setHydrostaticPressureOutletWithDepth";
3864 static const char __pyx_k_BC_RANS_setTurbulentZeroGradient[] = "BC_RANS.setTurbulentZeroGradient";
3865 static const char __pyx_k_BC_RANS_setTwoPhaseVelocityInlet[] = "BC_RANS.setTwoPhaseVelocityInlet";
3866 static const char __pyx_k_BC_RANS_setUnsteadyTwoPhaseVeloc[] = "BC_RANS.setUnsteadyTwoPhaseVelocityInlet";
3867 static const char __pyx_k_Boundary_orientation_must_be_def[] = "Boundary orientation must be defined!";
3868 static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides";
3869 static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory.";
3870 static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview";
3871 static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview";
3872 static const char __pyx_k_ERROR_Boundary_orientation_for_H[] = "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined";
3873 static const char __pyx_k_ERROR_Boundary_orientation_for_U[] = "ERROR: Boundary orientation for Unsteady flow inlet is not defined";
3874 static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array";
3875 static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))";
3876 static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported";
3877 static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s";
3878 static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)";
3879 static const char __pyx_k_RelaxationZoneWaveGenerator___re[] = "RelaxationZoneWaveGenerator.__reduce_cython__";
3880 static const char __pyx_k_RelaxationZoneWaveGenerator___se[] = "RelaxationZoneWaveGenerator.__setstate_cython__";
3881 static const char __pyx_k_RelaxationZoneWaveGenerator_atta[] = "RelaxationZoneWaveGenerator.attachModel";
3882 static const char __pyx_k_RelaxationZoneWaveGenerator_calc[] = "RelaxationZoneWaveGenerator.calculate_init";
3883 static const char __pyx_k_RelaxationZone___setstate_cython[] = "RelaxationZone.__setstate_cython__";
3884 static const char __pyx_k_RelaxationZone_calculate_phi_pyt[] = "RelaxationZone.calculate_phi_python";
3885 static const char __pyx_k_RelaxationZone_calculate_vel_pyt[] = "RelaxationZone.calculate_vel_python";
3886 static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object";
3887 static const char __pyx_k_WallFunctions_attachAuxiliaryVar[] = "WallFunctions.attachAuxiliaryVariables";
3888 static const char __pyx_k_WallFunctions_findElementContain[] = "WallFunctions.findElementContainingCoords";
3889 static const char __pyx_k_WallFunctions_getFluidVelocityLo[] = "WallFunctions.getFluidVelocityLocalCoords";
3890 static const char __pyx_k_WallFunctions_getLocalNearestNod[] = "WallFunctions.getLocalNearestNode";
3891 static const char __pyx_k_WallFunctions_get_dissipation_di[] = "WallFunctions.get_dissipation_dirichlet";
3892 static const char __pyx_k_WallFunctions_setYplusNormalDire[] = "WallFunctions.setYplusNormalDirection";
3893 static const char __pyx_k_WallFunctions_tangentialVelocity[] = "WallFunctions.tangentialVelocity";
3894 static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)";
3895 static const char __pyx_k_hydrostaticPressureOutletWithDep[] = "hydrostaticPressureOutletWithDepth_p_dirichlet";
3896 static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
3897 static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
3898 static const char __pyx_k_proteus_mprans_BoundaryCondition[] = "proteus/mprans/BoundaryConditions.py";
3899 static const char __pyx_k_setHydrostaticPressureOutletWith[] = "setHydrostaticPressureOutletWithDepth.<locals>.get_inlet_ux_dirichlet.<locals>.ux_dirichlet";
3900 static const char __pyx_k_setUnsteadyTwoPhaseVelocityInlet[] = "setUnsteadyTwoPhaseVelocityInlet.<locals>.<lambda>";
3901 static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides.";
3902 static const char __pyx_k_Auxiliary_variable_used_to_calc_2[] = "\n Auxiliary variable used to calculate attributes of an associated shape\n class instance acting as a wall for the k variable.\n ";
3903 static const char __pyx_k_WARNING_Dirichlet_condition_for_2[] = "WARNING: Dirichlet condition for dissipation in ";
3904 static const char __pyx_k_setRigidBodyMoveMesh_locals_get_2[] = "setRigidBodyMoveMesh.<locals>.get_DBC_h";
3905 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_2[] = "setTwoPhaseVelocityInlet.<locals>.get_inlet_ux_dirichlet";
3906 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_3[] = "setTwoPhaseVelocityInlet.<locals>.inlet_phi_dirichlet";
3907 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_4[] = "setTwoPhaseVelocityInlet.<locals>.inlet_vof_dirichlet";
3908 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_5[] = "setTwoPhaseVelocityInlet.<locals>.inlet_p_advective";
3909 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_6[] = "setTwoPhaseVelocityInlet.<locals>.inlet_k_dirichlet";
3910 static const char __pyx_k_setTwoPhaseVelocityInlet_locals_7[] = "setTwoPhaseVelocityInlet.<locals>.inlet_dissipation_dirichlet";
3911 static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))";
3912 static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_3[] = "Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))";
3913 static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_4[] = "Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))";
3914 static const char __pyx_k_RelaxationZoneWaveGenerator_atta_2[] = "RelaxationZoneWaveGenerator.attachAuxiliaryVariables";
3915 static const char __pyx_k_RelaxationZoneWaveGenerator_calc_2[] = "RelaxationZoneWaveGenerator.calculate";
3916 static const char __pyx_k_hydrostaticPressureOutletWithDep_2[] = "hydrostaticPressureOutletWithDepth_phi_dirichlet";
3917 static const char __pyx_k_hydrostaticPressureOutletWithDep_3[] = "hydrostaticPressureOutletWithDepth_vof_dirichlet";
3918 static const char __pyx_k_setHydrostaticPressureOutletWith_2[] = "setHydrostaticPressureOutletWithDepth.<locals>.hydrostaticPressureOutletWithDepth_p_dirichlet";
3919 static const char __pyx_k_setHydrostaticPressureOutletWith_3[] = "setHydrostaticPressureOutletWithDepth.<locals>.hydrostaticPressureOutletWithDepth_phi_dirichlet";
3920 static const char __pyx_k_setHydrostaticPressureOutletWith_4[] = "setHydrostaticPressureOutletWithDepth.<locals>.hydrostaticPressureOutletWithDepth_vof_dirichlet";
3921 static const char __pyx_k_setHydrostaticPressureOutletWith_5[] = "setHydrostaticPressureOutletWithDepth.<locals>.inlet_k_dirichlet";
3922 static const char __pyx_k_setHydrostaticPressureOutletWith_6[] = "setHydrostaticPressureOutletWithDepth.<locals>.inlet_dissipation_dirichlet";
3923 static const char __pyx_k_setHydrostaticPressureOutletWith_7[] = "setHydrostaticPressureOutletWithDepth.<locals>.get_inlet_ux_dirichlet";
3924 static const char __pyx_k_setHydrostaticPressureOutletWith_8[] = "setHydrostaticPressureOutletWithDepth";
3925 static const char __pyx_k_setUnsteadyTwoPhaseVelocityInlet_2[] = "setUnsteadyTwoPhaseVelocityInlet";
3926 static PyObject *__pyx_n_s_ASCII;
3927 static PyObject *__pyx_n_s_AV_base;
3928 static PyObject *__pyx_n_s_Atmosphere;
3929 static PyObject *__pyx_n_s_AuxiliaryVariables;
3930 static PyObject *__pyx_kp_s_Auxiliary_variable_used_to_calc;
3931 static PyObject *__pyx_kp_s_Auxiliary_variable_used_to_calc_2;
3932 static PyObject *__pyx_n_s_B;
3933 static PyObject *__pyx_n_s_BC_RANS;
3934 static PyObject *__pyx_n_s_BC_RANS___cpp_MoveMesh_h;
3935 static PyObject *__pyx_n_s_BC_RANS___cpp_MoveMesh_hx;
3936 static PyObject *__pyx_n_s_BC_RANS___cpp_MoveMesh_hy;
3937 static PyObject *__pyx_n_s_BC_RANS___cpp_MoveMesh_hz;
3938 static PyObject *__pyx_n_s_BC_RANS___reduce_cython;
3939 static PyObject *__pyx_n_s_BC_RANS___setstate_cython;
3940 static PyObject *__pyx_n_s_BC_RANS_reset;
3941 static PyObject *__pyx_n_s_BC_RANS_setAtmosphere;
3942 static PyObject *__pyx_n_s_BC_RANS_setChMoveMesh;
3943 static PyObject *__pyx_n_s_BC_RANS_setConstantInletVelocity;
3944 static PyObject *__pyx_n_s_BC_RANS_setConstantOutletPressur;
3945 static PyObject *__pyx_n_s_BC_RANS_setFixedNodes;
3946 static PyObject *__pyx_n_s_BC_RANS_setFreeSlip;
3947 static PyObject *__pyx_n_s_BC_RANS_setHydrostaticPressureOu;
3948 static PyObject *__pyx_n_s_BC_RANS_setMoveMesh;
3949 static PyObject *__pyx_n_s_BC_RANS_setNoSlip;
3950 static PyObject *__pyx_n_s_BC_RANS_setNonMaterial;
3951 static PyObject *__pyx_n_s_BC_RANS_setRigidBodyMoveMesh;
3952 static PyObject *__pyx_n_s_BC_RANS_setTank;
3953 static PyObject *__pyx_n_s_BC_RANS_setTurbulentDirichlet;
3954 static PyObject *__pyx_n_s_BC_RANS_setTurbulentZeroGradient;
3955 static PyObject *__pyx_n_s_BC_RANS_setTwoPhaseVelocityInlet;
3956 static PyObject *__pyx_n_s_BC_RANS_setUnsteadyTwoPhaseVeloc;
3957 static PyObject *__pyx_n_s_BC_RANS_setWallFunction;
3958 static PyObject *__pyx_n_s_BoundaryConditions;
3959 static PyObject *__pyx_kp_s_Boundary_orientation_must_be_def;
3960 static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri;
3961 static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is;
3962 static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor;
3963 static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi;
3964 static PyObject *__pyx_kp_s_Cannot_index_with_type_s;
3965 static PyObject *__pyx_n_s_Closure_0_model;
3966 static PyObject *__pyx_n_s_Closure_1_model;
3967 static PyObject *__pyx_n_s_Cmu;
3968 static PyObject *__pyx_n_s_Comm;
3969 static PyObject *__pyx_n_s_DBC_h;
3970 static PyObject *__pyx_n_s_Domain;
3971 static PyObject *__pyx_n_s_E;
3972 static PyObject *__pyx_kp_s_ERROR_Boundary_orientation_for_H;
3973 static PyObject *__pyx_kp_s_ERROR_Boundary_orientation_for_U;
3974 static PyObject *__pyx_n_s_Ellipsis;
3975 static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr;
3976 static PyObject *__pyx_n_s_FreeSlip;
3977 static PyObject *__pyx_n_s_H;
3978 static PyObject *__pyx_n_s_ImportError;
3979 static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
3980 static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2;
3981 static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3;
3982 static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4;
3983 static PyObject *__pyx_n_s_IndexError;
3984 static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte;
3985 static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr;
3986 static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d;
3987 static PyObject *__pyx_n_s_K;
3988 static PyObject *__pyx_n_s_MPI;
3989 static PyObject *__pyx_n_s_MemoryError;
3990 static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x;
3991 static PyObject *__pyx_kp_s_MemoryView_of_r_object;
3992 static PyObject *__pyx_n_s_NoSlip;
3993 static PyObject *__pyx_n_s_NonMaterial;
3994 static PyObject *__pyx_n_b_O;
3995 static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a;
3996 static PyObject *__pyx_n_s_OverflowError;
3997 static PyObject *__pyx_n_s_PickleError;
3998 static PyObject *__pyx_n_s_RelaxationZone;
3999 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator;
4000 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator___re;
4001 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator___se;
4002 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator_atta;
4003 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator_atta_2;
4004 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator_calc;
4005 static PyObject *__pyx_n_s_RelaxationZoneWaveGenerator_calc_2;
4006 static PyObject *__pyx_n_s_RelaxationZone___reduce_cython;
4007 static PyObject *__pyx_n_s_RelaxationZone___setstate_cython;
4008 static PyObject *__pyx_n_s_RelaxationZone_calculate_init;
4009 static PyObject *__pyx_n_s_RelaxationZone_calculate_phi_pyt;
4010 static PyObject *__pyx_n_s_RelaxationZone_calculate_vel_pyt;
4011 static PyObject *__pyx_kp_b_T;
4012 static PyObject *__pyx_n_s_TwoPhaseVelocityInlet;
4013 static PyObject *__pyx_n_s_TypeError;
4014 static PyObject *__pyx_n_s_U;
4015 static PyObject *__pyx_n_s_U0;
4016 static PyObject *__pyx_n_s_Ubound;
4017 static PyObject *__pyx_n_s_Uin;
4018 static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object;
4019 static PyObject *__pyx_n_s_Up;
4020 static PyObject *__pyx_n_s_Ustar;
4021 static PyObject *__pyx_n_s_Uwind;
4022 static PyObject *__pyx_n_s_ValueError;
4023 static PyObject *__pyx_n_s_View_MemoryView;
4024 static PyObject *__pyx_kp_s_WARNING_Dirichlet_condition_for;
4025 static PyObject *__pyx_kp_s_WARNING_Dirichlet_condition_for_2;
4026 static PyObject *__pyx_n_s_WallFunctions;
4027 static PyObject *__pyx_n_s_WallFunctions___init;
4028 static PyObject *__pyx_n_s_WallFunctions_attachAuxiliaryVar;
4029 static PyObject *__pyx_n_s_WallFunctions_attachModel;
4030 static PyObject *__pyx_n_s_WallFunctions_calculate;
4031 static PyObject *__pyx_n_s_WallFunctions_calculate_init;
4032 static PyObject *__pyx_n_s_WallFunctions_extractVelocity;
4033 static PyObject *__pyx_n_s_WallFunctions_findElementContain;
4034 static PyObject *__pyx_n_s_WallFunctions_getFluidVelocityLo;
4035 static PyObject *__pyx_n_s_WallFunctions_getLocalElement;
4036 static PyObject *__pyx_n_s_WallFunctions_getLocalNearestNod;
4037 static PyObject *__pyx_n_s_WallFunctions_getVariables;
4038 static PyObject *__pyx_n_s_WallFunctions_get_dissipation_di;
4039 static PyObject *__pyx_n_s_WallFunctions_get_k_dirichlet;
4040 static PyObject *__pyx_n_s_WallFunctions_get_u_diffusive;
4041 static PyObject *__pyx_n_s_WallFunctions_get_u_dirichlet;
4042 static PyObject *__pyx_n_s_WallFunctions_get_v_diffusive;
4043 static PyObject *__pyx_n_s_WallFunctions_get_v_dirichlet;
4044 static PyObject *__pyx_n_s_WallFunctions_get_w_diffusive;
4045 static PyObject *__pyx_n_s_WallFunctions_get_w_dirichlet;
4046 static PyObject *__pyx_n_s_WallFunctions_setYplusNormalDire;
4047 static PyObject *__pyx_n_s_WallFunctions_tangentialVelocity;
4048 static PyObject *__pyx_kp_s_Wall_function;
4049 static PyObject *__pyx_n_s_WaveTools;
4050 static PyObject *__pyx_n_s_Y;
4051 static PyObject *__pyx_n_s_Yplus;
4052 static PyObject *__pyx_n_s_Ystar;
4053 static PyObject *__pyx_kp_b__165;
4054 static PyObject *__pyx_kp_b__166;
4055 static PyObject *__pyx_kp_b__167;
4056 static PyObject *__pyx_kp_b__168;
4057 static PyObject *__pyx_kp_u__169;
4058 static PyObject *__pyx_n_s_a1;
4059 static PyObject *__pyx_n_s_abs;
4060 static PyObject *__pyx_n_s_absorption;
4061 static PyObject *__pyx_n_s_acos;
4062 static PyObject *__pyx_n_s_air;
4063 static PyObject *__pyx_n_s_all;
4064 static PyObject *__pyx_n_s_allocate_buffer;
4065 static PyObject *__pyx_n_s_ar;
4066 static PyObject *__pyx_n_s_array;
4067 static PyObject *__pyx_n_s_asin;
4068 static PyObject *__pyx_n_s_atan2;
4069 static PyObject *__pyx_n_s_attachAuxiliaryVariables;
4070 static PyObject *__pyx_n_s_attachModel;
4071 static PyObject *__pyx_n_s_avDict;
4072 static PyObject *__pyx_n_s_b_i;
4073 static PyObject *__pyx_n_s_b_or;
4074 static PyObject *__pyx_n_s_base;
4075 static PyObject *__pyx_n_s_body;
4076 static PyObject *__pyx_n_s_builtins;
4077 static PyObject *__pyx_n_s_c;
4078 static PyObject *__pyx_n_u_c;
4079 static PyObject *__pyx_n_s_cKDTree;
4080 static PyObject *__pyx_n_s_calculate;
4081 static PyObject *__pyx_n_s_calculate_init;
4082 static PyObject *__pyx_n_s_calculate_phi_python;
4083 static PyObject *__pyx_n_s_calculate_vel_python;
4084 static PyObject *__pyx_n_s_center;
4085 static PyObject *__pyx_n_s_checkedElements;
4086 static PyObject *__pyx_n_s_class;
4087 static PyObject *__pyx_n_s_cline_in_traceback;
4088 static PyObject *__pyx_n_s_coefficients;
4089 static PyObject *__pyx_n_s_comm;
4090 static PyObject *__pyx_n_s_constant;
4091 static PyObject *__pyx_n_s_constantInletVelocity;
4092 static PyObject *__pyx_n_s_constantOutletPressure;
4093 static PyObject *__pyx_n_s_constant_values;
4094 static PyObject *__pyx_kp_s_contiguous_and_direct;
4095 static PyObject *__pyx_kp_s_contiguous_and_indirect;
4096 static PyObject *__pyx_n_s_coords;
4097 static PyObject *__pyx_n_s_coords_relax;
4098 static PyObject *__pyx_n_s_cos;
4099 static PyObject *__pyx_n_s_cppClass_WavesCharacteristics;
4100 static PyObject *__pyx_n_s_cppClass_WavesCharacteristics_2;
4101 static PyObject *__pyx_n_s_cppClass_WavesCharacteristics_3;
4102 static PyObject *__pyx_n_s_cppClass_WavesCharacteristics_4;
4103 static PyObject *__pyx_n_s_cpp_MoveMesh_h;
4104 static PyObject *__pyx_n_s_cpp_MoveMesh_hx;
4105 static PyObject *__pyx_n_s_cpp_MoveMesh_hy;
4106 static PyObject *__pyx_n_s_cpp_MoveMesh_hz;
4107 static PyObject *__pyx_n_s_d;
4108 static PyObject *__pyx_n_s_dInflow;
4109 static PyObject *__pyx_n_s_dd;
4110 static PyObject *__pyx_n_s_dict;
4111 static PyObject *__pyx_n_s_dict_2;
4112 static PyObject *__pyx_n_s_dissipationInflow;
4113 static PyObject *__pyx_n_s_dissipationInflowAir;
4114 static PyObject *__pyx_n_s_dissipationVal;
4115 static PyObject *__pyx_n_s_distance;
4116 static PyObject *__pyx_n_s_doc;
4117 static PyObject *__pyx_n_s_dot;
4118 static PyObject *__pyx_n_s_dragAlpha;
4119 static PyObject *__pyx_n_s_dragBeta;
4120 static PyObject *__pyx_n_s_dtype;
4121 static PyObject *__pyx_n_s_dtype_is_object;
4122 static PyObject *__pyx_n_s_eN;
4123 static PyObject *__pyx_n_s_eOffset;
4124 static PyObject *__pyx_n_s_element;
4125 static PyObject *__pyx_n_s_elementMaps;
4126 static PyObject *__pyx_n_s_elementMaterialTypes;
4127 static PyObject *__pyx_n_s_elementNodesArray;
4128 static PyObject *__pyx_n_s_empty;
4129 static PyObject *__pyx_n_s_encode;
4130 static PyObject *__pyx_n_s_enumerate;
4131 static PyObject *__pyx_n_s_epsFact_porous;
4132 static PyObject *__pyx_n_s_error;
4133 static PyObject *__pyx_n_s_eta;
4134 static PyObject *__pyx_n_s_exp;
4135 static PyObject *__pyx_n_s_extractVelocity;
4136 static PyObject *__pyx_n_s_femSpace;
4137 static PyObject *__pyx_n_s_femSpace_velocity;
4138 static PyObject *__pyx_n_s_findElementContainingCoords;
4139 static PyObject *__pyx_n_s_flags;
4140 static PyObject *__pyx_n_s_format;
4141 static PyObject *__pyx_n_s_fortran;
4142 static PyObject *__pyx_n_u_fortran;
4143 static PyObject *__pyx_n_s_g;
4144 static PyObject *__pyx_n_s_generation;
4145 static PyObject *__pyx_n_s_get;
4146 static PyObject *__pyx_n_s_getFluidKappaLocalCoords;
4147 static PyObject *__pyx_n_s_getFluidVelocityLocalCoords;
4148 static PyObject *__pyx_n_s_getInverseValue;
4149 static PyObject *__pyx_n_s_getKappa;
4150 static PyObject *__pyx_n_s_getLocalElement;
4151 static PyObject *__pyx_n_s_getLocalNearestNode;
4152 static PyObject *__pyx_n_s_getValue;
4153 static PyObject *__pyx_n_s_getVariables;
4154 static PyObject *__pyx_n_s_get_DBC_h;
4155 static PyObject *__pyx_n_s_get_dissipation_dirichlet;
4156 static PyObject *__pyx_n_s_get_inlet_ux_dirichlet;
4157 static PyObject *__pyx_n_s_get_k_dirichlet;
4158 static PyObject *__pyx_n_s_get_u_diffusive;
4159 static PyObject *__pyx_n_s_get_u_dirichlet;
4160 static PyObject *__pyx_n_s_get_v_diffusive;
4161 static PyObject *__pyx_n_s_get_v_dirichlet;
4162 static PyObject *__pyx_n_s_get_w_diffusive;
4163 static PyObject *__pyx_n_s_get_w_dirichlet;
4164 static PyObject *__pyx_n_s_getstate;
4165 static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi;
4166 static PyObject *__pyx_n_s_gradU;
4167 static PyObject *__pyx_n_s_h;
4168 static PyObject *__pyx_kp_s_has_not_been_set_Ignore_if_RANS;
4169 static PyObject *__pyx_n_s_hx;
4170 static PyObject *__pyx_n_s_hy;
4171 static PyObject *__pyx_n_s_hydrostaticPressureOutletWithDep;
4172 static PyObject *__pyx_n_s_hydrostaticPressureOutletWithDep_2;
4173 static PyObject *__pyx_n_s_hydrostaticPressureOutletWithDep_3;
4174 static PyObject *__pyx_n_s_hz;
4175 static PyObject *__pyx_n_s_i;
4176 static PyObject *__pyx_n_s_id;
4177 static PyObject *__pyx_n_s_import;
4178 static PyObject *__pyx_n_s_init;
4179 static PyObject *__pyx_n_s_inlet_dissipation_dirichlet;
4180 static PyObject *__pyx_n_s_inlet_k_dirichlet;
4181 static PyObject *__pyx_n_s_inlet_p_advective;
4182 static PyObject *__pyx_n_s_inlet_phi_dirichlet;
4183 static PyObject *__pyx_n_s_inlet_vof_dirichlet;
4184 static PyObject *__pyx_n_s_items;
4185 static PyObject *__pyx_n_s_itemsize;
4186 static PyObject *__pyx_kp_s_itemsize_0_for_cython_array;
4187 static PyObject *__pyx_n_s_join;
4188 static PyObject *__pyx_n_s_kInflow;
4189 static PyObject *__pyx_n_s_kInflowAir;
4190 static PyObject *__pyx_n_s_kInit;
4191 static PyObject *__pyx_n_s_kVal;
4192 static PyObject *__pyx_n_s_kWall;
4193 static PyObject *__pyx_n_s_kWall___init;
4194 static PyObject *__pyx_n_s_kWall_attachAuxiliaryVariables;
4195 static PyObject *__pyx_n_s_kWall_attachModel;
4196 static PyObject *__pyx_n_s_kWall_calculate;
4197 static PyObject *__pyx_n_s_kWall_calculate_init;
4198 static PyObject *__pyx_n_s_kWall_getFluidKappaLocalCoords;
4199 static PyObject *__pyx_n_s_kWall_getKappa;
4200 static PyObject *__pyx_n_s_kWall_kappaNearWall;
4201 static PyObject *__pyx_n_s_kappa;
4202 static PyObject *__pyx_n_s_kappaNearWall;
4203 static PyObject *__pyx_n_s_kdtree;
4204 static PyObject *__pyx_n_s_ke;
4205 static PyObject *__pyx_n_s_kk;
4206 static PyObject *__pyx_n_s_kw;
4207 static PyObject *__pyx_n_s_last_pos;
4208 static PyObject *__pyx_n_s_last_position;
4209 static PyObject *__pyx_n_s_levelModelList;
4210 static PyObject *__pyx_n_s_local_element;
4211 static PyObject *__pyx_n_s_log;
4212 static PyObject *__pyx_n_s_logEvent;
4213 static PyObject *__pyx_n_s_main;
4214 static PyObject *__pyx_n_s_math;
4215 static PyObject *__pyx_n_s_meanV;
4216 static PyObject *__pyx_n_s_memview;
4217 static PyObject *__pyx_n_s_mesh;
4218 static PyObject *__pyx_n_s_metaclass;
4219 static PyObject *__pyx_n_s_mode;
4220 static PyObject *__pyx_n_s_model;
4221 static PyObject *__pyx_n_s_module;
4222 static PyObject *__pyx_n_s_mpi4py;
4223 static PyObject *__pyx_n_s_mprans_BoundaryConditions;
4224 static PyObject *__pyx_n_s_mwl;
4225 static PyObject *__pyx_n_s_n;
4226 static PyObject *__pyx_n_s_nP;
4227 static PyObject *__pyx_n_s_nSpace_global;
4228 static PyObject *__pyx_n_s_name;
4229 static PyObject *__pyx_n_s_name_2;
4230 static PyObject *__pyx_n_s_nd;
4231 static PyObject *__pyx_n_s_ndim;
4232 static PyObject *__pyx_n_s_nearest_node;
4233 static PyObject *__pyx_n_s_nearest_node_distance;
4234 static PyObject *__pyx_n_s_new;
4235 static PyObject *__pyx_n_s_new_x_0;
4236 static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
4237 static PyObject *__pyx_n_s_node;
4238 static PyObject *__pyx_n_s_nodeArray;
4239 static PyObject *__pyx_n_s_nodeElementOffsets;
4240 static PyObject *__pyx_n_s_nodeElementsArray;
4241 static PyObject *__pyx_n_s_nodes_kdtree;
4242 static PyObject *__pyx_n_s_np;
4243 static PyObject *__pyx_n_s_nu;
4244 static PyObject *__pyx_n_s_numpy;
4245 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
4246 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
4247 static PyObject *__pyx_n_s_obj;
4248 static PyObject *__pyx_n_s_old_div;
4249 static PyObject *__pyx_n_s_onElement;
4250 static PyObject *__pyx_n_s_orientation;
4251 static PyObject *__pyx_kp_s_oritentation_must_be_set_for_BC;
4252 static PyObject *__pyx_n_s_os;
4253 static PyObject *__pyx_n_s_owning_proc;
4254 static PyObject *__pyx_n_s_p;
4255 static PyObject *__pyx_n_s_pRef;
4256 static PyObject *__pyx_n_s_p_top;
4257 static PyObject *__pyx_n_s_pack;
4258 static PyObject *__pyx_n_s_pad;
4259 static PyObject *__pyx_n_s_past_utils;
4260 static PyObject *__pyx_n_s_patchBoundaryNodes;
4261 static PyObject *__pyx_n_s_ph;
4262 static PyObject *__pyx_n_s_phi;
4263 static PyObject *__pyx_n_s_phi_porous;
4264 static PyObject *__pyx_n_s_phi_top;
4265 static PyObject *__pyx_n_s_pickle;
4266 static PyObject *__pyx_n_s_porosity;
4267 static PyObject *__pyx_n_s_porous;
4268 static PyObject *__pyx_n_s_prepare;
4269 static PyObject *__pyx_n_s_proteus;
4270 static PyObject *__pyx_n_s_proteus_Profiling;
4271 static PyObject *__pyx_n_s_proteus_ctransportCoefficients;
4272 static PyObject *__pyx_kp_s_proteus_mprans_BoundaryCondition;
4273 static PyObject *__pyx_n_s_pyx_PickleError;
4274 static PyObject *__pyx_n_s_pyx_checksum;
4275 static PyObject *__pyx_n_s_pyx_getbuffer;
4276 static PyObject *__pyx_n_s_pyx_result;
4277 static PyObject *__pyx_n_s_pyx_state;
4278 static PyObject *__pyx_n_s_pyx_type;
4279 static PyObject *__pyx_n_s_pyx_unpickle_BC_RANS;
4280 static PyObject *__pyx_n_s_pyx_unpickle_Enum;
4281 static PyObject *__pyx_n_s_pyx_unpickle_RelaxationZoneWav;
4282 static PyObject *__pyx_n_s_pyx_unpickle___cppClass_WavesC;
4283 static PyObject *__pyx_n_s_pyx_vtable;
4284 static PyObject *__pyx_n_s_q;
4285 static PyObject *__pyx_n_s_q_phi;
4286 static PyObject *__pyx_n_s_q_phi_porous;
4287 static PyObject *__pyx_n_s_q_velocity_porous;
4288 static PyObject *__pyx_n_s_qualname;
4289 static PyObject *__pyx_n_s_query;
4290 static PyObject *__pyx_n_s_ramp;
4291 static PyObject *__pyx_n_s_range;
4292 static PyObject *__pyx_n_s_rank;
4293 static PyObject *__pyx_n_s_reduce;
4294 static PyObject *__pyx_n_s_reduce_cython;
4295 static PyObject *__pyx_n_s_reduce_ex;
4296 static PyObject *__pyx_n_s_refLevel;
4297 static PyObject *__pyx_n_s_referenceElement;
4298 static PyObject *__pyx_n_s_relax;
4299 static PyObject *__pyx_n_s_reset;
4300 static PyObject *__pyx_n_s_rho;
4301 static PyObject *__pyx_n_s_rhoDown;
4302 static PyObject *__pyx_n_s_rhoUp;
4303 static PyObject *__pyx_n_s_rot_matrix;
4304 static PyObject *__pyx_n_s_rotation_matrix;
4305 static PyObject *__pyx_kp_u_s;
4306 static PyObject *__pyx_n_s_scipy;
4307 static PyObject *__pyx_n_s_seaLevel;
4308 static PyObject *__pyx_n_s_self;
4309 static PyObject *__pyx_n_s_setAtmosphere;
4310 static PyObject *__pyx_n_s_setChMoveMesh;
4311 static PyObject *__pyx_n_s_setChMoveMesh_locals_lambda;
4312 static PyObject *__pyx_n_s_setConstantBC;
4313 static PyObject *__pyx_n_s_setConstantInletVelocity;
4314 static PyObject *__pyx_n_s_setConstantOutletPressure;
4315 static PyObject *__pyx_n_s_setFixedNodes;
4316 static PyObject *__pyx_n_s_setFreeSlip;
4317 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith;
4318 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_2;
4319 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_3;
4320 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_4;
4321 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_5;
4322 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_6;
4323 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_7;
4324 static PyObject *__pyx_n_s_setHydrostaticPressureOutletWith_8;
4325 static PyObject *__pyx_n_s_setLinearBC;
4326 static PyObject *__pyx_n_s_setLinearRamp;
4327 static PyObject *__pyx_n_s_setMoveMesh;
4328 static PyObject *__pyx_n_s_setMoveMesh_locals_lambda;
4329 static PyObject *__pyx_n_s_setNoSlip;
4330 static PyObject *__pyx_n_s_setNonMaterial;
4331 static PyObject *__pyx_n_s_setRigidBodyMoveMesh;
4332 static PyObject *__pyx_n_s_setRigidBodyMoveMesh_locals_get;
4333 static PyObject *__pyx_n_s_setRigidBodyMoveMesh_locals_get_2;
4334 static PyObject *__pyx_n_s_setTank;
4335 static PyObject *__pyx_n_s_setTurbulentDirichlet;
4336 static PyObject *__pyx_n_s_setTurbulentZeroGradient;
4337 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet;
4338 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals;
4339 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_2;
4340 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_3;
4341 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_4;
4342 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_5;
4343 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_6;
4344 static PyObject *__pyx_n_s_setTwoPhaseVelocityInlet_locals_7;
4345 static PyObject *__pyx_n_s_setUnsteadyTwoPhaseVelocityInlet;
4346 static PyObject *__pyx_n_s_setUnsteadyTwoPhaseVelocityInlet_2;
4347 static PyObject *__pyx_n_s_setWallFunction;
4348 static PyObject *__pyx_n_s_setWallFunction_locals_lambda;
4349 static PyObject *__pyx_n_s_setYplusNormalDirection;
4350 static PyObject *__pyx_n_s_setstate;
4351 static PyObject *__pyx_n_s_setstate_cython;
4352 static PyObject *__pyx_n_s_shape;
4353 static PyObject *__pyx_n_s_shearStress;
4354 static PyObject *__pyx_n_s_sin;
4355 static PyObject *__pyx_n_s_size;
4356 static PyObject *__pyx_n_s_smoothedHeaviside;
4357 static PyObject *__pyx_n_s_smoothedHeaviside_integral;
4358 static PyObject *__pyx_n_s_smoothing;
4359 static PyObject *__pyx_n_s_spatial;
4360 static PyObject *__pyx_n_s_sqrt;
4361 static PyObject *__pyx_n_s_start;
4362 static PyObject *__pyx_n_s_state;
4363 static PyObject *__pyx_n_s_statem1;
4364 static PyObject *__pyx_n_s_step;
4365 static PyObject *__pyx_n_s_stop;
4366 static PyObject *__pyx_n_s_str;
4367 static PyObject *__pyx_kp_s_strided_and_direct;
4368 static PyObject *__pyx_kp_s_strided_and_direct_or_indirect;
4369 static PyObject *__pyx_kp_s_strided_and_indirect;
4370 static PyObject *__pyx_kp_s_stringsource;
4371 static PyObject *__pyx_n_s_struct;
4372 static PyObject *__pyx_n_s_sum;
4373 static PyObject *__pyx_n_s_super;
4374 static PyObject *__pyx_n_s_sys;
4375 static PyObject *__pyx_n_s_t;
4376 static PyObject *__pyx_n_s_tV;
4377 static PyObject *__pyx_n_s_tanU;
4378 static PyObject *__pyx_n_s_tangentialVelocity;
4379 static PyObject *__pyx_n_s_tau_rho;
4380 static PyObject *__pyx_n_s_test;
4381 static PyObject *__pyx_n_s_timeIntegration;
4382 static PyObject *__pyx_n_s_tompi4py;
4383 static PyObject *__pyx_n_s_tt;
4384 static PyObject *__pyx_n_s_turbModel;
4385 static PyObject *__pyx_n_s_u;
4386 static PyObject *__pyx_n_s_u0;
4387 static PyObject *__pyx_n_s_u1;
4388 static PyObject *__pyx_n_s_u2;
4389 static PyObject *__pyx_n_s_uDir;
4390 static PyObject *__pyx_n_s_uInit;
4391 static PyObject *__pyx_n_s_u_p;
4392 static PyObject *__pyx_kp_s_unable_to_allocate_array_data;
4393 static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str;
4394 static PyObject *__pyx_n_s_unpack;
4395 static PyObject *__pyx_n_s_update;
4396 static PyObject *__pyx_n_s_use_setstate;
4397 static PyObject *__pyx_n_s_ut;
4398 static PyObject *__pyx_n_s_utAbs;
4399 static PyObject *__pyx_n_s_utStar;
4400 static PyObject *__pyx_n_s_uu;
4401 static PyObject *__pyx_n_s_ux_dirichlet;
4402 static PyObject *__pyx_n_s_v;
4403 static PyObject *__pyx_n_s_velocity_porous;
4404 static PyObject *__pyx_n_s_vert_axis;
4405 static PyObject *__pyx_n_s_vof;
4406 static PyObject *__pyx_n_s_vof_air;
4407 static PyObject *__pyx_n_s_vof_water;
4408 static PyObject *__pyx_n_s_vv;
4409 static PyObject *__pyx_n_s_w;
4410 static PyObject *__pyx_n_s_wall;
4411 static PyObject *__pyx_n_s_water;
4412 static PyObject *__pyx_n_s_waterLevel;
4413 static PyObject *__pyx_n_s_wave;
4414 static PyObject *__pyx_n_s_waves;
4415 static PyObject *__pyx_n_s_wf;
4416 static PyObject *__pyx_n_s_wind_speed;
4417 static PyObject *__pyx_n_s_wt;
4418 static PyObject *__pyx_n_s_ww;
4419 static PyObject *__pyx_n_s_x;
4420 static PyObject *__pyx_n_s_x_0;
4421 static PyObject *__pyx_n_s_xi;
4422 static PyObject *__pyx_n_s_xx;
4423 static PyObject *__pyx_n_s_zeros;
4424 static PyObject *__pyx_n_s_zone_type;
4425 static PyObject *__pyx_n_s_zones;
4426 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS___init__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_shape, PyObject *__pyx_v_name, PyObject *__pyx_v_b_or, PyObject *__pyx_v_b_i, PyObject *__pyx_v_nd); /* proto */
4427 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_2reset(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4428 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4429 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_6setTank(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_b_or); /* proto */
4430 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4431 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4432 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4433 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_U, PyObject *__pyx_v_ramp, PyObject *__pyx_v_kk, PyObject *__pyx_v_dd, PyObject *__pyx_v_b_or); /* proto */
4434 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_rho, PyObject *__pyx_v_g, PyObject *__pyx_v_kk, PyObject *__pyx_v_dd, PyObject *__pyx_v_b_or); /* proto */
4435 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_orientation, PyObject *__pyx_v_vof_air, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dInflow); /* proto */
4436 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4437 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_i); /* proto */
4438 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_body); /* proto */
4439 static PyObject *__pyx_lambda_funcdef_lambda(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4440 static PyObject *__pyx_lambda_funcdef_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4441 static PyObject *__pyx_lambda_funcdef_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4442 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_body); /* proto */
4443 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_kVal, PyObject *__pyx_v_dissipationVal); /* proto */
4444 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4445 static PyObject *__pyx_lambda_funcdef_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4446 static PyObject *__pyx_lambda_funcdef_lambda4(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4447 static PyObject *__pyx_lambda_funcdef_lambda5(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4448 static PyObject *__pyx_lambda_funcdef_lambda6(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4449 static PyObject *__pyx_lambda_funcdef_lambda7(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4450 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_wall, CYTHON_UNUSED PyObject *__pyx_v_shearStress); /* proto */
4451 static PyObject *__pyx_lambda_funcdef_lambda8(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4452 static PyObject *__pyx_lambda_funcdef_lambda9(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4453 static PyObject *__pyx_lambda_funcdef_lambda10(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4454 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_last_pos, PyObject *__pyx_v_h, PyObject *__pyx_v_rot_matrix); /* proto */
4455 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_32__cpp_MoveMesh_h(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto */
4456 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_34__cpp_MoveMesh_hx(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto */
4457 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_36__cpp_MoveMesh_hy(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto */
4458 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_38__cpp_MoveMesh_hz(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t); /* proto */
4459 static PyObject *__pyx_lambda_funcdef_lambda11(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4460 static PyObject *__pyx_lambda_funcdef_lambda12(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4461 static PyObject *__pyx_lambda_funcdef_lambda13(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4462 static PyObject *__pyx_lambda_funcdef_lambda14(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4463 static PyObject *__pyx_lambda_funcdef_lambda15(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4464 static PyObject *__pyx_lambda_funcdef_lambda16(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4465 static PyObject *__pyx_lambda_funcdef_lambda17(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4466 static PyObject *__pyx_lambda_funcdef_lambda18(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4467 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_wave, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_orientation, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_vof_air, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dInflow); /* proto */
4468 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4469 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i); /* proto */
4470 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_2inlet_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4471 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_4inlet_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4472 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_6inlet_p_advective(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4473 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_8inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4474 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_10inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4475 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_U, PyObject *__pyx_v_waterLevel, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_Uwind, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_air, PyObject *__pyx_v_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dissipationInflow, PyObject *__pyx_v_kInflowAir, PyObject *__pyx_v_dissipationInflowAir); /* proto */
4476 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_hydrostaticPressureOutletWithDepth_p_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4477 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_2hydrostaticPressureOutletWithDepth_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4478 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_4hydrostaticPressureOutletWithDepth_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4479 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_6inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4480 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_8inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4481 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4482 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i); /* proto */
4483 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_seaLevel, PyObject *__pyx_v_rhoUp, PyObject *__pyx_v_rhoDown, PyObject *__pyx_v_g, PyObject *__pyx_v_refLevel, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_orientation, PyObject *__pyx_v_U, PyObject *__pyx_v_Uwind, PyObject *__pyx_v_pRef, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_air, PyObject *__pyx_v_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dissipationInflow, PyObject *__pyx_v_kInflowAir, PyObject *__pyx_v_dissipationInflowAir); /* proto */
4484 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4485 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4486 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4487 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4488 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4489 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4490 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4491 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4492 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4493 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4494 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4495 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4496 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4497 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4498 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4499 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4500 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4501 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4502 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4503 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4504 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4505 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4506 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4507 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4508 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4509 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4510 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4511 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4512 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4513 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4514 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4515 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4516 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4517 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4518 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4519 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4520 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4521 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4522 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4523 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4524 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4525 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4526 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4527 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4528 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4529 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4530 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4531 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4532 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4533 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4534 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4535 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4536 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4537 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4538 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4539 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4540 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4541 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4542 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4543 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4544 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4545 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4546 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4547 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4548 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4549 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4550 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4551 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4552 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4553 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4554 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4555 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4556 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4557 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4558 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4559 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4560 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4561 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4562 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4563 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4564 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4565 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4566 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4567 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4568 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4569 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4570 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4571 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4572 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4573 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4574 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4575 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4576 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4577 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4578 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4579 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4580 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4581 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4582 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4583 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4584 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4585 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4586 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4587 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4588 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4589 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4590 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4591 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4592 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4593 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4594 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4595 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4596 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4597 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4598 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4599 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4600 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4601 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4602 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4603 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4604 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4605 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4606 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4607 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4608 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4609 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4610 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4611 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4612 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4613 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4614 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4615 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4616 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4617 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4618 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4619 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4620 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4621 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4622 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4623 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4624 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4625 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self); /* proto */
4626 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
4627 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone___cinit__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_zone_type, PyObject *__pyx_v_center, PyObject *__pyx_v_orientation, PyObject *__pyx_v_epsFact_porous, PyObject *__pyx_v_waves, PyObject *__pyx_v_shape, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_dragAlpha, PyObject *__pyx_v_dragBeta, PyObject *__pyx_v_porosity, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_vof_air); /* proto */
4628 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_2calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4629 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_x); /* proto */
4630 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n); /* proto */
4631 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4632 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4633 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4634 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4635 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4636 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4637 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4638 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4639 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4640 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4641 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4642 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4643 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4644 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4645 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4646 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4647 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4648 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4649 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4650 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4651 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4652 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4653 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self); /* proto */
4654 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
4655 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___init__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_zones, PyObject *__pyx_v_nd); /* proto */
4656 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar); /* proto */
4657 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict); /* proto */
4658 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_6calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4659 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_8calculate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4660 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4661 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4662 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4663 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4664 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4665 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4666 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4667 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4668 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4669 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self); /* proto */
4670 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
4671 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___init__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v_waves, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_b_or, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_vof_air); /* proto */
4672 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT___get__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self); /* proto */
4673 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
4674 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self); /* proto */
4675 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self); /* proto */
4676 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
4677 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_turbModel, PyObject *__pyx_v_kWall, PyObject *__pyx_v_Y, PyObject *__pyx_v_Yplus, PyObject *__pyx_v_U0, PyObject *__pyx_v_nu, PyObject *__pyx_v_Cmu, PyObject *__pyx_v_K, PyObject *__pyx_v_B); /* proto */
4678 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_2attachModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar); /* proto */
4679 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_4attachAuxiliaryVariables(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict); /* proto */
4680 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_6calculate_init(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
4681 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_8calculate(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
4682 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_10getLocalNearestNode(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_coords, PyObject *__pyx_v_kdtree); /* proto */
4683 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_12getLocalElement(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_femSpace, PyObject *__pyx_v_coords, PyObject *__pyx_v_node); /* proto */
4684 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_14findElementContainingCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_coords); /* proto */
4685 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_16getFluidVelocityLocalCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank); /* proto */
4686 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_18setYplusNormalDirection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_n, PyObject *__pyx_v_relax); /* proto */
4687 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_20extractVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4688 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_22tangentialVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n, PyObject *__pyx_v_uInit); /* proto */
4689 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_24getVariables(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t); /* proto */
4690 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_26get_u_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4691 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_28get_v_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4692 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_30get_w_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4693 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_32get_k_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4694 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_34get_dissipation_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4695 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_36get_u_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4696 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_38get_v_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4697 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_40get_w_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n); /* proto */
4698 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_Y, PyObject *__pyx_v_Yplus, PyObject *__pyx_v_nu, PyObject *__pyx_v_Cmu); /* proto */
4699 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_2attachModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar); /* proto */
4700 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_4attachAuxiliaryVariables(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict); /* proto */
4701 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_6calculate_init(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
4702 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_8calculate(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
4703 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_10getFluidKappaLocalCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank); /* proto */
4704 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_12kappaNearWall(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank, PyObject *__pyx_v_kInit); /* proto */
4705 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_14getKappa(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank); /* proto */
4706 static PyObject *__pyx_pf_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
4707 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_2__pyx_unpickle_RelaxationZoneWaveGenerator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
4708 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_4__pyx_unpickle___cppClass_WavesCharacteristics(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
4709 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */
4710 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
4711 static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */
4712 static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */
4713 static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */
4714 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */
4715 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
4716 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */
4717 static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */
4718 static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
4719 static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
4720 static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
4721 static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
4722 static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
4723 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */
4724 static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4725 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */
4726 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */
4727 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
4728 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4729 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4730 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4731 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4732 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4733 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4734 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4735 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4736 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4737 static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4738 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4739 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4740 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4741 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4742 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4743 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4744 static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
4745 static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
4746 static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
4747 static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
4748 static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
4749 static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
4750 static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
4751 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_BC_RANS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4752 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZone(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4753 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4754 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4755 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4756 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4757 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4758 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4759 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4760 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4761 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4762 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4763 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4764 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4765 static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4766 static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4767 static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4768 static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
4769 static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items = {0, &__pyx_n_s_items, 0, 0, 0};
4770 static PyObject *__pyx_float_0_;
4771 static PyObject *__pyx_float_1_;
4772 static PyObject *__pyx_float_2_;
4773 static PyObject *__pyx_float_0_0;
4774 static PyObject *__pyx_float_0_5;
4775 static PyObject *__pyx_float_1_0;
4776 static PyObject *__pyx_float_0_09;
4777 static PyObject *__pyx_float_0_25;
4778 static PyObject *__pyx_float_0_41;
4779 static PyObject *__pyx_float_5_57;
4780 static PyObject *__pyx_float_1eneg_10;
4781 static PyObject *__pyx_float_1eneg_20;
4782 static PyObject *__pyx_float_1eneg_30;
4783 static PyObject *__pyx_float_11_225;
4784 static PyObject *__pyx_float_1_004eneg_6;
4785 static PyObject *__pyx_float_1_005eneg_6;
4786 static PyObject *__pyx_float_neg_1_;
4787 static PyObject *__pyx_int_0;
4788 static PyObject *__pyx_int_1;
4789 static PyObject *__pyx_int_2;
4790 static PyObject *__pyx_int_3;
4791 static PyObject *__pyx_int_3281892;
4792 static PyObject *__pyx_int_24898426;
4793 static PyObject *__pyx_int_37384334;
4794 static PyObject *__pyx_int_95533784;
4795 static PyObject *__pyx_int_112105877;
4796 static PyObject *__pyx_int_136983863;
4797 static PyObject *__pyx_int_161222453;
4798 static PyObject *__pyx_int_184977713;
4799 static PyObject *__pyx_int_190238252;
4800 static PyObject *__pyx_int_207031348;
4801 static PyObject *__pyx_int_216769129;
4802 static PyObject *__pyx_int_249493883;
4803 static PyObject *__pyx_int_neg_1;
4804 static PyObject *__pyx_k__90;
4805 static PyObject *__pyx_k__91;
4806 static PyObject *__pyx_codeobj_;
4807 static PyObject *__pyx_tuple__10;
4808 static PyObject *__pyx_tuple__12;
4809 static PyObject *__pyx_tuple__14;
4810 static PyObject *__pyx_tuple__17;
4811 static PyObject *__pyx_tuple__18;
4812 static PyObject *__pyx_tuple__19;
4813 static PyObject *__pyx_tuple__23;
4814 static PyObject *__pyx_tuple__24;
4815 static PyObject *__pyx_tuple__25;
4816 static PyObject *__pyx_tuple__26;
4817 static PyObject *__pyx_tuple__27;
4818 static PyObject *__pyx_tuple__28;
4819 static PyObject *__pyx_tuple__30;
4820 static PyObject *__pyx_tuple__31;
4821 static PyObject *__pyx_tuple__32;
4822 static PyObject *__pyx_tuple__38;
4823 static PyObject *__pyx_tuple__39;
4824 static PyObject *__pyx_tuple__40;
4825 static PyObject *__pyx_tuple__41;
4826 static PyObject *__pyx_tuple__42;
4827 static PyObject *__pyx_tuple__43;
4828 static PyObject *__pyx_tuple__44;
4829 static PyObject *__pyx_tuple__45;
4830 static PyObject *__pyx_tuple__46;
4831 static PyObject *__pyx_tuple__48;
4832 static PyObject *__pyx_tuple__50;
4833 static PyObject *__pyx_tuple__52;
4834 static PyObject *__pyx_tuple__54;
4835 static PyObject *__pyx_tuple__55;
4836 static PyObject *__pyx_tuple__57;
4837 static PyObject *__pyx_tuple__58;
4838 static PyObject *__pyx_tuple__60;
4839 static PyObject *__pyx_tuple__61;
4840 static PyObject *__pyx_tuple__63;
4841 static PyObject *__pyx_tuple__64;
4842 static PyObject *__pyx_tuple__66;
4843 static PyObject *__pyx_tuple__67;
4844 static PyObject *__pyx_tuple__69;
4845 static PyObject *__pyx_tuple__71;
4846 static PyObject *__pyx_tuple__73;
4847 static PyObject *__pyx_tuple__74;
4848 static PyObject *__pyx_tuple__76;
4849 static PyObject *__pyx_tuple__77;
4850 static PyObject *__pyx_tuple__79;
4851 static PyObject *__pyx_tuple__80;
4852 static PyObject *__pyx_tuple__82;
4853 static PyObject *__pyx_tuple__83;
4854 static PyObject *__pyx_tuple__85;
4855 static PyObject *__pyx_tuple__86;
4856 static PyObject *__pyx_tuple__96;
4857 static PyObject *__pyx_tuple__98;
4858 static PyObject *__pyx_codeobj__2;
4859 static PyObject *__pyx_codeobj__3;
4860 static PyObject *__pyx_codeobj__4;
4861 static PyObject *__pyx_codeobj__5;
4862 static PyObject *__pyx_codeobj__6;
4863 static PyObject *__pyx_codeobj__7;
4864 static PyObject *__pyx_codeobj__8;
4865 static PyObject *__pyx_codeobj__9;
4866 static PyObject *__pyx_slice__117;
4867 static PyObject *__pyx_slice__159;
4868 static PyObject *__pyx_tuple__138;
4869 static PyObject *__pyx_tuple__140;
4870 static PyObject *__pyx_tuple__142;
4871 static PyObject *__pyx_tuple__143;
4872 static PyObject *__pyx_tuple__144;
4873 static PyObject *__pyx_tuple__145;
4874 static PyObject *__pyx_tuple__146;
4875 static PyObject *__pyx_tuple__147;
4876 static PyObject *__pyx_tuple__148;
4877 static PyObject *__pyx_tuple__149;
4878 static PyObject *__pyx_tuple__150;
4879 static PyObject *__pyx_tuple__151;
4880 static PyObject *__pyx_tuple__152;
4881 static PyObject *__pyx_tuple__153;
4882 static PyObject *__pyx_tuple__154;
4883 static PyObject *__pyx_tuple__155;
4884 static PyObject *__pyx_tuple__156;
4885 static PyObject *__pyx_tuple__157;
4886 static PyObject *__pyx_tuple__158;
4887 static PyObject *__pyx_tuple__160;
4888 static PyObject *__pyx_tuple__161;
4889 static PyObject *__pyx_tuple__162;
4890 static PyObject *__pyx_tuple__164;
4891 static PyObject *__pyx_tuple__170;
4892 static PyObject *__pyx_tuple__171;
4893 static PyObject *__pyx_tuple__172;
4894 static PyObject *__pyx_tuple__173;
4895 static PyObject *__pyx_tuple__174;
4896 static PyObject *__pyx_tuple__175;
4897 static PyObject *__pyx_tuple__176;
4898 static PyObject *__pyx_tuple__177;
4899 static PyObject *__pyx_tuple__178;
4900 static PyObject *__pyx_tuple__179;
4901 static PyObject *__pyx_tuple__180;
4902 static PyObject *__pyx_tuple__181;
4903 static PyObject *__pyx_tuple__182;
4904 static PyObject *__pyx_tuple__183;
4905 static PyObject *__pyx_tuple__184;
4906 static PyObject *__pyx_tuple__185;
4907 static PyObject *__pyx_tuple__186;
4908 static PyObject *__pyx_tuple__187;
4909 static PyObject *__pyx_tuple__188;
4910 static PyObject *__pyx_tuple__189;
4911 static PyObject *__pyx_tuple__190;
4912 static PyObject *__pyx_tuple__191;
4913 static PyObject *__pyx_tuple__192;
4914 static PyObject *__pyx_tuple__193;
4915 static PyObject *__pyx_tuple__194;
4916 static PyObject *__pyx_tuple__195;
4917 static PyObject *__pyx_tuple__196;
4918 static PyObject *__pyx_tuple__197;
4919 static PyObject *__pyx_tuple__198;
4920 static PyObject *__pyx_tuple__199;
4921 static PyObject *__pyx_tuple__200;
4922 static PyObject *__pyx_tuple__201;
4923 static PyObject *__pyx_tuple__202;
4924 static PyObject *__pyx_tuple__203;
4925 static PyObject *__pyx_tuple__204;
4926 static PyObject *__pyx_tuple__205;
4927 static PyObject *__pyx_tuple__206;
4928 static PyObject *__pyx_tuple__207;
4929 static PyObject *__pyx_tuple__208;
4930 static PyObject *__pyx_tuple__209;
4931 static PyObject *__pyx_tuple__210;
4932 static PyObject *__pyx_tuple__211;
4933 static PyObject *__pyx_tuple__212;
4934 static PyObject *__pyx_tuple__213;
4935 static PyObject *__pyx_tuple__214;
4936 static PyObject *__pyx_tuple__215;
4937 static PyObject *__pyx_tuple__216;
4938 static PyObject *__pyx_tuple__217;
4939 static PyObject *__pyx_tuple__218;
4940 static PyObject *__pyx_tuple__219;
4941 static PyObject *__pyx_tuple__220;
4942 static PyObject *__pyx_tuple__221;
4943 static PyObject *__pyx_tuple__222;
4944 static PyObject *__pyx_tuple__223;
4945 static PyObject *__pyx_tuple__224;
4946 static PyObject *__pyx_tuple__225;
4947 static PyObject *__pyx_tuple__226;
4948 static PyObject *__pyx_tuple__227;
4949 static PyObject *__pyx_tuple__228;
4950 static PyObject *__pyx_tuple__229;
4951 static PyObject *__pyx_tuple__230;
4952 static PyObject *__pyx_tuple__231;
4953 static PyObject *__pyx_tuple__232;
4954 static PyObject *__pyx_tuple__233;
4955 static PyObject *__pyx_tuple__234;
4956 static PyObject *__pyx_tuple__235;
4957 static PyObject *__pyx_tuple__236;
4958 static PyObject *__pyx_tuple__237;
4959 static PyObject *__pyx_tuple__238;
4960 static PyObject *__pyx_tuple__239;
4961 static PyObject *__pyx_tuple__240;
4962 static PyObject *__pyx_tuple__241;
4963 static PyObject *__pyx_tuple__242;
4964 static PyObject *__pyx_tuple__243;
4965 static PyObject *__pyx_tuple__244;
4966 static PyObject *__pyx_tuple__245;
4967 static PyObject *__pyx_tuple__246;
4968 static PyObject *__pyx_tuple__247;
4969 static PyObject *__pyx_tuple__248;
4970 static PyObject *__pyx_tuple__249;
4971 static PyObject *__pyx_tuple__250;
4972 static PyObject *__pyx_codeobj__11;
4973 static PyObject *__pyx_codeobj__13;
4974 static PyObject *__pyx_codeobj__15;
4975 static PyObject *__pyx_codeobj__16;
4976 static PyObject *__pyx_codeobj__20;
4977 static PyObject *__pyx_codeobj__21;
4978 static PyObject *__pyx_codeobj__22;
4979 static PyObject *__pyx_codeobj__29;
4980 static PyObject *__pyx_codeobj__33;
4981 static PyObject *__pyx_codeobj__34;
4982 static PyObject *__pyx_codeobj__35;
4983 static PyObject *__pyx_codeobj__36;
4984 static PyObject *__pyx_codeobj__37;
4985 static PyObject *__pyx_codeobj__47;
4986 static PyObject *__pyx_codeobj__49;
4987 static PyObject *__pyx_codeobj__51;
4988 static PyObject *__pyx_codeobj__53;
4989 static PyObject *__pyx_codeobj__56;
4990 static PyObject *__pyx_codeobj__59;
4991 static PyObject *__pyx_codeobj__62;
4992 static PyObject *__pyx_codeobj__65;
4993 static PyObject *__pyx_codeobj__68;
4994 static PyObject *__pyx_codeobj__70;
4995 static PyObject *__pyx_codeobj__72;
4996 static PyObject *__pyx_codeobj__75;
4997 static PyObject *__pyx_codeobj__78;
4998 static PyObject *__pyx_codeobj__81;
4999 static PyObject *__pyx_codeobj__84;
5000 static PyObject *__pyx_codeobj__87;
5001 static PyObject *__pyx_codeobj__88;
5002 static PyObject *__pyx_codeobj__89;
5003 static PyObject *__pyx_codeobj__92;
5004 static PyObject *__pyx_codeobj__93;
5005 static PyObject *__pyx_codeobj__94;
5006 static PyObject *__pyx_codeobj__95;
5007 static PyObject *__pyx_codeobj__97;
5008 static PyObject *__pyx_codeobj__99;
5009 static PyObject *__pyx_codeobj__100;
5010 static PyObject *__pyx_codeobj__101;
5011 static PyObject *__pyx_codeobj__102;
5012 static PyObject *__pyx_codeobj__103;
5013 static PyObject *__pyx_codeobj__104;
5014 static PyObject *__pyx_codeobj__105;
5015 static PyObject *__pyx_codeobj__106;
5016 static PyObject *__pyx_codeobj__107;
5017 static PyObject *__pyx_codeobj__108;
5018 static PyObject *__pyx_codeobj__109;
5019 static PyObject *__pyx_codeobj__110;
5020 static PyObject *__pyx_codeobj__111;
5021 static PyObject *__pyx_codeobj__112;
5022 static PyObject *__pyx_codeobj__113;
5023 static PyObject *__pyx_codeobj__114;
5024 static PyObject *__pyx_codeobj__115;
5025 static PyObject *__pyx_codeobj__116;
5026 static PyObject *__pyx_codeobj__118;
5027 static PyObject *__pyx_codeobj__119;
5028 static PyObject *__pyx_codeobj__120;
5029 static PyObject *__pyx_codeobj__121;
5030 static PyObject *__pyx_codeobj__122;
5031 static PyObject *__pyx_codeobj__123;
5032 static PyObject *__pyx_codeobj__124;
5033 static PyObject *__pyx_codeobj__125;
5034 static PyObject *__pyx_codeobj__126;
5035 static PyObject *__pyx_codeobj__127;
5036 static PyObject *__pyx_codeobj__128;
5037 static PyObject *__pyx_codeobj__129;
5038 static PyObject *__pyx_codeobj__130;
5039 static PyObject *__pyx_codeobj__131;
5040 static PyObject *__pyx_codeobj__132;
5041 static PyObject *__pyx_codeobj__133;
5042 static PyObject *__pyx_codeobj__134;
5043 static PyObject *__pyx_codeobj__135;
5044 static PyObject *__pyx_codeobj__136;
5045 static PyObject *__pyx_codeobj__137;
5046 static PyObject *__pyx_codeobj__139;
5047 static PyObject *__pyx_codeobj__141;
5048 static PyObject *__pyx_codeobj__163;
5049 /* Late includes */
5050 
5051 /* "mprans/BoundaryConditions.py":43
5052  * """
5053  *
5054  * def __init__(self, shape=None, name=None, b_or=None, b_i=0., nd=None): # <<<<<<<<<<<<<<
5055  * super(BC_RANS, self).__init__(shape=shape, name=name, b_or=b_or, b_i=b_i, nd=nd)
5056  * # _dirichlet
5057  */
5058 
5059 /* Python wrapper */
5060 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5061 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5062  PyObject *__pyx_v_shape = 0;
5063  PyObject *__pyx_v_name = 0;
5064  PyObject *__pyx_v_b_or = 0;
5065  PyObject *__pyx_v_b_i = 0;
5066  PyObject *__pyx_v_nd = 0;
5067  int __pyx_lineno = 0;
5068  const char *__pyx_filename = NULL;
5069  int __pyx_clineno = 0;
5070  int __pyx_r;
5071  __Pyx_RefNannyDeclarations
5072  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5073  {
5074  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_name,&__pyx_n_s_b_or,&__pyx_n_s_b_i,&__pyx_n_s_nd,0};
5075  PyObject* values[5] = {0,0,0,0,0};
5076  values[0] = ((PyObject *)Py_None);
5077  values[1] = ((PyObject *)Py_None);
5078  values[2] = ((PyObject *)Py_None);
5079  values[3] = ((PyObject *)__pyx_float_0_);
5080  values[4] = ((PyObject *)Py_None);
5081  if (unlikely(__pyx_kwds)) {
5082  Py_ssize_t kw_args;
5083  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5084  switch (pos_args) {
5085  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5086  CYTHON_FALLTHROUGH;
5087  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5088  CYTHON_FALLTHROUGH;
5089  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5090  CYTHON_FALLTHROUGH;
5091  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5092  CYTHON_FALLTHROUGH;
5093  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5094  CYTHON_FALLTHROUGH;
5095  case 0: break;
5096  default: goto __pyx_L5_argtuple_error;
5097  }
5098  kw_args = PyDict_Size(__pyx_kwds);
5099  switch (pos_args) {
5100  case 0:
5101  if (kw_args > 0) {
5102  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape);
5103  if (value) { values[0] = value; kw_args--; }
5104  }
5105  CYTHON_FALLTHROUGH;
5106  case 1:
5107  if (kw_args > 0) {
5108  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
5109  if (value) { values[1] = value; kw_args--; }
5110  }
5111  CYTHON_FALLTHROUGH;
5112  case 2:
5113  if (kw_args > 0) {
5114  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_or);
5115  if (value) { values[2] = value; kw_args--; }
5116  }
5117  CYTHON_FALLTHROUGH;
5118  case 3:
5119  if (kw_args > 0) {
5120  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_i);
5121  if (value) { values[3] = value; kw_args--; }
5122  }
5123  CYTHON_FALLTHROUGH;
5124  case 4:
5125  if (kw_args > 0) {
5126  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd);
5127  if (value) { values[4] = value; kw_args--; }
5128  }
5129  }
5130  if (unlikely(kw_args > 0)) {
5131  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 43, __pyx_L3_error)
5132  }
5133  } else {
5134  switch (PyTuple_GET_SIZE(__pyx_args)) {
5135  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5136  CYTHON_FALLTHROUGH;
5137  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5138  CYTHON_FALLTHROUGH;
5139  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5140  CYTHON_FALLTHROUGH;
5141  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5142  CYTHON_FALLTHROUGH;
5143  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5144  CYTHON_FALLTHROUGH;
5145  case 0: break;
5146  default: goto __pyx_L5_argtuple_error;
5147  }
5148  }
5149  __pyx_v_shape = values[0];
5150  __pyx_v_name = values[1];
5151  __pyx_v_b_or = values[2];
5152  __pyx_v_b_i = values[3];
5153  __pyx_v_nd = values[4];
5154  }
5155  goto __pyx_L4_argument_unpacking_done;
5156  __pyx_L5_argtuple_error:;
5157  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 43, __pyx_L3_error)
5158  __pyx_L3_error:;
5159  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5160  __Pyx_RefNannyFinishContext();
5161  return -1;
5162  __pyx_L4_argument_unpacking_done:;
5163  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS___init__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_shape, __pyx_v_name, __pyx_v_b_or, __pyx_v_b_i, __pyx_v_nd);
5164 
5165  /* function exit code */
5166  __Pyx_RefNannyFinishContext();
5167  return __pyx_r;
5168 }
5169 
5170 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS___init__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_shape, PyObject *__pyx_v_name, PyObject *__pyx_v_b_or, PyObject *__pyx_v_b_i, PyObject *__pyx_v_nd) {
5171  int __pyx_r;
5172  __Pyx_TraceDeclarations
5173  __Pyx_RefNannyDeclarations
5174  PyObject *__pyx_t_1 = NULL;
5175  PyObject *__pyx_t_2 = NULL;
5176  PyObject *__pyx_t_3 = NULL;
5177  int __pyx_lineno = 0;
5178  const char *__pyx_filename = NULL;
5179  int __pyx_clineno = 0;
5180  __Pyx_RefNannySetupContext("__init__", 0);
5181  __Pyx_TraceCall("__init__", __pyx_f[0], 43, 0, __PYX_ERR(0, 43, __pyx_L1_error));
5182 
5183  /* "mprans/BoundaryConditions.py":44
5184  *
5185  * def __init__(self, shape=None, name=None, b_or=None, b_i=0., nd=None):
5186  * super(BC_RANS, self).__init__(shape=shape, name=name, b_or=b_or, b_i=b_i, nd=nd) # <<<<<<<<<<<<<<
5187  * # _dirichlet
5188  * self.p_dirichlet = BoundaryCondition() # pressure
5189  */
5190  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
5191  __Pyx_GOTREF(__pyx_t_1);
5192  __Pyx_INCREF(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS));
5193  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS));
5194  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS));
5195  __Pyx_INCREF(((PyObject *)__pyx_v_self));
5196  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
5197  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
5198  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
5199  __Pyx_GOTREF(__pyx_t_2);
5200  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5201  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
5202  __Pyx_GOTREF(__pyx_t_1);
5203  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5204  __pyx_t_2 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
5205  __Pyx_GOTREF(__pyx_t_2);
5206  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_shape, __pyx_v_shape) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
5207  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
5208  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_b_or, __pyx_v_b_or) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
5209  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_b_i, __pyx_v_b_i) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
5210  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nd, __pyx_v_nd) < 0) __PYX_ERR(0, 44, __pyx_L1_error)
5211  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error)
5212  __Pyx_GOTREF(__pyx_t_3);
5213  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5214  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5215  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5216 
5217  /* "mprans/BoundaryConditions.py":46
5218  * super(BC_RANS, self).__init__(shape=shape, name=name, b_or=b_or, b_i=b_i, nd=nd)
5219  * # _dirichlet
5220  * self.p_dirichlet = BoundaryCondition() # pressure # <<<<<<<<<<<<<<
5221  * self.u_dirichlet = BoundaryCondition() # velocity u
5222  * self.v_dirichlet = BoundaryCondition() # velocity v
5223  */
5224  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error)
5225  __Pyx_GOTREF(__pyx_t_3);
5226  __Pyx_GIVEREF(__pyx_t_3);
5227  __Pyx_GOTREF(__pyx_v_self->p_dirichlet);
5228  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_dirichlet));
5229  __pyx_v_self->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5230  __pyx_t_3 = 0;
5231 
5232  /* "mprans/BoundaryConditions.py":47
5233  * # _dirichlet
5234  * self.p_dirichlet = BoundaryCondition() # pressure
5235  * self.u_dirichlet = BoundaryCondition() # velocity u # <<<<<<<<<<<<<<
5236  * self.v_dirichlet = BoundaryCondition() # velocity v
5237  * self.w_dirichlet = BoundaryCondition() # velocity w
5238  */
5239  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error)
5240  __Pyx_GOTREF(__pyx_t_3);
5241  __Pyx_GIVEREF(__pyx_t_3);
5242  __Pyx_GOTREF(__pyx_v_self->u_dirichlet);
5243  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_dirichlet));
5244  __pyx_v_self->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5245  __pyx_t_3 = 0;
5246 
5247  /* "mprans/BoundaryConditions.py":48
5248  * self.p_dirichlet = BoundaryCondition() # pressure
5249  * self.u_dirichlet = BoundaryCondition() # velocity u
5250  * self.v_dirichlet = BoundaryCondition() # velocity v # <<<<<<<<<<<<<<
5251  * self.w_dirichlet = BoundaryCondition() # velocity w
5252  * self.phi_dirichlet = BoundaryCondition() # phi
5253  */
5254  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error)
5255  __Pyx_GOTREF(__pyx_t_3);
5256  __Pyx_GIVEREF(__pyx_t_3);
5257  __Pyx_GOTREF(__pyx_v_self->v_dirichlet);
5258  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_dirichlet));
5259  __pyx_v_self->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5260  __pyx_t_3 = 0;
5261 
5262  /* "mprans/BoundaryConditions.py":49
5263  * self.u_dirichlet = BoundaryCondition() # velocity u
5264  * self.v_dirichlet = BoundaryCondition() # velocity v
5265  * self.w_dirichlet = BoundaryCondition() # velocity w # <<<<<<<<<<<<<<
5266  * self.phi_dirichlet = BoundaryCondition() # phi
5267  * self.vof_dirichlet = BoundaryCondition() # VOF
5268  */
5269  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error)
5270  __Pyx_GOTREF(__pyx_t_3);
5271  __Pyx_GIVEREF(__pyx_t_3);
5272  __Pyx_GOTREF(__pyx_v_self->w_dirichlet);
5273  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_dirichlet));
5274  __pyx_v_self->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5275  __pyx_t_3 = 0;
5276 
5277  /* "mprans/BoundaryConditions.py":50
5278  * self.v_dirichlet = BoundaryCondition() # velocity v
5279  * self.w_dirichlet = BoundaryCondition() # velocity w
5280  * self.phi_dirichlet = BoundaryCondition() # phi # <<<<<<<<<<<<<<
5281  * self.vof_dirichlet = BoundaryCondition() # VOF
5282  * self.k_dirichlet = BoundaryCondition() # kappa
5283  */
5284  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error)
5285  __Pyx_GOTREF(__pyx_t_3);
5286  __Pyx_GIVEREF(__pyx_t_3);
5287  __Pyx_GOTREF(__pyx_v_self->phi_dirichlet);
5288  __Pyx_DECREF(((PyObject *)__pyx_v_self->phi_dirichlet));
5289  __pyx_v_self->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5290  __pyx_t_3 = 0;
5291 
5292  /* "mprans/BoundaryConditions.py":51
5293  * self.w_dirichlet = BoundaryCondition() # velocity w
5294  * self.phi_dirichlet = BoundaryCondition() # phi
5295  * self.vof_dirichlet = BoundaryCondition() # VOF # <<<<<<<<<<<<<<
5296  * self.k_dirichlet = BoundaryCondition() # kappa
5297  * self.dissipation_dirichlet = BoundaryCondition() # dissipation
5298  */
5299  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error)
5300  __Pyx_GOTREF(__pyx_t_3);
5301  __Pyx_GIVEREF(__pyx_t_3);
5302  __Pyx_GOTREF(__pyx_v_self->vof_dirichlet);
5303  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_dirichlet));
5304  __pyx_v_self->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5305  __pyx_t_3 = 0;
5306 
5307  /* "mprans/BoundaryConditions.py":52
5308  * self.phi_dirichlet = BoundaryCondition() # phi
5309  * self.vof_dirichlet = BoundaryCondition() # VOF
5310  * self.k_dirichlet = BoundaryCondition() # kappa # <<<<<<<<<<<<<<
5311  * self.dissipation_dirichlet = BoundaryCondition() # dissipation
5312  * self.pAddedMass_dirichlet = BoundaryCondition()
5313  */
5314  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
5315  __Pyx_GOTREF(__pyx_t_3);
5316  __Pyx_GIVEREF(__pyx_t_3);
5317  __Pyx_GOTREF(__pyx_v_self->k_dirichlet);
5318  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_dirichlet));
5319  __pyx_v_self->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5320  __pyx_t_3 = 0;
5321 
5322  /* "mprans/BoundaryConditions.py":53
5323  * self.vof_dirichlet = BoundaryCondition() # VOF
5324  * self.k_dirichlet = BoundaryCondition() # kappa
5325  * self.dissipation_dirichlet = BoundaryCondition() # dissipation # <<<<<<<<<<<<<<
5326  * self.pAddedMass_dirichlet = BoundaryCondition()
5327  * # _advective
5328  */
5329  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __pyx_L1_error)
5330  __Pyx_GOTREF(__pyx_t_3);
5331  __Pyx_GIVEREF(__pyx_t_3);
5332  __Pyx_GOTREF(__pyx_v_self->dissipation_dirichlet);
5333  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
5334  __pyx_v_self->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5335  __pyx_t_3 = 0;
5336 
5337  /* "mprans/BoundaryConditions.py":54
5338  * self.k_dirichlet = BoundaryCondition() # kappa
5339  * self.dissipation_dirichlet = BoundaryCondition() # dissipation
5340  * self.pAddedMass_dirichlet = BoundaryCondition() # <<<<<<<<<<<<<<
5341  * # _advective
5342  * self.p_advective = BoundaryCondition()
5343  */
5344  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error)
5345  __Pyx_GOTREF(__pyx_t_3);
5346  __Pyx_GIVEREF(__pyx_t_3);
5347  __Pyx_GOTREF(__pyx_v_self->pAddedMass_dirichlet);
5348  __Pyx_DECREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
5349  __pyx_v_self->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5350  __pyx_t_3 = 0;
5351 
5352  /* "mprans/BoundaryConditions.py":56
5353  * self.pAddedMass_dirichlet = BoundaryCondition()
5354  * # _advective
5355  * self.p_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5356  * self.u_advective = BoundaryCondition()
5357  * self.v_advective = BoundaryCondition()
5358  */
5359  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error)
5360  __Pyx_GOTREF(__pyx_t_3);
5361  __Pyx_GIVEREF(__pyx_t_3);
5362  __Pyx_GOTREF(__pyx_v_self->p_advective);
5363  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_advective));
5364  __pyx_v_self->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5365  __pyx_t_3 = 0;
5366 
5367  /* "mprans/BoundaryConditions.py":57
5368  * # _advective
5369  * self.p_advective = BoundaryCondition()
5370  * self.u_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5371  * self.v_advective = BoundaryCondition()
5372  * self.w_advective = BoundaryCondition()
5373  */
5374  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error)
5375  __Pyx_GOTREF(__pyx_t_3);
5376  __Pyx_GIVEREF(__pyx_t_3);
5377  __Pyx_GOTREF(__pyx_v_self->u_advective);
5378  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_advective));
5379  __pyx_v_self->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5380  __pyx_t_3 = 0;
5381 
5382  /* "mprans/BoundaryConditions.py":58
5383  * self.p_advective = BoundaryCondition()
5384  * self.u_advective = BoundaryCondition()
5385  * self.v_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5386  * self.w_advective = BoundaryCondition()
5387  * self.vof_advective = BoundaryCondition()
5388  */
5389  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error)
5390  __Pyx_GOTREF(__pyx_t_3);
5391  __Pyx_GIVEREF(__pyx_t_3);
5392  __Pyx_GOTREF(__pyx_v_self->v_advective);
5393  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_advective));
5394  __pyx_v_self->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5395  __pyx_t_3 = 0;
5396 
5397  /* "mprans/BoundaryConditions.py":59
5398  * self.u_advective = BoundaryCondition()
5399  * self.v_advective = BoundaryCondition()
5400  * self.w_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5401  * self.vof_advective = BoundaryCondition()
5402  * self.k_advective = BoundaryCondition()
5403  */
5404  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error)
5405  __Pyx_GOTREF(__pyx_t_3);
5406  __Pyx_GIVEREF(__pyx_t_3);
5407  __Pyx_GOTREF(__pyx_v_self->w_advective);
5408  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_advective));
5409  __pyx_v_self->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5410  __pyx_t_3 = 0;
5411 
5412  /* "mprans/BoundaryConditions.py":60
5413  * self.v_advective = BoundaryCondition()
5414  * self.w_advective = BoundaryCondition()
5415  * self.vof_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5416  * self.k_advective = BoundaryCondition()
5417  * self.dissipation_advective = BoundaryCondition()
5418  */
5419  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error)
5420  __Pyx_GOTREF(__pyx_t_3);
5421  __Pyx_GIVEREF(__pyx_t_3);
5422  __Pyx_GOTREF(__pyx_v_self->vof_advective);
5423  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_advective));
5424  __pyx_v_self->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5425  __pyx_t_3 = 0;
5426 
5427  /* "mprans/BoundaryConditions.py":61
5428  * self.w_advective = BoundaryCondition()
5429  * self.vof_advective = BoundaryCondition()
5430  * self.k_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5431  * self.dissipation_advective = BoundaryCondition()
5432  * # _diffusive
5433  */
5434  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error)
5435  __Pyx_GOTREF(__pyx_t_3);
5436  __Pyx_GIVEREF(__pyx_t_3);
5437  __Pyx_GOTREF(__pyx_v_self->k_advective);
5438  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_advective));
5439  __pyx_v_self->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5440  __pyx_t_3 = 0;
5441 
5442  /* "mprans/BoundaryConditions.py":62
5443  * self.vof_advective = BoundaryCondition()
5444  * self.k_advective = BoundaryCondition()
5445  * self.dissipation_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5446  * # _diffusive
5447  * self.u_diffusive = BoundaryCondition()
5448  */
5449  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error)
5450  __Pyx_GOTREF(__pyx_t_3);
5451  __Pyx_GIVEREF(__pyx_t_3);
5452  __Pyx_GOTREF(__pyx_v_self->dissipation_advective);
5453  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_advective));
5454  __pyx_v_self->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5455  __pyx_t_3 = 0;
5456 
5457  /* "mprans/BoundaryConditions.py":64
5458  * self.dissipation_advective = BoundaryCondition()
5459  * # _diffusive
5460  * self.u_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5461  * self.v_diffusive = BoundaryCondition()
5462  * self.w_diffusive = BoundaryCondition()
5463  */
5464  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error)
5465  __Pyx_GOTREF(__pyx_t_3);
5466  __Pyx_GIVEREF(__pyx_t_3);
5467  __Pyx_GOTREF(__pyx_v_self->u_diffusive);
5468  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_diffusive));
5469  __pyx_v_self->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5470  __pyx_t_3 = 0;
5471 
5472  /* "mprans/BoundaryConditions.py":65
5473  * # _diffusive
5474  * self.u_diffusive = BoundaryCondition()
5475  * self.v_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5476  * self.w_diffusive = BoundaryCondition()
5477  * self.k_diffusive = BoundaryCondition()
5478  */
5479  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 65, __pyx_L1_error)
5480  __Pyx_GOTREF(__pyx_t_3);
5481  __Pyx_GIVEREF(__pyx_t_3);
5482  __Pyx_GOTREF(__pyx_v_self->v_diffusive);
5483  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_diffusive));
5484  __pyx_v_self->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5485  __pyx_t_3 = 0;
5486 
5487  /* "mprans/BoundaryConditions.py":66
5488  * self.u_diffusive = BoundaryCondition()
5489  * self.v_diffusive = BoundaryCondition()
5490  * self.w_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5491  * self.k_diffusive = BoundaryCondition()
5492  * self.dissipation_diffusive = BoundaryCondition()
5493  */
5494  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error)
5495  __Pyx_GOTREF(__pyx_t_3);
5496  __Pyx_GIVEREF(__pyx_t_3);
5497  __Pyx_GOTREF(__pyx_v_self->w_diffusive);
5498  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_diffusive));
5499  __pyx_v_self->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5500  __pyx_t_3 = 0;
5501 
5502  /* "mprans/BoundaryConditions.py":67
5503  * self.v_diffusive = BoundaryCondition()
5504  * self.w_diffusive = BoundaryCondition()
5505  * self.k_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5506  * self.dissipation_diffusive = BoundaryCondition()
5507  * # moveMesh boundary conditions
5508  */
5509  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 67, __pyx_L1_error)
5510  __Pyx_GOTREF(__pyx_t_3);
5511  __Pyx_GIVEREF(__pyx_t_3);
5512  __Pyx_GOTREF(__pyx_v_self->k_diffusive);
5513  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_diffusive));
5514  __pyx_v_self->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5515  __pyx_t_3 = 0;
5516 
5517  /* "mprans/BoundaryConditions.py":68
5518  * self.w_diffusive = BoundaryCondition()
5519  * self.k_diffusive = BoundaryCondition()
5520  * self.dissipation_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5521  * # moveMesh boundary conditions
5522  * self.hx_dirichlet = BoundaryCondition()
5523  */
5524  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error)
5525  __Pyx_GOTREF(__pyx_t_3);
5526  __Pyx_GIVEREF(__pyx_t_3);
5527  __Pyx_GOTREF(__pyx_v_self->dissipation_diffusive);
5528  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
5529  __pyx_v_self->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5530  __pyx_t_3 = 0;
5531 
5532  /* "mprans/BoundaryConditions.py":70
5533  * self.dissipation_diffusive = BoundaryCondition()
5534  * # moveMesh boundary conditions
5535  * self.hx_dirichlet = BoundaryCondition() # <<<<<<<<<<<<<<
5536  * self.hy_dirichlet = BoundaryCondition()
5537  * self.hz_dirichlet = BoundaryCondition()
5538  */
5539  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error)
5540  __Pyx_GOTREF(__pyx_t_3);
5541  __Pyx_GIVEREF(__pyx_t_3);
5542  __Pyx_GOTREF(__pyx_v_self->hx_dirichlet);
5543  __Pyx_DECREF(((PyObject *)__pyx_v_self->hx_dirichlet));
5544  __pyx_v_self->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5545  __pyx_t_3 = 0;
5546 
5547  /* "mprans/BoundaryConditions.py":71
5548  * # moveMesh boundary conditions
5549  * self.hx_dirichlet = BoundaryCondition()
5550  * self.hy_dirichlet = BoundaryCondition() # <<<<<<<<<<<<<<
5551  * self.hz_dirichlet = BoundaryCondition()
5552  * self.u_stress = BoundaryCondition()
5553  */
5554  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error)
5555  __Pyx_GOTREF(__pyx_t_3);
5556  __Pyx_GIVEREF(__pyx_t_3);
5557  __Pyx_GOTREF(__pyx_v_self->hy_dirichlet);
5558  __Pyx_DECREF(((PyObject *)__pyx_v_self->hy_dirichlet));
5559  __pyx_v_self->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5560  __pyx_t_3 = 0;
5561 
5562  /* "mprans/BoundaryConditions.py":72
5563  * self.hx_dirichlet = BoundaryCondition()
5564  * self.hy_dirichlet = BoundaryCondition()
5565  * self.hz_dirichlet = BoundaryCondition() # <<<<<<<<<<<<<<
5566  * self.u_stress = BoundaryCondition()
5567  * self.v_stress = BoundaryCondition()
5568  */
5569  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
5570  __Pyx_GOTREF(__pyx_t_3);
5571  __Pyx_GIVEREF(__pyx_t_3);
5572  __Pyx_GOTREF(__pyx_v_self->hz_dirichlet);
5573  __Pyx_DECREF(((PyObject *)__pyx_v_self->hz_dirichlet));
5574  __pyx_v_self->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5575  __pyx_t_3 = 0;
5576 
5577  /* "mprans/BoundaryConditions.py":73
5578  * self.hy_dirichlet = BoundaryCondition()
5579  * self.hz_dirichlet = BoundaryCondition()
5580  * self.u_stress = BoundaryCondition() # <<<<<<<<<<<<<<
5581  * self.v_stress = BoundaryCondition()
5582  * self.w_stress = BoundaryCondition()
5583  */
5584  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error)
5585  __Pyx_GOTREF(__pyx_t_3);
5586  __Pyx_GIVEREF(__pyx_t_3);
5587  __Pyx_GOTREF(__pyx_v_self->u_stress);
5588  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_stress));
5589  __pyx_v_self->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5590  __pyx_t_3 = 0;
5591 
5592  /* "mprans/BoundaryConditions.py":74
5593  * self.hz_dirichlet = BoundaryCondition()
5594  * self.u_stress = BoundaryCondition()
5595  * self.v_stress = BoundaryCondition() # <<<<<<<<<<<<<<
5596  * self.w_stress = BoundaryCondition()
5597  * self.u_stress.uOfXT = 0.
5598  */
5599  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error)
5600  __Pyx_GOTREF(__pyx_t_3);
5601  __Pyx_GIVEREF(__pyx_t_3);
5602  __Pyx_GOTREF(__pyx_v_self->v_stress);
5603  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_stress));
5604  __pyx_v_self->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5605  __pyx_t_3 = 0;
5606 
5607  /* "mprans/BoundaryConditions.py":75
5608  * self.u_stress = BoundaryCondition()
5609  * self.v_stress = BoundaryCondition()
5610  * self.w_stress = BoundaryCondition() # <<<<<<<<<<<<<<
5611  * self.u_stress.uOfXT = 0.
5612  * self.v_stress.uOfXT = 0.
5613  */
5614  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 75, __pyx_L1_error)
5615  __Pyx_GOTREF(__pyx_t_3);
5616  __Pyx_GIVEREF(__pyx_t_3);
5617  __Pyx_GOTREF(__pyx_v_self->w_stress);
5618  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_stress));
5619  __pyx_v_self->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5620  __pyx_t_3 = 0;
5621 
5622  /* "mprans/BoundaryConditions.py":76
5623  * self.v_stress = BoundaryCondition()
5624  * self.w_stress = BoundaryCondition()
5625  * self.u_stress.uOfXT = 0. # <<<<<<<<<<<<<<
5626  * self.v_stress.uOfXT = 0.
5627  * self.w_stress.uOfXT = 0.
5628  */
5629  __Pyx_INCREF(__pyx_float_0_);
5630  __Pyx_GIVEREF(__pyx_float_0_);
5631  __Pyx_GOTREF(__pyx_v_self->u_stress->uOfXT);
5632  __Pyx_DECREF(__pyx_v_self->u_stress->uOfXT);
5633  __pyx_v_self->u_stress->uOfXT = __pyx_float_0_;
5634 
5635  /* "mprans/BoundaryConditions.py":77
5636  * self.w_stress = BoundaryCondition()
5637  * self.u_stress.uOfXT = 0.
5638  * self.v_stress.uOfXT = 0. # <<<<<<<<<<<<<<
5639  * self.w_stress.uOfXT = 0.
5640  * # sediment solver
5641  */
5642  __Pyx_INCREF(__pyx_float_0_);
5643  __Pyx_GIVEREF(__pyx_float_0_);
5644  __Pyx_GOTREF(__pyx_v_self->v_stress->uOfXT);
5645  __Pyx_DECREF(__pyx_v_self->v_stress->uOfXT);
5646  __pyx_v_self->v_stress->uOfXT = __pyx_float_0_;
5647 
5648  /* "mprans/BoundaryConditions.py":78
5649  * self.u_stress.uOfXT = 0.
5650  * self.v_stress.uOfXT = 0.
5651  * self.w_stress.uOfXT = 0. # <<<<<<<<<<<<<<
5652  * # sediment solver
5653  * self.us_dirichlet = BoundaryCondition() # sediment velocity u
5654  */
5655  __Pyx_INCREF(__pyx_float_0_);
5656  __Pyx_GIVEREF(__pyx_float_0_);
5657  __Pyx_GOTREF(__pyx_v_self->w_stress->uOfXT);
5658  __Pyx_DECREF(__pyx_v_self->w_stress->uOfXT);
5659  __pyx_v_self->w_stress->uOfXT = __pyx_float_0_;
5660 
5661  /* "mprans/BoundaryConditions.py":80
5662  * self.w_stress.uOfXT = 0.
5663  * # sediment solver
5664  * self.us_dirichlet = BoundaryCondition() # sediment velocity u # <<<<<<<<<<<<<<
5665  * self.vs_dirichlet = BoundaryCondition() # sediment velocity v
5666  * self.ws_dirichlet = BoundaryCondition() # sediment velocity w
5667  */
5668  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error)
5669  __Pyx_GOTREF(__pyx_t_3);
5670  __Pyx_GIVEREF(__pyx_t_3);
5671  __Pyx_GOTREF(__pyx_v_self->us_dirichlet);
5672  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_dirichlet));
5673  __pyx_v_self->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5674  __pyx_t_3 = 0;
5675 
5676  /* "mprans/BoundaryConditions.py":81
5677  * # sediment solver
5678  * self.us_dirichlet = BoundaryCondition() # sediment velocity u
5679  * self.vs_dirichlet = BoundaryCondition() # sediment velocity v # <<<<<<<<<<<<<<
5680  * self.ws_dirichlet = BoundaryCondition() # sediment velocity w
5681  * self.vos_dirichlet = BoundaryCondition() # VOS
5682  */
5683  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error)
5684  __Pyx_GOTREF(__pyx_t_3);
5685  __Pyx_GIVEREF(__pyx_t_3);
5686  __Pyx_GOTREF(__pyx_v_self->vs_dirichlet);
5687  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_dirichlet));
5688  __pyx_v_self->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5689  __pyx_t_3 = 0;
5690 
5691  /* "mprans/BoundaryConditions.py":82
5692  * self.us_dirichlet = BoundaryCondition() # sediment velocity u
5693  * self.vs_dirichlet = BoundaryCondition() # sediment velocity v
5694  * self.ws_dirichlet = BoundaryCondition() # sediment velocity w # <<<<<<<<<<<<<<
5695  * self.vos_dirichlet = BoundaryCondition() # VOS
5696  * self.us_advective = BoundaryCondition()
5697  */
5698  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
5699  __Pyx_GOTREF(__pyx_t_3);
5700  __Pyx_GIVEREF(__pyx_t_3);
5701  __Pyx_GOTREF(__pyx_v_self->ws_dirichlet);
5702  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_dirichlet));
5703  __pyx_v_self->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5704  __pyx_t_3 = 0;
5705 
5706  /* "mprans/BoundaryConditions.py":83
5707  * self.vs_dirichlet = BoundaryCondition() # sediment velocity v
5708  * self.ws_dirichlet = BoundaryCondition() # sediment velocity w
5709  * self.vos_dirichlet = BoundaryCondition() # VOS # <<<<<<<<<<<<<<
5710  * self.us_advective = BoundaryCondition()
5711  * self.vs_advective = BoundaryCondition()
5712  */
5713  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 83, __pyx_L1_error)
5714  __Pyx_GOTREF(__pyx_t_3);
5715  __Pyx_GIVEREF(__pyx_t_3);
5716  __Pyx_GOTREF(__pyx_v_self->vos_dirichlet);
5717  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_dirichlet));
5718  __pyx_v_self->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5719  __pyx_t_3 = 0;
5720 
5721  /* "mprans/BoundaryConditions.py":84
5722  * self.ws_dirichlet = BoundaryCondition() # sediment velocity w
5723  * self.vos_dirichlet = BoundaryCondition() # VOS
5724  * self.us_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5725  * self.vs_advective = BoundaryCondition()
5726  * self.ws_advective = BoundaryCondition()
5727  */
5728  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error)
5729  __Pyx_GOTREF(__pyx_t_3);
5730  __Pyx_GIVEREF(__pyx_t_3);
5731  __Pyx_GOTREF(__pyx_v_self->us_advective);
5732  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_advective));
5733  __pyx_v_self->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5734  __pyx_t_3 = 0;
5735 
5736  /* "mprans/BoundaryConditions.py":85
5737  * self.vos_dirichlet = BoundaryCondition() # VOS
5738  * self.us_advective = BoundaryCondition()
5739  * self.vs_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5740  * self.ws_advective = BoundaryCondition()
5741  * self.vos_advective = BoundaryCondition()
5742  */
5743  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 85, __pyx_L1_error)
5744  __Pyx_GOTREF(__pyx_t_3);
5745  __Pyx_GIVEREF(__pyx_t_3);
5746  __Pyx_GOTREF(__pyx_v_self->vs_advective);
5747  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_advective));
5748  __pyx_v_self->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5749  __pyx_t_3 = 0;
5750 
5751  /* "mprans/BoundaryConditions.py":86
5752  * self.us_advective = BoundaryCondition()
5753  * self.vs_advective = BoundaryCondition()
5754  * self.ws_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5755  * self.vos_advective = BoundaryCondition()
5756  * self.us_diffusive = BoundaryCondition()
5757  */
5758  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
5759  __Pyx_GOTREF(__pyx_t_3);
5760  __Pyx_GIVEREF(__pyx_t_3);
5761  __Pyx_GOTREF(__pyx_v_self->ws_advective);
5762  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_advective));
5763  __pyx_v_self->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5764  __pyx_t_3 = 0;
5765 
5766  /* "mprans/BoundaryConditions.py":87
5767  * self.vs_advective = BoundaryCondition()
5768  * self.ws_advective = BoundaryCondition()
5769  * self.vos_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5770  * self.us_diffusive = BoundaryCondition()
5771  * self.vs_diffusive = BoundaryCondition()
5772  */
5773  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error)
5774  __Pyx_GOTREF(__pyx_t_3);
5775  __Pyx_GIVEREF(__pyx_t_3);
5776  __Pyx_GOTREF(__pyx_v_self->vos_advective);
5777  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_advective));
5778  __pyx_v_self->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5779  __pyx_t_3 = 0;
5780 
5781  /* "mprans/BoundaryConditions.py":88
5782  * self.ws_advective = BoundaryCondition()
5783  * self.vos_advective = BoundaryCondition()
5784  * self.us_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5785  * self.vs_diffusive = BoundaryCondition()
5786  * self.ws_diffusive = BoundaryCondition()
5787  */
5788  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error)
5789  __Pyx_GOTREF(__pyx_t_3);
5790  __Pyx_GIVEREF(__pyx_t_3);
5791  __Pyx_GOTREF(__pyx_v_self->us_diffusive);
5792  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_diffusive));
5793  __pyx_v_self->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5794  __pyx_t_3 = 0;
5795 
5796  /* "mprans/BoundaryConditions.py":89
5797  * self.vos_advective = BoundaryCondition()
5798  * self.us_diffusive = BoundaryCondition()
5799  * self.vs_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5800  * self.ws_diffusive = BoundaryCondition()
5801  * # projection scheme
5802  */
5803  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 89, __pyx_L1_error)
5804  __Pyx_GOTREF(__pyx_t_3);
5805  __Pyx_GIVEREF(__pyx_t_3);
5806  __Pyx_GOTREF(__pyx_v_self->vs_diffusive);
5807  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_diffusive));
5808  __pyx_v_self->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5809  __pyx_t_3 = 0;
5810 
5811  /* "mprans/BoundaryConditions.py":90
5812  * self.us_diffusive = BoundaryCondition()
5813  * self.vs_diffusive = BoundaryCondition()
5814  * self.ws_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5815  * # projection scheme
5816  * self.pInit_dirichlet = BoundaryCondition() # initial pressure
5817  */
5818  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
5819  __Pyx_GOTREF(__pyx_t_3);
5820  __Pyx_GIVEREF(__pyx_t_3);
5821  __Pyx_GOTREF(__pyx_v_self->ws_diffusive);
5822  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_diffusive));
5823  __pyx_v_self->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5824  __pyx_t_3 = 0;
5825 
5826  /* "mprans/BoundaryConditions.py":92
5827  * self.ws_diffusive = BoundaryCondition()
5828  * # projection scheme
5829  * self.pInit_dirichlet = BoundaryCondition() # initial pressure # <<<<<<<<<<<<<<
5830  * self.pInc_dirichlet = BoundaryCondition() # pressure increment
5831  * self.pInit_advective = BoundaryCondition()
5832  */
5833  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
5834  __Pyx_GOTREF(__pyx_t_3);
5835  __Pyx_GIVEREF(__pyx_t_3);
5836  __Pyx_GOTREF(__pyx_v_self->pInit_dirichlet);
5837  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
5838  __pyx_v_self->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5839  __pyx_t_3 = 0;
5840 
5841  /* "mprans/BoundaryConditions.py":93
5842  * # projection scheme
5843  * self.pInit_dirichlet = BoundaryCondition() # initial pressure
5844  * self.pInc_dirichlet = BoundaryCondition() # pressure increment # <<<<<<<<<<<<<<
5845  * self.pInit_advective = BoundaryCondition()
5846  * self.pInc_advective = BoundaryCondition()
5847  */
5848  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 93, __pyx_L1_error)
5849  __Pyx_GOTREF(__pyx_t_3);
5850  __Pyx_GIVEREF(__pyx_t_3);
5851  __Pyx_GOTREF(__pyx_v_self->pInc_dirichlet);
5852  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
5853  __pyx_v_self->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5854  __pyx_t_3 = 0;
5855 
5856  /* "mprans/BoundaryConditions.py":94
5857  * self.pInit_dirichlet = BoundaryCondition() # initial pressure
5858  * self.pInc_dirichlet = BoundaryCondition() # pressure increment
5859  * self.pInit_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5860  * self.pInc_advective = BoundaryCondition()
5861  * self.pInit_diffusive = BoundaryCondition()
5862  */
5863  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
5864  __Pyx_GOTREF(__pyx_t_3);
5865  __Pyx_GIVEREF(__pyx_t_3);
5866  __Pyx_GOTREF(__pyx_v_self->pInit_advective);
5867  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_advective));
5868  __pyx_v_self->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5869  __pyx_t_3 = 0;
5870 
5871  /* "mprans/BoundaryConditions.py":95
5872  * self.pInc_dirichlet = BoundaryCondition() # pressure increment
5873  * self.pInit_advective = BoundaryCondition()
5874  * self.pInc_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5875  * self.pInit_diffusive = BoundaryCondition()
5876  * self.pInc_diffusive = BoundaryCondition()
5877  */
5878  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 95, __pyx_L1_error)
5879  __Pyx_GOTREF(__pyx_t_3);
5880  __Pyx_GIVEREF(__pyx_t_3);
5881  __Pyx_GOTREF(__pyx_v_self->pInc_advective);
5882  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_advective));
5883  __pyx_v_self->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5884  __pyx_t_3 = 0;
5885 
5886  /* "mprans/BoundaryConditions.py":96
5887  * self.pInit_advective = BoundaryCondition()
5888  * self.pInc_advective = BoundaryCondition()
5889  * self.pInit_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5890  * self.pInc_diffusive = BoundaryCondition()
5891  * # clsvof
5892  */
5893  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error)
5894  __Pyx_GOTREF(__pyx_t_3);
5895  __Pyx_GIVEREF(__pyx_t_3);
5896  __Pyx_GOTREF(__pyx_v_self->pInit_diffusive);
5897  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_diffusive));
5898  __pyx_v_self->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5899  __pyx_t_3 = 0;
5900 
5901  /* "mprans/BoundaryConditions.py":97
5902  * self.pInc_advective = BoundaryCondition()
5903  * self.pInit_diffusive = BoundaryCondition()
5904  * self.pInc_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5905  * # clsvof
5906  * self.clsvof_dirichlet = BoundaryCondition()
5907  */
5908  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 97, __pyx_L1_error)
5909  __Pyx_GOTREF(__pyx_t_3);
5910  __Pyx_GIVEREF(__pyx_t_3);
5911  __Pyx_GOTREF(__pyx_v_self->pInc_diffusive);
5912  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_diffusive));
5913  __pyx_v_self->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5914  __pyx_t_3 = 0;
5915 
5916  /* "mprans/BoundaryConditions.py":99
5917  * self.pInc_diffusive = BoundaryCondition()
5918  * # clsvof
5919  * self.clsvof_dirichlet = BoundaryCondition() # <<<<<<<<<<<<<<
5920  * self.clsvof_advective = BoundaryCondition()
5921  * self.clsvof_diffusive = BoundaryCondition()
5922  */
5923  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
5924  __Pyx_GOTREF(__pyx_t_3);
5925  __Pyx_GIVEREF(__pyx_t_3);
5926  __Pyx_GOTREF(__pyx_v_self->clsvof_dirichlet);
5927  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
5928  __pyx_v_self->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5929  __pyx_t_3 = 0;
5930 
5931  /* "mprans/BoundaryConditions.py":100
5932  * # clsvof
5933  * self.clsvof_dirichlet = BoundaryCondition()
5934  * self.clsvof_advective = BoundaryCondition() # <<<<<<<<<<<<<<
5935  * self.clsvof_diffusive = BoundaryCondition()
5936  *
5937  */
5938  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error)
5939  __Pyx_GOTREF(__pyx_t_3);
5940  __Pyx_GIVEREF(__pyx_t_3);
5941  __Pyx_GOTREF(__pyx_v_self->clsvof_advective);
5942  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_advective));
5943  __pyx_v_self->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5944  __pyx_t_3 = 0;
5945 
5946  /* "mprans/BoundaryConditions.py":101
5947  * self.clsvof_dirichlet = BoundaryCondition()
5948  * self.clsvof_advective = BoundaryCondition()
5949  * self.clsvof_diffusive = BoundaryCondition() # <<<<<<<<<<<<<<
5950  *
5951  * def reset(self):
5952  */
5953  __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error)
5954  __Pyx_GOTREF(__pyx_t_3);
5955  __Pyx_GIVEREF(__pyx_t_3);
5956  __Pyx_GOTREF(__pyx_v_self->clsvof_diffusive);
5957  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
5958  __pyx_v_self->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_3);
5959  __pyx_t_3 = 0;
5960 
5961  /* "mprans/BoundaryConditions.py":43
5962  * """
5963  *
5964  * def __init__(self, shape=None, name=None, b_or=None, b_i=0., nd=None): # <<<<<<<<<<<<<<
5965  * super(BC_RANS, self).__init__(shape=shape, name=name, b_or=b_or, b_i=b_i, nd=nd)
5966  * # _dirichlet
5967  */
5968 
5969  /* function exit code */
5970  __pyx_r = 0;
5971  goto __pyx_L0;
5972  __pyx_L1_error:;
5973  __Pyx_XDECREF(__pyx_t_1);
5974  __Pyx_XDECREF(__pyx_t_2);
5975  __Pyx_XDECREF(__pyx_t_3);
5976  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5977  __pyx_r = -1;
5978  __pyx_L0:;
5979  __Pyx_TraceReturn(Py_None, 0);
5980  __Pyx_RefNannyFinishContext();
5981  return __pyx_r;
5982 }
5983 
5984 /* "mprans/BoundaryConditions.py":103
5985  * self.clsvof_diffusive = BoundaryCondition()
5986  *
5987  * def reset(self): # <<<<<<<<<<<<<<
5988  * """
5989  * Resets all BoundaryCondtion functions to None, apart from the BCs
5990  */
5991 
5992 /* Python wrapper */
5993 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_3reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
5994 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_2reset[] = "BC_RANS.reset(self)\n\n Resets all BoundaryCondtion functions to None, apart from the BCs\n affecting: moving mesh\n ";
5995 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_3reset = {"reset", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_3reset, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_2reset};
5996 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_3reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
5997  PyObject *__pyx_r = 0;
5998  __Pyx_RefNannyDeclarations
5999  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
6000  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_2reset(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
6001 
6002  /* function exit code */
6003  __Pyx_RefNannyFinishContext();
6004  return __pyx_r;
6005 }
6006 
6007 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_2reset(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
6008  PyObject *__pyx_r = NULL;
6009  __Pyx_TraceDeclarations
6010  __Pyx_RefNannyDeclarations
6011  int __pyx_lineno = 0;
6012  const char *__pyx_filename = NULL;
6013  int __pyx_clineno = 0;
6014  __Pyx_TraceFrameInit(__pyx_codeobj_)
6015  __Pyx_RefNannySetupContext("reset", 0);
6016  __Pyx_TraceCall("reset", __pyx_f[0], 103, 0, __PYX_ERR(0, 103, __pyx_L1_error));
6017 
6018  /* "mprans/BoundaryConditions.py":109
6019  * """
6020  * # self.BC_type = 'None'
6021  * self.p_dirichlet.resetBC() # <<<<<<<<<<<<<<
6022  * self.pInit_dirichlet.resetBC()
6023  * self.pInc_dirichlet.resetBC()
6024  */
6025  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->p_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->p_dirichlet, 0);
6026 
6027  /* "mprans/BoundaryConditions.py":110
6028  * # self.BC_type = 'None'
6029  * self.p_dirichlet.resetBC()
6030  * self.pInit_dirichlet.resetBC() # <<<<<<<<<<<<<<
6031  * self.pInc_dirichlet.resetBC()
6032  * self.u_dirichlet.resetBC()
6033  */
6034  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInit_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->pInit_dirichlet, 0);
6035 
6036  /* "mprans/BoundaryConditions.py":111
6037  * self.p_dirichlet.resetBC()
6038  * self.pInit_dirichlet.resetBC()
6039  * self.pInc_dirichlet.resetBC() # <<<<<<<<<<<<<<
6040  * self.u_dirichlet.resetBC()
6041  * self.v_dirichlet.resetBC()
6042  */
6043  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInc_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->pInc_dirichlet, 0);
6044 
6045  /* "mprans/BoundaryConditions.py":112
6046  * self.pInit_dirichlet.resetBC()
6047  * self.pInc_dirichlet.resetBC()
6048  * self.u_dirichlet.resetBC() # <<<<<<<<<<<<<<
6049  * self.v_dirichlet.resetBC()
6050  * self.w_dirichlet.resetBC()
6051  */
6052  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->u_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->u_dirichlet, 0);
6053 
6054  /* "mprans/BoundaryConditions.py":113
6055  * self.pInc_dirichlet.resetBC()
6056  * self.u_dirichlet.resetBC()
6057  * self.v_dirichlet.resetBC() # <<<<<<<<<<<<<<
6058  * self.w_dirichlet.resetBC()
6059  * self.phi_dirichlet.resetBC()
6060  */
6061  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->v_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->v_dirichlet, 0);
6062 
6063  /* "mprans/BoundaryConditions.py":114
6064  * self.u_dirichlet.resetBC()
6065  * self.v_dirichlet.resetBC()
6066  * self.w_dirichlet.resetBC() # <<<<<<<<<<<<<<
6067  * self.phi_dirichlet.resetBC()
6068  * self.vof_dirichlet.resetBC()
6069  */
6070  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->w_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->w_dirichlet, 0);
6071 
6072  /* "mprans/BoundaryConditions.py":115
6073  * self.v_dirichlet.resetBC()
6074  * self.w_dirichlet.resetBC()
6075  * self.phi_dirichlet.resetBC() # <<<<<<<<<<<<<<
6076  * self.vof_dirichlet.resetBC()
6077  * self.k_dirichlet.resetBC()
6078  */
6079  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->phi_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->phi_dirichlet, 0);
6080 
6081  /* "mprans/BoundaryConditions.py":116
6082  * self.w_dirichlet.resetBC()
6083  * self.phi_dirichlet.resetBC()
6084  * self.vof_dirichlet.resetBC() # <<<<<<<<<<<<<<
6085  * self.k_dirichlet.resetBC()
6086  * self.dissipation_dirichlet.resetBC()
6087  */
6088  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vof_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->vof_dirichlet, 0);
6089 
6090  /* "mprans/BoundaryConditions.py":117
6091  * self.phi_dirichlet.resetBC()
6092  * self.vof_dirichlet.resetBC()
6093  * self.k_dirichlet.resetBC() # <<<<<<<<<<<<<<
6094  * self.dissipation_dirichlet.resetBC()
6095  * self.us_dirichlet.resetBC()
6096  */
6097  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->k_dirichlet, 0);
6098 
6099  /* "mprans/BoundaryConditions.py":118
6100  * self.vof_dirichlet.resetBC()
6101  * self.k_dirichlet.resetBC()
6102  * self.dissipation_dirichlet.resetBC() # <<<<<<<<<<<<<<
6103  * self.us_dirichlet.resetBC()
6104  * self.vs_dirichlet.resetBC()
6105  */
6106  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_dirichlet, 0);
6107 
6108  /* "mprans/BoundaryConditions.py":119
6109  * self.k_dirichlet.resetBC()
6110  * self.dissipation_dirichlet.resetBC()
6111  * self.us_dirichlet.resetBC() # <<<<<<<<<<<<<<
6112  * self.vs_dirichlet.resetBC()
6113  * self.ws_dirichlet.resetBC()
6114  */
6115  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->us_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->us_dirichlet, 0);
6116 
6117  /* "mprans/BoundaryConditions.py":120
6118  * self.dissipation_dirichlet.resetBC()
6119  * self.us_dirichlet.resetBC()
6120  * self.vs_dirichlet.resetBC() # <<<<<<<<<<<<<<
6121  * self.ws_dirichlet.resetBC()
6122  * self.vos_dirichlet.resetBC()
6123  */
6124  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vs_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->vs_dirichlet, 0);
6125 
6126  /* "mprans/BoundaryConditions.py":121
6127  * self.us_dirichlet.resetBC()
6128  * self.vs_dirichlet.resetBC()
6129  * self.ws_dirichlet.resetBC() # <<<<<<<<<<<<<<
6130  * self.vos_dirichlet.resetBC()
6131  * self.p_advective.resetBC()
6132  */
6133  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->ws_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->ws_dirichlet, 0);
6134 
6135  /* "mprans/BoundaryConditions.py":122
6136  * self.vs_dirichlet.resetBC()
6137  * self.ws_dirichlet.resetBC()
6138  * self.vos_dirichlet.resetBC() # <<<<<<<<<<<<<<
6139  * self.p_advective.resetBC()
6140  * self.pInit_advective.resetBC()
6141  */
6142  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vos_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->vos_dirichlet, 0);
6143 
6144  /* "mprans/BoundaryConditions.py":123
6145  * self.ws_dirichlet.resetBC()
6146  * self.vos_dirichlet.resetBC()
6147  * self.p_advective.resetBC() # <<<<<<<<<<<<<<
6148  * self.pInit_advective.resetBC()
6149  * self.pInc_advective.resetBC()
6150  */
6151  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->p_advective->__pyx_vtab)->resetBC(__pyx_v_self->p_advective, 0);
6152 
6153  /* "mprans/BoundaryConditions.py":124
6154  * self.vos_dirichlet.resetBC()
6155  * self.p_advective.resetBC()
6156  * self.pInit_advective.resetBC() # <<<<<<<<<<<<<<
6157  * self.pInc_advective.resetBC()
6158  * self.u_advective.resetBC()
6159  */
6160  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInit_advective->__pyx_vtab)->resetBC(__pyx_v_self->pInit_advective, 0);
6161 
6162  /* "mprans/BoundaryConditions.py":125
6163  * self.p_advective.resetBC()
6164  * self.pInit_advective.resetBC()
6165  * self.pInc_advective.resetBC() # <<<<<<<<<<<<<<
6166  * self.u_advective.resetBC()
6167  * self.v_advective.resetBC()
6168  */
6169  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInc_advective->__pyx_vtab)->resetBC(__pyx_v_self->pInc_advective, 0);
6170 
6171  /* "mprans/BoundaryConditions.py":126
6172  * self.pInit_advective.resetBC()
6173  * self.pInc_advective.resetBC()
6174  * self.u_advective.resetBC() # <<<<<<<<<<<<<<
6175  * self.v_advective.resetBC()
6176  * self.w_advective.resetBC()
6177  */
6178  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->u_advective->__pyx_vtab)->resetBC(__pyx_v_self->u_advective, 0);
6179 
6180  /* "mprans/BoundaryConditions.py":127
6181  * self.pInc_advective.resetBC()
6182  * self.u_advective.resetBC()
6183  * self.v_advective.resetBC() # <<<<<<<<<<<<<<
6184  * self.w_advective.resetBC()
6185  * self.vof_advective.resetBC()
6186  */
6187  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->v_advective->__pyx_vtab)->resetBC(__pyx_v_self->v_advective, 0);
6188 
6189  /* "mprans/BoundaryConditions.py":128
6190  * self.u_advective.resetBC()
6191  * self.v_advective.resetBC()
6192  * self.w_advective.resetBC() # <<<<<<<<<<<<<<
6193  * self.vof_advective.resetBC()
6194  * self.k_advective.resetBC()
6195  */
6196  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->w_advective->__pyx_vtab)->resetBC(__pyx_v_self->w_advective, 0);
6197 
6198  /* "mprans/BoundaryConditions.py":129
6199  * self.v_advective.resetBC()
6200  * self.w_advective.resetBC()
6201  * self.vof_advective.resetBC() # <<<<<<<<<<<<<<
6202  * self.k_advective.resetBC()
6203  * self.dissipation_advective.resetBC()
6204  */
6205  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vof_advective->__pyx_vtab)->resetBC(__pyx_v_self->vof_advective, 0);
6206 
6207  /* "mprans/BoundaryConditions.py":130
6208  * self.w_advective.resetBC()
6209  * self.vof_advective.resetBC()
6210  * self.k_advective.resetBC() # <<<<<<<<<<<<<<
6211  * self.dissipation_advective.resetBC()
6212  * self.us_advective.resetBC()
6213  */
6214  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_advective->__pyx_vtab)->resetBC(__pyx_v_self->k_advective, 0);
6215 
6216  /* "mprans/BoundaryConditions.py":131
6217  * self.vof_advective.resetBC()
6218  * self.k_advective.resetBC()
6219  * self.dissipation_advective.resetBC() # <<<<<<<<<<<<<<
6220  * self.us_advective.resetBC()
6221  * self.vs_advective.resetBC()
6222  */
6223  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_advective->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_advective, 0);
6224 
6225  /* "mprans/BoundaryConditions.py":132
6226  * self.k_advective.resetBC()
6227  * self.dissipation_advective.resetBC()
6228  * self.us_advective.resetBC() # <<<<<<<<<<<<<<
6229  * self.vs_advective.resetBC()
6230  * self.ws_advective.resetBC()
6231  */
6232  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->us_advective->__pyx_vtab)->resetBC(__pyx_v_self->us_advective, 0);
6233 
6234  /* "mprans/BoundaryConditions.py":133
6235  * self.dissipation_advective.resetBC()
6236  * self.us_advective.resetBC()
6237  * self.vs_advective.resetBC() # <<<<<<<<<<<<<<
6238  * self.ws_advective.resetBC()
6239  * self.vos_advective.resetBC()
6240  */
6241  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vs_advective->__pyx_vtab)->resetBC(__pyx_v_self->vs_advective, 0);
6242 
6243  /* "mprans/BoundaryConditions.py":134
6244  * self.us_advective.resetBC()
6245  * self.vs_advective.resetBC()
6246  * self.ws_advective.resetBC() # <<<<<<<<<<<<<<
6247  * self.vos_advective.resetBC()
6248  * self.pInit_diffusive.resetBC()
6249  */
6250  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->ws_advective->__pyx_vtab)->resetBC(__pyx_v_self->ws_advective, 0);
6251 
6252  /* "mprans/BoundaryConditions.py":135
6253  * self.vs_advective.resetBC()
6254  * self.ws_advective.resetBC()
6255  * self.vos_advective.resetBC() # <<<<<<<<<<<<<<
6256  * self.pInit_diffusive.resetBC()
6257  * self.pInc_diffusive.resetBC()
6258  */
6259  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vos_advective->__pyx_vtab)->resetBC(__pyx_v_self->vos_advective, 0);
6260 
6261  /* "mprans/BoundaryConditions.py":136
6262  * self.ws_advective.resetBC()
6263  * self.vos_advective.resetBC()
6264  * self.pInit_diffusive.resetBC() # <<<<<<<<<<<<<<
6265  * self.pInc_diffusive.resetBC()
6266  * self.u_diffusive.resetBC()
6267  */
6268  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInit_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->pInit_diffusive, 0);
6269 
6270  /* "mprans/BoundaryConditions.py":137
6271  * self.vos_advective.resetBC()
6272  * self.pInit_diffusive.resetBC()
6273  * self.pInc_diffusive.resetBC() # <<<<<<<<<<<<<<
6274  * self.u_diffusive.resetBC()
6275  * self.v_diffusive.resetBC()
6276  */
6277  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->pInc_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->pInc_diffusive, 0);
6278 
6279  /* "mprans/BoundaryConditions.py":138
6280  * self.pInit_diffusive.resetBC()
6281  * self.pInc_diffusive.resetBC()
6282  * self.u_diffusive.resetBC() # <<<<<<<<<<<<<<
6283  * self.v_diffusive.resetBC()
6284  * self.w_diffusive.resetBC()
6285  */
6286  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->u_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->u_diffusive, 0);
6287 
6288  /* "mprans/BoundaryConditions.py":139
6289  * self.pInc_diffusive.resetBC()
6290  * self.u_diffusive.resetBC()
6291  * self.v_diffusive.resetBC() # <<<<<<<<<<<<<<
6292  * self.w_diffusive.resetBC()
6293  * self.k_diffusive.resetBC()
6294  */
6295  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->v_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->v_diffusive, 0);
6296 
6297  /* "mprans/BoundaryConditions.py":140
6298  * self.u_diffusive.resetBC()
6299  * self.v_diffusive.resetBC()
6300  * self.w_diffusive.resetBC() # <<<<<<<<<<<<<<
6301  * self.k_diffusive.resetBC()
6302  * self.dissipation_diffusive.resetBC()
6303  */
6304  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->w_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->w_diffusive, 0);
6305 
6306  /* "mprans/BoundaryConditions.py":141
6307  * self.v_diffusive.resetBC()
6308  * self.w_diffusive.resetBC()
6309  * self.k_diffusive.resetBC() # <<<<<<<<<<<<<<
6310  * self.dissipation_diffusive.resetBC()
6311  * self.us_diffusive.resetBC()
6312  */
6313  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->k_diffusive, 0);
6314 
6315  /* "mprans/BoundaryConditions.py":142
6316  * self.w_diffusive.resetBC()
6317  * self.k_diffusive.resetBC()
6318  * self.dissipation_diffusive.resetBC() # <<<<<<<<<<<<<<
6319  * self.us_diffusive.resetBC()
6320  * self.vs_diffusive.resetBC()
6321  */
6322  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_diffusive, 0);
6323 
6324  /* "mprans/BoundaryConditions.py":143
6325  * self.k_diffusive.resetBC()
6326  * self.dissipation_diffusive.resetBC()
6327  * self.us_diffusive.resetBC() # <<<<<<<<<<<<<<
6328  * self.vs_diffusive.resetBC()
6329  * self.ws_diffusive.resetBC()
6330  */
6331  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->us_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->us_diffusive, 0);
6332 
6333  /* "mprans/BoundaryConditions.py":144
6334  * self.dissipation_diffusive.resetBC()
6335  * self.us_diffusive.resetBC()
6336  * self.vs_diffusive.resetBC() # <<<<<<<<<<<<<<
6337  * self.ws_diffusive.resetBC()
6338  * self.clsvof_dirichlet.resetBC()
6339  */
6340  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->vs_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->vs_diffusive, 0);
6341 
6342  /* "mprans/BoundaryConditions.py":145
6343  * self.us_diffusive.resetBC()
6344  * self.vs_diffusive.resetBC()
6345  * self.ws_diffusive.resetBC() # <<<<<<<<<<<<<<
6346  * self.clsvof_dirichlet.resetBC()
6347  * self.clsvof_advective.resetBC()
6348  */
6349  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->ws_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->ws_diffusive, 0);
6350 
6351  /* "mprans/BoundaryConditions.py":146
6352  * self.vs_diffusive.resetBC()
6353  * self.ws_diffusive.resetBC()
6354  * self.clsvof_dirichlet.resetBC() # <<<<<<<<<<<<<<
6355  * self.clsvof_advective.resetBC()
6356  * self.clsvof_diffusive.resetBC()
6357  */
6358  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->clsvof_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->clsvof_dirichlet, 0);
6359 
6360  /* "mprans/BoundaryConditions.py":147
6361  * self.ws_diffusive.resetBC()
6362  * self.clsvof_dirichlet.resetBC()
6363  * self.clsvof_advective.resetBC() # <<<<<<<<<<<<<<
6364  * self.clsvof_diffusive.resetBC()
6365  *
6366  */
6367  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->clsvof_advective->__pyx_vtab)->resetBC(__pyx_v_self->clsvof_advective, 0);
6368 
6369  /* "mprans/BoundaryConditions.py":148
6370  * self.clsvof_dirichlet.resetBC()
6371  * self.clsvof_advective.resetBC()
6372  * self.clsvof_diffusive.resetBC() # <<<<<<<<<<<<<<
6373  *
6374  * def setNonMaterial(self):
6375  */
6376  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->clsvof_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->clsvof_diffusive, 0);
6377 
6378  /* "mprans/BoundaryConditions.py":103
6379  * self.clsvof_diffusive = BoundaryCondition()
6380  *
6381  * def reset(self): # <<<<<<<<<<<<<<
6382  * """
6383  * Resets all BoundaryCondtion functions to None, apart from the BCs
6384  */
6385 
6386  /* function exit code */
6387  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6388  goto __pyx_L0;
6389  __pyx_L1_error:;
6390  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
6391  __pyx_r = NULL;
6392  __pyx_L0:;
6393  __Pyx_XGIVEREF(__pyx_r);
6394  __Pyx_TraceReturn(__pyx_r, 0);
6395  __Pyx_RefNannyFinishContext();
6396  return __pyx_r;
6397 }
6398 
6399 /* "mprans/BoundaryConditions.py":150
6400  * self.clsvof_diffusive.resetBC()
6401  *
6402  * def setNonMaterial(self): # <<<<<<<<<<<<<<
6403  * """
6404  * Sets non-material boundary conditions (diffusive flux and advective vof
6405  */
6406 
6407 /* Python wrapper */
6408 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
6409 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial[] = "BC_RANS.setNonMaterial(self)\n\n Sets non-material boundary conditions (diffusive flux and advective vof\n to 0.).\n ";
6410 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial = {"setNonMaterial", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial};
6411 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
6412  PyObject *__pyx_r = 0;
6413  __Pyx_RefNannyDeclarations
6414  __Pyx_RefNannySetupContext("setNonMaterial (wrapper)", 0);
6415  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
6416 
6417  /* function exit code */
6418  __Pyx_RefNannyFinishContext();
6419  return __pyx_r;
6420 }
6421 
6422 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
6423  PyObject *__pyx_r = NULL;
6424  __Pyx_TraceDeclarations
6425  __Pyx_RefNannyDeclarations
6426  PyObject *__pyx_t_1 = NULL;
6427  PyObject *__pyx_t_2 = NULL;
6428  PyObject *__pyx_t_3 = NULL;
6429  int __pyx_lineno = 0;
6430  const char *__pyx_filename = NULL;
6431  int __pyx_clineno = 0;
6432  __Pyx_TraceFrameInit(__pyx_codeobj__2)
6433  __Pyx_RefNannySetupContext("setNonMaterial", 0);
6434  __Pyx_TraceCall("setNonMaterial", __pyx_f[0], 150, 0, __PYX_ERR(0, 150, __pyx_L1_error));
6435 
6436  /* "mprans/BoundaryConditions.py":155
6437  * to 0.).
6438  * """
6439  * self.reset() # <<<<<<<<<<<<<<
6440  * self.BC_type = 'NonMaterial'
6441  * self.vof_advective.setConstantBC(0.)
6442  */
6443  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error)
6444  __Pyx_GOTREF(__pyx_t_2);
6445  __pyx_t_3 = NULL;
6446  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6447  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6448  if (likely(__pyx_t_3)) {
6449  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6450  __Pyx_INCREF(__pyx_t_3);
6451  __Pyx_INCREF(function);
6452  __Pyx_DECREF_SET(__pyx_t_2, function);
6453  }
6454  }
6455  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
6456  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6457  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error)
6458  __Pyx_GOTREF(__pyx_t_1);
6459  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6460  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6461 
6462  /* "mprans/BoundaryConditions.py":156
6463  * """
6464  * self.reset()
6465  * self.BC_type = 'NonMaterial' # <<<<<<<<<<<<<<
6466  * self.vof_advective.setConstantBC(0.)
6467  * self.vos_advective.setConstantBC(0.)
6468  */
6469  __Pyx_INCREF(__pyx_n_s_NonMaterial);
6470  __Pyx_GIVEREF(__pyx_n_s_NonMaterial);
6471  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
6472  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
6473  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_NonMaterial;
6474 
6475  /* "mprans/BoundaryConditions.py":157
6476  * self.reset()
6477  * self.BC_type = 'NonMaterial'
6478  * self.vof_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6479  * self.vos_advective.setConstantBC(0.)
6480  * self.p_advective.setConstantBC(0.)
6481  */
6482  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vof_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
6483  __Pyx_GOTREF(__pyx_t_2);
6484  __pyx_t_3 = NULL;
6485  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6486  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6487  if (likely(__pyx_t_3)) {
6488  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6489  __Pyx_INCREF(__pyx_t_3);
6490  __Pyx_INCREF(function);
6491  __Pyx_DECREF_SET(__pyx_t_2, function);
6492  }
6493  }
6494  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6495  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6496  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error)
6497  __Pyx_GOTREF(__pyx_t_1);
6498  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6499  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6500 
6501  /* "mprans/BoundaryConditions.py":158
6502  * self.BC_type = 'NonMaterial'
6503  * self.vof_advective.setConstantBC(0.)
6504  * self.vos_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6505  * self.p_advective.setConstantBC(0.)
6506  * self.u_advective.setConstantBC(0.)
6507  */
6508  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vos_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error)
6509  __Pyx_GOTREF(__pyx_t_2);
6510  __pyx_t_3 = NULL;
6511  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6512  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6513  if (likely(__pyx_t_3)) {
6514  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6515  __Pyx_INCREF(__pyx_t_3);
6516  __Pyx_INCREF(function);
6517  __Pyx_DECREF_SET(__pyx_t_2, function);
6518  }
6519  }
6520  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6521  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6522  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 158, __pyx_L1_error)
6523  __Pyx_GOTREF(__pyx_t_1);
6524  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6525  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6526 
6527  /* "mprans/BoundaryConditions.py":159
6528  * self.vof_advective.setConstantBC(0.)
6529  * self.vos_advective.setConstantBC(0.)
6530  * self.p_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6531  * self.u_advective.setConstantBC(0.)
6532  * self.v_advective.setConstantBC(0.)
6533  */
6534  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error)
6535  __Pyx_GOTREF(__pyx_t_2);
6536  __pyx_t_3 = NULL;
6537  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6538  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6539  if (likely(__pyx_t_3)) {
6540  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6541  __Pyx_INCREF(__pyx_t_3);
6542  __Pyx_INCREF(function);
6543  __Pyx_DECREF_SET(__pyx_t_2, function);
6544  }
6545  }
6546  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6547  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6548  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error)
6549  __Pyx_GOTREF(__pyx_t_1);
6550  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6551  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6552 
6553  /* "mprans/BoundaryConditions.py":160
6554  * self.vos_advective.setConstantBC(0.)
6555  * self.p_advective.setConstantBC(0.)
6556  * self.u_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6557  * self.v_advective.setConstantBC(0.)
6558  * self.w_advective.setConstantBC(0.)
6559  */
6560  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error)
6561  __Pyx_GOTREF(__pyx_t_2);
6562  __pyx_t_3 = NULL;
6563  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6564  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6565  if (likely(__pyx_t_3)) {
6566  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6567  __Pyx_INCREF(__pyx_t_3);
6568  __Pyx_INCREF(function);
6569  __Pyx_DECREF_SET(__pyx_t_2, function);
6570  }
6571  }
6572  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6573  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6574  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error)
6575  __Pyx_GOTREF(__pyx_t_1);
6576  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6577  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6578 
6579  /* "mprans/BoundaryConditions.py":161
6580  * self.p_advective.setConstantBC(0.)
6581  * self.u_advective.setConstantBC(0.)
6582  * self.v_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6583  * self.w_advective.setConstantBC(0.)
6584  * self.u_diffusive.setConstantBC(0.)
6585  */
6586  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 161, __pyx_L1_error)
6587  __Pyx_GOTREF(__pyx_t_2);
6588  __pyx_t_3 = NULL;
6589  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6590  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6591  if (likely(__pyx_t_3)) {
6592  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6593  __Pyx_INCREF(__pyx_t_3);
6594  __Pyx_INCREF(function);
6595  __Pyx_DECREF_SET(__pyx_t_2, function);
6596  }
6597  }
6598  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6599  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6600  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error)
6601  __Pyx_GOTREF(__pyx_t_1);
6602  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6603  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6604 
6605  /* "mprans/BoundaryConditions.py":162
6606  * self.u_advective.setConstantBC(0.)
6607  * self.v_advective.setConstantBC(0.)
6608  * self.w_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
6609  * self.u_diffusive.setConstantBC(0.)
6610  * self.v_diffusive.setConstantBC(0.)
6611  */
6612  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error)
6613  __Pyx_GOTREF(__pyx_t_2);
6614  __pyx_t_3 = NULL;
6615  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6616  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6617  if (likely(__pyx_t_3)) {
6618  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6619  __Pyx_INCREF(__pyx_t_3);
6620  __Pyx_INCREF(function);
6621  __Pyx_DECREF_SET(__pyx_t_2, function);
6622  }
6623  }
6624  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6625  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6626  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error)
6627  __Pyx_GOTREF(__pyx_t_1);
6628  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6629  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6630 
6631  /* "mprans/BoundaryConditions.py":163
6632  * self.v_advective.setConstantBC(0.)
6633  * self.w_advective.setConstantBC(0.)
6634  * self.u_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6635  * self.v_diffusive.setConstantBC(0.)
6636  * self.w_diffusive.setConstantBC(0.)
6637  */
6638  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error)
6639  __Pyx_GOTREF(__pyx_t_2);
6640  __pyx_t_3 = NULL;
6641  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6642  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6643  if (likely(__pyx_t_3)) {
6644  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6645  __Pyx_INCREF(__pyx_t_3);
6646  __Pyx_INCREF(function);
6647  __Pyx_DECREF_SET(__pyx_t_2, function);
6648  }
6649  }
6650  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6651  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6652  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error)
6653  __Pyx_GOTREF(__pyx_t_1);
6654  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6655  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6656 
6657  /* "mprans/BoundaryConditions.py":164
6658  * self.w_advective.setConstantBC(0.)
6659  * self.u_diffusive.setConstantBC(0.)
6660  * self.v_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6661  * self.w_diffusive.setConstantBC(0.)
6662  * self.us_diffusive.setConstantBC(0.)
6663  */
6664  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 164, __pyx_L1_error)
6665  __Pyx_GOTREF(__pyx_t_2);
6666  __pyx_t_3 = NULL;
6667  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6668  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6669  if (likely(__pyx_t_3)) {
6670  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6671  __Pyx_INCREF(__pyx_t_3);
6672  __Pyx_INCREF(function);
6673  __Pyx_DECREF_SET(__pyx_t_2, function);
6674  }
6675  }
6676  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6677  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6678  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error)
6679  __Pyx_GOTREF(__pyx_t_1);
6680  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6681  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6682 
6683  /* "mprans/BoundaryConditions.py":165
6684  * self.u_diffusive.setConstantBC(0.)
6685  * self.v_diffusive.setConstantBC(0.)
6686  * self.w_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6687  * self.us_diffusive.setConstantBC(0.)
6688  * self.vs_diffusive.setConstantBC(0.)
6689  */
6690  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
6691  __Pyx_GOTREF(__pyx_t_2);
6692  __pyx_t_3 = NULL;
6693  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6694  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6695  if (likely(__pyx_t_3)) {
6696  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6697  __Pyx_INCREF(__pyx_t_3);
6698  __Pyx_INCREF(function);
6699  __Pyx_DECREF_SET(__pyx_t_2, function);
6700  }
6701  }
6702  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6703  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6704  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error)
6705  __Pyx_GOTREF(__pyx_t_1);
6706  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6707  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6708 
6709  /* "mprans/BoundaryConditions.py":166
6710  * self.v_diffusive.setConstantBC(0.)
6711  * self.w_diffusive.setConstantBC(0.)
6712  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6713  * self.vs_diffusive.setConstantBC(0.)
6714  * self.ws_diffusive.setConstantBC(0.)
6715  */
6716  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
6717  __Pyx_GOTREF(__pyx_t_2);
6718  __pyx_t_3 = NULL;
6719  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6720  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6721  if (likely(__pyx_t_3)) {
6722  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6723  __Pyx_INCREF(__pyx_t_3);
6724  __Pyx_INCREF(function);
6725  __Pyx_DECREF_SET(__pyx_t_2, function);
6726  }
6727  }
6728  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6729  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6730  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
6731  __Pyx_GOTREF(__pyx_t_1);
6732  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6733  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6734 
6735  /* "mprans/BoundaryConditions.py":167
6736  * self.w_diffusive.setConstantBC(0.)
6737  * self.us_diffusive.setConstantBC(0.)
6738  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6739  * self.ws_diffusive.setConstantBC(0.)
6740  * self.k_diffusive.setConstantBC(0.)
6741  */
6742  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error)
6743  __Pyx_GOTREF(__pyx_t_2);
6744  __pyx_t_3 = NULL;
6745  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6746  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6747  if (likely(__pyx_t_3)) {
6748  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6749  __Pyx_INCREF(__pyx_t_3);
6750  __Pyx_INCREF(function);
6751  __Pyx_DECREF_SET(__pyx_t_2, function);
6752  }
6753  }
6754  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6755  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6756  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
6757  __Pyx_GOTREF(__pyx_t_1);
6758  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6759  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6760 
6761  /* "mprans/BoundaryConditions.py":168
6762  * self.us_diffusive.setConstantBC(0.)
6763  * self.vs_diffusive.setConstantBC(0.)
6764  * self.ws_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6765  * self.k_diffusive.setConstantBC(0.)
6766  * self.dissipation_diffusive.setConstantBC(0.)
6767  */
6768  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 168, __pyx_L1_error)
6769  __Pyx_GOTREF(__pyx_t_2);
6770  __pyx_t_3 = NULL;
6771  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6772  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6773  if (likely(__pyx_t_3)) {
6774  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6775  __Pyx_INCREF(__pyx_t_3);
6776  __Pyx_INCREF(function);
6777  __Pyx_DECREF_SET(__pyx_t_2, function);
6778  }
6779  }
6780  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6781  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6782  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 168, __pyx_L1_error)
6783  __Pyx_GOTREF(__pyx_t_1);
6784  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6785  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6786 
6787  /* "mprans/BoundaryConditions.py":169
6788  * self.vs_diffusive.setConstantBC(0.)
6789  * self.ws_diffusive.setConstantBC(0.)
6790  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6791  * self.dissipation_diffusive.setConstantBC(0.)
6792  * self.pInc_diffusive.setConstantBC(0.)
6793  */
6794  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error)
6795  __Pyx_GOTREF(__pyx_t_2);
6796  __pyx_t_3 = NULL;
6797  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6798  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6799  if (likely(__pyx_t_3)) {
6800  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6801  __Pyx_INCREF(__pyx_t_3);
6802  __Pyx_INCREF(function);
6803  __Pyx_DECREF_SET(__pyx_t_2, function);
6804  }
6805  }
6806  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6807  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6808  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
6809  __Pyx_GOTREF(__pyx_t_1);
6810  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6811  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6812 
6813  /* "mprans/BoundaryConditions.py":170
6814  * self.ws_diffusive.setConstantBC(0.)
6815  * self.k_diffusive.setConstantBC(0.)
6816  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6817  * self.pInc_diffusive.setConstantBC(0.)
6818  *
6819  */
6820  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error)
6821  __Pyx_GOTREF(__pyx_t_2);
6822  __pyx_t_3 = NULL;
6823  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6824  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6825  if (likely(__pyx_t_3)) {
6826  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6827  __Pyx_INCREF(__pyx_t_3);
6828  __Pyx_INCREF(function);
6829  __Pyx_DECREF_SET(__pyx_t_2, function);
6830  }
6831  }
6832  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6833  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6834  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error)
6835  __Pyx_GOTREF(__pyx_t_1);
6836  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6837  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6838 
6839  /* "mprans/BoundaryConditions.py":171
6840  * self.k_diffusive.setConstantBC(0.)
6841  * self.dissipation_diffusive.setConstantBC(0.)
6842  * self.pInc_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
6843  *
6844  * def setTank(self, b_or=None):
6845  */
6846  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error)
6847  __Pyx_GOTREF(__pyx_t_2);
6848  __pyx_t_3 = NULL;
6849  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6850  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6851  if (likely(__pyx_t_3)) {
6852  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6853  __Pyx_INCREF(__pyx_t_3);
6854  __Pyx_INCREF(function);
6855  __Pyx_DECREF_SET(__pyx_t_2, function);
6856  }
6857  }
6858  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
6859  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6860  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error)
6861  __Pyx_GOTREF(__pyx_t_1);
6862  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6863  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6864 
6865  /* "mprans/BoundaryConditions.py":150
6866  * self.clsvof_diffusive.resetBC()
6867  *
6868  * def setNonMaterial(self): # <<<<<<<<<<<<<<
6869  * """
6870  * Sets non-material boundary conditions (diffusive flux and advective vof
6871  */
6872 
6873  /* function exit code */
6874  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6875  goto __pyx_L0;
6876  __pyx_L1_error:;
6877  __Pyx_XDECREF(__pyx_t_1);
6878  __Pyx_XDECREF(__pyx_t_2);
6879  __Pyx_XDECREF(__pyx_t_3);
6880  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setNonMaterial", __pyx_clineno, __pyx_lineno, __pyx_filename);
6881  __pyx_r = NULL;
6882  __pyx_L0:;
6883  __Pyx_XGIVEREF(__pyx_r);
6884  __Pyx_TraceReturn(__pyx_r, 0);
6885  __Pyx_RefNannyFinishContext();
6886  return __pyx_r;
6887 }
6888 
6889 /* "mprans/BoundaryConditions.py":173
6890  * self.pInc_diffusive.setConstantBC(0.)
6891  *
6892  * def setTank(self, b_or=None): # <<<<<<<<<<<<<<
6893  * if b_or is None:
6894  * assert self._b_or is not None, 'Boundary orientation must be defined!'
6895  */
6896 
6897 /* Python wrapper */
6898 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_7setTank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6899 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_6setTank[] = "BC_RANS.setTank(self, b_or=None)";
6900 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_7setTank = {"setTank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_7setTank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_6setTank};
6901 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_7setTank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6902  PyObject *__pyx_v_b_or = 0;
6903  int __pyx_lineno = 0;
6904  const char *__pyx_filename = NULL;
6905  int __pyx_clineno = 0;
6906  PyObject *__pyx_r = 0;
6907  __Pyx_RefNannyDeclarations
6908  __Pyx_RefNannySetupContext("setTank (wrapper)", 0);
6909  {
6910  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b_or,0};
6911  PyObject* values[1] = {0};
6912  values[0] = ((PyObject *)Py_None);
6913  if (unlikely(__pyx_kwds)) {
6914  Py_ssize_t kw_args;
6915  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6916  switch (pos_args) {
6917  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6918  CYTHON_FALLTHROUGH;
6919  case 0: break;
6920  default: goto __pyx_L5_argtuple_error;
6921  }
6922  kw_args = PyDict_Size(__pyx_kwds);
6923  switch (pos_args) {
6924  case 0:
6925  if (kw_args > 0) {
6926  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_or);
6927  if (value) { values[0] = value; kw_args--; }
6928  }
6929  }
6930  if (unlikely(kw_args > 0)) {
6931  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTank") < 0)) __PYX_ERR(0, 173, __pyx_L3_error)
6932  }
6933  } else {
6934  switch (PyTuple_GET_SIZE(__pyx_args)) {
6935  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6936  CYTHON_FALLTHROUGH;
6937  case 0: break;
6938  default: goto __pyx_L5_argtuple_error;
6939  }
6940  }
6941  __pyx_v_b_or = values[0];
6942  }
6943  goto __pyx_L4_argument_unpacking_done;
6944  __pyx_L5_argtuple_error:;
6945  __Pyx_RaiseArgtupleInvalid("setTank", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 173, __pyx_L3_error)
6946  __pyx_L3_error:;
6947  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTank", __pyx_clineno, __pyx_lineno, __pyx_filename);
6948  __Pyx_RefNannyFinishContext();
6949  return NULL;
6950  __pyx_L4_argument_unpacking_done:;
6951  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_6setTank(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_b_or);
6952 
6953  /* function exit code */
6954  __Pyx_RefNannyFinishContext();
6955  return __pyx_r;
6956 }
6957 
6958 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_6setTank(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_b_or) {
6959  PyObject *__pyx_r = NULL;
6960  __Pyx_TraceDeclarations
6961  __Pyx_RefNannyDeclarations
6962  int __pyx_t_1;
6963  int __pyx_t_2;
6964  PyObject *__pyx_t_3 = NULL;
6965  PyObject *__pyx_t_4 = NULL;
6966  PyObject *__pyx_t_5 = NULL;
6967  Py_ssize_t __pyx_t_6;
6968  int __pyx_lineno = 0;
6969  const char *__pyx_filename = NULL;
6970  int __pyx_clineno = 0;
6971  __Pyx_TraceFrameInit(__pyx_codeobj__3)
6972  __Pyx_RefNannySetupContext("setTank", 0);
6973  __Pyx_TraceCall("setTank", __pyx_f[0], 173, 0, __PYX_ERR(0, 173, __pyx_L1_error));
6974  __Pyx_INCREF(__pyx_v_b_or);
6975 
6976  /* "mprans/BoundaryConditions.py":174
6977  *
6978  * def setTank(self, b_or=None):
6979  * if b_or is None: # <<<<<<<<<<<<<<
6980  * assert self._b_or is not None, 'Boundary orientation must be defined!'
6981  * b_or = self._b_or
6982  */
6983  __pyx_t_1 = (__pyx_v_b_or == Py_None);
6984  __pyx_t_2 = (__pyx_t_1 != 0);
6985  if (__pyx_t_2) {
6986 
6987  /* "mprans/BoundaryConditions.py":175
6988  * def setTank(self, b_or=None):
6989  * if b_or is None:
6990  * assert self._b_or is not None, 'Boundary orientation must be defined!' # <<<<<<<<<<<<<<
6991  * b_or = self._b_or
6992  * self.u_stress.uOfXT = 0.
6993  */
6994  #ifndef CYTHON_WITHOUT_ASSERTIONS
6995  if (unlikely(!Py_OptimizeFlag)) {
6996  if (unlikely(!((((PyObject *) __pyx_v_self->__pyx_base._b_or.memview) != Py_None) != 0))) {
6997  PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Boundary_orientation_must_be_def);
6998  __PYX_ERR(0, 175, __pyx_L1_error)
6999  }
7000  }
7001  #endif
7002 
7003  /* "mprans/BoundaryConditions.py":176
7004  * if b_or is None:
7005  * assert self._b_or is not None, 'Boundary orientation must be defined!'
7006  * b_or = self._b_or # <<<<<<<<<<<<<<
7007  * self.u_stress.uOfXT = 0.
7008  * self.v_stress.uOfXT = 0.
7009  */
7010  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 176, __pyx_L1_error)
7011  __Pyx_GOTREF(__pyx_t_3);
7012  __Pyx_DECREF_SET(__pyx_v_b_or, __pyx_t_3);
7013  __pyx_t_3 = 0;
7014 
7015  /* "mprans/BoundaryConditions.py":174
7016  *
7017  * def setTank(self, b_or=None):
7018  * if b_or is None: # <<<<<<<<<<<<<<
7019  * assert self._b_or is not None, 'Boundary orientation must be defined!'
7020  * b_or = self._b_or
7021  */
7022  }
7023 
7024  /* "mprans/BoundaryConditions.py":177
7025  * assert self._b_or is not None, 'Boundary orientation must be defined!'
7026  * b_or = self._b_or
7027  * self.u_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7028  * self.v_stress.uOfXT = 0.
7029  * self.w_stress.uOfXT = 0.
7030  */
7031  __Pyx_INCREF(__pyx_float_0_);
7032  __Pyx_GIVEREF(__pyx_float_0_);
7033  __Pyx_GOTREF(__pyx_v_self->u_stress->uOfXT);
7034  __Pyx_DECREF(__pyx_v_self->u_stress->uOfXT);
7035  __pyx_v_self->u_stress->uOfXT = __pyx_float_0_;
7036 
7037  /* "mprans/BoundaryConditions.py":178
7038  * b_or = self._b_or
7039  * self.u_stress.uOfXT = 0.
7040  * self.v_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7041  * self.w_stress.uOfXT = 0.
7042  * self.hx_dirichlet.resetBC()
7043  */
7044  __Pyx_INCREF(__pyx_float_0_);
7045  __Pyx_GIVEREF(__pyx_float_0_);
7046  __Pyx_GOTREF(__pyx_v_self->v_stress->uOfXT);
7047  __Pyx_DECREF(__pyx_v_self->v_stress->uOfXT);
7048  __pyx_v_self->v_stress->uOfXT = __pyx_float_0_;
7049 
7050  /* "mprans/BoundaryConditions.py":179
7051  * self.u_stress.uOfXT = 0.
7052  * self.v_stress.uOfXT = 0.
7053  * self.w_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7054  * self.hx_dirichlet.resetBC()
7055  * self.hy_dirichlet.resetBC()
7056  */
7057  __Pyx_INCREF(__pyx_float_0_);
7058  __Pyx_GIVEREF(__pyx_float_0_);
7059  __Pyx_GOTREF(__pyx_v_self->w_stress->uOfXT);
7060  __Pyx_DECREF(__pyx_v_self->w_stress->uOfXT);
7061  __pyx_v_self->w_stress->uOfXT = __pyx_float_0_;
7062 
7063  /* "mprans/BoundaryConditions.py":180
7064  * self.v_stress.uOfXT = 0.
7065  * self.w_stress.uOfXT = 0.
7066  * self.hx_dirichlet.resetBC() # <<<<<<<<<<<<<<
7067  * self.hy_dirichlet.resetBC()
7068  * self.hz_dirichlet.resetBC()
7069  */
7070  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->hx_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->hx_dirichlet, 0);
7071 
7072  /* "mprans/BoundaryConditions.py":181
7073  * self.w_stress.uOfXT = 0.
7074  * self.hx_dirichlet.resetBC()
7075  * self.hy_dirichlet.resetBC() # <<<<<<<<<<<<<<
7076  * self.hz_dirichlet.resetBC()
7077  * if b_or[0] == 1 or b_or[0] == -1:
7078  */
7079  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->hy_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->hy_dirichlet, 0);
7080 
7081  /* "mprans/BoundaryConditions.py":182
7082  * self.hx_dirichlet.resetBC()
7083  * self.hy_dirichlet.resetBC()
7084  * self.hz_dirichlet.resetBC() # <<<<<<<<<<<<<<
7085  * if b_or[0] == 1 or b_or[0] == -1:
7086  * self.hx_dirichlet.setConstantBC(0.)
7087  */
7088  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->hz_dirichlet->__pyx_vtab)->resetBC(__pyx_v_self->hz_dirichlet, 0);
7089 
7090  /* "mprans/BoundaryConditions.py":183
7091  * self.hy_dirichlet.resetBC()
7092  * self.hz_dirichlet.resetBC()
7093  * if b_or[0] == 1 or b_or[0] == -1: # <<<<<<<<<<<<<<
7094  * self.hx_dirichlet.setConstantBC(0.)
7095  * self.u_stress.uOfXT = None
7096  */
7097  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L1_error)
7098  __Pyx_GOTREF(__pyx_t_3);
7099  __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error)
7100  __Pyx_GOTREF(__pyx_t_4);
7101  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7102  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 183, __pyx_L1_error)
7103  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7104  if (!__pyx_t_1) {
7105  } else {
7106  __pyx_t_2 = __pyx_t_1;
7107  goto __pyx_L5_bool_binop_done;
7108  }
7109  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error)
7110  __Pyx_GOTREF(__pyx_t_4);
7111  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L1_error)
7112  __Pyx_GOTREF(__pyx_t_3);
7113  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7114  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 183, __pyx_L1_error)
7115  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7116  __pyx_t_2 = __pyx_t_1;
7117  __pyx_L5_bool_binop_done:;
7118  if (__pyx_t_2) {
7119 
7120  /* "mprans/BoundaryConditions.py":184
7121  * self.hz_dirichlet.resetBC()
7122  * if b_or[0] == 1 or b_or[0] == -1:
7123  * self.hx_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7124  * self.u_stress.uOfXT = None
7125  * elif b_or[1] == 1 or b_or[1] == -1:
7126  */
7127  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hx_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 184, __pyx_L1_error)
7128  __Pyx_GOTREF(__pyx_t_4);
7129  __pyx_t_5 = NULL;
7130  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
7131  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
7132  if (likely(__pyx_t_5)) {
7133  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
7134  __Pyx_INCREF(__pyx_t_5);
7135  __Pyx_INCREF(function);
7136  __Pyx_DECREF_SET(__pyx_t_4, function);
7137  }
7138  }
7139  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_float_0_);
7140  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
7141  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error)
7142  __Pyx_GOTREF(__pyx_t_3);
7143  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7144  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7145 
7146  /* "mprans/BoundaryConditions.py":185
7147  * if b_or[0] == 1 or b_or[0] == -1:
7148  * self.hx_dirichlet.setConstantBC(0.)
7149  * self.u_stress.uOfXT = None # <<<<<<<<<<<<<<
7150  * elif b_or[1] == 1 or b_or[1] == -1:
7151  * self.hy_dirichlet.setConstantBC(0.)
7152  */
7153  __Pyx_INCREF(Py_None);
7154  __Pyx_GIVEREF(Py_None);
7155  __Pyx_GOTREF(__pyx_v_self->u_stress->uOfXT);
7156  __Pyx_DECREF(__pyx_v_self->u_stress->uOfXT);
7157  __pyx_v_self->u_stress->uOfXT = Py_None;
7158 
7159  /* "mprans/BoundaryConditions.py":183
7160  * self.hy_dirichlet.resetBC()
7161  * self.hz_dirichlet.resetBC()
7162  * if b_or[0] == 1 or b_or[0] == -1: # <<<<<<<<<<<<<<
7163  * self.hx_dirichlet.setConstantBC(0.)
7164  * self.u_stress.uOfXT = None
7165  */
7166  goto __pyx_L4;
7167  }
7168 
7169  /* "mprans/BoundaryConditions.py":186
7170  * self.hx_dirichlet.setConstantBC(0.)
7171  * self.u_stress.uOfXT = None
7172  * elif b_or[1] == 1 or b_or[1] == -1: # <<<<<<<<<<<<<<
7173  * self.hy_dirichlet.setConstantBC(0.)
7174  * self.v_stress.uOfXT = None
7175  */
7176  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error)
7177  __Pyx_GOTREF(__pyx_t_3);
7178  __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error)
7179  __Pyx_GOTREF(__pyx_t_4);
7180  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7181  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 186, __pyx_L1_error)
7182  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7183  if (!__pyx_t_1) {
7184  } else {
7185  __pyx_t_2 = __pyx_t_1;
7186  goto __pyx_L7_bool_binop_done;
7187  }
7188  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error)
7189  __Pyx_GOTREF(__pyx_t_4);
7190  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error)
7191  __Pyx_GOTREF(__pyx_t_3);
7192  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7193  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 186, __pyx_L1_error)
7194  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7195  __pyx_t_2 = __pyx_t_1;
7196  __pyx_L7_bool_binop_done:;
7197  if (__pyx_t_2) {
7198 
7199  /* "mprans/BoundaryConditions.py":187
7200  * self.u_stress.uOfXT = None
7201  * elif b_or[1] == 1 or b_or[1] == -1:
7202  * self.hy_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7203  * self.v_stress.uOfXT = None
7204  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1):
7205  */
7206  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hy_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error)
7207  __Pyx_GOTREF(__pyx_t_4);
7208  __pyx_t_5 = NULL;
7209  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
7210  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
7211  if (likely(__pyx_t_5)) {
7212  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
7213  __Pyx_INCREF(__pyx_t_5);
7214  __Pyx_INCREF(function);
7215  __Pyx_DECREF_SET(__pyx_t_4, function);
7216  }
7217  }
7218  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_float_0_);
7219  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
7220  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 187, __pyx_L1_error)
7221  __Pyx_GOTREF(__pyx_t_3);
7222  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7223  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7224 
7225  /* "mprans/BoundaryConditions.py":188
7226  * elif b_or[1] == 1 or b_or[1] == -1:
7227  * self.hy_dirichlet.setConstantBC(0.)
7228  * self.v_stress.uOfXT = None # <<<<<<<<<<<<<<
7229  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1):
7230  * self.hz_dirichlet.setConstantBC(0.)
7231  */
7232  __Pyx_INCREF(Py_None);
7233  __Pyx_GIVEREF(Py_None);
7234  __Pyx_GOTREF(__pyx_v_self->v_stress->uOfXT);
7235  __Pyx_DECREF(__pyx_v_self->v_stress->uOfXT);
7236  __pyx_v_self->v_stress->uOfXT = Py_None;
7237 
7238  /* "mprans/BoundaryConditions.py":186
7239  * self.hx_dirichlet.setConstantBC(0.)
7240  * self.u_stress.uOfXT = None
7241  * elif b_or[1] == 1 or b_or[1] == -1: # <<<<<<<<<<<<<<
7242  * self.hy_dirichlet.setConstantBC(0.)
7243  * self.v_stress.uOfXT = None
7244  */
7245  goto __pyx_L4;
7246  }
7247 
7248  /* "mprans/BoundaryConditions.py":189
7249  * self.hy_dirichlet.setConstantBC(0.)
7250  * self.v_stress.uOfXT = None
7251  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1): # <<<<<<<<<<<<<<
7252  * self.hz_dirichlet.setConstantBC(0.)
7253  * self.w_stress.uOfXT = None
7254  */
7255  __pyx_t_6 = PyObject_Length(__pyx_v_b_or); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 189, __pyx_L1_error)
7256  __pyx_t_1 = ((__pyx_t_6 > 2) != 0);
7257  if (__pyx_t_1) {
7258  } else {
7259  __pyx_t_2 = __pyx_t_1;
7260  goto __pyx_L9_bool_binop_done;
7261  }
7262  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 189, __pyx_L1_error)
7263  __Pyx_GOTREF(__pyx_t_3);
7264  __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error)
7265  __Pyx_GOTREF(__pyx_t_4);
7266  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7267  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 189, __pyx_L1_error)
7268  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7269  if (!__pyx_t_1) {
7270  } else {
7271  __pyx_t_2 = __pyx_t_1;
7272  goto __pyx_L9_bool_binop_done;
7273  }
7274  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error)
7275  __Pyx_GOTREF(__pyx_t_4);
7276  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 189, __pyx_L1_error)
7277  __Pyx_GOTREF(__pyx_t_3);
7278  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7279  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 189, __pyx_L1_error)
7280  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7281  __pyx_t_2 = __pyx_t_1;
7282  __pyx_L9_bool_binop_done:;
7283  if (__pyx_t_2) {
7284 
7285  /* "mprans/BoundaryConditions.py":190
7286  * self.v_stress.uOfXT = None
7287  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1):
7288  * self.hz_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7289  * self.w_stress.uOfXT = None
7290  *
7291  */
7292  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hz_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error)
7293  __Pyx_GOTREF(__pyx_t_4);
7294  __pyx_t_5 = NULL;
7295  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
7296  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
7297  if (likely(__pyx_t_5)) {
7298  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
7299  __Pyx_INCREF(__pyx_t_5);
7300  __Pyx_INCREF(function);
7301  __Pyx_DECREF_SET(__pyx_t_4, function);
7302  }
7303  }
7304  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_float_0_);
7305  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
7306  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 190, __pyx_L1_error)
7307  __Pyx_GOTREF(__pyx_t_3);
7308  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7309  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7310 
7311  /* "mprans/BoundaryConditions.py":191
7312  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1):
7313  * self.hz_dirichlet.setConstantBC(0.)
7314  * self.w_stress.uOfXT = None # <<<<<<<<<<<<<<
7315  *
7316  * def setFixedNodes(self):
7317  */
7318  __Pyx_INCREF(Py_None);
7319  __Pyx_GIVEREF(Py_None);
7320  __Pyx_GOTREF(__pyx_v_self->w_stress->uOfXT);
7321  __Pyx_DECREF(__pyx_v_self->w_stress->uOfXT);
7322  __pyx_v_self->w_stress->uOfXT = Py_None;
7323 
7324  /* "mprans/BoundaryConditions.py":189
7325  * self.hy_dirichlet.setConstantBC(0.)
7326  * self.v_stress.uOfXT = None
7327  * elif len(b_or) > 2 and (b_or[2] == 1 or b_or[2] == -1): # <<<<<<<<<<<<<<
7328  * self.hz_dirichlet.setConstantBC(0.)
7329  * self.w_stress.uOfXT = None
7330  */
7331  }
7332  __pyx_L4:;
7333 
7334  /* "mprans/BoundaryConditions.py":173
7335  * self.pInc_diffusive.setConstantBC(0.)
7336  *
7337  * def setTank(self, b_or=None): # <<<<<<<<<<<<<<
7338  * if b_or is None:
7339  * assert self._b_or is not None, 'Boundary orientation must be defined!'
7340  */
7341 
7342  /* function exit code */
7343  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7344  goto __pyx_L0;
7345  __pyx_L1_error:;
7346  __Pyx_XDECREF(__pyx_t_3);
7347  __Pyx_XDECREF(__pyx_t_4);
7348  __Pyx_XDECREF(__pyx_t_5);
7349  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTank", __pyx_clineno, __pyx_lineno, __pyx_filename);
7350  __pyx_r = NULL;
7351  __pyx_L0:;
7352  __Pyx_XDECREF(__pyx_v_b_or);
7353  __Pyx_XGIVEREF(__pyx_r);
7354  __Pyx_TraceReturn(__pyx_r, 0);
7355  __Pyx_RefNannyFinishContext();
7356  return __pyx_r;
7357 }
7358 
7359 /* "mprans/BoundaryConditions.py":193
7360  * self.w_stress.uOfXT = None
7361  *
7362  * def setFixedNodes(self): # <<<<<<<<<<<<<<
7363  * """
7364  * For moving domains: fixes nodes/boundary
7365  */
7366 
7367 /* Python wrapper */
7368 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
7369 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes[] = "BC_RANS.setFixedNodes(self)\n\n For moving domains: fixes nodes/boundary\n ";
7370 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes = {"setFixedNodes", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes};
7371 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
7372  PyObject *__pyx_r = 0;
7373  __Pyx_RefNannyDeclarations
7374  __Pyx_RefNannySetupContext("setFixedNodes (wrapper)", 0);
7375  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
7376 
7377  /* function exit code */
7378  __Pyx_RefNannyFinishContext();
7379  return __pyx_r;
7380 }
7381 
7382 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
7383  PyObject *__pyx_r = NULL;
7384  __Pyx_TraceDeclarations
7385  __Pyx_RefNannyDeclarations
7386  PyObject *__pyx_t_1 = NULL;
7387  PyObject *__pyx_t_2 = NULL;
7388  PyObject *__pyx_t_3 = NULL;
7389  int __pyx_lineno = 0;
7390  const char *__pyx_filename = NULL;
7391  int __pyx_clineno = 0;
7392  __Pyx_TraceFrameInit(__pyx_codeobj__4)
7393  __Pyx_RefNannySetupContext("setFixedNodes", 0);
7394  __Pyx_TraceCall("setFixedNodes", __pyx_f[0], 193, 0, __PYX_ERR(0, 193, __pyx_L1_error));
7395 
7396  /* "mprans/BoundaryConditions.py":197
7397  * For moving domains: fixes nodes/boundary
7398  * """
7399  * self.hx_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7400  * self.hy_dirichlet.setConstantBC(0.)
7401  * self.hz_dirichlet.setConstantBC(0.)
7402  */
7403  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hx_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
7404  __Pyx_GOTREF(__pyx_t_2);
7405  __pyx_t_3 = NULL;
7406  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7407  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7408  if (likely(__pyx_t_3)) {
7409  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7410  __Pyx_INCREF(__pyx_t_3);
7411  __Pyx_INCREF(function);
7412  __Pyx_DECREF_SET(__pyx_t_2, function);
7413  }
7414  }
7415  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7416  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7417  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
7418  __Pyx_GOTREF(__pyx_t_1);
7419  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7420  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7421 
7422  /* "mprans/BoundaryConditions.py":198
7423  * """
7424  * self.hx_dirichlet.setConstantBC(0.)
7425  * self.hy_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7426  * self.hz_dirichlet.setConstantBC(0.)
7427  * self.u_stress.uOfXT = 0.
7428  */
7429  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hy_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error)
7430  __Pyx_GOTREF(__pyx_t_2);
7431  __pyx_t_3 = NULL;
7432  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7433  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7434  if (likely(__pyx_t_3)) {
7435  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7436  __Pyx_INCREF(__pyx_t_3);
7437  __Pyx_INCREF(function);
7438  __Pyx_DECREF_SET(__pyx_t_2, function);
7439  }
7440  }
7441  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7442  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7443  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error)
7444  __Pyx_GOTREF(__pyx_t_1);
7445  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7446  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7447 
7448  /* "mprans/BoundaryConditions.py":199
7449  * self.hx_dirichlet.setConstantBC(0.)
7450  * self.hy_dirichlet.setConstantBC(0.)
7451  * self.hz_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7452  * self.u_stress.uOfXT = 0.
7453  * self.v_stress.uOfXT = 0.
7454  */
7455  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->hz_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error)
7456  __Pyx_GOTREF(__pyx_t_2);
7457  __pyx_t_3 = NULL;
7458  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7459  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7460  if (likely(__pyx_t_3)) {
7461  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7462  __Pyx_INCREF(__pyx_t_3);
7463  __Pyx_INCREF(function);
7464  __Pyx_DECREF_SET(__pyx_t_2, function);
7465  }
7466  }
7467  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7468  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7469  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error)
7470  __Pyx_GOTREF(__pyx_t_1);
7471  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7472  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7473 
7474  /* "mprans/BoundaryConditions.py":200
7475  * self.hy_dirichlet.setConstantBC(0.)
7476  * self.hz_dirichlet.setConstantBC(0.)
7477  * self.u_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7478  * self.v_stress.uOfXT = 0.
7479  * self.w_stress.uOfXT = 0.
7480  */
7481  __Pyx_INCREF(__pyx_float_0_);
7482  __Pyx_GIVEREF(__pyx_float_0_);
7483  __Pyx_GOTREF(__pyx_v_self->u_stress->uOfXT);
7484  __Pyx_DECREF(__pyx_v_self->u_stress->uOfXT);
7485  __pyx_v_self->u_stress->uOfXT = __pyx_float_0_;
7486 
7487  /* "mprans/BoundaryConditions.py":201
7488  * self.hz_dirichlet.setConstantBC(0.)
7489  * self.u_stress.uOfXT = 0.
7490  * self.v_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7491  * self.w_stress.uOfXT = 0.
7492  *
7493  */
7494  __Pyx_INCREF(__pyx_float_0_);
7495  __Pyx_GIVEREF(__pyx_float_0_);
7496  __Pyx_GOTREF(__pyx_v_self->v_stress->uOfXT);
7497  __Pyx_DECREF(__pyx_v_self->v_stress->uOfXT);
7498  __pyx_v_self->v_stress->uOfXT = __pyx_float_0_;
7499 
7500  /* "mprans/BoundaryConditions.py":202
7501  * self.u_stress.uOfXT = 0.
7502  * self.v_stress.uOfXT = 0.
7503  * self.w_stress.uOfXT = 0. # <<<<<<<<<<<<<<
7504  *
7505  * def setNoSlip(self):
7506  */
7507  __Pyx_INCREF(__pyx_float_0_);
7508  __Pyx_GIVEREF(__pyx_float_0_);
7509  __Pyx_GOTREF(__pyx_v_self->w_stress->uOfXT);
7510  __Pyx_DECREF(__pyx_v_self->w_stress->uOfXT);
7511  __pyx_v_self->w_stress->uOfXT = __pyx_float_0_;
7512 
7513  /* "mprans/BoundaryConditions.py":193
7514  * self.w_stress.uOfXT = None
7515  *
7516  * def setFixedNodes(self): # <<<<<<<<<<<<<<
7517  * """
7518  * For moving domains: fixes nodes/boundary
7519  */
7520 
7521  /* function exit code */
7522  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7523  goto __pyx_L0;
7524  __pyx_L1_error:;
7525  __Pyx_XDECREF(__pyx_t_1);
7526  __Pyx_XDECREF(__pyx_t_2);
7527  __Pyx_XDECREF(__pyx_t_3);
7528  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setFixedNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
7529  __pyx_r = NULL;
7530  __pyx_L0:;
7531  __Pyx_XGIVEREF(__pyx_r);
7532  __Pyx_TraceReturn(__pyx_r, 0);
7533  __Pyx_RefNannyFinishContext();
7534  return __pyx_r;
7535 }
7536 
7537 /* "mprans/BoundaryConditions.py":204
7538  * self.w_stress.uOfXT = 0.
7539  *
7540  * def setNoSlip(self): # <<<<<<<<<<<<<<
7541  * """
7542  * Sets no slip conditions at the boundary
7543  */
7544 
7545 /* Python wrapper */
7546 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
7547 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip[] = "BC_RANS.setNoSlip(self)\n\n Sets no slip conditions at the boundary\n ";
7548 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip = {"setNoSlip", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip};
7549 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
7550  PyObject *__pyx_r = 0;
7551  __Pyx_RefNannyDeclarations
7552  __Pyx_RefNannySetupContext("setNoSlip (wrapper)", 0);
7553  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
7554 
7555  /* function exit code */
7556  __Pyx_RefNannyFinishContext();
7557  return __pyx_r;
7558 }
7559 
7560 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
7561  PyObject *__pyx_r = NULL;
7562  __Pyx_TraceDeclarations
7563  __Pyx_RefNannyDeclarations
7564  PyObject *__pyx_t_1 = NULL;
7565  PyObject *__pyx_t_2 = NULL;
7566  PyObject *__pyx_t_3 = NULL;
7567  int __pyx_lineno = 0;
7568  const char *__pyx_filename = NULL;
7569  int __pyx_clineno = 0;
7570  __Pyx_TraceFrameInit(__pyx_codeobj__5)
7571  __Pyx_RefNannySetupContext("setNoSlip", 0);
7572  __Pyx_TraceCall("setNoSlip", __pyx_f[0], 204, 0, __PYX_ERR(0, 204, __pyx_L1_error));
7573 
7574  /* "mprans/BoundaryConditions.py":208
7575  * Sets no slip conditions at the boundary
7576  * """
7577  * self.reset() # <<<<<<<<<<<<<<
7578  * self.BC_type = 'NoSlip'
7579  * # dirichlet
7580  */
7581  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
7582  __Pyx_GOTREF(__pyx_t_2);
7583  __pyx_t_3 = NULL;
7584  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7585  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7586  if (likely(__pyx_t_3)) {
7587  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7588  __Pyx_INCREF(__pyx_t_3);
7589  __Pyx_INCREF(function);
7590  __Pyx_DECREF_SET(__pyx_t_2, function);
7591  }
7592  }
7593  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
7594  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7595  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 208, __pyx_L1_error)
7596  __Pyx_GOTREF(__pyx_t_1);
7597  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7598  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7599 
7600  /* "mprans/BoundaryConditions.py":209
7601  * """
7602  * self.reset()
7603  * self.BC_type = 'NoSlip' # <<<<<<<<<<<<<<
7604  * # dirichlet
7605  * self.u_dirichlet.setConstantBC(0.)
7606  */
7607  __Pyx_INCREF(__pyx_n_s_NoSlip);
7608  __Pyx_GIVEREF(__pyx_n_s_NoSlip);
7609  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
7610  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
7611  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_NoSlip;
7612 
7613  /* "mprans/BoundaryConditions.py":211
7614  * self.BC_type = 'NoSlip'
7615  * # dirichlet
7616  * self.u_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7617  * self.v_dirichlet.setConstantBC(0.)
7618  * self.w_dirichlet.setConstantBC(0.)
7619  */
7620  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error)
7621  __Pyx_GOTREF(__pyx_t_2);
7622  __pyx_t_3 = NULL;
7623  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7624  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7625  if (likely(__pyx_t_3)) {
7626  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7627  __Pyx_INCREF(__pyx_t_3);
7628  __Pyx_INCREF(function);
7629  __Pyx_DECREF_SET(__pyx_t_2, function);
7630  }
7631  }
7632  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7633  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7634  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error)
7635  __Pyx_GOTREF(__pyx_t_1);
7636  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7637  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7638 
7639  /* "mprans/BoundaryConditions.py":212
7640  * # dirichlet
7641  * self.u_dirichlet.setConstantBC(0.)
7642  * self.v_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7643  * self.w_dirichlet.setConstantBC(0.)
7644  * self.us_dirichlet.setConstantBC(0.)
7645  */
7646  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error)
7647  __Pyx_GOTREF(__pyx_t_2);
7648  __pyx_t_3 = NULL;
7649  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7650  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7651  if (likely(__pyx_t_3)) {
7652  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7653  __Pyx_INCREF(__pyx_t_3);
7654  __Pyx_INCREF(function);
7655  __Pyx_DECREF_SET(__pyx_t_2, function);
7656  }
7657  }
7658  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7659  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7660  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
7661  __Pyx_GOTREF(__pyx_t_1);
7662  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7663  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7664 
7665  /* "mprans/BoundaryConditions.py":213
7666  * self.u_dirichlet.setConstantBC(0.)
7667  * self.v_dirichlet.setConstantBC(0.)
7668  * self.w_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7669  * self.us_dirichlet.setConstantBC(0.)
7670  * self.vs_dirichlet.setConstantBC(0.)
7671  */
7672  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error)
7673  __Pyx_GOTREF(__pyx_t_2);
7674  __pyx_t_3 = NULL;
7675  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7676  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7677  if (likely(__pyx_t_3)) {
7678  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7679  __Pyx_INCREF(__pyx_t_3);
7680  __Pyx_INCREF(function);
7681  __Pyx_DECREF_SET(__pyx_t_2, function);
7682  }
7683  }
7684  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7685  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7686  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error)
7687  __Pyx_GOTREF(__pyx_t_1);
7688  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7689  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7690 
7691  /* "mprans/BoundaryConditions.py":214
7692  * self.v_dirichlet.setConstantBC(0.)
7693  * self.w_dirichlet.setConstantBC(0.)
7694  * self.us_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7695  * self.vs_dirichlet.setConstantBC(0.)
7696  * self.ws_dirichlet.setConstantBC(0.)
7697  */
7698  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
7699  __Pyx_GOTREF(__pyx_t_2);
7700  __pyx_t_3 = NULL;
7701  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7702  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7703  if (likely(__pyx_t_3)) {
7704  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7705  __Pyx_INCREF(__pyx_t_3);
7706  __Pyx_INCREF(function);
7707  __Pyx_DECREF_SET(__pyx_t_2, function);
7708  }
7709  }
7710  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7711  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7712  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error)
7713  __Pyx_GOTREF(__pyx_t_1);
7714  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7715  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7716 
7717  /* "mprans/BoundaryConditions.py":215
7718  * self.w_dirichlet.setConstantBC(0.)
7719  * self.us_dirichlet.setConstantBC(0.)
7720  * self.vs_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7721  * self.ws_dirichlet.setConstantBC(0.)
7722  * self.k_dirichlet.setConstantBC(1e-20)
7723  */
7724  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
7725  __Pyx_GOTREF(__pyx_t_2);
7726  __pyx_t_3 = NULL;
7727  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7728  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7729  if (likely(__pyx_t_3)) {
7730  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7731  __Pyx_INCREF(__pyx_t_3);
7732  __Pyx_INCREF(function);
7733  __Pyx_DECREF_SET(__pyx_t_2, function);
7734  }
7735  }
7736  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7737  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7738  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 215, __pyx_L1_error)
7739  __Pyx_GOTREF(__pyx_t_1);
7740  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7741  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7742 
7743  /* "mprans/BoundaryConditions.py":216
7744  * self.us_dirichlet.setConstantBC(0.)
7745  * self.vs_dirichlet.setConstantBC(0.)
7746  * self.ws_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
7747  * self.k_dirichlet.setConstantBC(1e-20)
7748  * self.dissipation_dirichlet.setConstantBC(1e-10)
7749  */
7750  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error)
7751  __Pyx_GOTREF(__pyx_t_2);
7752  __pyx_t_3 = NULL;
7753  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7754  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7755  if (likely(__pyx_t_3)) {
7756  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7757  __Pyx_INCREF(__pyx_t_3);
7758  __Pyx_INCREF(function);
7759  __Pyx_DECREF_SET(__pyx_t_2, function);
7760  }
7761  }
7762  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7763  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7764  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error)
7765  __Pyx_GOTREF(__pyx_t_1);
7766  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7767  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7768 
7769  /* "mprans/BoundaryConditions.py":217
7770  * self.vs_dirichlet.setConstantBC(0.)
7771  * self.ws_dirichlet.setConstantBC(0.)
7772  * self.k_dirichlet.setConstantBC(1e-20) # <<<<<<<<<<<<<<
7773  * self.dissipation_dirichlet.setConstantBC(1e-10)
7774  * # advective
7775  */
7776  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error)
7777  __Pyx_GOTREF(__pyx_t_2);
7778  __pyx_t_3 = NULL;
7779  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7780  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7781  if (likely(__pyx_t_3)) {
7782  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7783  __Pyx_INCREF(__pyx_t_3);
7784  __Pyx_INCREF(function);
7785  __Pyx_DECREF_SET(__pyx_t_2, function);
7786  }
7787  }
7788  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_1eneg_20) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_1eneg_20);
7789  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7790  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error)
7791  __Pyx_GOTREF(__pyx_t_1);
7792  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7793  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7794 
7795  /* "mprans/BoundaryConditions.py":218
7796  * self.ws_dirichlet.setConstantBC(0.)
7797  * self.k_dirichlet.setConstantBC(1e-20)
7798  * self.dissipation_dirichlet.setConstantBC(1e-10) # <<<<<<<<<<<<<<
7799  * # advective
7800  * self.p_advective.setConstantBC(0.)
7801  */
7802  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error)
7803  __Pyx_GOTREF(__pyx_t_2);
7804  __pyx_t_3 = NULL;
7805  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7806  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7807  if (likely(__pyx_t_3)) {
7808  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7809  __Pyx_INCREF(__pyx_t_3);
7810  __Pyx_INCREF(function);
7811  __Pyx_DECREF_SET(__pyx_t_2, function);
7812  }
7813  }
7814  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_1eneg_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_1eneg_10);
7815  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7816  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
7817  __Pyx_GOTREF(__pyx_t_1);
7818  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7819  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7820 
7821  /* "mprans/BoundaryConditions.py":220
7822  * self.dissipation_dirichlet.setConstantBC(1e-10)
7823  * # advective
7824  * self.p_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
7825  * self.pInit_advective.setConstantBC(0.)
7826  * self.pInc_advective.setConstantBC(0.)
7827  */
7828  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 220, __pyx_L1_error)
7829  __Pyx_GOTREF(__pyx_t_2);
7830  __pyx_t_3 = NULL;
7831  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7832  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7833  if (likely(__pyx_t_3)) {
7834  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7835  __Pyx_INCREF(__pyx_t_3);
7836  __Pyx_INCREF(function);
7837  __Pyx_DECREF_SET(__pyx_t_2, function);
7838  }
7839  }
7840  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7841  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7842  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error)
7843  __Pyx_GOTREF(__pyx_t_1);
7844  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7845  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7846 
7847  /* "mprans/BoundaryConditions.py":221
7848  * # advective
7849  * self.p_advective.setConstantBC(0.)
7850  * self.pInit_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
7851  * self.pInc_advective.setConstantBC(0.)
7852  * self.vof_advective.setConstantBC(0.)
7853  */
7854  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInit_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 221, __pyx_L1_error)
7855  __Pyx_GOTREF(__pyx_t_2);
7856  __pyx_t_3 = NULL;
7857  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7858  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7859  if (likely(__pyx_t_3)) {
7860  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7861  __Pyx_INCREF(__pyx_t_3);
7862  __Pyx_INCREF(function);
7863  __Pyx_DECREF_SET(__pyx_t_2, function);
7864  }
7865  }
7866  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7867  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7868  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 221, __pyx_L1_error)
7869  __Pyx_GOTREF(__pyx_t_1);
7870  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7871  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7872 
7873  /* "mprans/BoundaryConditions.py":222
7874  * self.p_advective.setConstantBC(0.)
7875  * self.pInit_advective.setConstantBC(0.)
7876  * self.pInc_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
7877  * self.vof_advective.setConstantBC(0.)
7878  * self.vos_advective.setConstantBC(0.)
7879  */
7880  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error)
7881  __Pyx_GOTREF(__pyx_t_2);
7882  __pyx_t_3 = NULL;
7883  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7884  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7885  if (likely(__pyx_t_3)) {
7886  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7887  __Pyx_INCREF(__pyx_t_3);
7888  __Pyx_INCREF(function);
7889  __Pyx_DECREF_SET(__pyx_t_2, function);
7890  }
7891  }
7892  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7893  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7894  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error)
7895  __Pyx_GOTREF(__pyx_t_1);
7896  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7897  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7898 
7899  /* "mprans/BoundaryConditions.py":223
7900  * self.pInit_advective.setConstantBC(0.)
7901  * self.pInc_advective.setConstantBC(0.)
7902  * self.vof_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
7903  * self.vos_advective.setConstantBC(0.)
7904  * # diffusive
7905  */
7906  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vof_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error)
7907  __Pyx_GOTREF(__pyx_t_2);
7908  __pyx_t_3 = NULL;
7909  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7910  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7911  if (likely(__pyx_t_3)) {
7912  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7913  __Pyx_INCREF(__pyx_t_3);
7914  __Pyx_INCREF(function);
7915  __Pyx_DECREF_SET(__pyx_t_2, function);
7916  }
7917  }
7918  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7919  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7920  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error)
7921  __Pyx_GOTREF(__pyx_t_1);
7922  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7923  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7924 
7925  /* "mprans/BoundaryConditions.py":224
7926  * self.pInc_advective.setConstantBC(0.)
7927  * self.vof_advective.setConstantBC(0.)
7928  * self.vos_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
7929  * # diffusive
7930  * self.pInc_diffusive.setConstantBC(0.)
7931  */
7932  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vos_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
7933  __Pyx_GOTREF(__pyx_t_2);
7934  __pyx_t_3 = NULL;
7935  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7936  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7937  if (likely(__pyx_t_3)) {
7938  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7939  __Pyx_INCREF(__pyx_t_3);
7940  __Pyx_INCREF(function);
7941  __Pyx_DECREF_SET(__pyx_t_2, function);
7942  }
7943  }
7944  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7945  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7946  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error)
7947  __Pyx_GOTREF(__pyx_t_1);
7948  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7949  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7950 
7951  /* "mprans/BoundaryConditions.py":226
7952  * self.vos_advective.setConstantBC(0.)
7953  * # diffusive
7954  * self.pInc_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
7955  * self.k_diffusive.setConstantBC(0.)
7956  * self.dissipation_diffusive.setConstantBC(0.)
7957  */
7958  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error)
7959  __Pyx_GOTREF(__pyx_t_2);
7960  __pyx_t_3 = NULL;
7961  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7962  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7963  if (likely(__pyx_t_3)) {
7964  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7965  __Pyx_INCREF(__pyx_t_3);
7966  __Pyx_INCREF(function);
7967  __Pyx_DECREF_SET(__pyx_t_2, function);
7968  }
7969  }
7970  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7971  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7972  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error)
7973  __Pyx_GOTREF(__pyx_t_1);
7974  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7975  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7976 
7977  /* "mprans/BoundaryConditions.py":227
7978  * # diffusive
7979  * self.pInc_diffusive.setConstantBC(0.)
7980  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
7981  * self.dissipation_diffusive.setConstantBC(0.)
7982  *
7983  */
7984  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error)
7985  __Pyx_GOTREF(__pyx_t_2);
7986  __pyx_t_3 = NULL;
7987  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7988  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7989  if (likely(__pyx_t_3)) {
7990  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7991  __Pyx_INCREF(__pyx_t_3);
7992  __Pyx_INCREF(function);
7993  __Pyx_DECREF_SET(__pyx_t_2, function);
7994  }
7995  }
7996  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
7997  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7998  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error)
7999  __Pyx_GOTREF(__pyx_t_1);
8000  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8001  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8002 
8003  /* "mprans/BoundaryConditions.py":228
8004  * self.pInc_diffusive.setConstantBC(0.)
8005  * self.k_diffusive.setConstantBC(0.)
8006  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8007  *
8008  * def setFreeSlip(self):
8009  */
8010  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error)
8011  __Pyx_GOTREF(__pyx_t_2);
8012  __pyx_t_3 = NULL;
8013  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8014  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8015  if (likely(__pyx_t_3)) {
8016  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8017  __Pyx_INCREF(__pyx_t_3);
8018  __Pyx_INCREF(function);
8019  __Pyx_DECREF_SET(__pyx_t_2, function);
8020  }
8021  }
8022  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8023  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8024  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error)
8025  __Pyx_GOTREF(__pyx_t_1);
8026  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8027  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8028 
8029  /* "mprans/BoundaryConditions.py":204
8030  * self.w_stress.uOfXT = 0.
8031  *
8032  * def setNoSlip(self): # <<<<<<<<<<<<<<
8033  * """
8034  * Sets no slip conditions at the boundary
8035  */
8036 
8037  /* function exit code */
8038  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8039  goto __pyx_L0;
8040  __pyx_L1_error:;
8041  __Pyx_XDECREF(__pyx_t_1);
8042  __Pyx_XDECREF(__pyx_t_2);
8043  __Pyx_XDECREF(__pyx_t_3);
8044  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setNoSlip", __pyx_clineno, __pyx_lineno, __pyx_filename);
8045  __pyx_r = NULL;
8046  __pyx_L0:;
8047  __Pyx_XGIVEREF(__pyx_r);
8048  __Pyx_TraceReturn(__pyx_r, 0);
8049  __Pyx_RefNannyFinishContext();
8050  return __pyx_r;
8051 }
8052 
8053 /* "mprans/BoundaryConditions.py":230
8054  * self.dissipation_diffusive.setConstantBC(0.)
8055  *
8056  * def setFreeSlip(self): # <<<<<<<<<<<<<<
8057  * """
8058  * Sets free slip conditions at the boundary
8059  */
8060 
8061 /* Python wrapper */
8062 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
8063 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip[] = "BC_RANS.setFreeSlip(self)\n\n Sets free slip conditions at the boundary\n ";
8064 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip = {"setFreeSlip", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip};
8065 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
8066  PyObject *__pyx_r = 0;
8067  __Pyx_RefNannyDeclarations
8068  __Pyx_RefNannySetupContext("setFreeSlip (wrapper)", 0);
8069  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
8070 
8071  /* function exit code */
8072  __Pyx_RefNannyFinishContext();
8073  return __pyx_r;
8074 }
8075 
8076 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
8077  PyObject *__pyx_r = NULL;
8078  __Pyx_TraceDeclarations
8079  __Pyx_RefNannyDeclarations
8080  PyObject *__pyx_t_1 = NULL;
8081  PyObject *__pyx_t_2 = NULL;
8082  PyObject *__pyx_t_3 = NULL;
8083  int __pyx_lineno = 0;
8084  const char *__pyx_filename = NULL;
8085  int __pyx_clineno = 0;
8086  __Pyx_TraceFrameInit(__pyx_codeobj__6)
8087  __Pyx_RefNannySetupContext("setFreeSlip", 0);
8088  __Pyx_TraceCall("setFreeSlip", __pyx_f[0], 230, 0, __PYX_ERR(0, 230, __pyx_L1_error));
8089 
8090  /* "mprans/BoundaryConditions.py":234
8091  * Sets free slip conditions at the boundary
8092  * """
8093  * self.reset() # <<<<<<<<<<<<<<
8094  * self.BC_type = 'FreeSlip'
8095  * # dirichlet
8096  */
8097  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
8098  __Pyx_GOTREF(__pyx_t_2);
8099  __pyx_t_3 = NULL;
8100  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8101  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8102  if (likely(__pyx_t_3)) {
8103  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8104  __Pyx_INCREF(__pyx_t_3);
8105  __Pyx_INCREF(function);
8106  __Pyx_DECREF_SET(__pyx_t_2, function);
8107  }
8108  }
8109  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
8110  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8111  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error)
8112  __Pyx_GOTREF(__pyx_t_1);
8113  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8114  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8115 
8116  /* "mprans/BoundaryConditions.py":235
8117  * """
8118  * self.reset()
8119  * self.BC_type = 'FreeSlip' # <<<<<<<<<<<<<<
8120  * # dirichlet
8121  * self.k_dirichlet.setConstantBC(1e-20)
8122  */
8123  __Pyx_INCREF(__pyx_n_s_FreeSlip);
8124  __Pyx_GIVEREF(__pyx_n_s_FreeSlip);
8125  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
8126  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
8127  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_FreeSlip;
8128 
8129  /* "mprans/BoundaryConditions.py":237
8130  * self.BC_type = 'FreeSlip'
8131  * # dirichlet
8132  * self.k_dirichlet.setConstantBC(1e-20) # <<<<<<<<<<<<<<
8133  * self.dissipation_dirichlet.setConstantBC(1e-10)
8134  * # advective
8135  */
8136  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error)
8137  __Pyx_GOTREF(__pyx_t_2);
8138  __pyx_t_3 = NULL;
8139  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8140  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8141  if (likely(__pyx_t_3)) {
8142  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8143  __Pyx_INCREF(__pyx_t_3);
8144  __Pyx_INCREF(function);
8145  __Pyx_DECREF_SET(__pyx_t_2, function);
8146  }
8147  }
8148  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_1eneg_20) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_1eneg_20);
8149  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8150  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error)
8151  __Pyx_GOTREF(__pyx_t_1);
8152  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8153  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8154 
8155  /* "mprans/BoundaryConditions.py":238
8156  * # dirichlet
8157  * self.k_dirichlet.setConstantBC(1e-20)
8158  * self.dissipation_dirichlet.setConstantBC(1e-10) # <<<<<<<<<<<<<<
8159  * # advective
8160  * self.p_advective.setConstantBC(0.)
8161  */
8162  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error)
8163  __Pyx_GOTREF(__pyx_t_2);
8164  __pyx_t_3 = NULL;
8165  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8166  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8167  if (likely(__pyx_t_3)) {
8168  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8169  __Pyx_INCREF(__pyx_t_3);
8170  __Pyx_INCREF(function);
8171  __Pyx_DECREF_SET(__pyx_t_2, function);
8172  }
8173  }
8174  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_1eneg_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_1eneg_10);
8175  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8176  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
8177  __Pyx_GOTREF(__pyx_t_1);
8178  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8179  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8180 
8181  /* "mprans/BoundaryConditions.py":240
8182  * self.dissipation_dirichlet.setConstantBC(1e-10)
8183  * # advective
8184  * self.p_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8185  * self.pInit_advective.setConstantBC(0.)
8186  * self.pInc_advective.setConstantBC(0.)
8187  */
8188  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error)
8189  __Pyx_GOTREF(__pyx_t_2);
8190  __pyx_t_3 = NULL;
8191  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8192  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8193  if (likely(__pyx_t_3)) {
8194  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8195  __Pyx_INCREF(__pyx_t_3);
8196  __Pyx_INCREF(function);
8197  __Pyx_DECREF_SET(__pyx_t_2, function);
8198  }
8199  }
8200  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8201  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8202  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error)
8203  __Pyx_GOTREF(__pyx_t_1);
8204  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8205  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8206 
8207  /* "mprans/BoundaryConditions.py":241
8208  * # advective
8209  * self.p_advective.setConstantBC(0.)
8210  * self.pInit_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8211  * self.pInc_advective.setConstantBC(0.)
8212  * self.u_advective.setConstantBC(0.)
8213  */
8214  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInit_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error)
8215  __Pyx_GOTREF(__pyx_t_2);
8216  __pyx_t_3 = NULL;
8217  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8218  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8219  if (likely(__pyx_t_3)) {
8220  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8221  __Pyx_INCREF(__pyx_t_3);
8222  __Pyx_INCREF(function);
8223  __Pyx_DECREF_SET(__pyx_t_2, function);
8224  }
8225  }
8226  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8227  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8228  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error)
8229  __Pyx_GOTREF(__pyx_t_1);
8230  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8231  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8232 
8233  /* "mprans/BoundaryConditions.py":242
8234  * self.p_advective.setConstantBC(0.)
8235  * self.pInit_advective.setConstantBC(0.)
8236  * self.pInc_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8237  * self.u_advective.setConstantBC(0.)
8238  * self.v_advective.setConstantBC(0.)
8239  */
8240  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error)
8241  __Pyx_GOTREF(__pyx_t_2);
8242  __pyx_t_3 = NULL;
8243  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8244  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8245  if (likely(__pyx_t_3)) {
8246  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8247  __Pyx_INCREF(__pyx_t_3);
8248  __Pyx_INCREF(function);
8249  __Pyx_DECREF_SET(__pyx_t_2, function);
8250  }
8251  }
8252  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8253  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8254  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error)
8255  __Pyx_GOTREF(__pyx_t_1);
8256  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8257  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8258 
8259  /* "mprans/BoundaryConditions.py":243
8260  * self.pInit_advective.setConstantBC(0.)
8261  * self.pInc_advective.setConstantBC(0.)
8262  * self.u_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8263  * self.v_advective.setConstantBC(0.)
8264  * self.w_advective.setConstantBC(0.)
8265  */
8266  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
8267  __Pyx_GOTREF(__pyx_t_2);
8268  __pyx_t_3 = NULL;
8269  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8270  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8271  if (likely(__pyx_t_3)) {
8272  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8273  __Pyx_INCREF(__pyx_t_3);
8274  __Pyx_INCREF(function);
8275  __Pyx_DECREF_SET(__pyx_t_2, function);
8276  }
8277  }
8278  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8279  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8280  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
8281  __Pyx_GOTREF(__pyx_t_1);
8282  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8283  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8284 
8285  /* "mprans/BoundaryConditions.py":244
8286  * self.pInc_advective.setConstantBC(0.)
8287  * self.u_advective.setConstantBC(0.)
8288  * self.v_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8289  * self.w_advective.setConstantBC(0.)
8290  * self.us_advective.setConstantBC(0.)
8291  */
8292  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
8293  __Pyx_GOTREF(__pyx_t_2);
8294  __pyx_t_3 = NULL;
8295  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8296  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8297  if (likely(__pyx_t_3)) {
8298  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8299  __Pyx_INCREF(__pyx_t_3);
8300  __Pyx_INCREF(function);
8301  __Pyx_DECREF_SET(__pyx_t_2, function);
8302  }
8303  }
8304  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8305  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8306  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
8307  __Pyx_GOTREF(__pyx_t_1);
8308  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8309  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8310 
8311  /* "mprans/BoundaryConditions.py":245
8312  * self.u_advective.setConstantBC(0.)
8313  * self.v_advective.setConstantBC(0.)
8314  * self.w_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8315  * self.us_advective.setConstantBC(0.)
8316  * self.vs_advective.setConstantBC(0.)
8317  */
8318  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
8319  __Pyx_GOTREF(__pyx_t_2);
8320  __pyx_t_3 = NULL;
8321  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8322  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8323  if (likely(__pyx_t_3)) {
8324  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8325  __Pyx_INCREF(__pyx_t_3);
8326  __Pyx_INCREF(function);
8327  __Pyx_DECREF_SET(__pyx_t_2, function);
8328  }
8329  }
8330  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8331  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8332  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
8333  __Pyx_GOTREF(__pyx_t_1);
8334  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8335  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8336 
8337  /* "mprans/BoundaryConditions.py":246
8338  * self.v_advective.setConstantBC(0.)
8339  * self.w_advective.setConstantBC(0.)
8340  * self.us_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8341  * self.vs_advective.setConstantBC(0.)
8342  * self.ws_advective.setConstantBC(0.)
8343  */
8344  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 246, __pyx_L1_error)
8345  __Pyx_GOTREF(__pyx_t_2);
8346  __pyx_t_3 = NULL;
8347  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8348  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8349  if (likely(__pyx_t_3)) {
8350  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8351  __Pyx_INCREF(__pyx_t_3);
8352  __Pyx_INCREF(function);
8353  __Pyx_DECREF_SET(__pyx_t_2, function);
8354  }
8355  }
8356  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8357  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8358  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 246, __pyx_L1_error)
8359  __Pyx_GOTREF(__pyx_t_1);
8360  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8361  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8362 
8363  /* "mprans/BoundaryConditions.py":247
8364  * self.w_advective.setConstantBC(0.)
8365  * self.us_advective.setConstantBC(0.)
8366  * self.vs_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8367  * self.ws_advective.setConstantBC(0.)
8368  * self.vof_advective.setConstantBC(0.)
8369  */
8370  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
8371  __Pyx_GOTREF(__pyx_t_2);
8372  __pyx_t_3 = NULL;
8373  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8374  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8375  if (likely(__pyx_t_3)) {
8376  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8377  __Pyx_INCREF(__pyx_t_3);
8378  __Pyx_INCREF(function);
8379  __Pyx_DECREF_SET(__pyx_t_2, function);
8380  }
8381  }
8382  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8383  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8384  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
8385  __Pyx_GOTREF(__pyx_t_1);
8386  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8387  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8388 
8389  /* "mprans/BoundaryConditions.py":248
8390  * self.us_advective.setConstantBC(0.)
8391  * self.vs_advective.setConstantBC(0.)
8392  * self.ws_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8393  * self.vof_advective.setConstantBC(0.)
8394  * self.vos_advective.setConstantBC(0.)
8395  */
8396  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error)
8397  __Pyx_GOTREF(__pyx_t_2);
8398  __pyx_t_3 = NULL;
8399  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8400  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8401  if (likely(__pyx_t_3)) {
8402  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8403  __Pyx_INCREF(__pyx_t_3);
8404  __Pyx_INCREF(function);
8405  __Pyx_DECREF_SET(__pyx_t_2, function);
8406  }
8407  }
8408  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8409  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8410  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error)
8411  __Pyx_GOTREF(__pyx_t_1);
8412  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8413  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8414 
8415  /* "mprans/BoundaryConditions.py":249
8416  * self.vs_advective.setConstantBC(0.)
8417  * self.ws_advective.setConstantBC(0.)
8418  * self.vof_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8419  * self.vos_advective.setConstantBC(0.)
8420  * # diffusive
8421  */
8422  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vof_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
8423  __Pyx_GOTREF(__pyx_t_2);
8424  __pyx_t_3 = NULL;
8425  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8426  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8427  if (likely(__pyx_t_3)) {
8428  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8429  __Pyx_INCREF(__pyx_t_3);
8430  __Pyx_INCREF(function);
8431  __Pyx_DECREF_SET(__pyx_t_2, function);
8432  }
8433  }
8434  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8435  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8436  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error)
8437  __Pyx_GOTREF(__pyx_t_1);
8438  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8439  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8440 
8441  /* "mprans/BoundaryConditions.py":250
8442  * self.ws_advective.setConstantBC(0.)
8443  * self.vof_advective.setConstantBC(0.)
8444  * self.vos_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
8445  * # diffusive
8446  * self.u_diffusive.setConstantBC(0.)
8447  */
8448  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vos_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
8449  __Pyx_GOTREF(__pyx_t_2);
8450  __pyx_t_3 = NULL;
8451  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8452  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8453  if (likely(__pyx_t_3)) {
8454  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8455  __Pyx_INCREF(__pyx_t_3);
8456  __Pyx_INCREF(function);
8457  __Pyx_DECREF_SET(__pyx_t_2, function);
8458  }
8459  }
8460  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8461  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8462  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
8463  __Pyx_GOTREF(__pyx_t_1);
8464  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8465  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8466 
8467  /* "mprans/BoundaryConditions.py":252
8468  * self.vos_advective.setConstantBC(0.)
8469  * # diffusive
8470  * self.u_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8471  * self.v_diffusive.setConstantBC(0.)
8472  * self.w_diffusive.setConstantBC(0.)
8473  */
8474  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error)
8475  __Pyx_GOTREF(__pyx_t_2);
8476  __pyx_t_3 = NULL;
8477  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8478  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8479  if (likely(__pyx_t_3)) {
8480  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8481  __Pyx_INCREF(__pyx_t_3);
8482  __Pyx_INCREF(function);
8483  __Pyx_DECREF_SET(__pyx_t_2, function);
8484  }
8485  }
8486  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8487  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8488  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
8489  __Pyx_GOTREF(__pyx_t_1);
8490  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8491  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8492 
8493  /* "mprans/BoundaryConditions.py":253
8494  * # diffusive
8495  * self.u_diffusive.setConstantBC(0.)
8496  * self.v_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8497  * self.w_diffusive.setConstantBC(0.)
8498  * self.us_diffusive.setConstantBC(0.)
8499  */
8500  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error)
8501  __Pyx_GOTREF(__pyx_t_2);
8502  __pyx_t_3 = NULL;
8503  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8504  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8505  if (likely(__pyx_t_3)) {
8506  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8507  __Pyx_INCREF(__pyx_t_3);
8508  __Pyx_INCREF(function);
8509  __Pyx_DECREF_SET(__pyx_t_2, function);
8510  }
8511  }
8512  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8513  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8514  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 253, __pyx_L1_error)
8515  __Pyx_GOTREF(__pyx_t_1);
8516  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8517  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8518 
8519  /* "mprans/BoundaryConditions.py":254
8520  * self.u_diffusive.setConstantBC(0.)
8521  * self.v_diffusive.setConstantBC(0.)
8522  * self.w_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8523  * self.us_diffusive.setConstantBC(0.)
8524  * self.vs_diffusive.setConstantBC(0.)
8525  */
8526  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
8527  __Pyx_GOTREF(__pyx_t_2);
8528  __pyx_t_3 = NULL;
8529  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8530  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8531  if (likely(__pyx_t_3)) {
8532  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8533  __Pyx_INCREF(__pyx_t_3);
8534  __Pyx_INCREF(function);
8535  __Pyx_DECREF_SET(__pyx_t_2, function);
8536  }
8537  }
8538  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8539  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8540  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 254, __pyx_L1_error)
8541  __Pyx_GOTREF(__pyx_t_1);
8542  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8543  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8544 
8545  /* "mprans/BoundaryConditions.py":255
8546  * self.v_diffusive.setConstantBC(0.)
8547  * self.w_diffusive.setConstantBC(0.)
8548  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8549  * self.vs_diffusive.setConstantBC(0.)
8550  * self.ws_diffusive.setConstantBC(0.)
8551  */
8552  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error)
8553  __Pyx_GOTREF(__pyx_t_2);
8554  __pyx_t_3 = NULL;
8555  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8556  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8557  if (likely(__pyx_t_3)) {
8558  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8559  __Pyx_INCREF(__pyx_t_3);
8560  __Pyx_INCREF(function);
8561  __Pyx_DECREF_SET(__pyx_t_2, function);
8562  }
8563  }
8564  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8565  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8566  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error)
8567  __Pyx_GOTREF(__pyx_t_1);
8568  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8569  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8570 
8571  /* "mprans/BoundaryConditions.py":256
8572  * self.w_diffusive.setConstantBC(0.)
8573  * self.us_diffusive.setConstantBC(0.)
8574  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8575  * self.ws_diffusive.setConstantBC(0.)
8576  * self.pInc_diffusive.setConstantBC(0.)
8577  */
8578  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error)
8579  __Pyx_GOTREF(__pyx_t_2);
8580  __pyx_t_3 = NULL;
8581  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8582  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8583  if (likely(__pyx_t_3)) {
8584  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8585  __Pyx_INCREF(__pyx_t_3);
8586  __Pyx_INCREF(function);
8587  __Pyx_DECREF_SET(__pyx_t_2, function);
8588  }
8589  }
8590  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8591  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8592  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 256, __pyx_L1_error)
8593  __Pyx_GOTREF(__pyx_t_1);
8594  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8595  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8596 
8597  /* "mprans/BoundaryConditions.py":257
8598  * self.us_diffusive.setConstantBC(0.)
8599  * self.vs_diffusive.setConstantBC(0.)
8600  * self.ws_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8601  * self.pInc_diffusive.setConstantBC(0.)
8602  * self.k_diffusive.setConstantBC(0.)
8603  */
8604  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error)
8605  __Pyx_GOTREF(__pyx_t_2);
8606  __pyx_t_3 = NULL;
8607  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8608  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8609  if (likely(__pyx_t_3)) {
8610  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8611  __Pyx_INCREF(__pyx_t_3);
8612  __Pyx_INCREF(function);
8613  __Pyx_DECREF_SET(__pyx_t_2, function);
8614  }
8615  }
8616  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8617  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8618  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error)
8619  __Pyx_GOTREF(__pyx_t_1);
8620  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8621  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8622 
8623  /* "mprans/BoundaryConditions.py":258
8624  * self.vs_diffusive.setConstantBC(0.)
8625  * self.ws_diffusive.setConstantBC(0.)
8626  * self.pInc_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8627  * self.k_diffusive.setConstantBC(0.)
8628  * self.dissipation_diffusive.setConstantBC(0.)
8629  */
8630  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
8631  __Pyx_GOTREF(__pyx_t_2);
8632  __pyx_t_3 = NULL;
8633  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8634  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8635  if (likely(__pyx_t_3)) {
8636  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8637  __Pyx_INCREF(__pyx_t_3);
8638  __Pyx_INCREF(function);
8639  __Pyx_DECREF_SET(__pyx_t_2, function);
8640  }
8641  }
8642  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8643  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8644  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
8645  __Pyx_GOTREF(__pyx_t_1);
8646  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8647  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8648 
8649  /* "mprans/BoundaryConditions.py":259
8650  * self.ws_diffusive.setConstantBC(0.)
8651  * self.pInc_diffusive.setConstantBC(0.)
8652  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8653  * self.dissipation_diffusive.setConstantBC(0.)
8654  *
8655  */
8656  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error)
8657  __Pyx_GOTREF(__pyx_t_2);
8658  __pyx_t_3 = NULL;
8659  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8660  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8661  if (likely(__pyx_t_3)) {
8662  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8663  __Pyx_INCREF(__pyx_t_3);
8664  __Pyx_INCREF(function);
8665  __Pyx_DECREF_SET(__pyx_t_2, function);
8666  }
8667  }
8668  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8669  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8670  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error)
8671  __Pyx_GOTREF(__pyx_t_1);
8672  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8673  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8674 
8675  /* "mprans/BoundaryConditions.py":260
8676  * self.pInc_diffusive.setConstantBC(0.)
8677  * self.k_diffusive.setConstantBC(0.)
8678  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
8679  *
8680  * def setConstantInletVelocity(self, U, ramp, kk, dd , b_or):
8681  */
8682  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 260, __pyx_L1_error)
8683  __Pyx_GOTREF(__pyx_t_2);
8684  __pyx_t_3 = NULL;
8685  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8686  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8687  if (likely(__pyx_t_3)) {
8688  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8689  __Pyx_INCREF(__pyx_t_3);
8690  __Pyx_INCREF(function);
8691  __Pyx_DECREF_SET(__pyx_t_2, function);
8692  }
8693  }
8694  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
8695  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8696  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error)
8697  __Pyx_GOTREF(__pyx_t_1);
8698  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8699  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8700 
8701  /* "mprans/BoundaryConditions.py":230
8702  * self.dissipation_diffusive.setConstantBC(0.)
8703  *
8704  * def setFreeSlip(self): # <<<<<<<<<<<<<<
8705  * """
8706  * Sets free slip conditions at the boundary
8707  */
8708 
8709  /* function exit code */
8710  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8711  goto __pyx_L0;
8712  __pyx_L1_error:;
8713  __Pyx_XDECREF(__pyx_t_1);
8714  __Pyx_XDECREF(__pyx_t_2);
8715  __Pyx_XDECREF(__pyx_t_3);
8716  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setFreeSlip", __pyx_clineno, __pyx_lineno, __pyx_filename);
8717  __pyx_r = NULL;
8718  __pyx_L0:;
8719  __Pyx_XGIVEREF(__pyx_r);
8720  __Pyx_TraceReturn(__pyx_r, 0);
8721  __Pyx_RefNannyFinishContext();
8722  return __pyx_r;
8723 }
8724 
8725 /* "mprans/BoundaryConditions.py":262
8726  * self.dissipation_diffusive.setConstantBC(0.)
8727  *
8728  * def setConstantInletVelocity(self, U, ramp, kk, dd , b_or): # <<<<<<<<<<<<<<
8729  * """
8730  * Sets constant velocity in each inlet face with ramping up and turbulence properties
8731  */
8732 
8733 /* Python wrapper */
8734 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8735 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity[] = "BC_RANS.setConstantInletVelocity(self, U, ramp, kk, dd, b_or)\n\n Sets constant velocity in each inlet face with ramping up and turbulence properties\n ";
8736 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity = {"setConstantInletVelocity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity};
8737 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8738  PyObject *__pyx_v_U = 0;
8739  PyObject *__pyx_v_ramp = 0;
8740  PyObject *__pyx_v_kk = 0;
8741  PyObject *__pyx_v_dd = 0;
8742  PyObject *__pyx_v_b_or = 0;
8743  int __pyx_lineno = 0;
8744  const char *__pyx_filename = NULL;
8745  int __pyx_clineno = 0;
8746  PyObject *__pyx_r = 0;
8747  __Pyx_RefNannyDeclarations
8748  __Pyx_RefNannySetupContext("setConstantInletVelocity (wrapper)", 0);
8749  {
8750  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_U,&__pyx_n_s_ramp,&__pyx_n_s_kk,&__pyx_n_s_dd,&__pyx_n_s_b_or,0};
8751  PyObject* values[5] = {0,0,0,0,0};
8752  if (unlikely(__pyx_kwds)) {
8753  Py_ssize_t kw_args;
8754  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8755  switch (pos_args) {
8756  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8757  CYTHON_FALLTHROUGH;
8758  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8759  CYTHON_FALLTHROUGH;
8760  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8761  CYTHON_FALLTHROUGH;
8762  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8763  CYTHON_FALLTHROUGH;
8764  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8765  CYTHON_FALLTHROUGH;
8766  case 0: break;
8767  default: goto __pyx_L5_argtuple_error;
8768  }
8769  kw_args = PyDict_Size(__pyx_kwds);
8770  switch (pos_args) {
8771  case 0:
8772  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U)) != 0)) kw_args--;
8773  else goto __pyx_L5_argtuple_error;
8774  CYTHON_FALLTHROUGH;
8775  case 1:
8776  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ramp)) != 0)) kw_args--;
8777  else {
8778  __Pyx_RaiseArgtupleInvalid("setConstantInletVelocity", 1, 5, 5, 1); __PYX_ERR(0, 262, __pyx_L3_error)
8779  }
8780  CYTHON_FALLTHROUGH;
8781  case 2:
8782  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kk)) != 0)) kw_args--;
8783  else {
8784  __Pyx_RaiseArgtupleInvalid("setConstantInletVelocity", 1, 5, 5, 2); __PYX_ERR(0, 262, __pyx_L3_error)
8785  }
8786  CYTHON_FALLTHROUGH;
8787  case 3:
8788  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dd)) != 0)) kw_args--;
8789  else {
8790  __Pyx_RaiseArgtupleInvalid("setConstantInletVelocity", 1, 5, 5, 3); __PYX_ERR(0, 262, __pyx_L3_error)
8791  }
8792  CYTHON_FALLTHROUGH;
8793  case 4:
8794  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_or)) != 0)) kw_args--;
8795  else {
8796  __Pyx_RaiseArgtupleInvalid("setConstantInletVelocity", 1, 5, 5, 4); __PYX_ERR(0, 262, __pyx_L3_error)
8797  }
8798  }
8799  if (unlikely(kw_args > 0)) {
8800  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstantInletVelocity") < 0)) __PYX_ERR(0, 262, __pyx_L3_error)
8801  }
8802  } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
8803  goto __pyx_L5_argtuple_error;
8804  } else {
8805  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8806  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8807  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8808  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8809  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8810  }
8811  __pyx_v_U = values[0];
8812  __pyx_v_ramp = values[1];
8813  __pyx_v_kk = values[2];
8814  __pyx_v_dd = values[3];
8815  __pyx_v_b_or = values[4];
8816  }
8817  goto __pyx_L4_argument_unpacking_done;
8818  __pyx_L5_argtuple_error:;
8819  __Pyx_RaiseArgtupleInvalid("setConstantInletVelocity", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 262, __pyx_L3_error)
8820  __pyx_L3_error:;
8821  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setConstantInletVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
8822  __Pyx_RefNannyFinishContext();
8823  return NULL;
8824  __pyx_L4_argument_unpacking_done:;
8825  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_U, __pyx_v_ramp, __pyx_v_kk, __pyx_v_dd, __pyx_v_b_or);
8826 
8827  /* function exit code */
8828  __Pyx_RefNannyFinishContext();
8829  return __pyx_r;
8830 }
8831 
8832 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_U, PyObject *__pyx_v_ramp, PyObject *__pyx_v_kk, PyObject *__pyx_v_dd, PyObject *__pyx_v_b_or) {
8833  PyObject *__pyx_v_Uin = NULL;
8834  PyObject *__pyx_v_uu = NULL;
8835  PyObject *__pyx_v_vv = NULL;
8836  PyObject *__pyx_v_ww = NULL;
8837  PyObject *__pyx_r = NULL;
8838  __Pyx_TraceDeclarations
8839  __Pyx_RefNannyDeclarations
8840  PyObject *__pyx_t_1 = NULL;
8841  PyObject *__pyx_t_2 = NULL;
8842  PyObject *__pyx_t_3 = NULL;
8843  int __pyx_t_4;
8844  PyObject *__pyx_t_5 = NULL;
8845  int __pyx_lineno = 0;
8846  const char *__pyx_filename = NULL;
8847  int __pyx_clineno = 0;
8848  __Pyx_TraceFrameInit(__pyx_codeobj__7)
8849  __Pyx_RefNannySetupContext("setConstantInletVelocity", 0);
8850  __Pyx_TraceCall("setConstantInletVelocity", __pyx_f[0], 262, 0, __PYX_ERR(0, 262, __pyx_L1_error));
8851 
8852  /* "mprans/BoundaryConditions.py":266
8853  * Sets constant velocity in each inlet face with ramping up and turbulence properties
8854  * """
8855  * self.reset() # <<<<<<<<<<<<<<
8856  * self.BC_type = 'constantInletVelocity'
8857  * Uin = np.dot(U,b_or)
8858  */
8859  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 266, __pyx_L1_error)
8860  __Pyx_GOTREF(__pyx_t_2);
8861  __pyx_t_3 = NULL;
8862  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8863  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8864  if (likely(__pyx_t_3)) {
8865  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8866  __Pyx_INCREF(__pyx_t_3);
8867  __Pyx_INCREF(function);
8868  __Pyx_DECREF_SET(__pyx_t_2, function);
8869  }
8870  }
8871  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
8872  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8873  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error)
8874  __Pyx_GOTREF(__pyx_t_1);
8875  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8876  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8877 
8878  /* "mprans/BoundaryConditions.py":267
8879  * """
8880  * self.reset()
8881  * self.BC_type = 'constantInletVelocity' # <<<<<<<<<<<<<<
8882  * Uin = np.dot(U,b_or)
8883  * uu = U[0]
8884  */
8885  __Pyx_INCREF(__pyx_n_s_constantInletVelocity);
8886  __Pyx_GIVEREF(__pyx_n_s_constantInletVelocity);
8887  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
8888  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
8889  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_constantInletVelocity;
8890 
8891  /* "mprans/BoundaryConditions.py":268
8892  * self.reset()
8893  * self.BC_type = 'constantInletVelocity'
8894  * Uin = np.dot(U,b_or) # <<<<<<<<<<<<<<
8895  * uu = U[0]
8896  * vv = U[1]
8897  */
8898  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error)
8899  __Pyx_GOTREF(__pyx_t_2);
8900  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_dot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 268, __pyx_L1_error)
8901  __Pyx_GOTREF(__pyx_t_3);
8902  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8903  __pyx_t_2 = NULL;
8904  __pyx_t_4 = 0;
8905  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
8906  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
8907  if (likely(__pyx_t_2)) {
8908  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
8909  __Pyx_INCREF(__pyx_t_2);
8910  __Pyx_INCREF(function);
8911  __Pyx_DECREF_SET(__pyx_t_3, function);
8912  __pyx_t_4 = 1;
8913  }
8914  }
8915  #if CYTHON_FAST_PYCALL
8916  if (PyFunction_Check(__pyx_t_3)) {
8917  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_U, __pyx_v_b_or};
8918  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
8919  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8920  __Pyx_GOTREF(__pyx_t_1);
8921  } else
8922  #endif
8923  #if CYTHON_FAST_PYCCALL
8924  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
8925  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_U, __pyx_v_b_or};
8926  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
8927  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8928  __Pyx_GOTREF(__pyx_t_1);
8929  } else
8930  #endif
8931  {
8932  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 268, __pyx_L1_error)
8933  __Pyx_GOTREF(__pyx_t_5);
8934  if (__pyx_t_2) {
8935  __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
8936  }
8937  __Pyx_INCREF(__pyx_v_U);
8938  __Pyx_GIVEREF(__pyx_v_U);
8939  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_U);
8940  __Pyx_INCREF(__pyx_v_b_or);
8941  __Pyx_GIVEREF(__pyx_v_b_or);
8942  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_b_or);
8943  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
8944  __Pyx_GOTREF(__pyx_t_1);
8945  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8946  }
8947  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8948  __pyx_v_Uin = __pyx_t_1;
8949  __pyx_t_1 = 0;
8950 
8951  /* "mprans/BoundaryConditions.py":269
8952  * self.BC_type = 'constantInletVelocity'
8953  * Uin = np.dot(U,b_or)
8954  * uu = U[0] # <<<<<<<<<<<<<<
8955  * vv = U[1]
8956  * ww = U[2]
8957  */
8958  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_U, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error)
8959  __Pyx_GOTREF(__pyx_t_1);
8960  __pyx_v_uu = __pyx_t_1;
8961  __pyx_t_1 = 0;
8962 
8963  /* "mprans/BoundaryConditions.py":270
8964  * Uin = np.dot(U,b_or)
8965  * uu = U[0]
8966  * vv = U[1] # <<<<<<<<<<<<<<
8967  * ww = U[2]
8968  *
8969  */
8970  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_U, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
8971  __Pyx_GOTREF(__pyx_t_1);
8972  __pyx_v_vv = __pyx_t_1;
8973  __pyx_t_1 = 0;
8974 
8975  /* "mprans/BoundaryConditions.py":271
8976  * uu = U[0]
8977  * vv = U[1]
8978  * ww = U[2] # <<<<<<<<<<<<<<
8979  *
8980  * # dirichlet
8981  */
8982  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_U, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error)
8983  __Pyx_GOTREF(__pyx_t_1);
8984  __pyx_v_ww = __pyx_t_1;
8985  __pyx_t_1 = 0;
8986 
8987  /* "mprans/BoundaryConditions.py":274
8988  *
8989  * # dirichlet
8990  * self.u_dirichlet.setLinearRamp(ramp, uu) # <<<<<<<<<<<<<<
8991  * self.v_dirichlet.setLinearRamp(ramp ,vv)
8992  * self.w_dirichlet.setLinearRamp(ramp ,ww)
8993  */
8994  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setLinearRamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
8995  __Pyx_GOTREF(__pyx_t_3);
8996  __pyx_t_5 = NULL;
8997  __pyx_t_4 = 0;
8998  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
8999  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
9000  if (likely(__pyx_t_5)) {
9001  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9002  __Pyx_INCREF(__pyx_t_5);
9003  __Pyx_INCREF(function);
9004  __Pyx_DECREF_SET(__pyx_t_3, function);
9005  __pyx_t_4 = 1;
9006  }
9007  }
9008  #if CYTHON_FAST_PYCALL
9009  if (PyFunction_Check(__pyx_t_3)) {
9010  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_uu};
9011  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
9012  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9013  __Pyx_GOTREF(__pyx_t_1);
9014  } else
9015  #endif
9016  #if CYTHON_FAST_PYCCALL
9017  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
9018  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_uu};
9019  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
9020  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9021  __Pyx_GOTREF(__pyx_t_1);
9022  } else
9023  #endif
9024  {
9025  __pyx_t_2 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error)
9026  __Pyx_GOTREF(__pyx_t_2);
9027  if (__pyx_t_5) {
9028  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL;
9029  }
9030  __Pyx_INCREF(__pyx_v_ramp);
9031  __Pyx_GIVEREF(__pyx_v_ramp);
9032  PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_ramp);
9033  __Pyx_INCREF(__pyx_v_uu);
9034  __Pyx_GIVEREF(__pyx_v_uu);
9035  PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_uu);
9036  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
9037  __Pyx_GOTREF(__pyx_t_1);
9038  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9039  }
9040  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9041  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9042 
9043  /* "mprans/BoundaryConditions.py":275
9044  * # dirichlet
9045  * self.u_dirichlet.setLinearRamp(ramp, uu)
9046  * self.v_dirichlet.setLinearRamp(ramp ,vv) # <<<<<<<<<<<<<<
9047  * self.w_dirichlet.setLinearRamp(ramp ,ww)
9048  * self.us_dirichlet.setConstantBC(0.)
9049  */
9050  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setLinearRamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error)
9051  __Pyx_GOTREF(__pyx_t_3);
9052  __pyx_t_2 = NULL;
9053  __pyx_t_4 = 0;
9054  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9055  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9056  if (likely(__pyx_t_2)) {
9057  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9058  __Pyx_INCREF(__pyx_t_2);
9059  __Pyx_INCREF(function);
9060  __Pyx_DECREF_SET(__pyx_t_3, function);
9061  __pyx_t_4 = 1;
9062  }
9063  }
9064  #if CYTHON_FAST_PYCALL
9065  if (PyFunction_Check(__pyx_t_3)) {
9066  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_ramp, __pyx_v_vv};
9067  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
9068  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9069  __Pyx_GOTREF(__pyx_t_1);
9070  } else
9071  #endif
9072  #if CYTHON_FAST_PYCCALL
9073  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
9074  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_ramp, __pyx_v_vv};
9075  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
9076  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9077  __Pyx_GOTREF(__pyx_t_1);
9078  } else
9079  #endif
9080  {
9081  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 275, __pyx_L1_error)
9082  __Pyx_GOTREF(__pyx_t_5);
9083  if (__pyx_t_2) {
9084  __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
9085  }
9086  __Pyx_INCREF(__pyx_v_ramp);
9087  __Pyx_GIVEREF(__pyx_v_ramp);
9088  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_ramp);
9089  __Pyx_INCREF(__pyx_v_vv);
9090  __Pyx_GIVEREF(__pyx_v_vv);
9091  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_vv);
9092  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
9093  __Pyx_GOTREF(__pyx_t_1);
9094  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9095  }
9096  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9097  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9098 
9099  /* "mprans/BoundaryConditions.py":276
9100  * self.u_dirichlet.setLinearRamp(ramp, uu)
9101  * self.v_dirichlet.setLinearRamp(ramp ,vv)
9102  * self.w_dirichlet.setLinearRamp(ramp ,ww) # <<<<<<<<<<<<<<
9103  * self.us_dirichlet.setConstantBC(0.)
9104  * self.vs_dirichlet.setConstantBC(0.)
9105  */
9106  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setLinearRamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 276, __pyx_L1_error)
9107  __Pyx_GOTREF(__pyx_t_3);
9108  __pyx_t_5 = NULL;
9109  __pyx_t_4 = 0;
9110  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9111  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
9112  if (likely(__pyx_t_5)) {
9113  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9114  __Pyx_INCREF(__pyx_t_5);
9115  __Pyx_INCREF(function);
9116  __Pyx_DECREF_SET(__pyx_t_3, function);
9117  __pyx_t_4 = 1;
9118  }
9119  }
9120  #if CYTHON_FAST_PYCALL
9121  if (PyFunction_Check(__pyx_t_3)) {
9122  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_ww};
9123  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error)
9124  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9125  __Pyx_GOTREF(__pyx_t_1);
9126  } else
9127  #endif
9128  #if CYTHON_FAST_PYCCALL
9129  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
9130  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_ww};
9131  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error)
9132  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9133  __Pyx_GOTREF(__pyx_t_1);
9134  } else
9135  #endif
9136  {
9137  __pyx_t_2 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error)
9138  __Pyx_GOTREF(__pyx_t_2);
9139  if (__pyx_t_5) {
9140  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL;
9141  }
9142  __Pyx_INCREF(__pyx_v_ramp);
9143  __Pyx_GIVEREF(__pyx_v_ramp);
9144  PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_ramp);
9145  __Pyx_INCREF(__pyx_v_ww);
9146  __Pyx_GIVEREF(__pyx_v_ww);
9147  PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_ww);
9148  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error)
9149  __Pyx_GOTREF(__pyx_t_1);
9150  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9151  }
9152  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9153  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9154 
9155  /* "mprans/BoundaryConditions.py":277
9156  * self.v_dirichlet.setLinearRamp(ramp ,vv)
9157  * self.w_dirichlet.setLinearRamp(ramp ,ww)
9158  * self.us_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9159  * self.vs_dirichlet.setConstantBC(0.)
9160  * self.ws_dirichlet.setConstantBC(0.)
9161  */
9162  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error)
9163  __Pyx_GOTREF(__pyx_t_3);
9164  __pyx_t_2 = NULL;
9165  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9166  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9167  if (likely(__pyx_t_2)) {
9168  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9169  __Pyx_INCREF(__pyx_t_2);
9170  __Pyx_INCREF(function);
9171  __Pyx_DECREF_SET(__pyx_t_3, function);
9172  }
9173  }
9174  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9175  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9176  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
9177  __Pyx_GOTREF(__pyx_t_1);
9178  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9179  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9180 
9181  /* "mprans/BoundaryConditions.py":278
9182  * self.w_dirichlet.setLinearRamp(ramp ,ww)
9183  * self.us_dirichlet.setConstantBC(0.)
9184  * self.vs_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9185  * self.ws_dirichlet.setConstantBC(0.)
9186  * self.k_dirichlet.setConstantBC(kk)
9187  */
9188  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 278, __pyx_L1_error)
9189  __Pyx_GOTREF(__pyx_t_3);
9190  __pyx_t_2 = NULL;
9191  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9192  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9193  if (likely(__pyx_t_2)) {
9194  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9195  __Pyx_INCREF(__pyx_t_2);
9196  __Pyx_INCREF(function);
9197  __Pyx_DECREF_SET(__pyx_t_3, function);
9198  }
9199  }
9200  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9201  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9202  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error)
9203  __Pyx_GOTREF(__pyx_t_1);
9204  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9205  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9206 
9207  /* "mprans/BoundaryConditions.py":279
9208  * self.us_dirichlet.setConstantBC(0.)
9209  * self.vs_dirichlet.setConstantBC(0.)
9210  * self.ws_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9211  * self.k_dirichlet.setConstantBC(kk)
9212  * self.dissipation_dirichlet.setConstantBC(dd)
9213  */
9214  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 279, __pyx_L1_error)
9215  __Pyx_GOTREF(__pyx_t_3);
9216  __pyx_t_2 = NULL;
9217  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9218  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9219  if (likely(__pyx_t_2)) {
9220  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9221  __Pyx_INCREF(__pyx_t_2);
9222  __Pyx_INCREF(function);
9223  __Pyx_DECREF_SET(__pyx_t_3, function);
9224  }
9225  }
9226  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9227  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9228  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error)
9229  __Pyx_GOTREF(__pyx_t_1);
9230  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9231  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9232 
9233  /* "mprans/BoundaryConditions.py":280
9234  * self.vs_dirichlet.setConstantBC(0.)
9235  * self.ws_dirichlet.setConstantBC(0.)
9236  * self.k_dirichlet.setConstantBC(kk) # <<<<<<<<<<<<<<
9237  * self.dissipation_dirichlet.setConstantBC(dd)
9238  * #advective
9239  */
9240  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
9241  __Pyx_GOTREF(__pyx_t_3);
9242  __pyx_t_2 = NULL;
9243  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9244  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9245  if (likely(__pyx_t_2)) {
9246  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9247  __Pyx_INCREF(__pyx_t_2);
9248  __Pyx_INCREF(function);
9249  __Pyx_DECREF_SET(__pyx_t_3, function);
9250  }
9251  }
9252  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_kk) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_kk);
9253  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9254  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error)
9255  __Pyx_GOTREF(__pyx_t_1);
9256  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9257  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9258 
9259  /* "mprans/BoundaryConditions.py":281
9260  * self.ws_dirichlet.setConstantBC(0.)
9261  * self.k_dirichlet.setConstantBC(kk)
9262  * self.dissipation_dirichlet.setConstantBC(dd) # <<<<<<<<<<<<<<
9263  * #advective
9264  * self.p_advective.setLinearRamp(ramp, Uin)
9265  */
9266  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
9267  __Pyx_GOTREF(__pyx_t_3);
9268  __pyx_t_2 = NULL;
9269  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9270  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9271  if (likely(__pyx_t_2)) {
9272  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9273  __Pyx_INCREF(__pyx_t_2);
9274  __Pyx_INCREF(function);
9275  __Pyx_DECREF_SET(__pyx_t_3, function);
9276  }
9277  }
9278  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_dd) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_dd);
9279  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9280  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error)
9281  __Pyx_GOTREF(__pyx_t_1);
9282  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9283  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9284 
9285  /* "mprans/BoundaryConditions.py":283
9286  * self.dissipation_dirichlet.setConstantBC(dd)
9287  * #advective
9288  * self.p_advective.setLinearRamp(ramp, Uin) # <<<<<<<<<<<<<<
9289  * self.pInit_advective.setConstantBC(0.)
9290  * self.pInc_advective.setLinearRamp(ramp,Uin)
9291  */
9292  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_advective), __pyx_n_s_setLinearRamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 283, __pyx_L1_error)
9293  __Pyx_GOTREF(__pyx_t_3);
9294  __pyx_t_2 = NULL;
9295  __pyx_t_4 = 0;
9296  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9297  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9298  if (likely(__pyx_t_2)) {
9299  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9300  __Pyx_INCREF(__pyx_t_2);
9301  __Pyx_INCREF(function);
9302  __Pyx_DECREF_SET(__pyx_t_3, function);
9303  __pyx_t_4 = 1;
9304  }
9305  }
9306  #if CYTHON_FAST_PYCALL
9307  if (PyFunction_Check(__pyx_t_3)) {
9308  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_ramp, __pyx_v_Uin};
9309  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error)
9310  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9311  __Pyx_GOTREF(__pyx_t_1);
9312  } else
9313  #endif
9314  #if CYTHON_FAST_PYCCALL
9315  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
9316  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_ramp, __pyx_v_Uin};
9317  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error)
9318  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9319  __Pyx_GOTREF(__pyx_t_1);
9320  } else
9321  #endif
9322  {
9323  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 283, __pyx_L1_error)
9324  __Pyx_GOTREF(__pyx_t_5);
9325  if (__pyx_t_2) {
9326  __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
9327  }
9328  __Pyx_INCREF(__pyx_v_ramp);
9329  __Pyx_GIVEREF(__pyx_v_ramp);
9330  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_ramp);
9331  __Pyx_INCREF(__pyx_v_Uin);
9332  __Pyx_GIVEREF(__pyx_v_Uin);
9333  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_Uin);
9334  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error)
9335  __Pyx_GOTREF(__pyx_t_1);
9336  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9337  }
9338  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9339  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9340 
9341  /* "mprans/BoundaryConditions.py":284
9342  * #advective
9343  * self.p_advective.setLinearRamp(ramp, Uin)
9344  * self.pInit_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
9345  * self.pInc_advective.setLinearRamp(ramp,Uin)
9346  * # diffusive
9347  */
9348  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInit_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 284, __pyx_L1_error)
9349  __Pyx_GOTREF(__pyx_t_3);
9350  __pyx_t_5 = NULL;
9351  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9352  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
9353  if (likely(__pyx_t_5)) {
9354  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9355  __Pyx_INCREF(__pyx_t_5);
9356  __Pyx_INCREF(function);
9357  __Pyx_DECREF_SET(__pyx_t_3, function);
9358  }
9359  }
9360  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9361  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9362  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 284, __pyx_L1_error)
9363  __Pyx_GOTREF(__pyx_t_1);
9364  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9365  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9366 
9367  /* "mprans/BoundaryConditions.py":285
9368  * self.p_advective.setLinearRamp(ramp, Uin)
9369  * self.pInit_advective.setConstantBC(0.)
9370  * self.pInc_advective.setLinearRamp(ramp,Uin) # <<<<<<<<<<<<<<
9371  * # diffusive
9372  * self.k_diffusive.setConstantBC(0.)
9373  */
9374  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_advective), __pyx_n_s_setLinearRamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 285, __pyx_L1_error)
9375  __Pyx_GOTREF(__pyx_t_3);
9376  __pyx_t_5 = NULL;
9377  __pyx_t_4 = 0;
9378  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9379  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
9380  if (likely(__pyx_t_5)) {
9381  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9382  __Pyx_INCREF(__pyx_t_5);
9383  __Pyx_INCREF(function);
9384  __Pyx_DECREF_SET(__pyx_t_3, function);
9385  __pyx_t_4 = 1;
9386  }
9387  }
9388  #if CYTHON_FAST_PYCALL
9389  if (PyFunction_Check(__pyx_t_3)) {
9390  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_Uin};
9391  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error)
9392  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9393  __Pyx_GOTREF(__pyx_t_1);
9394  } else
9395  #endif
9396  #if CYTHON_FAST_PYCCALL
9397  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
9398  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_ramp, __pyx_v_Uin};
9399  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error)
9400  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9401  __Pyx_GOTREF(__pyx_t_1);
9402  } else
9403  #endif
9404  {
9405  __pyx_t_2 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error)
9406  __Pyx_GOTREF(__pyx_t_2);
9407  if (__pyx_t_5) {
9408  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL;
9409  }
9410  __Pyx_INCREF(__pyx_v_ramp);
9411  __Pyx_GIVEREF(__pyx_v_ramp);
9412  PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_ramp);
9413  __Pyx_INCREF(__pyx_v_Uin);
9414  __Pyx_GIVEREF(__pyx_v_Uin);
9415  PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_Uin);
9416  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error)
9417  __Pyx_GOTREF(__pyx_t_1);
9418  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9419  }
9420  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9421  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9422 
9423  /* "mprans/BoundaryConditions.py":287
9424  * self.pInc_advective.setLinearRamp(ramp,Uin)
9425  * # diffusive
9426  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
9427  * self.dissipation_diffusive.setConstantBC(0.)
9428  * self.us_diffusive.setConstantBC(0.)
9429  */
9430  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error)
9431  __Pyx_GOTREF(__pyx_t_3);
9432  __pyx_t_2 = NULL;
9433  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9434  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9435  if (likely(__pyx_t_2)) {
9436  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9437  __Pyx_INCREF(__pyx_t_2);
9438  __Pyx_INCREF(function);
9439  __Pyx_DECREF_SET(__pyx_t_3, function);
9440  }
9441  }
9442  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9443  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9444  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error)
9445  __Pyx_GOTREF(__pyx_t_1);
9446  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9447  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9448 
9449  /* "mprans/BoundaryConditions.py":288
9450  * # diffusive
9451  * self.k_diffusive.setConstantBC(0.)
9452  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
9453  * self.us_diffusive.setConstantBC(0.)
9454  * self.vs_diffusive.setConstantBC(0.)
9455  */
9456  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 288, __pyx_L1_error)
9457  __Pyx_GOTREF(__pyx_t_3);
9458  __pyx_t_2 = NULL;
9459  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9460  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9461  if (likely(__pyx_t_2)) {
9462  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9463  __Pyx_INCREF(__pyx_t_2);
9464  __Pyx_INCREF(function);
9465  __Pyx_DECREF_SET(__pyx_t_3, function);
9466  }
9467  }
9468  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9469  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9470  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error)
9471  __Pyx_GOTREF(__pyx_t_1);
9472  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9473  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9474 
9475  /* "mprans/BoundaryConditions.py":289
9476  * self.k_diffusive.setConstantBC(0.)
9477  * self.dissipation_diffusive.setConstantBC(0.)
9478  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
9479  * self.vs_diffusive.setConstantBC(0.)
9480  * self.ws_diffusive.setConstantBC(0.)
9481  */
9482  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 289, __pyx_L1_error)
9483  __Pyx_GOTREF(__pyx_t_3);
9484  __pyx_t_2 = NULL;
9485  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9486  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9487  if (likely(__pyx_t_2)) {
9488  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9489  __Pyx_INCREF(__pyx_t_2);
9490  __Pyx_INCREF(function);
9491  __Pyx_DECREF_SET(__pyx_t_3, function);
9492  }
9493  }
9494  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9495  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9496  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error)
9497  __Pyx_GOTREF(__pyx_t_1);
9498  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9499  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9500 
9501  /* "mprans/BoundaryConditions.py":290
9502  * self.dissipation_diffusive.setConstantBC(0.)
9503  * self.us_diffusive.setConstantBC(0.)
9504  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
9505  * self.ws_diffusive.setConstantBC(0.)
9506  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or):
9507  */
9508  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 290, __pyx_L1_error)
9509  __Pyx_GOTREF(__pyx_t_3);
9510  __pyx_t_2 = NULL;
9511  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9512  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9513  if (likely(__pyx_t_2)) {
9514  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9515  __Pyx_INCREF(__pyx_t_2);
9516  __Pyx_INCREF(function);
9517  __Pyx_DECREF_SET(__pyx_t_3, function);
9518  }
9519  }
9520  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9521  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9522  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error)
9523  __Pyx_GOTREF(__pyx_t_1);
9524  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9525  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9526 
9527  /* "mprans/BoundaryConditions.py":291
9528  * self.us_diffusive.setConstantBC(0.)
9529  * self.vs_diffusive.setConstantBC(0.)
9530  * self.ws_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
9531  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or):
9532  * """
9533  */
9534  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error)
9535  __Pyx_GOTREF(__pyx_t_3);
9536  __pyx_t_2 = NULL;
9537  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9538  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9539  if (likely(__pyx_t_2)) {
9540  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9541  __Pyx_INCREF(__pyx_t_2);
9542  __Pyx_INCREF(function);
9543  __Pyx_DECREF_SET(__pyx_t_3, function);
9544  }
9545  }
9546  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_);
9547  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9548  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error)
9549  __Pyx_GOTREF(__pyx_t_1);
9550  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9551  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9552 
9553  /* "mprans/BoundaryConditions.py":262
9554  * self.dissipation_diffusive.setConstantBC(0.)
9555  *
9556  * def setConstantInletVelocity(self, U, ramp, kk, dd , b_or): # <<<<<<<<<<<<<<
9557  * """
9558  * Sets constant velocity in each inlet face with ramping up and turbulence properties
9559  */
9560 
9561  /* function exit code */
9562  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9563  goto __pyx_L0;
9564  __pyx_L1_error:;
9565  __Pyx_XDECREF(__pyx_t_1);
9566  __Pyx_XDECREF(__pyx_t_2);
9567  __Pyx_XDECREF(__pyx_t_3);
9568  __Pyx_XDECREF(__pyx_t_5);
9569  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setConstantInletVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
9570  __pyx_r = NULL;
9571  __pyx_L0:;
9572  __Pyx_XDECREF(__pyx_v_Uin);
9573  __Pyx_XDECREF(__pyx_v_uu);
9574  __Pyx_XDECREF(__pyx_v_vv);
9575  __Pyx_XDECREF(__pyx_v_ww);
9576  __Pyx_XGIVEREF(__pyx_r);
9577  __Pyx_TraceReturn(__pyx_r, 0);
9578  __Pyx_RefNannyFinishContext();
9579  return __pyx_r;
9580 }
9581 
9582 /* "mprans/BoundaryConditions.py":292
9583  * self.vs_diffusive.setConstantBC(0.)
9584  * self.ws_diffusive.setConstantBC(0.)
9585  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or): # <<<<<<<<<<<<<<
9586  * """
9587  * Sets constant pressure in each outlet face for single phase flows
9588  */
9589 
9590 /* Python wrapper */
9591 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9592 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure[] = "BC_RANS.setConstantOutletPressure(self, p, rho, g, kk, dd, b_or)\n\n Sets constant pressure in each outlet face for single phase flows\n ";
9593 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure = {"setConstantOutletPressure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure};
9594 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9595  PyObject *__pyx_v_p = 0;
9596  PyObject *__pyx_v_rho = 0;
9597  PyObject *__pyx_v_g = 0;
9598  PyObject *__pyx_v_kk = 0;
9599  PyObject *__pyx_v_dd = 0;
9600  PyObject *__pyx_v_b_or = 0;
9601  int __pyx_lineno = 0;
9602  const char *__pyx_filename = NULL;
9603  int __pyx_clineno = 0;
9604  PyObject *__pyx_r = 0;
9605  __Pyx_RefNannyDeclarations
9606  __Pyx_RefNannySetupContext("setConstantOutletPressure (wrapper)", 0);
9607  {
9608  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_rho,&__pyx_n_s_g,&__pyx_n_s_kk,&__pyx_n_s_dd,&__pyx_n_s_b_or,0};
9609  PyObject* values[6] = {0,0,0,0,0,0};
9610  if (unlikely(__pyx_kwds)) {
9611  Py_ssize_t kw_args;
9612  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9613  switch (pos_args) {
9614  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9615  CYTHON_FALLTHROUGH;
9616  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9617  CYTHON_FALLTHROUGH;
9618  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9619  CYTHON_FALLTHROUGH;
9620  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9621  CYTHON_FALLTHROUGH;
9622  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9623  CYTHON_FALLTHROUGH;
9624  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9625  CYTHON_FALLTHROUGH;
9626  case 0: break;
9627  default: goto __pyx_L5_argtuple_error;
9628  }
9629  kw_args = PyDict_Size(__pyx_kwds);
9630  switch (pos_args) {
9631  case 0:
9632  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
9633  else goto __pyx_L5_argtuple_error;
9634  CYTHON_FALLTHROUGH;
9635  case 1:
9636  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rho)) != 0)) kw_args--;
9637  else {
9638  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, 1); __PYX_ERR(0, 292, __pyx_L3_error)
9639  }
9640  CYTHON_FALLTHROUGH;
9641  case 2:
9642  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
9643  else {
9644  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, 2); __PYX_ERR(0, 292, __pyx_L3_error)
9645  }
9646  CYTHON_FALLTHROUGH;
9647  case 3:
9648  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kk)) != 0)) kw_args--;
9649  else {
9650  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, 3); __PYX_ERR(0, 292, __pyx_L3_error)
9651  }
9652  CYTHON_FALLTHROUGH;
9653  case 4:
9654  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dd)) != 0)) kw_args--;
9655  else {
9656  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, 4); __PYX_ERR(0, 292, __pyx_L3_error)
9657  }
9658  CYTHON_FALLTHROUGH;
9659  case 5:
9660  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_or)) != 0)) kw_args--;
9661  else {
9662  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, 5); __PYX_ERR(0, 292, __pyx_L3_error)
9663  }
9664  }
9665  if (unlikely(kw_args > 0)) {
9666  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstantOutletPressure") < 0)) __PYX_ERR(0, 292, __pyx_L3_error)
9667  }
9668  } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
9669  goto __pyx_L5_argtuple_error;
9670  } else {
9671  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9672  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9673  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9674  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9675  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9676  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9677  }
9678  __pyx_v_p = values[0];
9679  __pyx_v_rho = values[1];
9680  __pyx_v_g = values[2];
9681  __pyx_v_kk = values[3];
9682  __pyx_v_dd = values[4];
9683  __pyx_v_b_or = values[5];
9684  }
9685  goto __pyx_L4_argument_unpacking_done;
9686  __pyx_L5_argtuple_error:;
9687  __Pyx_RaiseArgtupleInvalid("setConstantOutletPressure", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 292, __pyx_L3_error)
9688  __pyx_L3_error:;
9689  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setConstantOutletPressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
9690  __Pyx_RefNannyFinishContext();
9691  return NULL;
9692  __pyx_L4_argument_unpacking_done:;
9693  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_p, __pyx_v_rho, __pyx_v_g, __pyx_v_kk, __pyx_v_dd, __pyx_v_b_or);
9694 
9695  /* function exit code */
9696  __Pyx_RefNannyFinishContext();
9697  return __pyx_r;
9698 }
9699 
9700 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_rho, PyObject *__pyx_v_g, PyObject *__pyx_v_kk, PyObject *__pyx_v_dd, PyObject *__pyx_v_b_or) {
9701  PyObject *__pyx_v_a1 = NULL;
9702  PyObject *__pyx_r = NULL;
9703  __Pyx_TraceDeclarations
9704  __Pyx_RefNannyDeclarations
9705  PyObject *__pyx_t_1 = NULL;
9706  PyObject *__pyx_t_2 = NULL;
9707  PyObject *__pyx_t_3 = NULL;
9708  int __pyx_t_4;
9709  PyObject *__pyx_t_5 = NULL;
9710  int __pyx_t_6;
9711  int __pyx_t_7;
9712  int __pyx_lineno = 0;
9713  const char *__pyx_filename = NULL;
9714  int __pyx_clineno = 0;
9715  __Pyx_TraceFrameInit(__pyx_codeobj__8)
9716  __Pyx_RefNannySetupContext("setConstantOutletPressure", 0);
9717  __Pyx_TraceCall("setConstantOutletPressure", __pyx_f[0], 292, 0, __PYX_ERR(0, 292, __pyx_L1_error));
9718 
9719  /* "mprans/BoundaryConditions.py":296
9720  * Sets constant pressure in each outlet face for single phase flows
9721  * """
9722  * self.reset() # <<<<<<<<<<<<<<
9723  * self.BC_type = 'constantOutletPressure'
9724  * # dirichlet
9725  */
9726  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 296, __pyx_L1_error)
9727  __Pyx_GOTREF(__pyx_t_2);
9728  __pyx_t_3 = NULL;
9729  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9730  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9731  if (likely(__pyx_t_3)) {
9732  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9733  __Pyx_INCREF(__pyx_t_3);
9734  __Pyx_INCREF(function);
9735  __Pyx_DECREF_SET(__pyx_t_2, function);
9736  }
9737  }
9738  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
9739  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9740  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error)
9741  __Pyx_GOTREF(__pyx_t_1);
9742  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9743  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9744 
9745  /* "mprans/BoundaryConditions.py":297
9746  * """
9747  * self.reset()
9748  * self.BC_type = 'constantOutletPressure' # <<<<<<<<<<<<<<
9749  * # dirichlet
9750  * a1 = rho*g
9751  */
9752  __Pyx_INCREF(__pyx_n_s_constantOutletPressure);
9753  __Pyx_GIVEREF(__pyx_n_s_constantOutletPressure);
9754  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
9755  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
9756  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_constantOutletPressure;
9757 
9758  /* "mprans/BoundaryConditions.py":299
9759  * self.BC_type = 'constantOutletPressure'
9760  * # dirichlet
9761  * a1 = rho*g # <<<<<<<<<<<<<<
9762  * self.u_dirichlet.setConstantBC(0.)
9763  * self.v_dirichlet.setConstantBC(0.)
9764  */
9765  __pyx_t_1 = PyNumber_Multiply(__pyx_v_rho, __pyx_v_g); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error)
9766  __Pyx_GOTREF(__pyx_t_1);
9767  __pyx_v_a1 = __pyx_t_1;
9768  __pyx_t_1 = 0;
9769 
9770  /* "mprans/BoundaryConditions.py":300
9771  * # dirichlet
9772  * a1 = rho*g
9773  * self.u_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9774  * self.v_dirichlet.setConstantBC(0.)
9775  * self.w_dirichlet.setConstantBC(0.)
9776  */
9777  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error)
9778  __Pyx_GOTREF(__pyx_t_2);
9779  __pyx_t_3 = NULL;
9780  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9781  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9782  if (likely(__pyx_t_3)) {
9783  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9784  __Pyx_INCREF(__pyx_t_3);
9785  __Pyx_INCREF(function);
9786  __Pyx_DECREF_SET(__pyx_t_2, function);
9787  }
9788  }
9789  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9790  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9791  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error)
9792  __Pyx_GOTREF(__pyx_t_1);
9793  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9794  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9795 
9796  /* "mprans/BoundaryConditions.py":301
9797  * a1 = rho*g
9798  * self.u_dirichlet.setConstantBC(0.)
9799  * self.v_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9800  * self.w_dirichlet.setConstantBC(0.)
9801  * self.us_dirichlet.setConstantBC(0.)
9802  */
9803  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 301, __pyx_L1_error)
9804  __Pyx_GOTREF(__pyx_t_2);
9805  __pyx_t_3 = NULL;
9806  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9807  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9808  if (likely(__pyx_t_3)) {
9809  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9810  __Pyx_INCREF(__pyx_t_3);
9811  __Pyx_INCREF(function);
9812  __Pyx_DECREF_SET(__pyx_t_2, function);
9813  }
9814  }
9815  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9816  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9817  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
9818  __Pyx_GOTREF(__pyx_t_1);
9819  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9820  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9821 
9822  /* "mprans/BoundaryConditions.py":302
9823  * self.u_dirichlet.setConstantBC(0.)
9824  * self.v_dirichlet.setConstantBC(0.)
9825  * self.w_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9826  * self.us_dirichlet.setConstantBC(0.)
9827  * self.vs_dirichlet.setConstantBC(0.)
9828  */
9829  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error)
9830  __Pyx_GOTREF(__pyx_t_2);
9831  __pyx_t_3 = NULL;
9832  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9833  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9834  if (likely(__pyx_t_3)) {
9835  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9836  __Pyx_INCREF(__pyx_t_3);
9837  __Pyx_INCREF(function);
9838  __Pyx_DECREF_SET(__pyx_t_2, function);
9839  }
9840  }
9841  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9842  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9843  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error)
9844  __Pyx_GOTREF(__pyx_t_1);
9845  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9846  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9847 
9848  /* "mprans/BoundaryConditions.py":303
9849  * self.v_dirichlet.setConstantBC(0.)
9850  * self.w_dirichlet.setConstantBC(0.)
9851  * self.us_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9852  * self.vs_dirichlet.setConstantBC(0.)
9853  * self.ws_dirichlet.setConstantBC(0.)
9854  */
9855  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error)
9856  __Pyx_GOTREF(__pyx_t_2);
9857  __pyx_t_3 = NULL;
9858  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9859  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9860  if (likely(__pyx_t_3)) {
9861  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9862  __Pyx_INCREF(__pyx_t_3);
9863  __Pyx_INCREF(function);
9864  __Pyx_DECREF_SET(__pyx_t_2, function);
9865  }
9866  }
9867  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9868  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9869  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
9870  __Pyx_GOTREF(__pyx_t_1);
9871  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9872  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9873 
9874  /* "mprans/BoundaryConditions.py":304
9875  * self.w_dirichlet.setConstantBC(0.)
9876  * self.us_dirichlet.setConstantBC(0.)
9877  * self.vs_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9878  * self.ws_dirichlet.setConstantBC(0.)
9879  *
9880  */
9881  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error)
9882  __Pyx_GOTREF(__pyx_t_2);
9883  __pyx_t_3 = NULL;
9884  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9885  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9886  if (likely(__pyx_t_3)) {
9887  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9888  __Pyx_INCREF(__pyx_t_3);
9889  __Pyx_INCREF(function);
9890  __Pyx_DECREF_SET(__pyx_t_2, function);
9891  }
9892  }
9893  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9894  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9895  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error)
9896  __Pyx_GOTREF(__pyx_t_1);
9897  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9898  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9899 
9900  /* "mprans/BoundaryConditions.py":305
9901  * self.us_dirichlet.setConstantBC(0.)
9902  * self.vs_dirichlet.setConstantBC(0.)
9903  * self.ws_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
9904  *
9905  * self.p_dirichlet.setLinearBC(p,a1)
9906  */
9907  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 305, __pyx_L1_error)
9908  __Pyx_GOTREF(__pyx_t_2);
9909  __pyx_t_3 = NULL;
9910  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9911  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9912  if (likely(__pyx_t_3)) {
9913  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9914  __Pyx_INCREF(__pyx_t_3);
9915  __Pyx_INCREF(function);
9916  __Pyx_DECREF_SET(__pyx_t_2, function);
9917  }
9918  }
9919  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
9920  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9921  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
9922  __Pyx_GOTREF(__pyx_t_1);
9923  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9924  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9925 
9926  /* "mprans/BoundaryConditions.py":307
9927  * self.ws_dirichlet.setConstantBC(0.)
9928  *
9929  * self.p_dirichlet.setLinearBC(p,a1) # <<<<<<<<<<<<<<
9930  * self.pInit_dirichlet.setLinearBC(p, a1)
9931  * self.pInc_dirichlet.setConstantBC(0.)
9932  */
9933  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_dirichlet), __pyx_n_s_setLinearBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
9934  __Pyx_GOTREF(__pyx_t_2);
9935  __pyx_t_3 = NULL;
9936  __pyx_t_4 = 0;
9937  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9938  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9939  if (likely(__pyx_t_3)) {
9940  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9941  __Pyx_INCREF(__pyx_t_3);
9942  __Pyx_INCREF(function);
9943  __Pyx_DECREF_SET(__pyx_t_2, function);
9944  __pyx_t_4 = 1;
9945  }
9946  }
9947  #if CYTHON_FAST_PYCALL
9948  if (PyFunction_Check(__pyx_t_2)) {
9949  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_p, __pyx_v_a1};
9950  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
9951  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9952  __Pyx_GOTREF(__pyx_t_1);
9953  } else
9954  #endif
9955  #if CYTHON_FAST_PYCCALL
9956  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
9957  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_p, __pyx_v_a1};
9958  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
9959  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9960  __Pyx_GOTREF(__pyx_t_1);
9961  } else
9962  #endif
9963  {
9964  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 307, __pyx_L1_error)
9965  __Pyx_GOTREF(__pyx_t_5);
9966  if (__pyx_t_3) {
9967  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
9968  }
9969  __Pyx_INCREF(__pyx_v_p);
9970  __Pyx_GIVEREF(__pyx_v_p);
9971  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_p);
9972  __Pyx_INCREF(__pyx_v_a1);
9973  __Pyx_GIVEREF(__pyx_v_a1);
9974  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_a1);
9975  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
9976  __Pyx_GOTREF(__pyx_t_1);
9977  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9978  }
9979  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9980  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9981 
9982  /* "mprans/BoundaryConditions.py":308
9983  *
9984  * self.p_dirichlet.setLinearBC(p,a1)
9985  * self.pInit_dirichlet.setLinearBC(p, a1) # <<<<<<<<<<<<<<
9986  * self.pInc_dirichlet.setConstantBC(0.)
9987  * self.k_dirichlet.setConstantBC(kk)
9988  */
9989  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInit_dirichlet), __pyx_n_s_setLinearBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error)
9990  __Pyx_GOTREF(__pyx_t_2);
9991  __pyx_t_5 = NULL;
9992  __pyx_t_4 = 0;
9993  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9994  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
9995  if (likely(__pyx_t_5)) {
9996  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9997  __Pyx_INCREF(__pyx_t_5);
9998  __Pyx_INCREF(function);
9999  __Pyx_DECREF_SET(__pyx_t_2, function);
10000  __pyx_t_4 = 1;
10001  }
10002  }
10003  #if CYTHON_FAST_PYCALL
10004  if (PyFunction_Check(__pyx_t_2)) {
10005  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_p, __pyx_v_a1};
10006  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 308, __pyx_L1_error)
10007  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10008  __Pyx_GOTREF(__pyx_t_1);
10009  } else
10010  #endif
10011  #if CYTHON_FAST_PYCCALL
10012  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
10013  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_p, __pyx_v_a1};
10014  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 308, __pyx_L1_error)
10015  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10016  __Pyx_GOTREF(__pyx_t_1);
10017  } else
10018  #endif
10019  {
10020  __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error)
10021  __Pyx_GOTREF(__pyx_t_3);
10022  if (__pyx_t_5) {
10023  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
10024  }
10025  __Pyx_INCREF(__pyx_v_p);
10026  __Pyx_GIVEREF(__pyx_v_p);
10027  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_p);
10028  __Pyx_INCREF(__pyx_v_a1);
10029  __Pyx_GIVEREF(__pyx_v_a1);
10030  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_a1);
10031  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 308, __pyx_L1_error)
10032  __Pyx_GOTREF(__pyx_t_1);
10033  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10034  }
10035  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10036  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10037 
10038  /* "mprans/BoundaryConditions.py":309
10039  * self.p_dirichlet.setLinearBC(p,a1)
10040  * self.pInit_dirichlet.setLinearBC(p, a1)
10041  * self.pInc_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10042  * self.k_dirichlet.setConstantBC(kk)
10043  * self.dissipation_dirichlet.setConstantBC(dd)
10044  */
10045  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
10046  __Pyx_GOTREF(__pyx_t_2);
10047  __pyx_t_3 = NULL;
10048  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10049  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10050  if (likely(__pyx_t_3)) {
10051  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10052  __Pyx_INCREF(__pyx_t_3);
10053  __Pyx_INCREF(function);
10054  __Pyx_DECREF_SET(__pyx_t_2, function);
10055  }
10056  }
10057  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10058  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10059  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error)
10060  __Pyx_GOTREF(__pyx_t_1);
10061  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10062  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10063 
10064  /* "mprans/BoundaryConditions.py":310
10065  * self.pInit_dirichlet.setLinearBC(p, a1)
10066  * self.pInc_dirichlet.setConstantBC(0.)
10067  * self.k_dirichlet.setConstantBC(kk) # <<<<<<<<<<<<<<
10068  * self.dissipation_dirichlet.setConstantBC(dd)
10069  *
10070  */
10071  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
10072  __Pyx_GOTREF(__pyx_t_2);
10073  __pyx_t_3 = NULL;
10074  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10075  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10076  if (likely(__pyx_t_3)) {
10077  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10078  __Pyx_INCREF(__pyx_t_3);
10079  __Pyx_INCREF(function);
10080  __Pyx_DECREF_SET(__pyx_t_2, function);
10081  }
10082  }
10083  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_kk) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kk);
10084  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10085  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error)
10086  __Pyx_GOTREF(__pyx_t_1);
10087  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10088  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10089 
10090  /* "mprans/BoundaryConditions.py":311
10091  * self.pInc_dirichlet.setConstantBC(0.)
10092  * self.k_dirichlet.setConstantBC(kk)
10093  * self.dissipation_dirichlet.setConstantBC(dd) # <<<<<<<<<<<<<<
10094  *
10095  * # diffusive
10096  */
10097  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
10098  __Pyx_GOTREF(__pyx_t_2);
10099  __pyx_t_3 = NULL;
10100  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10101  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10102  if (likely(__pyx_t_3)) {
10103  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10104  __Pyx_INCREF(__pyx_t_3);
10105  __Pyx_INCREF(function);
10106  __Pyx_DECREF_SET(__pyx_t_2, function);
10107  }
10108  }
10109  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_dd) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dd);
10110  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10111  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error)
10112  __Pyx_GOTREF(__pyx_t_1);
10113  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10114  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10115 
10116  /* "mprans/BoundaryConditions.py":314
10117  *
10118  * # diffusive
10119  * if b_or[0] == 1. or b_or[0] == -1.: # <<<<<<<<<<<<<<
10120  * self.u_diffusive.setConstantBC(0.)
10121  * if b_or[1] == 1. or b_or[1] == -1.:
10122  */
10123  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
10124  __Pyx_GOTREF(__pyx_t_1);
10125  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error)
10126  __Pyx_GOTREF(__pyx_t_2);
10127  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10128  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
10129  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10130  if (!__pyx_t_7) {
10131  } else {
10132  __pyx_t_6 = __pyx_t_7;
10133  goto __pyx_L4_bool_binop_done;
10134  }
10135  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error)
10136  __Pyx_GOTREF(__pyx_t_2);
10137  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
10138  __Pyx_GOTREF(__pyx_t_1);
10139  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10140  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
10141  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10142  __pyx_t_6 = __pyx_t_7;
10143  __pyx_L4_bool_binop_done:;
10144  if (__pyx_t_6) {
10145 
10146  /* "mprans/BoundaryConditions.py":315
10147  * # diffusive
10148  * if b_or[0] == 1. or b_or[0] == -1.:
10149  * self.u_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10150  * if b_or[1] == 1. or b_or[1] == -1.:
10151  * self.v_diffusive.setConstantBC(0.)
10152  */
10153  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error)
10154  __Pyx_GOTREF(__pyx_t_2);
10155  __pyx_t_3 = NULL;
10156  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10157  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10158  if (likely(__pyx_t_3)) {
10159  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10160  __Pyx_INCREF(__pyx_t_3);
10161  __Pyx_INCREF(function);
10162  __Pyx_DECREF_SET(__pyx_t_2, function);
10163  }
10164  }
10165  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10166  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10167  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error)
10168  __Pyx_GOTREF(__pyx_t_1);
10169  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10170  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10171 
10172  /* "mprans/BoundaryConditions.py":314
10173  *
10174  * # diffusive
10175  * if b_or[0] == 1. or b_or[0] == -1.: # <<<<<<<<<<<<<<
10176  * self.u_diffusive.setConstantBC(0.)
10177  * if b_or[1] == 1. or b_or[1] == -1.:
10178  */
10179  }
10180 
10181  /* "mprans/BoundaryConditions.py":316
10182  * if b_or[0] == 1. or b_or[0] == -1.:
10183  * self.u_diffusive.setConstantBC(0.)
10184  * if b_or[1] == 1. or b_or[1] == -1.: # <<<<<<<<<<<<<<
10185  * self.v_diffusive.setConstantBC(0.)
10186  * if b_or[2] == 1. or b_or[2] == -1.:
10187  */
10188  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error)
10189  __Pyx_GOTREF(__pyx_t_1);
10190  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 316, __pyx_L1_error)
10191  __Pyx_GOTREF(__pyx_t_2);
10192  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10193  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 316, __pyx_L1_error)
10194  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10195  if (!__pyx_t_7) {
10196  } else {
10197  __pyx_t_6 = __pyx_t_7;
10198  goto __pyx_L7_bool_binop_done;
10199  }
10200  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 316, __pyx_L1_error)
10201  __Pyx_GOTREF(__pyx_t_2);
10202  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error)
10203  __Pyx_GOTREF(__pyx_t_1);
10204  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10205  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 316, __pyx_L1_error)
10206  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10207  __pyx_t_6 = __pyx_t_7;
10208  __pyx_L7_bool_binop_done:;
10209  if (__pyx_t_6) {
10210 
10211  /* "mprans/BoundaryConditions.py":317
10212  * self.u_diffusive.setConstantBC(0.)
10213  * if b_or[1] == 1. or b_or[1] == -1.:
10214  * self.v_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10215  * if b_or[2] == 1. or b_or[2] == -1.:
10216  * self.w_diffusive.setConstantBC(0.)
10217  */
10218  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
10219  __Pyx_GOTREF(__pyx_t_2);
10220  __pyx_t_3 = NULL;
10221  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10222  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10223  if (likely(__pyx_t_3)) {
10224  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10225  __Pyx_INCREF(__pyx_t_3);
10226  __Pyx_INCREF(function);
10227  __Pyx_DECREF_SET(__pyx_t_2, function);
10228  }
10229  }
10230  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10231  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10232  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error)
10233  __Pyx_GOTREF(__pyx_t_1);
10234  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10235  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10236 
10237  /* "mprans/BoundaryConditions.py":316
10238  * if b_or[0] == 1. or b_or[0] == -1.:
10239  * self.u_diffusive.setConstantBC(0.)
10240  * if b_or[1] == 1. or b_or[1] == -1.: # <<<<<<<<<<<<<<
10241  * self.v_diffusive.setConstantBC(0.)
10242  * if b_or[2] == 1. or b_or[2] == -1.:
10243  */
10244  }
10245 
10246  /* "mprans/BoundaryConditions.py":318
10247  * if b_or[1] == 1. or b_or[1] == -1.:
10248  * self.v_diffusive.setConstantBC(0.)
10249  * if b_or[2] == 1. or b_or[2] == -1.: # <<<<<<<<<<<<<<
10250  * self.w_diffusive.setConstantBC(0.)
10251  * self.k_diffusive.setConstantBC(0.)
10252  */
10253  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error)
10254  __Pyx_GOTREF(__pyx_t_1);
10255  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 318, __pyx_L1_error)
10256  __Pyx_GOTREF(__pyx_t_2);
10257  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10258  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 318, __pyx_L1_error)
10259  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10260  if (!__pyx_t_7) {
10261  } else {
10262  __pyx_t_6 = __pyx_t_7;
10263  goto __pyx_L10_bool_binop_done;
10264  }
10265  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 318, __pyx_L1_error)
10266  __Pyx_GOTREF(__pyx_t_2);
10267  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error)
10268  __Pyx_GOTREF(__pyx_t_1);
10269  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10270  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 318, __pyx_L1_error)
10271  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10272  __pyx_t_6 = __pyx_t_7;
10273  __pyx_L10_bool_binop_done:;
10274  if (__pyx_t_6) {
10275 
10276  /* "mprans/BoundaryConditions.py":319
10277  * self.v_diffusive.setConstantBC(0.)
10278  * if b_or[2] == 1. or b_or[2] == -1.:
10279  * self.w_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10280  * self.k_diffusive.setConstantBC(0.)
10281  * self.dissipation_diffusive.setConstantBC(0.)
10282  */
10283  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 319, __pyx_L1_error)
10284  __Pyx_GOTREF(__pyx_t_2);
10285  __pyx_t_3 = NULL;
10286  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10287  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10288  if (likely(__pyx_t_3)) {
10289  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10290  __Pyx_INCREF(__pyx_t_3);
10291  __Pyx_INCREF(function);
10292  __Pyx_DECREF_SET(__pyx_t_2, function);
10293  }
10294  }
10295  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10296  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10297  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error)
10298  __Pyx_GOTREF(__pyx_t_1);
10299  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10300  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10301 
10302  /* "mprans/BoundaryConditions.py":318
10303  * if b_or[1] == 1. or b_or[1] == -1.:
10304  * self.v_diffusive.setConstantBC(0.)
10305  * if b_or[2] == 1. or b_or[2] == -1.: # <<<<<<<<<<<<<<
10306  * self.w_diffusive.setConstantBC(0.)
10307  * self.k_diffusive.setConstantBC(0.)
10308  */
10309  }
10310 
10311  /* "mprans/BoundaryConditions.py":320
10312  * if b_or[2] == 1. or b_or[2] == -1.:
10313  * self.w_diffusive.setConstantBC(0.)
10314  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10315  * self.dissipation_diffusive.setConstantBC(0.)
10316  * self.us_diffusive.setConstantBC(0.)
10317  */
10318  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L1_error)
10319  __Pyx_GOTREF(__pyx_t_2);
10320  __pyx_t_3 = NULL;
10321  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10322  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10323  if (likely(__pyx_t_3)) {
10324  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10325  __Pyx_INCREF(__pyx_t_3);
10326  __Pyx_INCREF(function);
10327  __Pyx_DECREF_SET(__pyx_t_2, function);
10328  }
10329  }
10330  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10331  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10332  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error)
10333  __Pyx_GOTREF(__pyx_t_1);
10334  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10335  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10336 
10337  /* "mprans/BoundaryConditions.py":321
10338  * self.w_diffusive.setConstantBC(0.)
10339  * self.k_diffusive.setConstantBC(0.)
10340  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10341  * self.us_diffusive.setConstantBC(0.)
10342  * self.vs_diffusive.setConstantBC(0.)
10343  */
10344  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 321, __pyx_L1_error)
10345  __Pyx_GOTREF(__pyx_t_2);
10346  __pyx_t_3 = NULL;
10347  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10348  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10349  if (likely(__pyx_t_3)) {
10350  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10351  __Pyx_INCREF(__pyx_t_3);
10352  __Pyx_INCREF(function);
10353  __Pyx_DECREF_SET(__pyx_t_2, function);
10354  }
10355  }
10356  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10357  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10358  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L1_error)
10359  __Pyx_GOTREF(__pyx_t_1);
10360  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10361  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10362 
10363  /* "mprans/BoundaryConditions.py":322
10364  * self.k_diffusive.setConstantBC(0.)
10365  * self.dissipation_diffusive.setConstantBC(0.)
10366  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10367  * self.vs_diffusive.setConstantBC(0.)
10368  * self.ws_diffusive.setConstantBC(0.)
10369  */
10370  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error)
10371  __Pyx_GOTREF(__pyx_t_2);
10372  __pyx_t_3 = NULL;
10373  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10374  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10375  if (likely(__pyx_t_3)) {
10376  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10377  __Pyx_INCREF(__pyx_t_3);
10378  __Pyx_INCREF(function);
10379  __Pyx_DECREF_SET(__pyx_t_2, function);
10380  }
10381  }
10382  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10383  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10384  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error)
10385  __Pyx_GOTREF(__pyx_t_1);
10386  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10387  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10388 
10389  /* "mprans/BoundaryConditions.py":323
10390  * self.dissipation_diffusive.setConstantBC(0.)
10391  * self.us_diffusive.setConstantBC(0.)
10392  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10393  * self.ws_diffusive.setConstantBC(0.)
10394  *
10395  */
10396  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 323, __pyx_L1_error)
10397  __Pyx_GOTREF(__pyx_t_2);
10398  __pyx_t_3 = NULL;
10399  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10400  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10401  if (likely(__pyx_t_3)) {
10402  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10403  __Pyx_INCREF(__pyx_t_3);
10404  __Pyx_INCREF(function);
10405  __Pyx_DECREF_SET(__pyx_t_2, function);
10406  }
10407  }
10408  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10409  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10410  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 323, __pyx_L1_error)
10411  __Pyx_GOTREF(__pyx_t_1);
10412  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10413  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10414 
10415  /* "mprans/BoundaryConditions.py":324
10416  * self.us_diffusive.setConstantBC(0.)
10417  * self.vs_diffusive.setConstantBC(0.)
10418  * self.ws_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
10419  *
10420  * def setAtmosphere(self, orientation=None, vof_air=1.,kInflow=None,dInflow=None):
10421  */
10422  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
10423  __Pyx_GOTREF(__pyx_t_2);
10424  __pyx_t_3 = NULL;
10425  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10426  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10427  if (likely(__pyx_t_3)) {
10428  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10429  __Pyx_INCREF(__pyx_t_3);
10430  __Pyx_INCREF(function);
10431  __Pyx_DECREF_SET(__pyx_t_2, function);
10432  }
10433  }
10434  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
10435  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10436  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 324, __pyx_L1_error)
10437  __Pyx_GOTREF(__pyx_t_1);
10438  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10439  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10440 
10441  /* "mprans/BoundaryConditions.py":292
10442  * self.vs_diffusive.setConstantBC(0.)
10443  * self.ws_diffusive.setConstantBC(0.)
10444  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or): # <<<<<<<<<<<<<<
10445  * """
10446  * Sets constant pressure in each outlet face for single phase flows
10447  */
10448 
10449  /* function exit code */
10450  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10451  goto __pyx_L0;
10452  __pyx_L1_error:;
10453  __Pyx_XDECREF(__pyx_t_1);
10454  __Pyx_XDECREF(__pyx_t_2);
10455  __Pyx_XDECREF(__pyx_t_3);
10456  __Pyx_XDECREF(__pyx_t_5);
10457  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setConstantOutletPressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
10458  __pyx_r = NULL;
10459  __pyx_L0:;
10460  __Pyx_XDECREF(__pyx_v_a1);
10461  __Pyx_XGIVEREF(__pyx_r);
10462  __Pyx_TraceReturn(__pyx_r, 0);
10463  __Pyx_RefNannyFinishContext();
10464  return __pyx_r;
10465 }
10466 
10467 /* "mprans/BoundaryConditions.py":326
10468  * self.ws_diffusive.setConstantBC(0.)
10469  *
10470  * def setAtmosphere(self, orientation=None, vof_air=1.,kInflow=None,dInflow=None): # <<<<<<<<<<<<<<
10471  * """
10472  * Sets atmosphere boundary conditions (water can come out)
10473  */
10474 
10475 /* Python wrapper */
10476 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10477 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere[] = "BC_RANS.setAtmosphere(self, orientation=None, vof_air=1., kInflow=None, dInflow=None)\n\n Sets atmosphere boundary conditions (water can come out)\n (!) pressure dirichlet set to 0 for this BC\n Parameters\n ----------\n orientation: Optional[array_like]\n orientation of the boundary. Optional if orientation was already\n passed when creating the BC_RANS class instance.\n vof_air: Optional[float]\n VOF value of air (default is 1.)\n ";
10478 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere = {"setAtmosphere", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere};
10479 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10480  PyObject *__pyx_v_orientation = 0;
10481  PyObject *__pyx_v_vof_air = 0;
10482  PyObject *__pyx_v_kInflow = 0;
10483  PyObject *__pyx_v_dInflow = 0;
10484  int __pyx_lineno = 0;
10485  const char *__pyx_filename = NULL;
10486  int __pyx_clineno = 0;
10487  PyObject *__pyx_r = 0;
10488  __Pyx_RefNannyDeclarations
10489  __Pyx_RefNannySetupContext("setAtmosphere (wrapper)", 0);
10490  {
10491  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_orientation,&__pyx_n_s_vof_air,&__pyx_n_s_kInflow,&__pyx_n_s_dInflow,0};
10492  PyObject* values[4] = {0,0,0,0};
10493  values[0] = ((PyObject *)Py_None);
10494  values[1] = ((PyObject *)__pyx_float_1_);
10495  values[2] = ((PyObject *)Py_None);
10496  values[3] = ((PyObject *)Py_None);
10497  if (unlikely(__pyx_kwds)) {
10498  Py_ssize_t kw_args;
10499  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10500  switch (pos_args) {
10501  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10502  CYTHON_FALLTHROUGH;
10503  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10504  CYTHON_FALLTHROUGH;
10505  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10506  CYTHON_FALLTHROUGH;
10507  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10508  CYTHON_FALLTHROUGH;
10509  case 0: break;
10510  default: goto __pyx_L5_argtuple_error;
10511  }
10512  kw_args = PyDict_Size(__pyx_kwds);
10513  switch (pos_args) {
10514  case 0:
10515  if (kw_args > 0) {
10516  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation);
10517  if (value) { values[0] = value; kw_args--; }
10518  }
10519  CYTHON_FALLTHROUGH;
10520  case 1:
10521  if (kw_args > 0) {
10522  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_air);
10523  if (value) { values[1] = value; kw_args--; }
10524  }
10525  CYTHON_FALLTHROUGH;
10526  case 2:
10527  if (kw_args > 0) {
10528  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflow);
10529  if (value) { values[2] = value; kw_args--; }
10530  }
10531  CYTHON_FALLTHROUGH;
10532  case 3:
10533  if (kw_args > 0) {
10534  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dInflow);
10535  if (value) { values[3] = value; kw_args--; }
10536  }
10537  }
10538  if (unlikely(kw_args > 0)) {
10539  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAtmosphere") < 0)) __PYX_ERR(0, 326, __pyx_L3_error)
10540  }
10541  } else {
10542  switch (PyTuple_GET_SIZE(__pyx_args)) {
10543  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10544  CYTHON_FALLTHROUGH;
10545  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10546  CYTHON_FALLTHROUGH;
10547  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10548  CYTHON_FALLTHROUGH;
10549  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10550  CYTHON_FALLTHROUGH;
10551  case 0: break;
10552  default: goto __pyx_L5_argtuple_error;
10553  }
10554  }
10555  __pyx_v_orientation = values[0];
10556  __pyx_v_vof_air = values[1];
10557  __pyx_v_kInflow = values[2];
10558  __pyx_v_dInflow = values[3];
10559  }
10560  goto __pyx_L4_argument_unpacking_done;
10561  __pyx_L5_argtuple_error:;
10562  __Pyx_RaiseArgtupleInvalid("setAtmosphere", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 326, __pyx_L3_error)
10563  __pyx_L3_error:;
10564  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setAtmosphere", __pyx_clineno, __pyx_lineno, __pyx_filename);
10565  __Pyx_RefNannyFinishContext();
10566  return NULL;
10567  __pyx_L4_argument_unpacking_done:;
10568  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_orientation, __pyx_v_vof_air, __pyx_v_kInflow, __pyx_v_dInflow);
10569 
10570  /* function exit code */
10571  __Pyx_RefNannyFinishContext();
10572  return __pyx_r;
10573 }
10574 
10575 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_orientation, PyObject *__pyx_v_vof_air, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dInflow) {
10576  PyObject *__pyx_r = NULL;
10577  __Pyx_TraceDeclarations
10578  __Pyx_RefNannyDeclarations
10579  int __pyx_t_1;
10580  int __pyx_t_2;
10581  int __pyx_t_3;
10582  PyObject *__pyx_t_4 = NULL;
10583  PyObject *__pyx_t_5 = NULL;
10584  PyObject *__pyx_t_6 = NULL;
10585  PyObject *__pyx_t_7 = NULL;
10586  PyObject *__pyx_t_8 = NULL;
10587  int __pyx_lineno = 0;
10588  const char *__pyx_filename = NULL;
10589  int __pyx_clineno = 0;
10590  __Pyx_TraceFrameInit(__pyx_codeobj__9)
10591  __Pyx_RefNannySetupContext("setAtmosphere", 0);
10592  __Pyx_TraceCall("setAtmosphere", __pyx_f[0], 326, 0, __PYX_ERR(0, 326, __pyx_L1_error));
10593  __Pyx_INCREF(__pyx_v_orientation);
10594 
10595  /* "mprans/BoundaryConditions.py":338
10596  * VOF value of air (default is 1.)
10597  * """
10598  * self.BC_type = 'Atmosphere' # <<<<<<<<<<<<<<
10599  * if orientation is None and self._b_or is not None:
10600  * orientation = self._b_or
10601  */
10602  __Pyx_INCREF(__pyx_n_s_Atmosphere);
10603  __Pyx_GIVEREF(__pyx_n_s_Atmosphere);
10604  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
10605  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
10606  __pyx_v_self->__pyx_base.BC_type = __pyx_n_s_Atmosphere;
10607 
10608  /* "mprans/BoundaryConditions.py":339
10609  * """
10610  * self.BC_type = 'Atmosphere'
10611  * if orientation is None and self._b_or is not None: # <<<<<<<<<<<<<<
10612  * orientation = self._b_or
10613  * assert orientation is not None, 'oritentation must be set for BC'
10614  */
10615  __pyx_t_2 = (__pyx_v_orientation == Py_None);
10616  __pyx_t_3 = (__pyx_t_2 != 0);
10617  if (__pyx_t_3) {
10618  } else {
10619  __pyx_t_1 = __pyx_t_3;
10620  goto __pyx_L4_bool_binop_done;
10621  }
10622  __pyx_t_3 = ((((PyObject *) __pyx_v_self->__pyx_base._b_or.memview) != Py_None) != 0);
10623  __pyx_t_1 = __pyx_t_3;
10624  __pyx_L4_bool_binop_done:;
10625  if (__pyx_t_1) {
10626 
10627  /* "mprans/BoundaryConditions.py":340
10628  * self.BC_type = 'Atmosphere'
10629  * if orientation is None and self._b_or is not None:
10630  * orientation = self._b_or # <<<<<<<<<<<<<<
10631  * assert orientation is not None, 'oritentation must be set for BC'
10632  * self.reset()
10633  */
10634  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error)
10635  __Pyx_GOTREF(__pyx_t_4);
10636  __Pyx_DECREF_SET(__pyx_v_orientation, __pyx_t_4);
10637  __pyx_t_4 = 0;
10638 
10639  /* "mprans/BoundaryConditions.py":339
10640  * """
10641  * self.BC_type = 'Atmosphere'
10642  * if orientation is None and self._b_or is not None: # <<<<<<<<<<<<<<
10643  * orientation = self._b_or
10644  * assert orientation is not None, 'oritentation must be set for BC'
10645  */
10646  }
10647 
10648  /* "mprans/BoundaryConditions.py":341
10649  * if orientation is None and self._b_or is not None:
10650  * orientation = self._b_or
10651  * assert orientation is not None, 'oritentation must be set for BC' # <<<<<<<<<<<<<<
10652  * self.reset()
10653  * self.p_dirichlet.setConstantBC(0.)
10654  */
10655  #ifndef CYTHON_WITHOUT_ASSERTIONS
10656  if (unlikely(!Py_OptimizeFlag)) {
10657  __pyx_t_1 = (__pyx_v_orientation != Py_None);
10658  if (unlikely(!(__pyx_t_1 != 0))) {
10659  PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_oritentation_must_be_set_for_BC);
10660  __PYX_ERR(0, 341, __pyx_L1_error)
10661  }
10662  }
10663  #endif
10664 
10665  /* "mprans/BoundaryConditions.py":342
10666  * orientation = self._b_or
10667  * assert orientation is not None, 'oritentation must be set for BC'
10668  * self.reset() # <<<<<<<<<<<<<<
10669  * self.p_dirichlet.setConstantBC(0.)
10670  * self.pInc_dirichlet.setConstantBC(0.)
10671  */
10672  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 342, __pyx_L1_error)
10673  __Pyx_GOTREF(__pyx_t_5);
10674  __pyx_t_6 = NULL;
10675  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10676  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10677  if (likely(__pyx_t_6)) {
10678  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10679  __Pyx_INCREF(__pyx_t_6);
10680  __Pyx_INCREF(function);
10681  __Pyx_DECREF_SET(__pyx_t_5, function);
10682  }
10683  }
10684  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
10685  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10686  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 342, __pyx_L1_error)
10687  __Pyx_GOTREF(__pyx_t_4);
10688  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10689  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10690 
10691  /* "mprans/BoundaryConditions.py":343
10692  * assert orientation is not None, 'oritentation must be set for BC'
10693  * self.reset()
10694  * self.p_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10695  * self.pInc_dirichlet.setConstantBC(0.)
10696  * self.pInit_dirichlet.setConstantBC(0.)
10697  */
10698  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error)
10699  __Pyx_GOTREF(__pyx_t_5);
10700  __pyx_t_6 = NULL;
10701  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10702  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10703  if (likely(__pyx_t_6)) {
10704  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10705  __Pyx_INCREF(__pyx_t_6);
10706  __Pyx_INCREF(function);
10707  __Pyx_DECREF_SET(__pyx_t_5, function);
10708  }
10709  }
10710  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10711  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10712  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 343, __pyx_L1_error)
10713  __Pyx_GOTREF(__pyx_t_4);
10714  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10715  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10716 
10717  /* "mprans/BoundaryConditions.py":344
10718  * self.reset()
10719  * self.p_dirichlet.setConstantBC(0.)
10720  * self.pInc_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10721  * self.pInit_dirichlet.setConstantBC(0.)
10722  * self.vof_dirichlet.setConstantBC(vof_air) # air
10723  */
10724  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 344, __pyx_L1_error)
10725  __Pyx_GOTREF(__pyx_t_5);
10726  __pyx_t_6 = NULL;
10727  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10728  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10729  if (likely(__pyx_t_6)) {
10730  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10731  __Pyx_INCREF(__pyx_t_6);
10732  __Pyx_INCREF(function);
10733  __Pyx_DECREF_SET(__pyx_t_5, function);
10734  }
10735  }
10736  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10737  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10738  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 344, __pyx_L1_error)
10739  __Pyx_GOTREF(__pyx_t_4);
10740  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10741  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10742 
10743  /* "mprans/BoundaryConditions.py":345
10744  * self.p_dirichlet.setConstantBC(0.)
10745  * self.pInc_dirichlet.setConstantBC(0.)
10746  * self.pInit_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10747  * self.vof_dirichlet.setConstantBC(vof_air) # air
10748  * self.vos_dirichlet.setConstantBC(0.)
10749  */
10750  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInit_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 345, __pyx_L1_error)
10751  __Pyx_GOTREF(__pyx_t_5);
10752  __pyx_t_6 = NULL;
10753  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10754  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10755  if (likely(__pyx_t_6)) {
10756  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10757  __Pyx_INCREF(__pyx_t_6);
10758  __Pyx_INCREF(function);
10759  __Pyx_DECREF_SET(__pyx_t_5, function);
10760  }
10761  }
10762  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10763  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10764  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 345, __pyx_L1_error)
10765  __Pyx_GOTREF(__pyx_t_4);
10766  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10767  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10768 
10769  /* "mprans/BoundaryConditions.py":346
10770  * self.pInc_dirichlet.setConstantBC(0.)
10771  * self.pInit_dirichlet.setConstantBC(0.)
10772  * self.vof_dirichlet.setConstantBC(vof_air) # air # <<<<<<<<<<<<<<
10773  * self.vos_dirichlet.setConstantBC(0.)
10774  * self.u_dirichlet.setConstantBC(0.)
10775  */
10776  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vof_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 346, __pyx_L1_error)
10777  __Pyx_GOTREF(__pyx_t_5);
10778  __pyx_t_6 = NULL;
10779  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10780  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10781  if (likely(__pyx_t_6)) {
10782  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10783  __Pyx_INCREF(__pyx_t_6);
10784  __Pyx_INCREF(function);
10785  __Pyx_DECREF_SET(__pyx_t_5, function);
10786  }
10787  }
10788  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_vof_air) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_vof_air);
10789  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10790  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 346, __pyx_L1_error)
10791  __Pyx_GOTREF(__pyx_t_4);
10792  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10793  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10794 
10795  /* "mprans/BoundaryConditions.py":347
10796  * self.pInit_dirichlet.setConstantBC(0.)
10797  * self.vof_dirichlet.setConstantBC(vof_air) # air
10798  * self.vos_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10799  * self.u_dirichlet.setConstantBC(0.)
10800  * self.v_dirichlet.setConstantBC(0.)
10801  */
10802  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vos_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 347, __pyx_L1_error)
10803  __Pyx_GOTREF(__pyx_t_5);
10804  __pyx_t_6 = NULL;
10805  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10806  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10807  if (likely(__pyx_t_6)) {
10808  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10809  __Pyx_INCREF(__pyx_t_6);
10810  __Pyx_INCREF(function);
10811  __Pyx_DECREF_SET(__pyx_t_5, function);
10812  }
10813  }
10814  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10815  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10816  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 347, __pyx_L1_error)
10817  __Pyx_GOTREF(__pyx_t_4);
10818  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10819  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10820 
10821  /* "mprans/BoundaryConditions.py":348
10822  * self.vof_dirichlet.setConstantBC(vof_air) # air
10823  * self.vos_dirichlet.setConstantBC(0.)
10824  * self.u_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10825  * self.v_dirichlet.setConstantBC(0.)
10826  * self.w_dirichlet.setConstantBC(0.)
10827  */
10828  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 348, __pyx_L1_error)
10829  __Pyx_GOTREF(__pyx_t_5);
10830  __pyx_t_6 = NULL;
10831  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10832  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10833  if (likely(__pyx_t_6)) {
10834  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10835  __Pyx_INCREF(__pyx_t_6);
10836  __Pyx_INCREF(function);
10837  __Pyx_DECREF_SET(__pyx_t_5, function);
10838  }
10839  }
10840  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10841  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10842  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error)
10843  __Pyx_GOTREF(__pyx_t_4);
10844  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10845  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10846 
10847  /* "mprans/BoundaryConditions.py":349
10848  * self.vos_dirichlet.setConstantBC(0.)
10849  * self.u_dirichlet.setConstantBC(0.)
10850  * self.v_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10851  * self.w_dirichlet.setConstantBC(0.)
10852  * self.us_dirichlet.setConstantBC(0.)
10853  */
10854  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 349, __pyx_L1_error)
10855  __Pyx_GOTREF(__pyx_t_5);
10856  __pyx_t_6 = NULL;
10857  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10858  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10859  if (likely(__pyx_t_6)) {
10860  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10861  __Pyx_INCREF(__pyx_t_6);
10862  __Pyx_INCREF(function);
10863  __Pyx_DECREF_SET(__pyx_t_5, function);
10864  }
10865  }
10866  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10867  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10868  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error)
10869  __Pyx_GOTREF(__pyx_t_4);
10870  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10871  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10872 
10873  /* "mprans/BoundaryConditions.py":350
10874  * self.u_dirichlet.setConstantBC(0.)
10875  * self.v_dirichlet.setConstantBC(0.)
10876  * self.w_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10877  * self.us_dirichlet.setConstantBC(0.)
10878  * self.vs_dirichlet.setConstantBC(0.)
10879  */
10880  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 350, __pyx_L1_error)
10881  __Pyx_GOTREF(__pyx_t_5);
10882  __pyx_t_6 = NULL;
10883  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10884  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10885  if (likely(__pyx_t_6)) {
10886  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10887  __Pyx_INCREF(__pyx_t_6);
10888  __Pyx_INCREF(function);
10889  __Pyx_DECREF_SET(__pyx_t_5, function);
10890  }
10891  }
10892  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10893  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10894  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 350, __pyx_L1_error)
10895  __Pyx_GOTREF(__pyx_t_4);
10896  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10897  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10898 
10899  /* "mprans/BoundaryConditions.py":351
10900  * self.v_dirichlet.setConstantBC(0.)
10901  * self.w_dirichlet.setConstantBC(0.)
10902  * self.us_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10903  * self.vs_dirichlet.setConstantBC(0.)
10904  * self.ws_dirichlet.setConstantBC(0.)
10905  */
10906  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 351, __pyx_L1_error)
10907  __Pyx_GOTREF(__pyx_t_5);
10908  __pyx_t_6 = NULL;
10909  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10910  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10911  if (likely(__pyx_t_6)) {
10912  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10913  __Pyx_INCREF(__pyx_t_6);
10914  __Pyx_INCREF(function);
10915  __Pyx_DECREF_SET(__pyx_t_5, function);
10916  }
10917  }
10918  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10919  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10920  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 351, __pyx_L1_error)
10921  __Pyx_GOTREF(__pyx_t_4);
10922  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10923  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10924 
10925  /* "mprans/BoundaryConditions.py":352
10926  * self.w_dirichlet.setConstantBC(0.)
10927  * self.us_dirichlet.setConstantBC(0.)
10928  * self.vs_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10929  * self.ws_dirichlet.setConstantBC(0.)
10930  * self.k_dirichlet.setConstantBC(1e-20)
10931  */
10932  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error)
10933  __Pyx_GOTREF(__pyx_t_5);
10934  __pyx_t_6 = NULL;
10935  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10936  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10937  if (likely(__pyx_t_6)) {
10938  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10939  __Pyx_INCREF(__pyx_t_6);
10940  __Pyx_INCREF(function);
10941  __Pyx_DECREF_SET(__pyx_t_5, function);
10942  }
10943  }
10944  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10945  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10946  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error)
10947  __Pyx_GOTREF(__pyx_t_4);
10948  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10949  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10950 
10951  /* "mprans/BoundaryConditions.py":353
10952  * self.us_dirichlet.setConstantBC(0.)
10953  * self.vs_dirichlet.setConstantBC(0.)
10954  * self.ws_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
10955  * self.k_dirichlet.setConstantBC(1e-20)
10956  * self.k_diffusive.setConstantBC(0.)
10957  */
10958  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 353, __pyx_L1_error)
10959  __Pyx_GOTREF(__pyx_t_5);
10960  __pyx_t_6 = NULL;
10961  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10962  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10963  if (likely(__pyx_t_6)) {
10964  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10965  __Pyx_INCREF(__pyx_t_6);
10966  __Pyx_INCREF(function);
10967  __Pyx_DECREF_SET(__pyx_t_5, function);
10968  }
10969  }
10970  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
10971  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10972  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error)
10973  __Pyx_GOTREF(__pyx_t_4);
10974  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10975  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10976 
10977  /* "mprans/BoundaryConditions.py":354
10978  * self.vs_dirichlet.setConstantBC(0.)
10979  * self.ws_dirichlet.setConstantBC(0.)
10980  * self.k_dirichlet.setConstantBC(1e-20) # <<<<<<<<<<<<<<
10981  * self.k_diffusive.setConstantBC(0.)
10982  * self.dissipation_dirichlet.setConstantBC(1e-10)
10983  */
10984  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 354, __pyx_L1_error)
10985  __Pyx_GOTREF(__pyx_t_5);
10986  __pyx_t_6 = NULL;
10987  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
10988  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
10989  if (likely(__pyx_t_6)) {
10990  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
10991  __Pyx_INCREF(__pyx_t_6);
10992  __Pyx_INCREF(function);
10993  __Pyx_DECREF_SET(__pyx_t_5, function);
10994  }
10995  }
10996  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_1eneg_20) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_1eneg_20);
10997  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10998  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 354, __pyx_L1_error)
10999  __Pyx_GOTREF(__pyx_t_4);
11000  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11001  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11002 
11003  /* "mprans/BoundaryConditions.py":355
11004  * self.ws_dirichlet.setConstantBC(0.)
11005  * self.k_dirichlet.setConstantBC(1e-20)
11006  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11007  * self.dissipation_dirichlet.setConstantBC(1e-10)
11008  * self.dissipation_diffusive.setConstantBC(0.)
11009  */
11010  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 355, __pyx_L1_error)
11011  __Pyx_GOTREF(__pyx_t_5);
11012  __pyx_t_6 = NULL;
11013  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11014  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11015  if (likely(__pyx_t_6)) {
11016  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11017  __Pyx_INCREF(__pyx_t_6);
11018  __Pyx_INCREF(function);
11019  __Pyx_DECREF_SET(__pyx_t_5, function);
11020  }
11021  }
11022  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11023  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11024  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error)
11025  __Pyx_GOTREF(__pyx_t_4);
11026  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11027  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11028 
11029  /* "mprans/BoundaryConditions.py":356
11030  * self.k_dirichlet.setConstantBC(1e-20)
11031  * self.k_diffusive.setConstantBC(0.)
11032  * self.dissipation_dirichlet.setConstantBC(1e-10) # <<<<<<<<<<<<<<
11033  * self.dissipation_diffusive.setConstantBC(0.)
11034  *
11035  */
11036  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 356, __pyx_L1_error)
11037  __Pyx_GOTREF(__pyx_t_5);
11038  __pyx_t_6 = NULL;
11039  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11040  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11041  if (likely(__pyx_t_6)) {
11042  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11043  __Pyx_INCREF(__pyx_t_6);
11044  __Pyx_INCREF(function);
11045  __Pyx_DECREF_SET(__pyx_t_5, function);
11046  }
11047  }
11048  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_1eneg_10) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_1eneg_10);
11049  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11050  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 356, __pyx_L1_error)
11051  __Pyx_GOTREF(__pyx_t_4);
11052  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11053  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11054 
11055  /* "mprans/BoundaryConditions.py":357
11056  * self.k_diffusive.setConstantBC(0.)
11057  * self.dissipation_dirichlet.setConstantBC(1e-10)
11058  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11059  *
11060  * if orientation[0] == 1. or orientation[0] == -1.:
11061  */
11062  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 357, __pyx_L1_error)
11063  __Pyx_GOTREF(__pyx_t_5);
11064  __pyx_t_6 = NULL;
11065  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11066  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11067  if (likely(__pyx_t_6)) {
11068  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11069  __Pyx_INCREF(__pyx_t_6);
11070  __Pyx_INCREF(function);
11071  __Pyx_DECREF_SET(__pyx_t_5, function);
11072  }
11073  }
11074  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11075  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11076  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 357, __pyx_L1_error)
11077  __Pyx_GOTREF(__pyx_t_4);
11078  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11079  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11080 
11081  /* "mprans/BoundaryConditions.py":359
11082  * self.dissipation_diffusive.setConstantBC(0.)
11083  *
11084  * if orientation[0] == 1. or orientation[0] == -1.: # <<<<<<<<<<<<<<
11085  * self.u_diffusive.setConstantBC(0.)
11086  * self.us_diffusive.setConstantBC(0.)
11087  */
11088  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_orientation, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 359, __pyx_L1_error)
11089  __Pyx_GOTREF(__pyx_t_4);
11090  __pyx_t_5 = __Pyx_PyFloat_EqObjC(__pyx_t_4, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 359, __pyx_L1_error)
11091  __Pyx_GOTREF(__pyx_t_5);
11092  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11093  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 359, __pyx_L1_error)
11094  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11095  if (!__pyx_t_3) {
11096  } else {
11097  __pyx_t_1 = __pyx_t_3;
11098  goto __pyx_L7_bool_binop_done;
11099  }
11100  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_orientation, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 359, __pyx_L1_error)
11101  __Pyx_GOTREF(__pyx_t_5);
11102  __pyx_t_4 = __Pyx_PyFloat_EqObjC(__pyx_t_5, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 359, __pyx_L1_error)
11103  __Pyx_GOTREF(__pyx_t_4);
11104  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11105  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 359, __pyx_L1_error)
11106  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11107  __pyx_t_1 = __pyx_t_3;
11108  __pyx_L7_bool_binop_done:;
11109  if (__pyx_t_1) {
11110 
11111  /* "mprans/BoundaryConditions.py":360
11112  *
11113  * if orientation[0] == 1. or orientation[0] == -1.:
11114  * self.u_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11115  * self.us_diffusive.setConstantBC(0.)
11116  * if orientation[1] == 1. or orientation[1] == -1.:
11117  */
11118  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 360, __pyx_L1_error)
11119  __Pyx_GOTREF(__pyx_t_5);
11120  __pyx_t_6 = NULL;
11121  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11122  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11123  if (likely(__pyx_t_6)) {
11124  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11125  __Pyx_INCREF(__pyx_t_6);
11126  __Pyx_INCREF(function);
11127  __Pyx_DECREF_SET(__pyx_t_5, function);
11128  }
11129  }
11130  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11131  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11132  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error)
11133  __Pyx_GOTREF(__pyx_t_4);
11134  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11135  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11136 
11137  /* "mprans/BoundaryConditions.py":361
11138  * if orientation[0] == 1. or orientation[0] == -1.:
11139  * self.u_diffusive.setConstantBC(0.)
11140  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11141  * if orientation[1] == 1. or orientation[1] == -1.:
11142  * self.v_diffusive.setConstantBC(0.)
11143  */
11144  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 361, __pyx_L1_error)
11145  __Pyx_GOTREF(__pyx_t_5);
11146  __pyx_t_6 = NULL;
11147  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11148  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11149  if (likely(__pyx_t_6)) {
11150  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11151  __Pyx_INCREF(__pyx_t_6);
11152  __Pyx_INCREF(function);
11153  __Pyx_DECREF_SET(__pyx_t_5, function);
11154  }
11155  }
11156  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11157  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11158  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error)
11159  __Pyx_GOTREF(__pyx_t_4);
11160  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11161  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11162 
11163  /* "mprans/BoundaryConditions.py":359
11164  * self.dissipation_diffusive.setConstantBC(0.)
11165  *
11166  * if orientation[0] == 1. or orientation[0] == -1.: # <<<<<<<<<<<<<<
11167  * self.u_diffusive.setConstantBC(0.)
11168  * self.us_diffusive.setConstantBC(0.)
11169  */
11170  }
11171 
11172  /* "mprans/BoundaryConditions.py":362
11173  * self.u_diffusive.setConstantBC(0.)
11174  * self.us_diffusive.setConstantBC(0.)
11175  * if orientation[1] == 1. or orientation[1] == -1.: # <<<<<<<<<<<<<<
11176  * self.v_diffusive.setConstantBC(0.)
11177  * self.vs_diffusive.setConstantBC(0.)
11178  */
11179  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_orientation, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error)
11180  __Pyx_GOTREF(__pyx_t_4);
11181  __pyx_t_5 = __Pyx_PyFloat_EqObjC(__pyx_t_4, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 362, __pyx_L1_error)
11182  __Pyx_GOTREF(__pyx_t_5);
11183  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11184  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 362, __pyx_L1_error)
11185  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11186  if (!__pyx_t_3) {
11187  } else {
11188  __pyx_t_1 = __pyx_t_3;
11189  goto __pyx_L10_bool_binop_done;
11190  }
11191  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_orientation, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 362, __pyx_L1_error)
11192  __Pyx_GOTREF(__pyx_t_5);
11193  __pyx_t_4 = __Pyx_PyFloat_EqObjC(__pyx_t_5, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error)
11194  __Pyx_GOTREF(__pyx_t_4);
11195  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11196  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 362, __pyx_L1_error)
11197  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11198  __pyx_t_1 = __pyx_t_3;
11199  __pyx_L10_bool_binop_done:;
11200  if (__pyx_t_1) {
11201 
11202  /* "mprans/BoundaryConditions.py":363
11203  * self.us_diffusive.setConstantBC(0.)
11204  * if orientation[1] == 1. or orientation[1] == -1.:
11205  * self.v_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11206  * self.vs_diffusive.setConstantBC(0.)
11207  * if orientation[2] == 1. or orientation[2] == -1.:
11208  */
11209  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 363, __pyx_L1_error)
11210  __Pyx_GOTREF(__pyx_t_5);
11211  __pyx_t_6 = NULL;
11212  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11213  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11214  if (likely(__pyx_t_6)) {
11215  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11216  __Pyx_INCREF(__pyx_t_6);
11217  __Pyx_INCREF(function);
11218  __Pyx_DECREF_SET(__pyx_t_5, function);
11219  }
11220  }
11221  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11222  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11223  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
11224  __Pyx_GOTREF(__pyx_t_4);
11225  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11226  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11227 
11228  /* "mprans/BoundaryConditions.py":364
11229  * if orientation[1] == 1. or orientation[1] == -1.:
11230  * self.v_diffusive.setConstantBC(0.)
11231  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11232  * if orientation[2] == 1. or orientation[2] == -1.:
11233  * self.w_diffusive.setConstantBC(0.)
11234  */
11235  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 364, __pyx_L1_error)
11236  __Pyx_GOTREF(__pyx_t_5);
11237  __pyx_t_6 = NULL;
11238  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11239  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11240  if (likely(__pyx_t_6)) {
11241  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11242  __Pyx_INCREF(__pyx_t_6);
11243  __Pyx_INCREF(function);
11244  __Pyx_DECREF_SET(__pyx_t_5, function);
11245  }
11246  }
11247  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11248  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11249  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error)
11250  __Pyx_GOTREF(__pyx_t_4);
11251  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11252  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11253 
11254  /* "mprans/BoundaryConditions.py":362
11255  * self.u_diffusive.setConstantBC(0.)
11256  * self.us_diffusive.setConstantBC(0.)
11257  * if orientation[1] == 1. or orientation[1] == -1.: # <<<<<<<<<<<<<<
11258  * self.v_diffusive.setConstantBC(0.)
11259  * self.vs_diffusive.setConstantBC(0.)
11260  */
11261  }
11262 
11263  /* "mprans/BoundaryConditions.py":365
11264  * self.v_diffusive.setConstantBC(0.)
11265  * self.vs_diffusive.setConstantBC(0.)
11266  * if orientation[2] == 1. or orientation[2] == -1.: # <<<<<<<<<<<<<<
11267  * self.w_diffusive.setConstantBC(0.)
11268  * self.ws_diffusive.setConstantBC(0.)
11269  */
11270  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_orientation, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error)
11271  __Pyx_GOTREF(__pyx_t_4);
11272  __pyx_t_5 = __Pyx_PyFloat_EqObjC(__pyx_t_4, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error)
11273  __Pyx_GOTREF(__pyx_t_5);
11274  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11275  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
11276  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11277  if (!__pyx_t_3) {
11278  } else {
11279  __pyx_t_1 = __pyx_t_3;
11280  goto __pyx_L13_bool_binop_done;
11281  }
11282  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_orientation, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error)
11283  __Pyx_GOTREF(__pyx_t_5);
11284  __pyx_t_4 = __Pyx_PyFloat_EqObjC(__pyx_t_5, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error)
11285  __Pyx_GOTREF(__pyx_t_4);
11286  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11287  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
11288  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11289  __pyx_t_1 = __pyx_t_3;
11290  __pyx_L13_bool_binop_done:;
11291  if (__pyx_t_1) {
11292 
11293  /* "mprans/BoundaryConditions.py":366
11294  * self.vs_diffusive.setConstantBC(0.)
11295  * if orientation[2] == 1. or orientation[2] == -1.:
11296  * self.w_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11297  * self.ws_diffusive.setConstantBC(0.)
11298  *
11299  */
11300  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 366, __pyx_L1_error)
11301  __Pyx_GOTREF(__pyx_t_5);
11302  __pyx_t_6 = NULL;
11303  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11304  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11305  if (likely(__pyx_t_6)) {
11306  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11307  __Pyx_INCREF(__pyx_t_6);
11308  __Pyx_INCREF(function);
11309  __Pyx_DECREF_SET(__pyx_t_5, function);
11310  }
11311  }
11312  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11313  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11314  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error)
11315  __Pyx_GOTREF(__pyx_t_4);
11316  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11317  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11318 
11319  /* "mprans/BoundaryConditions.py":367
11320  * if orientation[2] == 1. or orientation[2] == -1.:
11321  * self.w_diffusive.setConstantBC(0.)
11322  * self.ws_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
11323  *
11324  * if kInflow is not None:
11325  */
11326  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 367, __pyx_L1_error)
11327  __Pyx_GOTREF(__pyx_t_5);
11328  __pyx_t_6 = NULL;
11329  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11330  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11331  if (likely(__pyx_t_6)) {
11332  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11333  __Pyx_INCREF(__pyx_t_6);
11334  __Pyx_INCREF(function);
11335  __Pyx_DECREF_SET(__pyx_t_5, function);
11336  }
11337  }
11338  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_float_0_);
11339  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11340  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error)
11341  __Pyx_GOTREF(__pyx_t_4);
11342  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11343  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11344 
11345  /* "mprans/BoundaryConditions.py":365
11346  * self.v_diffusive.setConstantBC(0.)
11347  * self.vs_diffusive.setConstantBC(0.)
11348  * if orientation[2] == 1. or orientation[2] == -1.: # <<<<<<<<<<<<<<
11349  * self.w_diffusive.setConstantBC(0.)
11350  * self.ws_diffusive.setConstantBC(0.)
11351  */
11352  }
11353 
11354  /* "mprans/BoundaryConditions.py":369
11355  * self.ws_diffusive.setConstantBC(0.)
11356  *
11357  * if kInflow is not None: # <<<<<<<<<<<<<<
11358  * self.k_dirichlet.setConstantBC(kInflow)
11359  * else:
11360  */
11361  __pyx_t_1 = (__pyx_v_kInflow != Py_None);
11362  __pyx_t_3 = (__pyx_t_1 != 0);
11363  if (__pyx_t_3) {
11364 
11365  /* "mprans/BoundaryConditions.py":370
11366  *
11367  * if kInflow is not None:
11368  * self.k_dirichlet.setConstantBC(kInflow) # <<<<<<<<<<<<<<
11369  * else:
11370  * logEvent("WARNING: Dirichlet condition for k in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11371  */
11372  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
11373  __Pyx_GOTREF(__pyx_t_5);
11374  __pyx_t_6 = NULL;
11375  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11376  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11377  if (likely(__pyx_t_6)) {
11378  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11379  __Pyx_INCREF(__pyx_t_6);
11380  __Pyx_INCREF(function);
11381  __Pyx_DECREF_SET(__pyx_t_5, function);
11382  }
11383  }
11384  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_kInflow) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_kInflow);
11385  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11386  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 370, __pyx_L1_error)
11387  __Pyx_GOTREF(__pyx_t_4);
11388  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11389  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11390 
11391  /* "mprans/BoundaryConditions.py":369
11392  * self.ws_diffusive.setConstantBC(0.)
11393  *
11394  * if kInflow is not None: # <<<<<<<<<<<<<<
11395  * self.k_dirichlet.setConstantBC(kInflow)
11396  * else:
11397  */
11398  goto __pyx_L15;
11399  }
11400 
11401  /* "mprans/BoundaryConditions.py":372
11402  * self.k_dirichlet.setConstantBC(kInflow)
11403  * else:
11404  * logEvent("WARNING: Dirichlet condition for k in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used") # <<<<<<<<<<<<<<
11405  * if dInflow is not None:
11406  * self.dissipation_dirichlet.setConstantBC(dInflow)
11407  */
11408  /*else*/ {
11409  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_logEvent); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 372, __pyx_L1_error)
11410  __Pyx_GOTREF(__pyx_t_5);
11411  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_str); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
11412  __Pyx_GOTREF(__pyx_t_7);
11413  __pyx_t_8 = NULL;
11414  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
11415  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
11416  if (likely(__pyx_t_8)) {
11417  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
11418  __Pyx_INCREF(__pyx_t_8);
11419  __Pyx_INCREF(function);
11420  __Pyx_DECREF_SET(__pyx_t_7, function);
11421  }
11422  }
11423  __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_self->__pyx_base.BC_type) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_self->__pyx_base.BC_type);
11424  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
11425  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 372, __pyx_L1_error)
11426  __Pyx_GOTREF(__pyx_t_6);
11427  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11428  __pyx_t_7 = PyNumber_Add(__pyx_kp_s_WARNING_Dirichlet_condition_for, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
11429  __Pyx_GOTREF(__pyx_t_7);
11430  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11431  __pyx_t_6 = PyNumber_Add(__pyx_t_7, __pyx_kp_s_has_not_been_set_Ignore_if_RANS); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 372, __pyx_L1_error)
11432  __Pyx_GOTREF(__pyx_t_6);
11433  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11434  __pyx_t_7 = NULL;
11435  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
11436  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
11437  if (likely(__pyx_t_7)) {
11438  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11439  __Pyx_INCREF(__pyx_t_7);
11440  __Pyx_INCREF(function);
11441  __Pyx_DECREF_SET(__pyx_t_5, function);
11442  }
11443  }
11444  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
11445  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
11446  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11447  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error)
11448  __Pyx_GOTREF(__pyx_t_4);
11449  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11450  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11451  }
11452  __pyx_L15:;
11453 
11454  /* "mprans/BoundaryConditions.py":373
11455  * else:
11456  * logEvent("WARNING: Dirichlet condition for k in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11457  * if dInflow is not None: # <<<<<<<<<<<<<<
11458  * self.dissipation_dirichlet.setConstantBC(dInflow)
11459  * else:
11460  */
11461  __pyx_t_3 = (__pyx_v_dInflow != Py_None);
11462  __pyx_t_1 = (__pyx_t_3 != 0);
11463  if (__pyx_t_1) {
11464 
11465  /* "mprans/BoundaryConditions.py":374
11466  * logEvent("WARNING: Dirichlet condition for k in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11467  * if dInflow is not None:
11468  * self.dissipation_dirichlet.setConstantBC(dInflow) # <<<<<<<<<<<<<<
11469  * else:
11470  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11471  */
11472  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 374, __pyx_L1_error)
11473  __Pyx_GOTREF(__pyx_t_5);
11474  __pyx_t_6 = NULL;
11475  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11476  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11477  if (likely(__pyx_t_6)) {
11478  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11479  __Pyx_INCREF(__pyx_t_6);
11480  __Pyx_INCREF(function);
11481  __Pyx_DECREF_SET(__pyx_t_5, function);
11482  }
11483  }
11484  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_dInflow) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_dInflow);
11485  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11486  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error)
11487  __Pyx_GOTREF(__pyx_t_4);
11488  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11489  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11490 
11491  /* "mprans/BoundaryConditions.py":373
11492  * else:
11493  * logEvent("WARNING: Dirichlet condition for k in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11494  * if dInflow is not None: # <<<<<<<<<<<<<<
11495  * self.dissipation_dirichlet.setConstantBC(dInflow)
11496  * else:
11497  */
11498  goto __pyx_L16;
11499  }
11500 
11501  /* "mprans/BoundaryConditions.py":376
11502  * self.dissipation_dirichlet.setConstantBC(dInflow)
11503  * else:
11504  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used") # <<<<<<<<<<<<<<
11505  * def setRigidBodyMoveMesh(self, body):
11506  * """
11507  */
11508  /*else*/ {
11509  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_logEvent); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 376, __pyx_L1_error)
11510  __Pyx_GOTREF(__pyx_t_5);
11511  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_str); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L1_error)
11512  __Pyx_GOTREF(__pyx_t_7);
11513  __pyx_t_8 = NULL;
11514  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
11515  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
11516  if (likely(__pyx_t_8)) {
11517  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
11518  __Pyx_INCREF(__pyx_t_8);
11519  __Pyx_INCREF(function);
11520  __Pyx_DECREF_SET(__pyx_t_7, function);
11521  }
11522  }
11523  __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_self->__pyx_base.BC_type) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_self->__pyx_base.BC_type);
11524  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
11525  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 376, __pyx_L1_error)
11526  __Pyx_GOTREF(__pyx_t_6);
11527  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11528  __pyx_t_7 = PyNumber_Add(__pyx_kp_s_WARNING_Dirichlet_condition_for_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L1_error)
11529  __Pyx_GOTREF(__pyx_t_7);
11530  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11531  __pyx_t_6 = PyNumber_Add(__pyx_t_7, __pyx_kp_s_has_not_been_set_Ignore_if_RANS); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 376, __pyx_L1_error)
11532  __Pyx_GOTREF(__pyx_t_6);
11533  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11534  __pyx_t_7 = NULL;
11535  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
11536  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
11537  if (likely(__pyx_t_7)) {
11538  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11539  __Pyx_INCREF(__pyx_t_7);
11540  __Pyx_INCREF(function);
11541  __Pyx_DECREF_SET(__pyx_t_5, function);
11542  }
11543  }
11544  __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
11545  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
11546  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11547  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 376, __pyx_L1_error)
11548  __Pyx_GOTREF(__pyx_t_4);
11549  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11550  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11551  }
11552  __pyx_L16:;
11553 
11554  /* "mprans/BoundaryConditions.py":326
11555  * self.ws_diffusive.setConstantBC(0.)
11556  *
11557  * def setAtmosphere(self, orientation=None, vof_air=1.,kInflow=None,dInflow=None): # <<<<<<<<<<<<<<
11558  * """
11559  * Sets atmosphere boundary conditions (water can come out)
11560  */
11561 
11562  /* function exit code */
11563  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11564  goto __pyx_L0;
11565  __pyx_L1_error:;
11566  __Pyx_XDECREF(__pyx_t_4);
11567  __Pyx_XDECREF(__pyx_t_5);
11568  __Pyx_XDECREF(__pyx_t_6);
11569  __Pyx_XDECREF(__pyx_t_7);
11570  __Pyx_XDECREF(__pyx_t_8);
11571  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setAtmosphere", __pyx_clineno, __pyx_lineno, __pyx_filename);
11572  __pyx_r = NULL;
11573  __pyx_L0:;
11574  __Pyx_XDECREF(__pyx_v_orientation);
11575  __Pyx_XGIVEREF(__pyx_r);
11576  __Pyx_TraceReturn(__pyx_r, 0);
11577  __Pyx_RefNannyFinishContext();
11578  return __pyx_r;
11579 }
11580 
11581 /* "mprans/BoundaryConditions.py":377
11582  * else:
11583  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11584  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
11585  * """
11586  * Sets boundary conditions for moving the mesh with a rigid body
11587  */
11588 
11589 /* Python wrapper */
11590 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_v_body); /*proto*/
11591 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh[] = "BC_RANS.setRigidBodyMoveMesh(self, body)\n\n Sets boundary conditions for moving the mesh with a rigid body\n\n Parameters\n ----------\n last_pos: array_like\n last position of rigig body\n h: array_like\n displacement of the body\n rot_matrix:\n rotation matrix describing displament due to rotation between last\n position and new position (3x3 array)\n\n (!) if set manually, the input arrays should be updated externally\n without loosing their memory address\n ";
11592 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh = {"setRigidBodyMoveMesh", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh};
11593 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_v_body) {
11594  PyObject *__pyx_r = 0;
11595  __Pyx_RefNannyDeclarations
11596  __Pyx_RefNannySetupContext("setRigidBodyMoveMesh (wrapper)", 0);
11597  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_body));
11598 
11599  /* function exit code */
11600  __Pyx_RefNannyFinishContext();
11601  return __pyx_r;
11602 }
11603 
11604 /* "mprans/BoundaryConditions.py":394
11605  * without loosing their memory address
11606  * """
11607  * def get_DBC_h(i): # <<<<<<<<<<<<<<
11608  * def DBC_h(x, t, n=None):
11609  * x_0 = x - body.last_position
11610  */
11611 
11612 /* Python wrapper */
11613 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_1get_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_i); /*proto*/
11614 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_1get_DBC_h = {"get_DBC_h", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_1get_DBC_h, METH_O, 0};
11615 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_1get_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_i) {
11616  PyObject *__pyx_r = 0;
11617  __Pyx_RefNannyDeclarations
11618  __Pyx_RefNannySetupContext("get_DBC_h (wrapper)", 0);
11619  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(__pyx_self, ((PyObject *)__pyx_v_i));
11620 
11621  /* function exit code */
11622  __Pyx_RefNannyFinishContext();
11623  return __pyx_r;
11624 }
11625 
11626 /* "mprans/BoundaryConditions.py":395
11627  * """
11628  * def get_DBC_h(i):
11629  * def DBC_h(x, t, n=None): # <<<<<<<<<<<<<<
11630  * x_0 = x - body.last_position
11631  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11632  */
11633 
11634 /* Python wrapper */
11635 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_1DBC_h(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11636 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_1DBC_h = {"DBC_h", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_1DBC_h, METH_VARARGS|METH_KEYWORDS, 0};
11637 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_1DBC_h(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11638  PyObject *__pyx_v_x = 0;
11639  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
11640  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
11641  int __pyx_lineno = 0;
11642  const char *__pyx_filename = NULL;
11643  int __pyx_clineno = 0;
11644  PyObject *__pyx_r = 0;
11645  __Pyx_RefNannyDeclarations
11646  __Pyx_RefNannySetupContext("DBC_h (wrapper)", 0);
11647  {
11648  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
11649  PyObject* values[3] = {0,0,0};
11650  values[2] = ((PyObject *)((PyObject *)Py_None));
11651  if (unlikely(__pyx_kwds)) {
11652  Py_ssize_t kw_args;
11653  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11654  switch (pos_args) {
11655  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11656  CYTHON_FALLTHROUGH;
11657  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11658  CYTHON_FALLTHROUGH;
11659  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11660  CYTHON_FALLTHROUGH;
11661  case 0: break;
11662  default: goto __pyx_L5_argtuple_error;
11663  }
11664  kw_args = PyDict_Size(__pyx_kwds);
11665  switch (pos_args) {
11666  case 0:
11667  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
11668  else goto __pyx_L5_argtuple_error;
11669  CYTHON_FALLTHROUGH;
11670  case 1:
11671  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
11672  else {
11673  __Pyx_RaiseArgtupleInvalid("DBC_h", 0, 2, 3, 1); __PYX_ERR(0, 395, __pyx_L3_error)
11674  }
11675  CYTHON_FALLTHROUGH;
11676  case 2:
11677  if (kw_args > 0) {
11678  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
11679  if (value) { values[2] = value; kw_args--; }
11680  }
11681  }
11682  if (unlikely(kw_args > 0)) {
11683  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DBC_h") < 0)) __PYX_ERR(0, 395, __pyx_L3_error)
11684  }
11685  } else {
11686  switch (PyTuple_GET_SIZE(__pyx_args)) {
11687  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11688  CYTHON_FALLTHROUGH;
11689  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11690  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11691  break;
11692  default: goto __pyx_L5_argtuple_error;
11693  }
11694  }
11695  __pyx_v_x = values[0];
11696  __pyx_v_t = values[1];
11697  __pyx_v_n = values[2];
11698  }
11699  goto __pyx_L4_argument_unpacking_done;
11700  __pyx_L5_argtuple_error:;
11701  __Pyx_RaiseArgtupleInvalid("DBC_h", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 395, __pyx_L3_error)
11702  __pyx_L3_error:;
11703  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setRigidBodyMoveMesh.get_DBC_h.DBC_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
11704  __Pyx_RefNannyFinishContext();
11705  return NULL;
11706  __pyx_L4_argument_unpacking_done:;
11707  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_DBC_h(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
11708 
11709  /* function exit code */
11710  __Pyx_RefNannyFinishContext();
11711  return __pyx_r;
11712 }
11713 
11714 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
11715  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *__pyx_cur_scope;
11716  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *__pyx_outer_scope;
11717  PyObject *__pyx_v_x_0 = NULL;
11718  PyObject *__pyx_v_new_x_0 = NULL;
11719  PyObject *__pyx_v_hx = NULL;
11720  PyObject *__pyx_r = NULL;
11721  __Pyx_TraceDeclarations
11722  __Pyx_RefNannyDeclarations
11723  PyObject *__pyx_t_1 = NULL;
11724  PyObject *__pyx_t_2 = NULL;
11725  PyObject *__pyx_t_3 = NULL;
11726  PyObject *__pyx_t_4 = NULL;
11727  int __pyx_t_5;
11728  PyObject *__pyx_t_6 = NULL;
11729  int __pyx_lineno = 0;
11730  const char *__pyx_filename = NULL;
11731  int __pyx_clineno = 0;
11732  __Pyx_RefNannySetupContext("DBC_h", 0);
11733  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *) __Pyx_CyFunction_GetClosure(__pyx_self);
11734  __pyx_cur_scope = __pyx_outer_scope;
11735  __Pyx_TraceCall("DBC_h", __pyx_f[0], 395, 0, __PYX_ERR(0, 395, __pyx_L1_error));
11736 
11737  /* "mprans/BoundaryConditions.py":396
11738  * def get_DBC_h(i):
11739  * def DBC_h(x, t, n=None):
11740  * x_0 = x - body.last_position # <<<<<<<<<<<<<<
11741  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11742  * hx = new_x_0 - x_0 + body.h
11743  */
11744  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 396, __pyx_L1_error) }
11745  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body, __pyx_n_s_last_position); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
11746  __Pyx_GOTREF(__pyx_t_1);
11747  __pyx_t_2 = PyNumber_Subtract(__pyx_v_x, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error)
11748  __Pyx_GOTREF(__pyx_t_2);
11749  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11750  __pyx_v_x_0 = __pyx_t_2;
11751  __pyx_t_2 = 0;
11752 
11753  /* "mprans/BoundaryConditions.py":397
11754  * def DBC_h(x, t, n=None):
11755  * x_0 = x - body.last_position
11756  * new_x_0 = np.dot(x_0, body.rotation_matrix) # <<<<<<<<<<<<<<
11757  * hx = new_x_0 - x_0 + body.h
11758  * return hx[i]
11759  */
11760  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error)
11761  __Pyx_GOTREF(__pyx_t_1);
11762  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 397, __pyx_L1_error)
11763  __Pyx_GOTREF(__pyx_t_3);
11764  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11765  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 397, __pyx_L1_error) }
11766  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body, __pyx_n_s_rotation_matrix); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error)
11767  __Pyx_GOTREF(__pyx_t_1);
11768  __pyx_t_4 = NULL;
11769  __pyx_t_5 = 0;
11770  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
11771  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
11772  if (likely(__pyx_t_4)) {
11773  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
11774  __Pyx_INCREF(__pyx_t_4);
11775  __Pyx_INCREF(function);
11776  __Pyx_DECREF_SET(__pyx_t_3, function);
11777  __pyx_t_5 = 1;
11778  }
11779  }
11780  #if CYTHON_FAST_PYCALL
11781  if (PyFunction_Check(__pyx_t_3)) {
11782  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_x_0, __pyx_t_1};
11783  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error)
11784  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11785  __Pyx_GOTREF(__pyx_t_2);
11786  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11787  } else
11788  #endif
11789  #if CYTHON_FAST_PYCCALL
11790  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
11791  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_x_0, __pyx_t_1};
11792  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error)
11793  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11794  __Pyx_GOTREF(__pyx_t_2);
11795  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11796  } else
11797  #endif
11798  {
11799  __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 397, __pyx_L1_error)
11800  __Pyx_GOTREF(__pyx_t_6);
11801  if (__pyx_t_4) {
11802  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
11803  }
11804  __Pyx_INCREF(__pyx_v_x_0);
11805  __Pyx_GIVEREF(__pyx_v_x_0);
11806  PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_x_0);
11807  __Pyx_GIVEREF(__pyx_t_1);
11808  PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_1);
11809  __pyx_t_1 = 0;
11810  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error)
11811  __Pyx_GOTREF(__pyx_t_2);
11812  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11813  }
11814  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11815  __pyx_v_new_x_0 = __pyx_t_2;
11816  __pyx_t_2 = 0;
11817 
11818  /* "mprans/BoundaryConditions.py":398
11819  * x_0 = x - body.last_position
11820  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11821  * hx = new_x_0 - x_0 + body.h # <<<<<<<<<<<<<<
11822  * return hx[i]
11823  * return DBC_h
11824  */
11825  __pyx_t_2 = PyNumber_Subtract(__pyx_v_new_x_0, __pyx_v_x_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
11826  __Pyx_GOTREF(__pyx_t_2);
11827  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 398, __pyx_L1_error) }
11828  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_body, __pyx_n_s_h); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
11829  __Pyx_GOTREF(__pyx_t_3);
11830  __pyx_t_6 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 398, __pyx_L1_error)
11831  __Pyx_GOTREF(__pyx_t_6);
11832  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11833  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11834  __pyx_v_hx = __pyx_t_6;
11835  __pyx_t_6 = 0;
11836 
11837  /* "mprans/BoundaryConditions.py":399
11838  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11839  * hx = new_x_0 - x_0 + body.h
11840  * return hx[i] # <<<<<<<<<<<<<<
11841  * return DBC_h
11842  * self.hx_dirichlet.uOfXT = get_DBC_h(0)
11843  */
11844  __Pyx_XDECREF(__pyx_r);
11845  if (unlikely(!__pyx_cur_scope->__pyx_v_i)) { __Pyx_RaiseClosureNameError("i"); __PYX_ERR(0, 399, __pyx_L1_error) }
11846  __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_hx, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 399, __pyx_L1_error)
11847  __Pyx_GOTREF(__pyx_t_6);
11848  __pyx_r = __pyx_t_6;
11849  __pyx_t_6 = 0;
11850  goto __pyx_L0;
11851 
11852  /* "mprans/BoundaryConditions.py":395
11853  * """
11854  * def get_DBC_h(i):
11855  * def DBC_h(x, t, n=None): # <<<<<<<<<<<<<<
11856  * x_0 = x - body.last_position
11857  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11858  */
11859 
11860  /* function exit code */
11861  __pyx_L1_error:;
11862  __Pyx_XDECREF(__pyx_t_1);
11863  __Pyx_XDECREF(__pyx_t_2);
11864  __Pyx_XDECREF(__pyx_t_3);
11865  __Pyx_XDECREF(__pyx_t_4);
11866  __Pyx_XDECREF(__pyx_t_6);
11867  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setRigidBodyMoveMesh.get_DBC_h.DBC_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
11868  __pyx_r = NULL;
11869  __pyx_L0:;
11870  __Pyx_XDECREF(__pyx_v_x_0);
11871  __Pyx_XDECREF(__pyx_v_new_x_0);
11872  __Pyx_XDECREF(__pyx_v_hx);
11873  __Pyx_XGIVEREF(__pyx_r);
11874  __Pyx_TraceReturn(__pyx_r, 0);
11875  __Pyx_RefNannyFinishContext();
11876  return __pyx_r;
11877 }
11878 
11879 /* "mprans/BoundaryConditions.py":394
11880  * without loosing their memory address
11881  * """
11882  * def get_DBC_h(i): # <<<<<<<<<<<<<<
11883  * def DBC_h(x, t, n=None):
11884  * x_0 = x - body.last_position
11885  */
11886 
11887 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(PyObject *__pyx_self, PyObject *__pyx_v_i) {
11888  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *__pyx_cur_scope;
11889  PyObject *__pyx_v_DBC_h = 0;
11890  PyObject *__pyx_r = NULL;
11891  __Pyx_TraceDeclarations
11892  __Pyx_RefNannyDeclarations
11893  PyObject *__pyx_t_1 = NULL;
11894  int __pyx_lineno = 0;
11895  const char *__pyx_filename = NULL;
11896  int __pyx_clineno = 0;
11897  __Pyx_RefNannySetupContext("get_DBC_h", 0);
11898  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h, __pyx_empty_tuple, NULL);
11899  if (unlikely(!__pyx_cur_scope)) {
11900  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)Py_None);
11901  __Pyx_INCREF(Py_None);
11902  __PYX_ERR(0, 394, __pyx_L1_error)
11903  } else {
11904  __Pyx_GOTREF(__pyx_cur_scope);
11905  }
11906  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
11907  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
11908  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
11909  __Pyx_TraceCall("get_DBC_h", __pyx_f[0], 394, 0, __PYX_ERR(0, 394, __pyx_L1_error));
11910  __pyx_cur_scope->__pyx_v_i = __pyx_v_i;
11911  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_i);
11912  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_i);
11913 
11914  /* "mprans/BoundaryConditions.py":395
11915  * """
11916  * def get_DBC_h(i):
11917  * def DBC_h(x, t, n=None): # <<<<<<<<<<<<<<
11918  * x_0 = x - body.last_position
11919  * new_x_0 = np.dot(x_0, body.rotation_matrix)
11920  */
11921  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_9get_DBC_h_1DBC_h, 0, __pyx_n_s_setRigidBodyMoveMesh_locals_get, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error)
11922  __Pyx_GOTREF(__pyx_t_1);
11923  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__12);
11924  __pyx_v_DBC_h = __pyx_t_1;
11925  __pyx_t_1 = 0;
11926 
11927  /* "mprans/BoundaryConditions.py":400
11928  * hx = new_x_0 - x_0 + body.h
11929  * return hx[i]
11930  * return DBC_h # <<<<<<<<<<<<<<
11931  * self.hx_dirichlet.uOfXT = get_DBC_h(0)
11932  * self.hy_dirichlet.uOfXT = get_DBC_h(1)
11933  */
11934  __Pyx_XDECREF(__pyx_r);
11935  __Pyx_INCREF(__pyx_v_DBC_h);
11936  __pyx_r = __pyx_v_DBC_h;
11937  goto __pyx_L0;
11938 
11939  /* "mprans/BoundaryConditions.py":394
11940  * without loosing their memory address
11941  * """
11942  * def get_DBC_h(i): # <<<<<<<<<<<<<<
11943  * def DBC_h(x, t, n=None):
11944  * x_0 = x - body.last_position
11945  */
11946 
11947  /* function exit code */
11948  __pyx_L1_error:;
11949  __Pyx_XDECREF(__pyx_t_1);
11950  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setRigidBodyMoveMesh.get_DBC_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
11951  __pyx_r = NULL;
11952  __pyx_L0:;
11953  __Pyx_XDECREF(__pyx_v_DBC_h);
11954  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
11955  __Pyx_XGIVEREF(__pyx_r);
11956  __Pyx_TraceReturn(__pyx_r, 0);
11957  __Pyx_RefNannyFinishContext();
11958  return __pyx_r;
11959 }
11960 
11961 /* "mprans/BoundaryConditions.py":377
11962  * else:
11963  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
11964  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
11965  * """
11966  * Sets boundary conditions for moving the mesh with a rigid body
11967  */
11968 
11969 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_body) {
11970  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *__pyx_cur_scope;
11971  PyObject *__pyx_v_get_DBC_h = 0;
11972  PyObject *__pyx_r = NULL;
11973  __Pyx_TraceDeclarations
11974  __Pyx_RefNannyDeclarations
11975  PyObject *__pyx_t_1 = NULL;
11976  PyObject *__pyx_t_2 = NULL;
11977  int __pyx_t_3;
11978  int __pyx_lineno = 0;
11979  const char *__pyx_filename = NULL;
11980  int __pyx_clineno = 0;
11981  __Pyx_TraceFrameInit(__pyx_codeobj__13)
11982  __Pyx_RefNannySetupContext("setRigidBodyMoveMesh", 0);
11983  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh, __pyx_empty_tuple, NULL);
11984  if (unlikely(!__pyx_cur_scope)) {
11985  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)Py_None);
11986  __Pyx_INCREF(Py_None);
11987  __PYX_ERR(0, 377, __pyx_L1_error)
11988  } else {
11989  __Pyx_GOTREF(__pyx_cur_scope);
11990  }
11991  __Pyx_TraceCall("setRigidBodyMoveMesh", __pyx_f[0], 377, 0, __PYX_ERR(0, 377, __pyx_L1_error));
11992  __pyx_cur_scope->__pyx_v_body = __pyx_v_body;
11993  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_body);
11994  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_body);
11995 
11996  /* "mprans/BoundaryConditions.py":394
11997  * without loosing their memory address
11998  * """
11999  * def get_DBC_h(i): # <<<<<<<<<<<<<<
12000  * def DBC_h(x, t, n=None):
12001  * x_0 = x - body.last_position
12002  */
12003  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_1get_DBC_h, 0, __pyx_n_s_setRigidBodyMoveMesh_locals_get_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error)
12004  __Pyx_GOTREF(__pyx_t_1);
12005  __pyx_v_get_DBC_h = __pyx_t_1;
12006  __pyx_t_1 = 0;
12007 
12008  /* "mprans/BoundaryConditions.py":401
12009  * return hx[i]
12010  * return DBC_h
12011  * self.hx_dirichlet.uOfXT = get_DBC_h(0) # <<<<<<<<<<<<<<
12012  * self.hy_dirichlet.uOfXT = get_DBC_h(1)
12013  * if body.nd > 2:
12014  */
12015  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(__pyx_v_get_DBC_h, __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 401, __pyx_L1_error)
12016  __Pyx_GOTREF(__pyx_t_1);
12017  __Pyx_GIVEREF(__pyx_t_1);
12018  __Pyx_GOTREF(__pyx_v_self->hx_dirichlet->uOfXT);
12019  __Pyx_DECREF(__pyx_v_self->hx_dirichlet->uOfXT);
12020  __pyx_v_self->hx_dirichlet->uOfXT = __pyx_t_1;
12021  __pyx_t_1 = 0;
12022 
12023  /* "mprans/BoundaryConditions.py":402
12024  * return DBC_h
12025  * self.hx_dirichlet.uOfXT = get_DBC_h(0)
12026  * self.hy_dirichlet.uOfXT = get_DBC_h(1) # <<<<<<<<<<<<<<
12027  * if body.nd > 2:
12028  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12029  */
12030  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(__pyx_v_get_DBC_h, __pyx_int_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 402, __pyx_L1_error)
12031  __Pyx_GOTREF(__pyx_t_1);
12032  __Pyx_GIVEREF(__pyx_t_1);
12033  __Pyx_GOTREF(__pyx_v_self->hy_dirichlet->uOfXT);
12034  __Pyx_DECREF(__pyx_v_self->hy_dirichlet->uOfXT);
12035  __pyx_v_self->hy_dirichlet->uOfXT = __pyx_t_1;
12036  __pyx_t_1 = 0;
12037 
12038  /* "mprans/BoundaryConditions.py":403
12039  * self.hx_dirichlet.uOfXT = get_DBC_h(0)
12040  * self.hy_dirichlet.uOfXT = get_DBC_h(1)
12041  * if body.nd > 2: # <<<<<<<<<<<<<<
12042  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12043  *
12044  */
12045  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_body, __pyx_n_s_nd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 403, __pyx_L1_error)
12046  __Pyx_GOTREF(__pyx_t_1);
12047  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
12048  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12049  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 403, __pyx_L1_error)
12050  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12051  if (__pyx_t_3) {
12052 
12053  /* "mprans/BoundaryConditions.py":404
12054  * self.hy_dirichlet.uOfXT = get_DBC_h(1)
12055  * if body.nd > 2:
12056  * self.hz_dirichlet.uOfXT = get_DBC_h(2) # <<<<<<<<<<<<<<
12057  *
12058  * def setChMoveMesh(self, body):
12059  */
12060  __pyx_t_2 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh_get_DBC_h(__pyx_v_get_DBC_h, __pyx_int_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error)
12061  __Pyx_GOTREF(__pyx_t_2);
12062  __Pyx_GIVEREF(__pyx_t_2);
12063  __Pyx_GOTREF(__pyx_v_self->hz_dirichlet->uOfXT);
12064  __Pyx_DECREF(__pyx_v_self->hz_dirichlet->uOfXT);
12065  __pyx_v_self->hz_dirichlet->uOfXT = __pyx_t_2;
12066  __pyx_t_2 = 0;
12067 
12068  /* "mprans/BoundaryConditions.py":403
12069  * self.hx_dirichlet.uOfXT = get_DBC_h(0)
12070  * self.hy_dirichlet.uOfXT = get_DBC_h(1)
12071  * if body.nd > 2: # <<<<<<<<<<<<<<
12072  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12073  *
12074  */
12075  }
12076 
12077  /* "mprans/BoundaryConditions.py":377
12078  * else:
12079  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
12080  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
12081  * """
12082  * Sets boundary conditions for moving the mesh with a rigid body
12083  */
12084 
12085  /* function exit code */
12086  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12087  goto __pyx_L0;
12088  __pyx_L1_error:;
12089  __Pyx_XDECREF(__pyx_t_1);
12090  __Pyx_XDECREF(__pyx_t_2);
12091  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setRigidBodyMoveMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12092  __pyx_r = NULL;
12093  __pyx_L0:;
12094  __Pyx_XDECREF(__pyx_v_get_DBC_h);
12095  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
12096  __Pyx_XGIVEREF(__pyx_r);
12097  __Pyx_TraceReturn(__pyx_r, 0);
12098  __Pyx_RefNannyFinishContext();
12099  return __pyx_r;
12100 }
12101 
12102 /* "mprans/BoundaryConditions.py":406
12103  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12104  *
12105  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
12106  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12107  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12108  */
12109 
12110 /* Python wrapper */
12111 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_v_body); /*proto*/
12112 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh[] = "BC_RANS.setChMoveMesh(self, body)";
12113 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh = {"setChMoveMesh", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh};
12114 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_v_body) {
12115  PyObject *__pyx_r = 0;
12116  __Pyx_RefNannyDeclarations
12117  __Pyx_RefNannySetupContext("setChMoveMesh (wrapper)", 0);
12118  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_body));
12119 
12120  /* function exit code */
12121  __Pyx_RefNannyFinishContext();
12122  return __pyx_r;
12123 }
12124 
12125 /* "mprans/BoundaryConditions.py":407
12126  *
12127  * def setChMoveMesh(self, body):
12128  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t) # <<<<<<<<<<<<<<
12129  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12130  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12131  */
12132 
12133 /* Python wrapper */
12134 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_lambda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12135 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_lambda = {"lambda", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_lambda, METH_VARARGS|METH_KEYWORDS, 0};
12136 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_lambda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12137  PyObject *__pyx_v_x = 0;
12138  PyObject *__pyx_v_t = 0;
12139  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
12140  int __pyx_lineno = 0;
12141  const char *__pyx_filename = NULL;
12142  int __pyx_clineno = 0;
12143  PyObject *__pyx_r = 0;
12144  __Pyx_RefNannyDeclarations
12145  __Pyx_RefNannySetupContext("lambda (wrapper)", 0);
12146  {
12147  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
12148  PyObject* values[3] = {0,0,0};
12149  values[2] = ((PyObject *)((PyObject *)Py_None));
12150  if (unlikely(__pyx_kwds)) {
12151  Py_ssize_t kw_args;
12152  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12153  switch (pos_args) {
12154  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12155  CYTHON_FALLTHROUGH;
12156  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12157  CYTHON_FALLTHROUGH;
12158  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12159  CYTHON_FALLTHROUGH;
12160  case 0: break;
12161  default: goto __pyx_L5_argtuple_error;
12162  }
12163  kw_args = PyDict_Size(__pyx_kwds);
12164  switch (pos_args) {
12165  case 0:
12166  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
12167  else goto __pyx_L5_argtuple_error;
12168  CYTHON_FALLTHROUGH;
12169  case 1:
12170  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
12171  else {
12172  __Pyx_RaiseArgtupleInvalid("lambda", 0, 2, 3, 1); __PYX_ERR(0, 407, __pyx_L3_error)
12173  }
12174  CYTHON_FALLTHROUGH;
12175  case 2:
12176  if (kw_args > 0) {
12177  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
12178  if (value) { values[2] = value; kw_args--; }
12179  }
12180  }
12181  if (unlikely(kw_args > 0)) {
12182  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda") < 0)) __PYX_ERR(0, 407, __pyx_L3_error)
12183  }
12184  } else {
12185  switch (PyTuple_GET_SIZE(__pyx_args)) {
12186  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12187  CYTHON_FALLTHROUGH;
12188  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12189  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12190  break;
12191  default: goto __pyx_L5_argtuple_error;
12192  }
12193  }
12194  __pyx_v_x = values[0];
12195  __pyx_v_t = values[1];
12196  __pyx_v_n = values[2];
12197  }
12198  goto __pyx_L4_argument_unpacking_done;
12199  __pyx_L5_argtuple_error:;
12200  __Pyx_RaiseArgtupleInvalid("lambda", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 407, __pyx_L3_error)
12201  __pyx_L3_error:;
12202  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename);
12203  __Pyx_RefNannyFinishContext();
12204  return NULL;
12205  __pyx_L4_argument_unpacking_done:;
12206  __pyx_r = __pyx_lambda_funcdef_lambda(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
12207 
12208  /* function exit code */
12209  __Pyx_RefNannyFinishContext();
12210  return __pyx_r;
12211 }
12212 
12213 static PyObject *__pyx_lambda_funcdef_lambda(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
12214  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_cur_scope;
12215  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_outer_scope;
12216  PyObject *__pyx_r = NULL;
12217  __Pyx_TraceDeclarations
12218  __Pyx_RefNannyDeclarations
12219  PyObject *__pyx_t_1 = NULL;
12220  PyObject *__pyx_t_2 = NULL;
12221  PyObject *__pyx_t_3 = NULL;
12222  int __pyx_t_4;
12223  PyObject *__pyx_t_5 = NULL;
12224  int __pyx_lineno = 0;
12225  const char *__pyx_filename = NULL;
12226  int __pyx_clineno = 0;
12227  __Pyx_RefNannySetupContext("lambda", 0);
12228  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
12229  __pyx_cur_scope = __pyx_outer_scope;
12230  __Pyx_TraceCall("lambda", __pyx_f[0], 407, 0, __PYX_ERR(0, 407, __pyx_L1_error));
12231  __Pyx_XDECREF(__pyx_r);
12232  if (unlikely(!__pyx_cur_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 407, __pyx_L1_error) }
12233  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_body, __pyx_n_s_hx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error)
12234  __Pyx_GOTREF(__pyx_t_2);
12235  __pyx_t_3 = NULL;
12236  __pyx_t_4 = 0;
12237  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12238  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12239  if (likely(__pyx_t_3)) {
12240  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12241  __Pyx_INCREF(__pyx_t_3);
12242  __Pyx_INCREF(function);
12243  __Pyx_DECREF_SET(__pyx_t_2, function);
12244  __pyx_t_4 = 1;
12245  }
12246  }
12247  #if CYTHON_FAST_PYCALL
12248  if (PyFunction_Check(__pyx_t_2)) {
12249  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12250  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
12251  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12252  __Pyx_GOTREF(__pyx_t_1);
12253  } else
12254  #endif
12255  #if CYTHON_FAST_PYCCALL
12256  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
12257  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12258  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
12259  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12260  __Pyx_GOTREF(__pyx_t_1);
12261  } else
12262  #endif
12263  {
12264  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 407, __pyx_L1_error)
12265  __Pyx_GOTREF(__pyx_t_5);
12266  if (__pyx_t_3) {
12267  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
12268  }
12269  __Pyx_INCREF(__pyx_v_x);
12270  __Pyx_GIVEREF(__pyx_v_x);
12271  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
12272  __Pyx_INCREF(__pyx_v_t);
12273  __Pyx_GIVEREF(__pyx_v_t);
12274  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
12275  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
12276  __Pyx_GOTREF(__pyx_t_1);
12277  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12278  }
12279  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12280  __pyx_r = __pyx_t_1;
12281  __pyx_t_1 = 0;
12282  goto __pyx_L0;
12283 
12284  /* function exit code */
12285  __pyx_L1_error:;
12286  __Pyx_XDECREF(__pyx_t_1);
12287  __Pyx_XDECREF(__pyx_t_2);
12288  __Pyx_XDECREF(__pyx_t_3);
12289  __Pyx_XDECREF(__pyx_t_5);
12290  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename);
12291  __pyx_r = NULL;
12292  __pyx_L0:;
12293  __Pyx_XGIVEREF(__pyx_r);
12294  __Pyx_TraceReturn(__pyx_r, 0);
12295  __Pyx_RefNannyFinishContext();
12296  return __pyx_r;
12297 }
12298 
12299 /* "mprans/BoundaryConditions.py":408
12300  * def setChMoveMesh(self, body):
12301  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12302  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t) # <<<<<<<<<<<<<<
12303  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12304  *
12305  */
12306 
12307 /* Python wrapper */
12308 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_1lambda1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12309 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_1lambda1 = {"lambda1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_1lambda1, METH_VARARGS|METH_KEYWORDS, 0};
12310 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_1lambda1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12311  PyObject *__pyx_v_x = 0;
12312  PyObject *__pyx_v_t = 0;
12313  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
12314  int __pyx_lineno = 0;
12315  const char *__pyx_filename = NULL;
12316  int __pyx_clineno = 0;
12317  PyObject *__pyx_r = 0;
12318  __Pyx_RefNannyDeclarations
12319  __Pyx_RefNannySetupContext("lambda1 (wrapper)", 0);
12320  {
12321  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
12322  PyObject* values[3] = {0,0,0};
12323  values[2] = ((PyObject *)((PyObject *)Py_None));
12324  if (unlikely(__pyx_kwds)) {
12325  Py_ssize_t kw_args;
12326  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12327  switch (pos_args) {
12328  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12329  CYTHON_FALLTHROUGH;
12330  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12331  CYTHON_FALLTHROUGH;
12332  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12333  CYTHON_FALLTHROUGH;
12334  case 0: break;
12335  default: goto __pyx_L5_argtuple_error;
12336  }
12337  kw_args = PyDict_Size(__pyx_kwds);
12338  switch (pos_args) {
12339  case 0:
12340  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
12341  else goto __pyx_L5_argtuple_error;
12342  CYTHON_FALLTHROUGH;
12343  case 1:
12344  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
12345  else {
12346  __Pyx_RaiseArgtupleInvalid("lambda1", 0, 2, 3, 1); __PYX_ERR(0, 408, __pyx_L3_error)
12347  }
12348  CYTHON_FALLTHROUGH;
12349  case 2:
12350  if (kw_args > 0) {
12351  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
12352  if (value) { values[2] = value; kw_args--; }
12353  }
12354  }
12355  if (unlikely(kw_args > 0)) {
12356  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda1") < 0)) __PYX_ERR(0, 408, __pyx_L3_error)
12357  }
12358  } else {
12359  switch (PyTuple_GET_SIZE(__pyx_args)) {
12360  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12361  CYTHON_FALLTHROUGH;
12362  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12363  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12364  break;
12365  default: goto __pyx_L5_argtuple_error;
12366  }
12367  }
12368  __pyx_v_x = values[0];
12369  __pyx_v_t = values[1];
12370  __pyx_v_n = values[2];
12371  }
12372  goto __pyx_L4_argument_unpacking_done;
12373  __pyx_L5_argtuple_error:;
12374  __Pyx_RaiseArgtupleInvalid("lambda1", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 408, __pyx_L3_error)
12375  __pyx_L3_error:;
12376  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);
12377  __Pyx_RefNannyFinishContext();
12378  return NULL;
12379  __pyx_L4_argument_unpacking_done:;
12380  __pyx_r = __pyx_lambda_funcdef_lambda1(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
12381 
12382  /* function exit code */
12383  __Pyx_RefNannyFinishContext();
12384  return __pyx_r;
12385 }
12386 
12387 static PyObject *__pyx_lambda_funcdef_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
12388  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_cur_scope;
12389  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_outer_scope;
12390  PyObject *__pyx_r = NULL;
12391  __Pyx_TraceDeclarations
12392  __Pyx_RefNannyDeclarations
12393  PyObject *__pyx_t_1 = NULL;
12394  PyObject *__pyx_t_2 = NULL;
12395  PyObject *__pyx_t_3 = NULL;
12396  int __pyx_t_4;
12397  PyObject *__pyx_t_5 = NULL;
12398  int __pyx_lineno = 0;
12399  const char *__pyx_filename = NULL;
12400  int __pyx_clineno = 0;
12401  __Pyx_RefNannySetupContext("lambda1", 0);
12402  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
12403  __pyx_cur_scope = __pyx_outer_scope;
12404  __Pyx_TraceCall("lambda1", __pyx_f[0], 408, 0, __PYX_ERR(0, 408, __pyx_L1_error));
12405  __Pyx_XDECREF(__pyx_r);
12406  if (unlikely(!__pyx_cur_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 408, __pyx_L1_error) }
12407  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_body, __pyx_n_s_hy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error)
12408  __Pyx_GOTREF(__pyx_t_2);
12409  __pyx_t_3 = NULL;
12410  __pyx_t_4 = 0;
12411  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12412  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12413  if (likely(__pyx_t_3)) {
12414  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12415  __Pyx_INCREF(__pyx_t_3);
12416  __Pyx_INCREF(function);
12417  __Pyx_DECREF_SET(__pyx_t_2, function);
12418  __pyx_t_4 = 1;
12419  }
12420  }
12421  #if CYTHON_FAST_PYCALL
12422  if (PyFunction_Check(__pyx_t_2)) {
12423  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12424  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
12425  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12426  __Pyx_GOTREF(__pyx_t_1);
12427  } else
12428  #endif
12429  #if CYTHON_FAST_PYCCALL
12430  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
12431  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12432  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
12433  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12434  __Pyx_GOTREF(__pyx_t_1);
12435  } else
12436  #endif
12437  {
12438  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 408, __pyx_L1_error)
12439  __Pyx_GOTREF(__pyx_t_5);
12440  if (__pyx_t_3) {
12441  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
12442  }
12443  __Pyx_INCREF(__pyx_v_x);
12444  __Pyx_GIVEREF(__pyx_v_x);
12445  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
12446  __Pyx_INCREF(__pyx_v_t);
12447  __Pyx_GIVEREF(__pyx_v_t);
12448  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
12449  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
12450  __Pyx_GOTREF(__pyx_t_1);
12451  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12452  }
12453  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12454  __pyx_r = __pyx_t_1;
12455  __pyx_t_1 = 0;
12456  goto __pyx_L0;
12457 
12458  /* function exit code */
12459  __pyx_L1_error:;
12460  __Pyx_XDECREF(__pyx_t_1);
12461  __Pyx_XDECREF(__pyx_t_2);
12462  __Pyx_XDECREF(__pyx_t_3);
12463  __Pyx_XDECREF(__pyx_t_5);
12464  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);
12465  __pyx_r = NULL;
12466  __pyx_L0:;
12467  __Pyx_XGIVEREF(__pyx_r);
12468  __Pyx_TraceReturn(__pyx_r, 0);
12469  __Pyx_RefNannyFinishContext();
12470  return __pyx_r;
12471 }
12472 
12473 /* "mprans/BoundaryConditions.py":409
12474  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12475  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12476  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t) # <<<<<<<<<<<<<<
12477  *
12478  * def setTurbulentDirichlet(self, kVal, dissipationVal):
12479  */
12480 
12481 /* Python wrapper */
12482 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_2lambda2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12483 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_2lambda2 = {"lambda2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_2lambda2, METH_VARARGS|METH_KEYWORDS, 0};
12484 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_2lambda2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12485  PyObject *__pyx_v_x = 0;
12486  PyObject *__pyx_v_t = 0;
12487  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
12488  int __pyx_lineno = 0;
12489  const char *__pyx_filename = NULL;
12490  int __pyx_clineno = 0;
12491  PyObject *__pyx_r = 0;
12492  __Pyx_RefNannyDeclarations
12493  __Pyx_RefNannySetupContext("lambda2 (wrapper)", 0);
12494  {
12495  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
12496  PyObject* values[3] = {0,0,0};
12497  values[2] = ((PyObject *)((PyObject *)Py_None));
12498  if (unlikely(__pyx_kwds)) {
12499  Py_ssize_t kw_args;
12500  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12501  switch (pos_args) {
12502  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12503  CYTHON_FALLTHROUGH;
12504  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12505  CYTHON_FALLTHROUGH;
12506  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12507  CYTHON_FALLTHROUGH;
12508  case 0: break;
12509  default: goto __pyx_L5_argtuple_error;
12510  }
12511  kw_args = PyDict_Size(__pyx_kwds);
12512  switch (pos_args) {
12513  case 0:
12514  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
12515  else goto __pyx_L5_argtuple_error;
12516  CYTHON_FALLTHROUGH;
12517  case 1:
12518  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
12519  else {
12520  __Pyx_RaiseArgtupleInvalid("lambda2", 0, 2, 3, 1); __PYX_ERR(0, 409, __pyx_L3_error)
12521  }
12522  CYTHON_FALLTHROUGH;
12523  case 2:
12524  if (kw_args > 0) {
12525  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
12526  if (value) { values[2] = value; kw_args--; }
12527  }
12528  }
12529  if (unlikely(kw_args > 0)) {
12530  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda2") < 0)) __PYX_ERR(0, 409, __pyx_L3_error)
12531  }
12532  } else {
12533  switch (PyTuple_GET_SIZE(__pyx_args)) {
12534  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12535  CYTHON_FALLTHROUGH;
12536  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12537  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12538  break;
12539  default: goto __pyx_L5_argtuple_error;
12540  }
12541  }
12542  __pyx_v_x = values[0];
12543  __pyx_v_t = values[1];
12544  __pyx_v_n = values[2];
12545  }
12546  goto __pyx_L4_argument_unpacking_done;
12547  __pyx_L5_argtuple_error:;
12548  __Pyx_RaiseArgtupleInvalid("lambda2", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 409, __pyx_L3_error)
12549  __pyx_L3_error:;
12550  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
12551  __Pyx_RefNannyFinishContext();
12552  return NULL;
12553  __pyx_L4_argument_unpacking_done:;
12554  __pyx_r = __pyx_lambda_funcdef_lambda2(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
12555 
12556  /* function exit code */
12557  __Pyx_RefNannyFinishContext();
12558  return __pyx_r;
12559 }
12560 
12561 static PyObject *__pyx_lambda_funcdef_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
12562  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_cur_scope;
12563  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_outer_scope;
12564  PyObject *__pyx_r = NULL;
12565  __Pyx_TraceDeclarations
12566  __Pyx_RefNannyDeclarations
12567  PyObject *__pyx_t_1 = NULL;
12568  PyObject *__pyx_t_2 = NULL;
12569  PyObject *__pyx_t_3 = NULL;
12570  int __pyx_t_4;
12571  PyObject *__pyx_t_5 = NULL;
12572  int __pyx_lineno = 0;
12573  const char *__pyx_filename = NULL;
12574  int __pyx_clineno = 0;
12575  __Pyx_RefNannySetupContext("lambda2", 0);
12576  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
12577  __pyx_cur_scope = __pyx_outer_scope;
12578  __Pyx_TraceCall("lambda2", __pyx_f[0], 409, 0, __PYX_ERR(0, 409, __pyx_L1_error));
12579  __Pyx_XDECREF(__pyx_r);
12580  if (unlikely(!__pyx_cur_scope->__pyx_v_body)) { __Pyx_RaiseClosureNameError("body"); __PYX_ERR(0, 409, __pyx_L1_error) }
12581  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_body, __pyx_n_s_hz); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 409, __pyx_L1_error)
12582  __Pyx_GOTREF(__pyx_t_2);
12583  __pyx_t_3 = NULL;
12584  __pyx_t_4 = 0;
12585  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12586  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12587  if (likely(__pyx_t_3)) {
12588  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12589  __Pyx_INCREF(__pyx_t_3);
12590  __Pyx_INCREF(function);
12591  __Pyx_DECREF_SET(__pyx_t_2, function);
12592  __pyx_t_4 = 1;
12593  }
12594  }
12595  #if CYTHON_FAST_PYCALL
12596  if (PyFunction_Check(__pyx_t_2)) {
12597  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12598  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
12599  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12600  __Pyx_GOTREF(__pyx_t_1);
12601  } else
12602  #endif
12603  #if CYTHON_FAST_PYCCALL
12604  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
12605  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_x, __pyx_v_t};
12606  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
12607  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12608  __Pyx_GOTREF(__pyx_t_1);
12609  } else
12610  #endif
12611  {
12612  __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 409, __pyx_L1_error)
12613  __Pyx_GOTREF(__pyx_t_5);
12614  if (__pyx_t_3) {
12615  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
12616  }
12617  __Pyx_INCREF(__pyx_v_x);
12618  __Pyx_GIVEREF(__pyx_v_x);
12619  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
12620  __Pyx_INCREF(__pyx_v_t);
12621  __Pyx_GIVEREF(__pyx_v_t);
12622  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
12623  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
12624  __Pyx_GOTREF(__pyx_t_1);
12625  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12626  }
12627  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12628  __pyx_r = __pyx_t_1;
12629  __pyx_t_1 = 0;
12630  goto __pyx_L0;
12631 
12632  /* function exit code */
12633  __pyx_L1_error:;
12634  __Pyx_XDECREF(__pyx_t_1);
12635  __Pyx_XDECREF(__pyx_t_2);
12636  __Pyx_XDECREF(__pyx_t_3);
12637  __Pyx_XDECREF(__pyx_t_5);
12638  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
12639  __pyx_r = NULL;
12640  __pyx_L0:;
12641  __Pyx_XGIVEREF(__pyx_r);
12642  __Pyx_TraceReturn(__pyx_r, 0);
12643  __Pyx_RefNannyFinishContext();
12644  return __pyx_r;
12645 }
12646 
12647 /* "mprans/BoundaryConditions.py":406
12648  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12649  *
12650  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
12651  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12652  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12653  */
12654 
12655 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_body) {
12656  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_cur_scope;
12657  PyObject *__pyx_r = NULL;
12658  __Pyx_TraceDeclarations
12659  __Pyx_RefNannyDeclarations
12660  PyObject *__pyx_t_1 = NULL;
12661  int __pyx_lineno = 0;
12662  const char *__pyx_filename = NULL;
12663  int __pyx_clineno = 0;
12664  __Pyx_TraceFrameInit(__pyx_codeobj__16)
12665  __Pyx_RefNannySetupContext("setChMoveMesh", 0);
12666  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh, __pyx_empty_tuple, NULL);
12667  if (unlikely(!__pyx_cur_scope)) {
12668  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)Py_None);
12669  __Pyx_INCREF(Py_None);
12670  __PYX_ERR(0, 406, __pyx_L1_error)
12671  } else {
12672  __Pyx_GOTREF(__pyx_cur_scope);
12673  }
12674  __Pyx_TraceCall("setChMoveMesh", __pyx_f[0], 406, 0, __PYX_ERR(0, 406, __pyx_L1_error));
12675  __pyx_cur_scope->__pyx_v_body = __pyx_v_body;
12676  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_body);
12677  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_body);
12678 
12679  /* "mprans/BoundaryConditions.py":407
12680  *
12681  * def setChMoveMesh(self, body):
12682  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t) # <<<<<<<<<<<<<<
12683  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12684  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12685  */
12686  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_lambda, 0, __pyx_n_s_setChMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
12687  __Pyx_GOTREF(__pyx_t_1);
12688  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__17);
12689  __Pyx_GIVEREF(__pyx_t_1);
12690  __Pyx_GOTREF(__pyx_v_self->hx_dirichlet->uOfXT);
12691  __Pyx_DECREF(__pyx_v_self->hx_dirichlet->uOfXT);
12692  __pyx_v_self->hx_dirichlet->uOfXT = __pyx_t_1;
12693  __pyx_t_1 = 0;
12694 
12695  /* "mprans/BoundaryConditions.py":408
12696  * def setChMoveMesh(self, body):
12697  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12698  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t) # <<<<<<<<<<<<<<
12699  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12700  *
12701  */
12702  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_1lambda1, 0, __pyx_n_s_setChMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
12703  __Pyx_GOTREF(__pyx_t_1);
12704  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__18);
12705  __Pyx_GIVEREF(__pyx_t_1);
12706  __Pyx_GOTREF(__pyx_v_self->hy_dirichlet->uOfXT);
12707  __Pyx_DECREF(__pyx_v_self->hy_dirichlet->uOfXT);
12708  __pyx_v_self->hy_dirichlet->uOfXT = __pyx_t_1;
12709  __pyx_t_1 = 0;
12710 
12711  /* "mprans/BoundaryConditions.py":409
12712  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12713  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12714  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t) # <<<<<<<<<<<<<<
12715  *
12716  * def setTurbulentDirichlet(self, kVal, dissipationVal):
12717  */
12718  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setChMoveMesh_2lambda2, 0, __pyx_n_s_setChMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
12719  __Pyx_GOTREF(__pyx_t_1);
12720  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__19);
12721  __Pyx_GIVEREF(__pyx_t_1);
12722  __Pyx_GOTREF(__pyx_v_self->hz_dirichlet->uOfXT);
12723  __Pyx_DECREF(__pyx_v_self->hz_dirichlet->uOfXT);
12724  __pyx_v_self->hz_dirichlet->uOfXT = __pyx_t_1;
12725  __pyx_t_1 = 0;
12726 
12727  /* "mprans/BoundaryConditions.py":406
12728  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
12729  *
12730  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
12731  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
12732  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
12733  */
12734 
12735  /* function exit code */
12736  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12737  goto __pyx_L0;
12738  __pyx_L1_error:;
12739  __Pyx_XDECREF(__pyx_t_1);
12740  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setChMoveMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12741  __pyx_r = NULL;
12742  __pyx_L0:;
12743  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
12744  __Pyx_XGIVEREF(__pyx_r);
12745  __Pyx_TraceReturn(__pyx_r, 0);
12746  __Pyx_RefNannyFinishContext();
12747  return __pyx_r;
12748 }
12749 
12750 /* "mprans/BoundaryConditions.py":411
12751  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12752  *
12753  * def setTurbulentDirichlet(self, kVal, dissipationVal): # <<<<<<<<<<<<<<
12754  * """
12755  * Sets only dirichlet conditions for turbulence at the boundary.
12756  */
12757 
12758 /* Python wrapper */
12759 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12760 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet[] = "BC_RANS.setTurbulentDirichlet(self, kVal, dissipationVal)\n\n Sets only dirichlet conditions for turbulence at the boundary.\n It's a rough approximation for evalueting the near wall turbulence\n based on empirical assumptions.\n More sophisticated wall functions are recommended to be used.\n\n Parameters\n ----------\n kVal: float.\n constant value applied on k.\n dissipationVal: float.\n constant value applied on dissipation.\n ";
12761 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet = {"setTurbulentDirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet};
12762 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12763  PyObject *__pyx_v_kVal = 0;
12764  PyObject *__pyx_v_dissipationVal = 0;
12765  int __pyx_lineno = 0;
12766  const char *__pyx_filename = NULL;
12767  int __pyx_clineno = 0;
12768  PyObject *__pyx_r = 0;
12769  __Pyx_RefNannyDeclarations
12770  __Pyx_RefNannySetupContext("setTurbulentDirichlet (wrapper)", 0);
12771  {
12772  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_kVal,&__pyx_n_s_dissipationVal,0};
12773  PyObject* values[2] = {0,0};
12774  if (unlikely(__pyx_kwds)) {
12775  Py_ssize_t kw_args;
12776  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12777  switch (pos_args) {
12778  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12779  CYTHON_FALLTHROUGH;
12780  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12781  CYTHON_FALLTHROUGH;
12782  case 0: break;
12783  default: goto __pyx_L5_argtuple_error;
12784  }
12785  kw_args = PyDict_Size(__pyx_kwds);
12786  switch (pos_args) {
12787  case 0:
12788  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kVal)) != 0)) kw_args--;
12789  else goto __pyx_L5_argtuple_error;
12790  CYTHON_FALLTHROUGH;
12791  case 1:
12792  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dissipationVal)) != 0)) kw_args--;
12793  else {
12794  __Pyx_RaiseArgtupleInvalid("setTurbulentDirichlet", 1, 2, 2, 1); __PYX_ERR(0, 411, __pyx_L3_error)
12795  }
12796  }
12797  if (unlikely(kw_args > 0)) {
12798  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTurbulentDirichlet") < 0)) __PYX_ERR(0, 411, __pyx_L3_error)
12799  }
12800  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
12801  goto __pyx_L5_argtuple_error;
12802  } else {
12803  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12804  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12805  }
12806  __pyx_v_kVal = values[0];
12807  __pyx_v_dissipationVal = values[1];
12808  }
12809  goto __pyx_L4_argument_unpacking_done;
12810  __pyx_L5_argtuple_error:;
12811  __Pyx_RaiseArgtupleInvalid("setTurbulentDirichlet", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 411, __pyx_L3_error)
12812  __pyx_L3_error:;
12813  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTurbulentDirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
12814  __Pyx_RefNannyFinishContext();
12815  return NULL;
12816  __pyx_L4_argument_unpacking_done:;
12817  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_kVal, __pyx_v_dissipationVal);
12818 
12819  /* function exit code */
12820  __Pyx_RefNannyFinishContext();
12821  return __pyx_r;
12822 }
12823 
12824 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_kVal, PyObject *__pyx_v_dissipationVal) {
12825  PyObject *__pyx_r = NULL;
12826  __Pyx_TraceDeclarations
12827  __Pyx_RefNannyDeclarations
12828  PyObject *__pyx_t_1 = NULL;
12829  PyObject *__pyx_t_2 = NULL;
12830  PyObject *__pyx_t_3 = NULL;
12831  int __pyx_lineno = 0;
12832  const char *__pyx_filename = NULL;
12833  int __pyx_clineno = 0;
12834  __Pyx_TraceFrameInit(__pyx_codeobj__20)
12835  __Pyx_RefNannySetupContext("setTurbulentDirichlet", 0);
12836  __Pyx_TraceCall("setTurbulentDirichlet", __pyx_f[0], 411, 0, __PYX_ERR(0, 411, __pyx_L1_error));
12837 
12838  /* "mprans/BoundaryConditions.py":426
12839  * """
12840  * # turbulent boundary conditions
12841  * self.k_dirichlet.setConstantBC(kVal) # <<<<<<<<<<<<<<
12842  * self.dissipation_dirichlet.setConstantBC(dissipationVal)
12843  * self.k_advective.resetBC()
12844  */
12845  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error)
12846  __Pyx_GOTREF(__pyx_t_2);
12847  __pyx_t_3 = NULL;
12848  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12849  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12850  if (likely(__pyx_t_3)) {
12851  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12852  __Pyx_INCREF(__pyx_t_3);
12853  __Pyx_INCREF(function);
12854  __Pyx_DECREF_SET(__pyx_t_2, function);
12855  }
12856  }
12857  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_kVal) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kVal);
12858  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12859  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error)
12860  __Pyx_GOTREF(__pyx_t_1);
12861  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12862  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12863 
12864  /* "mprans/BoundaryConditions.py":427
12865  * # turbulent boundary conditions
12866  * self.k_dirichlet.setConstantBC(kVal)
12867  * self.dissipation_dirichlet.setConstantBC(dissipationVal) # <<<<<<<<<<<<<<
12868  * self.k_advective.resetBC()
12869  * self.dissipation_advective.resetBC()
12870  */
12871  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
12872  __Pyx_GOTREF(__pyx_t_2);
12873  __pyx_t_3 = NULL;
12874  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12875  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12876  if (likely(__pyx_t_3)) {
12877  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12878  __Pyx_INCREF(__pyx_t_3);
12879  __Pyx_INCREF(function);
12880  __Pyx_DECREF_SET(__pyx_t_2, function);
12881  }
12882  }
12883  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_dissipationVal) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dissipationVal);
12884  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12885  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
12886  __Pyx_GOTREF(__pyx_t_1);
12887  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12888  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12889 
12890  /* "mprans/BoundaryConditions.py":428
12891  * self.k_dirichlet.setConstantBC(kVal)
12892  * self.dissipation_dirichlet.setConstantBC(dissipationVal)
12893  * self.k_advective.resetBC() # <<<<<<<<<<<<<<
12894  * self.dissipation_advective.resetBC()
12895  * self.k_diffusive.resetBC()
12896  */
12897  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_advective->__pyx_vtab)->resetBC(__pyx_v_self->k_advective, 0);
12898 
12899  /* "mprans/BoundaryConditions.py":429
12900  * self.dissipation_dirichlet.setConstantBC(dissipationVal)
12901  * self.k_advective.resetBC()
12902  * self.dissipation_advective.resetBC() # <<<<<<<<<<<<<<
12903  * self.k_diffusive.resetBC()
12904  * self.dissipation_diffusive.resetBC()
12905  */
12906  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_advective->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_advective, 0);
12907 
12908  /* "mprans/BoundaryConditions.py":430
12909  * self.k_advective.resetBC()
12910  * self.dissipation_advective.resetBC()
12911  * self.k_diffusive.resetBC() # <<<<<<<<<<<<<<
12912  * self.dissipation_diffusive.resetBC()
12913  *
12914  */
12915  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->k_diffusive, 0);
12916 
12917  /* "mprans/BoundaryConditions.py":431
12918  * self.dissipation_advective.resetBC()
12919  * self.k_diffusive.resetBC()
12920  * self.dissipation_diffusive.resetBC() # <<<<<<<<<<<<<<
12921  *
12922  * def setTurbulentZeroGradient(self):
12923  */
12924  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_diffusive, 0);
12925 
12926  /* "mprans/BoundaryConditions.py":411
12927  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
12928  *
12929  * def setTurbulentDirichlet(self, kVal, dissipationVal): # <<<<<<<<<<<<<<
12930  * """
12931  * Sets only dirichlet conditions for turbulence at the boundary.
12932  */
12933 
12934  /* function exit code */
12935  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12936  goto __pyx_L0;
12937  __pyx_L1_error:;
12938  __Pyx_XDECREF(__pyx_t_1);
12939  __Pyx_XDECREF(__pyx_t_2);
12940  __Pyx_XDECREF(__pyx_t_3);
12941  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTurbulentDirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
12942  __pyx_r = NULL;
12943  __pyx_L0:;
12944  __Pyx_XGIVEREF(__pyx_r);
12945  __Pyx_TraceReturn(__pyx_r, 0);
12946  __Pyx_RefNannyFinishContext();
12947  return __pyx_r;
12948 }
12949 
12950 /* "mprans/BoundaryConditions.py":433
12951  * self.dissipation_diffusive.resetBC()
12952  *
12953  * def setTurbulentZeroGradient(self): # <<<<<<<<<<<<<<
12954  * """
12955  * Sets only zero-gradient conditions for turbulence at the boundary.
12956  */
12957 
12958 /* Python wrapper */
12959 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
12960 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient[] = "BC_RANS.setTurbulentZeroGradient(self)\n\n Sets only zero-gradient conditions for turbulence at the boundary.\n More sophisticated wall functions are recommended to be used.\n ";
12961 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient = {"setTurbulentZeroGradient", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient};
12962 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
12963  PyObject *__pyx_r = 0;
12964  __Pyx_RefNannyDeclarations
12965  __Pyx_RefNannySetupContext("setTurbulentZeroGradient (wrapper)", 0);
12966  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
12967 
12968  /* function exit code */
12969  __Pyx_RefNannyFinishContext();
12970  return __pyx_r;
12971 }
12972 
12973 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
12974  PyObject *__pyx_r = NULL;
12975  __Pyx_TraceDeclarations
12976  __Pyx_RefNannyDeclarations
12977  PyObject *__pyx_t_1 = NULL;
12978  PyObject *__pyx_t_2 = NULL;
12979  PyObject *__pyx_t_3 = NULL;
12980  int __pyx_lineno = 0;
12981  const char *__pyx_filename = NULL;
12982  int __pyx_clineno = 0;
12983  __Pyx_TraceFrameInit(__pyx_codeobj__21)
12984  __Pyx_RefNannySetupContext("setTurbulentZeroGradient", 0);
12985  __Pyx_TraceCall("setTurbulentZeroGradient", __pyx_f[0], 433, 0, __PYX_ERR(0, 433, __pyx_L1_error));
12986 
12987  /* "mprans/BoundaryConditions.py":439
12988  * """
12989  * # turbulent boundary conditions
12990  * self.k_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
12991  * self.dissipation_dirichlet.setConstantBC(0.)
12992  * self.k_advective.resetBC()
12993  */
12994  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 439, __pyx_L1_error)
12995  __Pyx_GOTREF(__pyx_t_2);
12996  __pyx_t_3 = NULL;
12997  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
12998  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
12999  if (likely(__pyx_t_3)) {
13000  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13001  __Pyx_INCREF(__pyx_t_3);
13002  __Pyx_INCREF(function);
13003  __Pyx_DECREF_SET(__pyx_t_2, function);
13004  }
13005  }
13006  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
13007  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13008  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
13009  __Pyx_GOTREF(__pyx_t_1);
13010  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13011  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13012 
13013  /* "mprans/BoundaryConditions.py":440
13014  * # turbulent boundary conditions
13015  * self.k_dirichlet.setConstantBC(0.)
13016  * self.dissipation_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
13017  * self.k_advective.resetBC()
13018  * self.dissipation_advective.resetBC()
13019  */
13020  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error)
13021  __Pyx_GOTREF(__pyx_t_2);
13022  __pyx_t_3 = NULL;
13023  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13024  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13025  if (likely(__pyx_t_3)) {
13026  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13027  __Pyx_INCREF(__pyx_t_3);
13028  __Pyx_INCREF(function);
13029  __Pyx_DECREF_SET(__pyx_t_2, function);
13030  }
13031  }
13032  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
13033  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13034  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
13035  __Pyx_GOTREF(__pyx_t_1);
13036  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13037  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13038 
13039  /* "mprans/BoundaryConditions.py":441
13040  * self.k_dirichlet.setConstantBC(0.)
13041  * self.dissipation_dirichlet.setConstantBC(0.)
13042  * self.k_advective.resetBC() # <<<<<<<<<<<<<<
13043  * self.dissipation_advective.resetBC()
13044  * self.k_diffusive.setConstantBC(0.)
13045  */
13046  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_advective->__pyx_vtab)->resetBC(__pyx_v_self->k_advective, 0);
13047 
13048  /* "mprans/BoundaryConditions.py":442
13049  * self.dissipation_dirichlet.setConstantBC(0.)
13050  * self.k_advective.resetBC()
13051  * self.dissipation_advective.resetBC() # <<<<<<<<<<<<<<
13052  * self.k_diffusive.setConstantBC(0.)
13053  * self.dissipation_diffusive.setConstantBC(0.)
13054  */
13055  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_advective->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_advective, 0);
13056 
13057  /* "mprans/BoundaryConditions.py":443
13058  * self.k_advective.resetBC()
13059  * self.dissipation_advective.resetBC()
13060  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
13061  * self.dissipation_diffusive.setConstantBC(0.)
13062  *
13063  */
13064  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 443, __pyx_L1_error)
13065  __Pyx_GOTREF(__pyx_t_2);
13066  __pyx_t_3 = NULL;
13067  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13068  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13069  if (likely(__pyx_t_3)) {
13070  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13071  __Pyx_INCREF(__pyx_t_3);
13072  __Pyx_INCREF(function);
13073  __Pyx_DECREF_SET(__pyx_t_2, function);
13074  }
13075  }
13076  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
13077  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13078  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
13079  __Pyx_GOTREF(__pyx_t_1);
13080  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13081  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13082 
13083  /* "mprans/BoundaryConditions.py":444
13084  * self.dissipation_advective.resetBC()
13085  * self.k_diffusive.setConstantBC(0.)
13086  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
13087  *
13088  * def setWallFunction(self, wall, shearStress=False):
13089  */
13090  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error)
13091  __Pyx_GOTREF(__pyx_t_2);
13092  __pyx_t_3 = NULL;
13093  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13094  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13095  if (likely(__pyx_t_3)) {
13096  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13097  __Pyx_INCREF(__pyx_t_3);
13098  __Pyx_INCREF(function);
13099  __Pyx_DECREF_SET(__pyx_t_2, function);
13100  }
13101  }
13102  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
13103  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13104  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
13105  __Pyx_GOTREF(__pyx_t_1);
13106  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13107  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13108 
13109  /* "mprans/BoundaryConditions.py":433
13110  * self.dissipation_diffusive.resetBC()
13111  *
13112  * def setTurbulentZeroGradient(self): # <<<<<<<<<<<<<<
13113  * """
13114  * Sets only zero-gradient conditions for turbulence at the boundary.
13115  */
13116 
13117  /* function exit code */
13118  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13119  goto __pyx_L0;
13120  __pyx_L1_error:;
13121  __Pyx_XDECREF(__pyx_t_1);
13122  __Pyx_XDECREF(__pyx_t_2);
13123  __Pyx_XDECREF(__pyx_t_3);
13124  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTurbulentZeroGradient", __pyx_clineno, __pyx_lineno, __pyx_filename);
13125  __pyx_r = NULL;
13126  __pyx_L0:;
13127  __Pyx_XGIVEREF(__pyx_r);
13128  __Pyx_TraceReturn(__pyx_r, 0);
13129  __Pyx_RefNannyFinishContext();
13130  return __pyx_r;
13131 }
13132 
13133 /* "mprans/BoundaryConditions.py":446
13134  * self.dissipation_diffusive.setConstantBC(0.)
13135  *
13136  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
13137  * """
13138  * Sets turbulent boundaries for wall treatment.
13139  */
13140 
13141 /* Python wrapper */
13142 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13143 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction[] = "BC_RANS.setWallFunction(self, wall, shearStress=False)\n\n Sets turbulent boundaries for wall treatment.\n Calculation made on nodes outside the viscous sublayer and based\n on assumption on the velocity profile close to the wall in order to\n impose the wall shear stress.\n\n Parameters\n ----------\n wall: wall object.\n BoundaryConditions class to be attached for setting up\n all the turbulent parameters.\n shearStress: True/False.\n At the moment version with shearStress=False is the only one that\n returns good results.\n Keep it False at the moment!\n - When True, the wall function prescribes diffusive boundaries\n for velocity and kappa. It's like imposing the shear stress.\n - If False, the wall function prescribes dirichlet conditions.\n\n ";
13144 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction = {"setWallFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction};
13145 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13146  PyObject *__pyx_v_wall = 0;
13147  CYTHON_UNUSED PyObject *__pyx_v_shearStress = 0;
13148  int __pyx_lineno = 0;
13149  const char *__pyx_filename = NULL;
13150  int __pyx_clineno = 0;
13151  PyObject *__pyx_r = 0;
13152  __Pyx_RefNannyDeclarations
13153  __Pyx_RefNannySetupContext("setWallFunction (wrapper)", 0);
13154  {
13155  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_wall,&__pyx_n_s_shearStress,0};
13156  PyObject* values[2] = {0,0};
13157  values[1] = ((PyObject *)Py_False);
13158  if (unlikely(__pyx_kwds)) {
13159  Py_ssize_t kw_args;
13160  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13161  switch (pos_args) {
13162  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13163  CYTHON_FALLTHROUGH;
13164  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13165  CYTHON_FALLTHROUGH;
13166  case 0: break;
13167  default: goto __pyx_L5_argtuple_error;
13168  }
13169  kw_args = PyDict_Size(__pyx_kwds);
13170  switch (pos_args) {
13171  case 0:
13172  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wall)) != 0)) kw_args--;
13173  else goto __pyx_L5_argtuple_error;
13174  CYTHON_FALLTHROUGH;
13175  case 1:
13176  if (kw_args > 0) {
13177  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shearStress);
13178  if (value) { values[1] = value; kw_args--; }
13179  }
13180  }
13181  if (unlikely(kw_args > 0)) {
13182  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setWallFunction") < 0)) __PYX_ERR(0, 446, __pyx_L3_error)
13183  }
13184  } else {
13185  switch (PyTuple_GET_SIZE(__pyx_args)) {
13186  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13187  CYTHON_FALLTHROUGH;
13188  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13189  break;
13190  default: goto __pyx_L5_argtuple_error;
13191  }
13192  }
13193  __pyx_v_wall = values[0];
13194  __pyx_v_shearStress = values[1];
13195  }
13196  goto __pyx_L4_argument_unpacking_done;
13197  __pyx_L5_argtuple_error:;
13198  __Pyx_RaiseArgtupleInvalid("setWallFunction", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 446, __pyx_L3_error)
13199  __pyx_L3_error:;
13200  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction", __pyx_clineno, __pyx_lineno, __pyx_filename);
13201  __Pyx_RefNannyFinishContext();
13202  return NULL;
13203  __pyx_L4_argument_unpacking_done:;
13204  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_wall, __pyx_v_shearStress);
13205 
13206  /* function exit code */
13207  __Pyx_RefNannyFinishContext();
13208  return __pyx_r;
13209 }
13210 
13211 /* "mprans/BoundaryConditions.py":472
13212  * self.BC_type = "Wall function"
13213  * self.dissipation_diffusive.resetBC()
13214  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n) # <<<<<<<<<<<<<<
13215  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
13216  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
13217  */
13218 
13219 /* Python wrapper */
13220 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_lambda3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13221 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_lambda3 = {"lambda3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_lambda3, METH_VARARGS|METH_KEYWORDS, 0};
13222 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_lambda3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13223  PyObject *__pyx_v_x = 0;
13224  PyObject *__pyx_v_t = 0;
13225  PyObject *__pyx_v_n = 0;
13226  int __pyx_lineno = 0;
13227  const char *__pyx_filename = NULL;
13228  int __pyx_clineno = 0;
13229  PyObject *__pyx_r = 0;
13230  __Pyx_RefNannyDeclarations
13231  __Pyx_RefNannySetupContext("lambda3 (wrapper)", 0);
13232  {
13233  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
13234  PyObject* values[3] = {0,0,0};
13235  values[2] = ((PyObject *)((PyObject *)Py_None));
13236  if (unlikely(__pyx_kwds)) {
13237  Py_ssize_t kw_args;
13238  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13239  switch (pos_args) {
13240  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13241  CYTHON_FALLTHROUGH;
13242  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13243  CYTHON_FALLTHROUGH;
13244  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13245  CYTHON_FALLTHROUGH;
13246  case 0: break;
13247  default: goto __pyx_L5_argtuple_error;
13248  }
13249  kw_args = PyDict_Size(__pyx_kwds);
13250  switch (pos_args) {
13251  case 0:
13252  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
13253  else goto __pyx_L5_argtuple_error;
13254  CYTHON_FALLTHROUGH;
13255  case 1:
13256  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
13257  else {
13258  __Pyx_RaiseArgtupleInvalid("lambda3", 0, 2, 3, 1); __PYX_ERR(0, 472, __pyx_L3_error)
13259  }
13260  CYTHON_FALLTHROUGH;
13261  case 2:
13262  if (kw_args > 0) {
13263  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
13264  if (value) { values[2] = value; kw_args--; }
13265  }
13266  }
13267  if (unlikely(kw_args > 0)) {
13268  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda3") < 0)) __PYX_ERR(0, 472, __pyx_L3_error)
13269  }
13270  } else {
13271  switch (PyTuple_GET_SIZE(__pyx_args)) {
13272  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13273  CYTHON_FALLTHROUGH;
13274  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13275  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13276  break;
13277  default: goto __pyx_L5_argtuple_error;
13278  }
13279  }
13280  __pyx_v_x = values[0];
13281  __pyx_v_t = values[1];
13282  __pyx_v_n = values[2];
13283  }
13284  goto __pyx_L4_argument_unpacking_done;
13285  __pyx_L5_argtuple_error:;
13286  __Pyx_RaiseArgtupleInvalid("lambda3", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 472, __pyx_L3_error)
13287  __pyx_L3_error:;
13288  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
13289  __Pyx_RefNannyFinishContext();
13290  return NULL;
13291  __pyx_L4_argument_unpacking_done:;
13292  __pyx_r = __pyx_lambda_funcdef_lambda3(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
13293 
13294  /* function exit code */
13295  __Pyx_RefNannyFinishContext();
13296  return __pyx_r;
13297 }
13298 
13299 static PyObject *__pyx_lambda_funcdef_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
13300  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
13301  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_outer_scope;
13302  PyObject *__pyx_r = NULL;
13303  __Pyx_TraceDeclarations
13304  __Pyx_RefNannyDeclarations
13305  PyObject *__pyx_t_1 = NULL;
13306  PyObject *__pyx_t_2 = NULL;
13307  PyObject *__pyx_t_3 = NULL;
13308  int __pyx_t_4;
13309  PyObject *__pyx_t_5 = NULL;
13310  int __pyx_lineno = 0;
13311  const char *__pyx_filename = NULL;
13312  int __pyx_clineno = 0;
13313  __Pyx_RefNannySetupContext("lambda3", 0);
13314  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *) __Pyx_CyFunction_GetClosure(__pyx_self);
13315  __pyx_cur_scope = __pyx_outer_scope;
13316  __Pyx_TraceCall("lambda3", __pyx_f[0], 472, 0, __PYX_ERR(0, 472, __pyx_L1_error));
13317  __Pyx_XDECREF(__pyx_r);
13318  if (unlikely(!__pyx_cur_scope->__pyx_v_wf)) { __Pyx_RaiseClosureNameError("wf"); __PYX_ERR(0, 472, __pyx_L1_error) }
13319  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_wf, __pyx_n_s_get_k_dirichlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 472, __pyx_L1_error)
13320  __Pyx_GOTREF(__pyx_t_2);
13321  __pyx_t_3 = NULL;
13322  __pyx_t_4 = 0;
13323  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13324  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13325  if (likely(__pyx_t_3)) {
13326  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13327  __Pyx_INCREF(__pyx_t_3);
13328  __Pyx_INCREF(function);
13329  __Pyx_DECREF_SET(__pyx_t_2, function);
13330  __pyx_t_4 = 1;
13331  }
13332  }
13333  #if CYTHON_FAST_PYCALL
13334  if (PyFunction_Check(__pyx_t_2)) {
13335  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13336  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
13337  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13338  __Pyx_GOTREF(__pyx_t_1);
13339  } else
13340  #endif
13341  #if CYTHON_FAST_PYCCALL
13342  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
13343  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13344  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
13345  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13346  __Pyx_GOTREF(__pyx_t_1);
13347  } else
13348  #endif
13349  {
13350  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 472, __pyx_L1_error)
13351  __Pyx_GOTREF(__pyx_t_5);
13352  if (__pyx_t_3) {
13353  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
13354  }
13355  __Pyx_INCREF(__pyx_v_x);
13356  __Pyx_GIVEREF(__pyx_v_x);
13357  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
13358  __Pyx_INCREF(__pyx_v_t);
13359  __Pyx_GIVEREF(__pyx_v_t);
13360  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
13361  __Pyx_INCREF(__pyx_v_n);
13362  __Pyx_GIVEREF(__pyx_v_n);
13363  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
13364  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
13365  __Pyx_GOTREF(__pyx_t_1);
13366  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13367  }
13368  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13369  __pyx_r = __pyx_t_1;
13370  __pyx_t_1 = 0;
13371  goto __pyx_L0;
13372 
13373  /* function exit code */
13374  __pyx_L1_error:;
13375  __Pyx_XDECREF(__pyx_t_1);
13376  __Pyx_XDECREF(__pyx_t_2);
13377  __Pyx_XDECREF(__pyx_t_3);
13378  __Pyx_XDECREF(__pyx_t_5);
13379  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
13380  __pyx_r = NULL;
13381  __pyx_L0:;
13382  __Pyx_XGIVEREF(__pyx_r);
13383  __Pyx_TraceReturn(__pyx_r, 0);
13384  __Pyx_RefNannyFinishContext();
13385  return __pyx_r;
13386 }
13387 
13388 /* "mprans/BoundaryConditions.py":473
13389  * self.dissipation_diffusive.resetBC()
13390  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
13391  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
13392  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
13393  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
13394  */
13395 
13396 /* Python wrapper */
13397 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_1lambda4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13398 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_1lambda4 = {"lambda4", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_1lambda4, METH_VARARGS|METH_KEYWORDS, 0};
13399 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_1lambda4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13400  PyObject *__pyx_v_x = 0;
13401  PyObject *__pyx_v_t = 0;
13402  PyObject *__pyx_v_n = 0;
13403  int __pyx_lineno = 0;
13404  const char *__pyx_filename = NULL;
13405  int __pyx_clineno = 0;
13406  PyObject *__pyx_r = 0;
13407  __Pyx_RefNannyDeclarations
13408  __Pyx_RefNannySetupContext("lambda4 (wrapper)", 0);
13409  {
13410  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
13411  PyObject* values[3] = {0,0,0};
13412  values[2] = ((PyObject *)((PyObject *)Py_None));
13413  if (unlikely(__pyx_kwds)) {
13414  Py_ssize_t kw_args;
13415  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13416  switch (pos_args) {
13417  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13418  CYTHON_FALLTHROUGH;
13419  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13420  CYTHON_FALLTHROUGH;
13421  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13422  CYTHON_FALLTHROUGH;
13423  case 0: break;
13424  default: goto __pyx_L5_argtuple_error;
13425  }
13426  kw_args = PyDict_Size(__pyx_kwds);
13427  switch (pos_args) {
13428  case 0:
13429  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
13430  else goto __pyx_L5_argtuple_error;
13431  CYTHON_FALLTHROUGH;
13432  case 1:
13433  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
13434  else {
13435  __Pyx_RaiseArgtupleInvalid("lambda4", 0, 2, 3, 1); __PYX_ERR(0, 473, __pyx_L3_error)
13436  }
13437  CYTHON_FALLTHROUGH;
13438  case 2:
13439  if (kw_args > 0) {
13440  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
13441  if (value) { values[2] = value; kw_args--; }
13442  }
13443  }
13444  if (unlikely(kw_args > 0)) {
13445  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda4") < 0)) __PYX_ERR(0, 473, __pyx_L3_error)
13446  }
13447  } else {
13448  switch (PyTuple_GET_SIZE(__pyx_args)) {
13449  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13450  CYTHON_FALLTHROUGH;
13451  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13452  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13453  break;
13454  default: goto __pyx_L5_argtuple_error;
13455  }
13456  }
13457  __pyx_v_x = values[0];
13458  __pyx_v_t = values[1];
13459  __pyx_v_n = values[2];
13460  }
13461  goto __pyx_L4_argument_unpacking_done;
13462  __pyx_L5_argtuple_error:;
13463  __Pyx_RaiseArgtupleInvalid("lambda4", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 473, __pyx_L3_error)
13464  __pyx_L3_error:;
13465  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
13466  __Pyx_RefNannyFinishContext();
13467  return NULL;
13468  __pyx_L4_argument_unpacking_done:;
13469  __pyx_r = __pyx_lambda_funcdef_lambda4(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
13470 
13471  /* function exit code */
13472  __Pyx_RefNannyFinishContext();
13473  return __pyx_r;
13474 }
13475 
13476 static PyObject *__pyx_lambda_funcdef_lambda4(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
13477  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
13478  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_outer_scope;
13479  PyObject *__pyx_r = NULL;
13480  __Pyx_TraceDeclarations
13481  __Pyx_RefNannyDeclarations
13482  PyObject *__pyx_t_1 = NULL;
13483  PyObject *__pyx_t_2 = NULL;
13484  PyObject *__pyx_t_3 = NULL;
13485  int __pyx_t_4;
13486  PyObject *__pyx_t_5 = NULL;
13487  int __pyx_lineno = 0;
13488  const char *__pyx_filename = NULL;
13489  int __pyx_clineno = 0;
13490  __Pyx_RefNannySetupContext("lambda4", 0);
13491  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *) __Pyx_CyFunction_GetClosure(__pyx_self);
13492  __pyx_cur_scope = __pyx_outer_scope;
13493  __Pyx_TraceCall("lambda4", __pyx_f[0], 473, 0, __PYX_ERR(0, 473, __pyx_L1_error));
13494  __Pyx_XDECREF(__pyx_r);
13495  if (unlikely(!__pyx_cur_scope->__pyx_v_wf)) { __Pyx_RaiseClosureNameError("wf"); __PYX_ERR(0, 473, __pyx_L1_error) }
13496  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_wf, __pyx_n_s_get_dissipation_dirichlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error)
13497  __Pyx_GOTREF(__pyx_t_2);
13498  __pyx_t_3 = NULL;
13499  __pyx_t_4 = 0;
13500  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13501  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13502  if (likely(__pyx_t_3)) {
13503  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13504  __Pyx_INCREF(__pyx_t_3);
13505  __Pyx_INCREF(function);
13506  __Pyx_DECREF_SET(__pyx_t_2, function);
13507  __pyx_t_4 = 1;
13508  }
13509  }
13510  #if CYTHON_FAST_PYCALL
13511  if (PyFunction_Check(__pyx_t_2)) {
13512  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13513  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
13514  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13515  __Pyx_GOTREF(__pyx_t_1);
13516  } else
13517  #endif
13518  #if CYTHON_FAST_PYCCALL
13519  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
13520  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13521  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
13522  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13523  __Pyx_GOTREF(__pyx_t_1);
13524  } else
13525  #endif
13526  {
13527  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 473, __pyx_L1_error)
13528  __Pyx_GOTREF(__pyx_t_5);
13529  if (__pyx_t_3) {
13530  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
13531  }
13532  __Pyx_INCREF(__pyx_v_x);
13533  __Pyx_GIVEREF(__pyx_v_x);
13534  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
13535  __Pyx_INCREF(__pyx_v_t);
13536  __Pyx_GIVEREF(__pyx_v_t);
13537  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
13538  __Pyx_INCREF(__pyx_v_n);
13539  __Pyx_GIVEREF(__pyx_v_n);
13540  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
13541  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
13542  __Pyx_GOTREF(__pyx_t_1);
13543  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13544  }
13545  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13546  __pyx_r = __pyx_t_1;
13547  __pyx_t_1 = 0;
13548  goto __pyx_L0;
13549 
13550  /* function exit code */
13551  __pyx_L1_error:;
13552  __Pyx_XDECREF(__pyx_t_1);
13553  __Pyx_XDECREF(__pyx_t_2);
13554  __Pyx_XDECREF(__pyx_t_3);
13555  __Pyx_XDECREF(__pyx_t_5);
13556  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
13557  __pyx_r = NULL;
13558  __pyx_L0:;
13559  __Pyx_XGIVEREF(__pyx_r);
13560  __Pyx_TraceReturn(__pyx_r, 0);
13561  __Pyx_RefNannyFinishContext();
13562  return __pyx_r;
13563 }
13564 
13565 /* "mprans/BoundaryConditions.py":474
13566  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
13567  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
13568  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
13569  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
13570  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
13571  */
13572 
13573 /* Python wrapper */
13574 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_2lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13575 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_2lambda5 = {"lambda5", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_2lambda5, METH_VARARGS|METH_KEYWORDS, 0};
13576 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_2lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13577  PyObject *__pyx_v_x = 0;
13578  PyObject *__pyx_v_t = 0;
13579  PyObject *__pyx_v_n = 0;
13580  int __pyx_lineno = 0;
13581  const char *__pyx_filename = NULL;
13582  int __pyx_clineno = 0;
13583  PyObject *__pyx_r = 0;
13584  __Pyx_RefNannyDeclarations
13585  __Pyx_RefNannySetupContext("lambda5 (wrapper)", 0);
13586  {
13587  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
13588  PyObject* values[3] = {0,0,0};
13589  values[2] = ((PyObject *)((PyObject *)Py_None));
13590  if (unlikely(__pyx_kwds)) {
13591  Py_ssize_t kw_args;
13592  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13593  switch (pos_args) {
13594  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13595  CYTHON_FALLTHROUGH;
13596  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13597  CYTHON_FALLTHROUGH;
13598  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13599  CYTHON_FALLTHROUGH;
13600  case 0: break;
13601  default: goto __pyx_L5_argtuple_error;
13602  }
13603  kw_args = PyDict_Size(__pyx_kwds);
13604  switch (pos_args) {
13605  case 0:
13606  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
13607  else goto __pyx_L5_argtuple_error;
13608  CYTHON_FALLTHROUGH;
13609  case 1:
13610  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
13611  else {
13612  __Pyx_RaiseArgtupleInvalid("lambda5", 0, 2, 3, 1); __PYX_ERR(0, 474, __pyx_L3_error)
13613  }
13614  CYTHON_FALLTHROUGH;
13615  case 2:
13616  if (kw_args > 0) {
13617  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
13618  if (value) { values[2] = value; kw_args--; }
13619  }
13620  }
13621  if (unlikely(kw_args > 0)) {
13622  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda5") < 0)) __PYX_ERR(0, 474, __pyx_L3_error)
13623  }
13624  } else {
13625  switch (PyTuple_GET_SIZE(__pyx_args)) {
13626  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13627  CYTHON_FALLTHROUGH;
13628  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13629  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13630  break;
13631  default: goto __pyx_L5_argtuple_error;
13632  }
13633  }
13634  __pyx_v_x = values[0];
13635  __pyx_v_t = values[1];
13636  __pyx_v_n = values[2];
13637  }
13638  goto __pyx_L4_argument_unpacking_done;
13639  __pyx_L5_argtuple_error:;
13640  __Pyx_RaiseArgtupleInvalid("lambda5", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 474, __pyx_L3_error)
13641  __pyx_L3_error:;
13642  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
13643  __Pyx_RefNannyFinishContext();
13644  return NULL;
13645  __pyx_L4_argument_unpacking_done:;
13646  __pyx_r = __pyx_lambda_funcdef_lambda5(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
13647 
13648  /* function exit code */
13649  __Pyx_RefNannyFinishContext();
13650  return __pyx_r;
13651 }
13652 
13653 static PyObject *__pyx_lambda_funcdef_lambda5(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
13654  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
13655  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_outer_scope;
13656  PyObject *__pyx_r = NULL;
13657  __Pyx_TraceDeclarations
13658  __Pyx_RefNannyDeclarations
13659  PyObject *__pyx_t_1 = NULL;
13660  PyObject *__pyx_t_2 = NULL;
13661  PyObject *__pyx_t_3 = NULL;
13662  int __pyx_t_4;
13663  PyObject *__pyx_t_5 = NULL;
13664  int __pyx_lineno = 0;
13665  const char *__pyx_filename = NULL;
13666  int __pyx_clineno = 0;
13667  __Pyx_RefNannySetupContext("lambda5", 0);
13668  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *) __Pyx_CyFunction_GetClosure(__pyx_self);
13669  __pyx_cur_scope = __pyx_outer_scope;
13670  __Pyx_TraceCall("lambda5", __pyx_f[0], 474, 0, __PYX_ERR(0, 474, __pyx_L1_error));
13671  __Pyx_XDECREF(__pyx_r);
13672  if (unlikely(!__pyx_cur_scope->__pyx_v_wf)) { __Pyx_RaiseClosureNameError("wf"); __PYX_ERR(0, 474, __pyx_L1_error) }
13673  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_wf, __pyx_n_s_get_u_dirichlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 474, __pyx_L1_error)
13674  __Pyx_GOTREF(__pyx_t_2);
13675  __pyx_t_3 = NULL;
13676  __pyx_t_4 = 0;
13677  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13678  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13679  if (likely(__pyx_t_3)) {
13680  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13681  __Pyx_INCREF(__pyx_t_3);
13682  __Pyx_INCREF(function);
13683  __Pyx_DECREF_SET(__pyx_t_2, function);
13684  __pyx_t_4 = 1;
13685  }
13686  }
13687  #if CYTHON_FAST_PYCALL
13688  if (PyFunction_Check(__pyx_t_2)) {
13689  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13690  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L1_error)
13691  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13692  __Pyx_GOTREF(__pyx_t_1);
13693  } else
13694  #endif
13695  #if CYTHON_FAST_PYCCALL
13696  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
13697  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13698  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L1_error)
13699  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13700  __Pyx_GOTREF(__pyx_t_1);
13701  } else
13702  #endif
13703  {
13704  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 474, __pyx_L1_error)
13705  __Pyx_GOTREF(__pyx_t_5);
13706  if (__pyx_t_3) {
13707  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
13708  }
13709  __Pyx_INCREF(__pyx_v_x);
13710  __Pyx_GIVEREF(__pyx_v_x);
13711  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
13712  __Pyx_INCREF(__pyx_v_t);
13713  __Pyx_GIVEREF(__pyx_v_t);
13714  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
13715  __Pyx_INCREF(__pyx_v_n);
13716  __Pyx_GIVEREF(__pyx_v_n);
13717  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
13718  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L1_error)
13719  __Pyx_GOTREF(__pyx_t_1);
13720  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13721  }
13722  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13723  __pyx_r = __pyx_t_1;
13724  __pyx_t_1 = 0;
13725  goto __pyx_L0;
13726 
13727  /* function exit code */
13728  __pyx_L1_error:;
13729  __Pyx_XDECREF(__pyx_t_1);
13730  __Pyx_XDECREF(__pyx_t_2);
13731  __Pyx_XDECREF(__pyx_t_3);
13732  __Pyx_XDECREF(__pyx_t_5);
13733  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
13734  __pyx_r = NULL;
13735  __pyx_L0:;
13736  __Pyx_XGIVEREF(__pyx_r);
13737  __Pyx_TraceReturn(__pyx_r, 0);
13738  __Pyx_RefNannyFinishContext();
13739  return __pyx_r;
13740 }
13741 
13742 /* "mprans/BoundaryConditions.py":475
13743  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
13744  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
13745  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
13746  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
13747  * """
13748  */
13749 
13750 /* Python wrapper */
13751 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_3lambda6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13752 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_3lambda6 = {"lambda6", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_3lambda6, METH_VARARGS|METH_KEYWORDS, 0};
13753 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_3lambda6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13754  PyObject *__pyx_v_x = 0;
13755  PyObject *__pyx_v_t = 0;
13756  PyObject *__pyx_v_n = 0;
13757  int __pyx_lineno = 0;
13758  const char *__pyx_filename = NULL;
13759  int __pyx_clineno = 0;
13760  PyObject *__pyx_r = 0;
13761  __Pyx_RefNannyDeclarations
13762  __Pyx_RefNannySetupContext("lambda6 (wrapper)", 0);
13763  {
13764  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
13765  PyObject* values[3] = {0,0,0};
13766  values[2] = ((PyObject *)((PyObject *)Py_None));
13767  if (unlikely(__pyx_kwds)) {
13768  Py_ssize_t kw_args;
13769  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13770  switch (pos_args) {
13771  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13772  CYTHON_FALLTHROUGH;
13773  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13774  CYTHON_FALLTHROUGH;
13775  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13776  CYTHON_FALLTHROUGH;
13777  case 0: break;
13778  default: goto __pyx_L5_argtuple_error;
13779  }
13780  kw_args = PyDict_Size(__pyx_kwds);
13781  switch (pos_args) {
13782  case 0:
13783  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
13784  else goto __pyx_L5_argtuple_error;
13785  CYTHON_FALLTHROUGH;
13786  case 1:
13787  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
13788  else {
13789  __Pyx_RaiseArgtupleInvalid("lambda6", 0, 2, 3, 1); __PYX_ERR(0, 475, __pyx_L3_error)
13790  }
13791  CYTHON_FALLTHROUGH;
13792  case 2:
13793  if (kw_args > 0) {
13794  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
13795  if (value) { values[2] = value; kw_args--; }
13796  }
13797  }
13798  if (unlikely(kw_args > 0)) {
13799  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda6") < 0)) __PYX_ERR(0, 475, __pyx_L3_error)
13800  }
13801  } else {
13802  switch (PyTuple_GET_SIZE(__pyx_args)) {
13803  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13804  CYTHON_FALLTHROUGH;
13805  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13806  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13807  break;
13808  default: goto __pyx_L5_argtuple_error;
13809  }
13810  }
13811  __pyx_v_x = values[0];
13812  __pyx_v_t = values[1];
13813  __pyx_v_n = values[2];
13814  }
13815  goto __pyx_L4_argument_unpacking_done;
13816  __pyx_L5_argtuple_error:;
13817  __Pyx_RaiseArgtupleInvalid("lambda6", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 475, __pyx_L3_error)
13818  __pyx_L3_error:;
13819  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
13820  __Pyx_RefNannyFinishContext();
13821  return NULL;
13822  __pyx_L4_argument_unpacking_done:;
13823  __pyx_r = __pyx_lambda_funcdef_lambda6(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
13824 
13825  /* function exit code */
13826  __Pyx_RefNannyFinishContext();
13827  return __pyx_r;
13828 }
13829 
13830 static PyObject *__pyx_lambda_funcdef_lambda6(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
13831  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
13832  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_outer_scope;
13833  PyObject *__pyx_r = NULL;
13834  __Pyx_TraceDeclarations
13835  __Pyx_RefNannyDeclarations
13836  PyObject *__pyx_t_1 = NULL;
13837  PyObject *__pyx_t_2 = NULL;
13838  PyObject *__pyx_t_3 = NULL;
13839  int __pyx_t_4;
13840  PyObject *__pyx_t_5 = NULL;
13841  int __pyx_lineno = 0;
13842  const char *__pyx_filename = NULL;
13843  int __pyx_clineno = 0;
13844  __Pyx_RefNannySetupContext("lambda6", 0);
13845  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *) __Pyx_CyFunction_GetClosure(__pyx_self);
13846  __pyx_cur_scope = __pyx_outer_scope;
13847  __Pyx_TraceCall("lambda6", __pyx_f[0], 475, 0, __PYX_ERR(0, 475, __pyx_L1_error));
13848  __Pyx_XDECREF(__pyx_r);
13849  if (unlikely(!__pyx_cur_scope->__pyx_v_wf)) { __Pyx_RaiseClosureNameError("wf"); __PYX_ERR(0, 475, __pyx_L1_error) }
13850  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_wf, __pyx_n_s_get_v_dirichlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
13851  __Pyx_GOTREF(__pyx_t_2);
13852  __pyx_t_3 = NULL;
13853  __pyx_t_4 = 0;
13854  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
13855  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
13856  if (likely(__pyx_t_3)) {
13857  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
13858  __Pyx_INCREF(__pyx_t_3);
13859  __Pyx_INCREF(function);
13860  __Pyx_DECREF_SET(__pyx_t_2, function);
13861  __pyx_t_4 = 1;
13862  }
13863  }
13864  #if CYTHON_FAST_PYCALL
13865  if (PyFunction_Check(__pyx_t_2)) {
13866  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13867  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error)
13868  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13869  __Pyx_GOTREF(__pyx_t_1);
13870  } else
13871  #endif
13872  #if CYTHON_FAST_PYCCALL
13873  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
13874  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
13875  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error)
13876  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13877  __Pyx_GOTREF(__pyx_t_1);
13878  } else
13879  #endif
13880  {
13881  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 475, __pyx_L1_error)
13882  __Pyx_GOTREF(__pyx_t_5);
13883  if (__pyx_t_3) {
13884  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
13885  }
13886  __Pyx_INCREF(__pyx_v_x);
13887  __Pyx_GIVEREF(__pyx_v_x);
13888  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
13889  __Pyx_INCREF(__pyx_v_t);
13890  __Pyx_GIVEREF(__pyx_v_t);
13891  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
13892  __Pyx_INCREF(__pyx_v_n);
13893  __Pyx_GIVEREF(__pyx_v_n);
13894  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
13895  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error)
13896  __Pyx_GOTREF(__pyx_t_1);
13897  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13898  }
13899  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13900  __pyx_r = __pyx_t_1;
13901  __pyx_t_1 = 0;
13902  goto __pyx_L0;
13903 
13904  /* function exit code */
13905  __pyx_L1_error:;
13906  __Pyx_XDECREF(__pyx_t_1);
13907  __Pyx_XDECREF(__pyx_t_2);
13908  __Pyx_XDECREF(__pyx_t_3);
13909  __Pyx_XDECREF(__pyx_t_5);
13910  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
13911  __pyx_r = NULL;
13912  __pyx_L0:;
13913  __Pyx_XGIVEREF(__pyx_r);
13914  __Pyx_TraceReturn(__pyx_r, 0);
13915  __Pyx_RefNannyFinishContext();
13916  return __pyx_r;
13917 }
13918 
13919 /* "mprans/BoundaryConditions.py":476
13920  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
13921  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
13922  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
13923  * """
13924  * self.dissipation_dirichlet.uOfXT = lambda x, t: wf.get_dissipation_dirichlet(x, t)
13925  */
13926 
13927 /* Python wrapper */
13928 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_4lambda7(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13929 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_4lambda7 = {"lambda7", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_4lambda7, METH_VARARGS|METH_KEYWORDS, 0};
13930 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_4lambda7(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13931  PyObject *__pyx_v_x = 0;
13932  PyObject *__pyx_v_t = 0;
13933  PyObject *__pyx_v_n = 0;
13934  int __pyx_lineno = 0;
13935  const char *__pyx_filename = NULL;
13936  int __pyx_clineno = 0;
13937  PyObject *__pyx_r = 0;
13938  __Pyx_RefNannyDeclarations
13939  __Pyx_RefNannySetupContext("lambda7 (wrapper)", 0);
13940  {
13941  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
13942  PyObject* values[3] = {0,0,0};
13943  values[2] = ((PyObject *)((PyObject *)Py_None));
13944  if (unlikely(__pyx_kwds)) {
13945  Py_ssize_t kw_args;
13946  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13947  switch (pos_args) {
13948  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13949  CYTHON_FALLTHROUGH;
13950  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13951  CYTHON_FALLTHROUGH;
13952  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13953  CYTHON_FALLTHROUGH;
13954  case 0: break;
13955  default: goto __pyx_L5_argtuple_error;
13956  }
13957  kw_args = PyDict_Size(__pyx_kwds);
13958  switch (pos_args) {
13959  case 0:
13960  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
13961  else goto __pyx_L5_argtuple_error;
13962  CYTHON_FALLTHROUGH;
13963  case 1:
13964  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
13965  else {
13966  __Pyx_RaiseArgtupleInvalid("lambda7", 0, 2, 3, 1); __PYX_ERR(0, 476, __pyx_L3_error)
13967  }
13968  CYTHON_FALLTHROUGH;
13969  case 2:
13970  if (kw_args > 0) {
13971  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
13972  if (value) { values[2] = value; kw_args--; }
13973  }
13974  }
13975  if (unlikely(kw_args > 0)) {
13976  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda7") < 0)) __PYX_ERR(0, 476, __pyx_L3_error)
13977  }
13978  } else {
13979  switch (PyTuple_GET_SIZE(__pyx_args)) {
13980  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13981  CYTHON_FALLTHROUGH;
13982  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13983  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13984  break;
13985  default: goto __pyx_L5_argtuple_error;
13986  }
13987  }
13988  __pyx_v_x = values[0];
13989  __pyx_v_t = values[1];
13990  __pyx_v_n = values[2];
13991  }
13992  goto __pyx_L4_argument_unpacking_done;
13993  __pyx_L5_argtuple_error:;
13994  __Pyx_RaiseArgtupleInvalid("lambda7", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 476, __pyx_L3_error)
13995  __pyx_L3_error:;
13996  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda7", __pyx_clineno, __pyx_lineno, __pyx_filename);
13997  __Pyx_RefNannyFinishContext();
13998  return NULL;
13999  __pyx_L4_argument_unpacking_done:;
14000  __pyx_r = __pyx_lambda_funcdef_lambda7(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
14001 
14002  /* function exit code */
14003  __Pyx_RefNannyFinishContext();
14004  return __pyx_r;
14005 }
14006 
14007 static PyObject *__pyx_lambda_funcdef_lambda7(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
14008  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
14009  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_outer_scope;
14010  PyObject *__pyx_r = NULL;
14011  __Pyx_TraceDeclarations
14012  __Pyx_RefNannyDeclarations
14013  PyObject *__pyx_t_1 = NULL;
14014  PyObject *__pyx_t_2 = NULL;
14015  PyObject *__pyx_t_3 = NULL;
14016  int __pyx_t_4;
14017  PyObject *__pyx_t_5 = NULL;
14018  int __pyx_lineno = 0;
14019  const char *__pyx_filename = NULL;
14020  int __pyx_clineno = 0;
14021  __Pyx_RefNannySetupContext("lambda7", 0);
14022  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *) __Pyx_CyFunction_GetClosure(__pyx_self);
14023  __pyx_cur_scope = __pyx_outer_scope;
14024  __Pyx_TraceCall("lambda7", __pyx_f[0], 476, 0, __PYX_ERR(0, 476, __pyx_L1_error));
14025  __Pyx_XDECREF(__pyx_r);
14026  if (unlikely(!__pyx_cur_scope->__pyx_v_wf)) { __Pyx_RaiseClosureNameError("wf"); __PYX_ERR(0, 476, __pyx_L1_error) }
14027  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_wf, __pyx_n_s_get_w_dirichlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 476, __pyx_L1_error)
14028  __Pyx_GOTREF(__pyx_t_2);
14029  __pyx_t_3 = NULL;
14030  __pyx_t_4 = 0;
14031  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
14032  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
14033  if (likely(__pyx_t_3)) {
14034  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
14035  __Pyx_INCREF(__pyx_t_3);
14036  __Pyx_INCREF(function);
14037  __Pyx_DECREF_SET(__pyx_t_2, function);
14038  __pyx_t_4 = 1;
14039  }
14040  }
14041  #if CYTHON_FAST_PYCALL
14042  if (PyFunction_Check(__pyx_t_2)) {
14043  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
14044  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error)
14045  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14046  __Pyx_GOTREF(__pyx_t_1);
14047  } else
14048  #endif
14049  #if CYTHON_FAST_PYCCALL
14050  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
14051  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
14052  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error)
14053  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14054  __Pyx_GOTREF(__pyx_t_1);
14055  } else
14056  #endif
14057  {
14058  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 476, __pyx_L1_error)
14059  __Pyx_GOTREF(__pyx_t_5);
14060  if (__pyx_t_3) {
14061  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
14062  }
14063  __Pyx_INCREF(__pyx_v_x);
14064  __Pyx_GIVEREF(__pyx_v_x);
14065  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
14066  __Pyx_INCREF(__pyx_v_t);
14067  __Pyx_GIVEREF(__pyx_v_t);
14068  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
14069  __Pyx_INCREF(__pyx_v_n);
14070  __Pyx_GIVEREF(__pyx_v_n);
14071  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
14072  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error)
14073  __Pyx_GOTREF(__pyx_t_1);
14074  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14075  }
14076  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14077  __pyx_r = __pyx_t_1;
14078  __pyx_t_1 = 0;
14079  goto __pyx_L0;
14080 
14081  /* function exit code */
14082  __pyx_L1_error:;
14083  __Pyx_XDECREF(__pyx_t_1);
14084  __Pyx_XDECREF(__pyx_t_2);
14085  __Pyx_XDECREF(__pyx_t_3);
14086  __Pyx_XDECREF(__pyx_t_5);
14087  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction.lambda7", __pyx_clineno, __pyx_lineno, __pyx_filename);
14088  __pyx_r = NULL;
14089  __pyx_L0:;
14090  __Pyx_XGIVEREF(__pyx_r);
14091  __Pyx_TraceReturn(__pyx_r, 0);
14092  __Pyx_RefNannyFinishContext();
14093  return __pyx_r;
14094 }
14095 
14096 /* "mprans/BoundaryConditions.py":446
14097  * self.dissipation_diffusive.setConstantBC(0.)
14098  *
14099  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
14100  * """
14101  * Sets turbulent boundaries for wall treatment.
14102  */
14103 
14104 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_wall, CYTHON_UNUSED PyObject *__pyx_v_shearStress) {
14105  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_cur_scope;
14106  PyObject *__pyx_r = NULL;
14107  __Pyx_TraceDeclarations
14108  __Pyx_RefNannyDeclarations
14109  PyObject *__pyx_t_1 = NULL;
14110  PyObject *__pyx_t_2 = NULL;
14111  PyObject *__pyx_t_3 = NULL;
14112  int __pyx_lineno = 0;
14113  const char *__pyx_filename = NULL;
14114  int __pyx_clineno = 0;
14115  __Pyx_TraceFrameInit(__pyx_codeobj__22)
14116  __Pyx_RefNannySetupContext("setWallFunction", 0);
14117  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction, __pyx_empty_tuple, NULL);
14118  if (unlikely(!__pyx_cur_scope)) {
14119  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)Py_None);
14120  __Pyx_INCREF(Py_None);
14121  __PYX_ERR(0, 446, __pyx_L1_error)
14122  } else {
14123  __Pyx_GOTREF(__pyx_cur_scope);
14124  }
14125  __Pyx_TraceCall("setWallFunction", __pyx_f[0], 446, 0, __PYX_ERR(0, 446, __pyx_L1_error));
14126 
14127  /* "mprans/BoundaryConditions.py":467
14128  *
14129  * """
14130  * wf = wall # <<<<<<<<<<<<<<
14131  * self.reset()
14132  * self.setNoSlip()
14133  */
14134  __Pyx_INCREF(__pyx_v_wall);
14135  __Pyx_GIVEREF(__pyx_v_wall);
14136  __pyx_cur_scope->__pyx_v_wf = __pyx_v_wall;
14137 
14138  /* "mprans/BoundaryConditions.py":468
14139  * """
14140  * wf = wall
14141  * self.reset() # <<<<<<<<<<<<<<
14142  * self.setNoSlip()
14143  * self.BC_type = "Wall function"
14144  */
14145  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 468, __pyx_L1_error)
14146  __Pyx_GOTREF(__pyx_t_2);
14147  __pyx_t_3 = NULL;
14148  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
14149  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
14150  if (likely(__pyx_t_3)) {
14151  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
14152  __Pyx_INCREF(__pyx_t_3);
14153  __Pyx_INCREF(function);
14154  __Pyx_DECREF_SET(__pyx_t_2, function);
14155  }
14156  }
14157  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
14158  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14159  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 468, __pyx_L1_error)
14160  __Pyx_GOTREF(__pyx_t_1);
14161  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14162  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14163 
14164  /* "mprans/BoundaryConditions.py":469
14165  * wf = wall
14166  * self.reset()
14167  * self.setNoSlip() # <<<<<<<<<<<<<<
14168  * self.BC_type = "Wall function"
14169  * self.dissipation_diffusive.resetBC()
14170  */
14171  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setNoSlip); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 469, __pyx_L1_error)
14172  __Pyx_GOTREF(__pyx_t_2);
14173  __pyx_t_3 = NULL;
14174  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
14175  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
14176  if (likely(__pyx_t_3)) {
14177  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
14178  __Pyx_INCREF(__pyx_t_3);
14179  __Pyx_INCREF(function);
14180  __Pyx_DECREF_SET(__pyx_t_2, function);
14181  }
14182  }
14183  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
14184  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14185  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L1_error)
14186  __Pyx_GOTREF(__pyx_t_1);
14187  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14188  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14189 
14190  /* "mprans/BoundaryConditions.py":470
14191  * self.reset()
14192  * self.setNoSlip()
14193  * self.BC_type = "Wall function" # <<<<<<<<<<<<<<
14194  * self.dissipation_diffusive.resetBC()
14195  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
14196  */
14197  __Pyx_INCREF(__pyx_kp_s_Wall_function);
14198  __Pyx_GIVEREF(__pyx_kp_s_Wall_function);
14199  __Pyx_GOTREF(__pyx_v_self->__pyx_base.BC_type);
14200  __Pyx_DECREF(__pyx_v_self->__pyx_base.BC_type);
14201  __pyx_v_self->__pyx_base.BC_type = __pyx_kp_s_Wall_function;
14202 
14203  /* "mprans/BoundaryConditions.py":471
14204  * self.setNoSlip()
14205  * self.BC_type = "Wall function"
14206  * self.dissipation_diffusive.resetBC() # <<<<<<<<<<<<<<
14207  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
14208  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
14209  */
14210  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_diffusive, 0);
14211 
14212  /* "mprans/BoundaryConditions.py":472
14213  * self.BC_type = "Wall function"
14214  * self.dissipation_diffusive.resetBC()
14215  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n) # <<<<<<<<<<<<<<
14216  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
14217  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
14218  */
14219  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_lambda3, 0, __pyx_n_s_setWallFunction_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
14220  __Pyx_GOTREF(__pyx_t_1);
14221  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__23);
14222  __Pyx_GIVEREF(__pyx_t_1);
14223  __Pyx_GOTREF(__pyx_v_self->k_dirichlet->uOfXT);
14224  __Pyx_DECREF(__pyx_v_self->k_dirichlet->uOfXT);
14225  __pyx_v_self->k_dirichlet->uOfXT = __pyx_t_1;
14226  __pyx_t_1 = 0;
14227 
14228  /* "mprans/BoundaryConditions.py":473
14229  * self.dissipation_diffusive.resetBC()
14230  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
14231  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
14232  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
14233  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
14234  */
14235  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_1lambda4, 0, __pyx_n_s_setWallFunction_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
14236  __Pyx_GOTREF(__pyx_t_1);
14237  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__24);
14238  __Pyx_GIVEREF(__pyx_t_1);
14239  __Pyx_GOTREF(__pyx_v_self->dissipation_dirichlet->uOfXT);
14240  __Pyx_DECREF(__pyx_v_self->dissipation_dirichlet->uOfXT);
14241  __pyx_v_self->dissipation_dirichlet->uOfXT = __pyx_t_1;
14242  __pyx_t_1 = 0;
14243 
14244  /* "mprans/BoundaryConditions.py":474
14245  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
14246  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
14247  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
14248  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
14249  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
14250  */
14251  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_2lambda5, 0, __pyx_n_s_setWallFunction_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L1_error)
14252  __Pyx_GOTREF(__pyx_t_1);
14253  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__25);
14254  __Pyx_GIVEREF(__pyx_t_1);
14255  __Pyx_GOTREF(__pyx_v_self->u_dirichlet->uOfXT);
14256  __Pyx_DECREF(__pyx_v_self->u_dirichlet->uOfXT);
14257  __pyx_v_self->u_dirichlet->uOfXT = __pyx_t_1;
14258  __pyx_t_1 = 0;
14259 
14260  /* "mprans/BoundaryConditions.py":475
14261  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
14262  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
14263  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
14264  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
14265  * """
14266  */
14267  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_3lambda6, 0, __pyx_n_s_setWallFunction_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error)
14268  __Pyx_GOTREF(__pyx_t_1);
14269  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__26);
14270  __Pyx_GIVEREF(__pyx_t_1);
14271  __Pyx_GOTREF(__pyx_v_self->v_dirichlet->uOfXT);
14272  __Pyx_DECREF(__pyx_v_self->v_dirichlet->uOfXT);
14273  __pyx_v_self->v_dirichlet->uOfXT = __pyx_t_1;
14274  __pyx_t_1 = 0;
14275 
14276  /* "mprans/BoundaryConditions.py":476
14277  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
14278  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
14279  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
14280  * """
14281  * self.dissipation_dirichlet.uOfXT = lambda x, t: wf.get_dissipation_dirichlet(x, t)
14282  */
14283  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setWallFunction_4lambda7, 0, __pyx_n_s_setWallFunction_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error)
14284  __Pyx_GOTREF(__pyx_t_1);
14285  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__27);
14286  __Pyx_GIVEREF(__pyx_t_1);
14287  __Pyx_GOTREF(__pyx_v_self->w_dirichlet->uOfXT);
14288  __Pyx_DECREF(__pyx_v_self->w_dirichlet->uOfXT);
14289  __pyx_v_self->w_dirichlet->uOfXT = __pyx_t_1;
14290  __pyx_t_1 = 0;
14291 
14292  /* "mprans/BoundaryConditions.py":446
14293  * self.dissipation_diffusive.setConstantBC(0.)
14294  *
14295  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
14296  * """
14297  * Sets turbulent boundaries for wall treatment.
14298  */
14299 
14300  /* function exit code */
14301  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14302  goto __pyx_L0;
14303  __pyx_L1_error:;
14304  __Pyx_XDECREF(__pyx_t_1);
14305  __Pyx_XDECREF(__pyx_t_2);
14306  __Pyx_XDECREF(__pyx_t_3);
14307  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setWallFunction", __pyx_clineno, __pyx_lineno, __pyx_filename);
14308  __pyx_r = NULL;
14309  __pyx_L0:;
14310  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
14311  __Pyx_XGIVEREF(__pyx_r);
14312  __Pyx_TraceReturn(__pyx_r, 0);
14313  __Pyx_RefNannyFinishContext();
14314  return __pyx_r;
14315 }
14316 
14317 /* "mprans/BoundaryConditions.py":494
14318  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
14319  * """
14320  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
14321  * """
14322  * Sets boundary conditions for moving the mesh with a rigid body
14323  */
14324 
14325 /* Python wrapper */
14326 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14327 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh[] = "BC_RANS.setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None)\n\n Sets boundary conditions for moving the mesh with a rigid body\n\n Parameters\n ----------\n last_pos: array_like\n last position of rigig body\n h: array_like\n displacement of the body\n rot_matrix:\n rotation matrix describing displament due to rotation between last\n position and new position (3x3 array)\n\n (!) if set manually, the input arrays should be updated externally\n without loosing their memory address\n ";
14328 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh = {"setMoveMesh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh};
14329 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14330  PyObject *__pyx_v_last_pos = 0;
14331  PyObject *__pyx_v_h = 0;
14332  PyObject *__pyx_v_rot_matrix = 0;
14333  int __pyx_lineno = 0;
14334  const char *__pyx_filename = NULL;
14335  int __pyx_clineno = 0;
14336  PyObject *__pyx_r = 0;
14337  __Pyx_RefNannyDeclarations
14338  __Pyx_RefNannySetupContext("setMoveMesh (wrapper)", 0);
14339  {
14340  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_last_pos,&__pyx_n_s_h,&__pyx_n_s_rot_matrix,0};
14341  PyObject* values[3] = {0,0,0};
14342  values[1] = ((PyObject *)__pyx_tuple__28);
14343  values[2] = ((PyObject *)Py_None);
14344  if (unlikely(__pyx_kwds)) {
14345  Py_ssize_t kw_args;
14346  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14347  switch (pos_args) {
14348  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14349  CYTHON_FALLTHROUGH;
14350  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14351  CYTHON_FALLTHROUGH;
14352  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14353  CYTHON_FALLTHROUGH;
14354  case 0: break;
14355  default: goto __pyx_L5_argtuple_error;
14356  }
14357  kw_args = PyDict_Size(__pyx_kwds);
14358  switch (pos_args) {
14359  case 0:
14360  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_pos)) != 0)) kw_args--;
14361  else goto __pyx_L5_argtuple_error;
14362  CYTHON_FALLTHROUGH;
14363  case 1:
14364  if (kw_args > 0) {
14365  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h);
14366  if (value) { values[1] = value; kw_args--; }
14367  }
14368  CYTHON_FALLTHROUGH;
14369  case 2:
14370  if (kw_args > 0) {
14371  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rot_matrix);
14372  if (value) { values[2] = value; kw_args--; }
14373  }
14374  }
14375  if (unlikely(kw_args > 0)) {
14376  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMoveMesh") < 0)) __PYX_ERR(0, 494, __pyx_L3_error)
14377  }
14378  } else {
14379  switch (PyTuple_GET_SIZE(__pyx_args)) {
14380  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14381  CYTHON_FALLTHROUGH;
14382  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14383  CYTHON_FALLTHROUGH;
14384  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14385  break;
14386  default: goto __pyx_L5_argtuple_error;
14387  }
14388  }
14389  __pyx_v_last_pos = values[0];
14390  __pyx_v_h = values[1];
14391  __pyx_v_rot_matrix = values[2];
14392  }
14393  goto __pyx_L4_argument_unpacking_done;
14394  __pyx_L5_argtuple_error:;
14395  __Pyx_RaiseArgtupleInvalid("setMoveMesh", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 494, __pyx_L3_error)
14396  __pyx_L3_error:;
14397  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
14398  __Pyx_RefNannyFinishContext();
14399  return NULL;
14400  __pyx_L4_argument_unpacking_done:;
14401  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_last_pos, __pyx_v_h, __pyx_v_rot_matrix);
14402 
14403  /* function exit code */
14404  __Pyx_RefNannyFinishContext();
14405  return __pyx_r;
14406 }
14407 
14408 /* "mprans/BoundaryConditions.py":518
14409  * self.body_python_last_pos = last_pos
14410  * self.body_python_h = h
14411  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t) # <<<<<<<<<<<<<<
14412  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
14413  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
14414  */
14415 
14416 /* Python wrapper */
14417 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_lambda8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14418 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_lambda8 = {"lambda8", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_lambda8, METH_VARARGS|METH_KEYWORDS, 0};
14419 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_lambda8(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14420  PyObject *__pyx_v_x = 0;
14421  PyObject *__pyx_v_t = 0;
14422  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
14423  int __pyx_lineno = 0;
14424  const char *__pyx_filename = NULL;
14425  int __pyx_clineno = 0;
14426  PyObject *__pyx_r = 0;
14427  __Pyx_RefNannyDeclarations
14428  __Pyx_RefNannySetupContext("lambda8 (wrapper)", 0);
14429  {
14430  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
14431  PyObject* values[3] = {0,0,0};
14432  values[2] = ((PyObject *)((PyObject *)Py_None));
14433  if (unlikely(__pyx_kwds)) {
14434  Py_ssize_t kw_args;
14435  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14436  switch (pos_args) {
14437  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14438  CYTHON_FALLTHROUGH;
14439  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14440  CYTHON_FALLTHROUGH;
14441  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14442  CYTHON_FALLTHROUGH;
14443  case 0: break;
14444  default: goto __pyx_L5_argtuple_error;
14445  }
14446  kw_args = PyDict_Size(__pyx_kwds);
14447  switch (pos_args) {
14448  case 0:
14449  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
14450  else goto __pyx_L5_argtuple_error;
14451  CYTHON_FALLTHROUGH;
14452  case 1:
14453  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
14454  else {
14455  __Pyx_RaiseArgtupleInvalid("lambda8", 0, 2, 3, 1); __PYX_ERR(0, 518, __pyx_L3_error)
14456  }
14457  CYTHON_FALLTHROUGH;
14458  case 2:
14459  if (kw_args > 0) {
14460  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
14461  if (value) { values[2] = value; kw_args--; }
14462  }
14463  }
14464  if (unlikely(kw_args > 0)) {
14465  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda8") < 0)) __PYX_ERR(0, 518, __pyx_L3_error)
14466  }
14467  } else {
14468  switch (PyTuple_GET_SIZE(__pyx_args)) {
14469  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14470  CYTHON_FALLTHROUGH;
14471  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14472  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14473  break;
14474  default: goto __pyx_L5_argtuple_error;
14475  }
14476  }
14477  __pyx_v_x = values[0];
14478  __pyx_v_t = values[1];
14479  __pyx_v_n = values[2];
14480  }
14481  goto __pyx_L4_argument_unpacking_done;
14482  __pyx_L5_argtuple_error:;
14483  __Pyx_RaiseArgtupleInvalid("lambda8", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 518, __pyx_L3_error)
14484  __pyx_L3_error:;
14485  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda8", __pyx_clineno, __pyx_lineno, __pyx_filename);
14486  __Pyx_RefNannyFinishContext();
14487  return NULL;
14488  __pyx_L4_argument_unpacking_done:;
14489  __pyx_r = __pyx_lambda_funcdef_lambda8(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
14490 
14491  /* function exit code */
14492  __Pyx_RefNannyFinishContext();
14493  return __pyx_r;
14494 }
14495 
14496 static PyObject *__pyx_lambda_funcdef_lambda8(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
14497  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_cur_scope;
14498  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_outer_scope;
14499  PyObject *__pyx_r = NULL;
14500  __Pyx_TraceDeclarations
14501  __Pyx_RefNannyDeclarations
14502  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
14503  double __pyx_t_2;
14504  PyObject *__pyx_t_3 = NULL;
14505  int __pyx_lineno = 0;
14506  const char *__pyx_filename = NULL;
14507  int __pyx_clineno = 0;
14508  __Pyx_RefNannySetupContext("lambda8", 0);
14509  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
14510  __pyx_cur_scope = __pyx_outer_scope;
14511  __Pyx_TraceCall("lambda8", __pyx_f[0], 518, 0, __PYX_ERR(0, 518, __pyx_L1_error));
14512  __Pyx_XDECREF(__pyx_r);
14513  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 518, __pyx_L1_error) }
14514  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 518, __pyx_L1_error)
14515  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 518, __pyx_L1_error)
14516  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_hx(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error)
14517  __Pyx_GOTREF(__pyx_t_3);
14518  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14519  __pyx_t_1.memview = NULL;
14520  __pyx_t_1.data = NULL;
14521  __pyx_r = __pyx_t_3;
14522  __pyx_t_3 = 0;
14523  goto __pyx_L0;
14524 
14525  /* function exit code */
14526  __pyx_L1_error:;
14527  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14528  __Pyx_XDECREF(__pyx_t_3);
14529  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda8", __pyx_clineno, __pyx_lineno, __pyx_filename);
14530  __pyx_r = NULL;
14531  __pyx_L0:;
14532  __Pyx_XGIVEREF(__pyx_r);
14533  __Pyx_TraceReturn(__pyx_r, 0);
14534  __Pyx_RefNannyFinishContext();
14535  return __pyx_r;
14536 }
14537 
14538 /* "mprans/BoundaryConditions.py":519
14539  * self.body_python_h = h
14540  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
14541  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t) # <<<<<<<<<<<<<<
14542  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
14543  *
14544  */
14545 
14546 /* Python wrapper */
14547 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_1lambda9(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14548 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_1lambda9 = {"lambda9", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_1lambda9, METH_VARARGS|METH_KEYWORDS, 0};
14549 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_1lambda9(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14550  PyObject *__pyx_v_x = 0;
14551  PyObject *__pyx_v_t = 0;
14552  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
14553  int __pyx_lineno = 0;
14554  const char *__pyx_filename = NULL;
14555  int __pyx_clineno = 0;
14556  PyObject *__pyx_r = 0;
14557  __Pyx_RefNannyDeclarations
14558  __Pyx_RefNannySetupContext("lambda9 (wrapper)", 0);
14559  {
14560  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
14561  PyObject* values[3] = {0,0,0};
14562  values[2] = ((PyObject *)((PyObject *)Py_None));
14563  if (unlikely(__pyx_kwds)) {
14564  Py_ssize_t kw_args;
14565  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14566  switch (pos_args) {
14567  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14568  CYTHON_FALLTHROUGH;
14569  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14570  CYTHON_FALLTHROUGH;
14571  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14572  CYTHON_FALLTHROUGH;
14573  case 0: break;
14574  default: goto __pyx_L5_argtuple_error;
14575  }
14576  kw_args = PyDict_Size(__pyx_kwds);
14577  switch (pos_args) {
14578  case 0:
14579  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
14580  else goto __pyx_L5_argtuple_error;
14581  CYTHON_FALLTHROUGH;
14582  case 1:
14583  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
14584  else {
14585  __Pyx_RaiseArgtupleInvalid("lambda9", 0, 2, 3, 1); __PYX_ERR(0, 519, __pyx_L3_error)
14586  }
14587  CYTHON_FALLTHROUGH;
14588  case 2:
14589  if (kw_args > 0) {
14590  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
14591  if (value) { values[2] = value; kw_args--; }
14592  }
14593  }
14594  if (unlikely(kw_args > 0)) {
14595  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda9") < 0)) __PYX_ERR(0, 519, __pyx_L3_error)
14596  }
14597  } else {
14598  switch (PyTuple_GET_SIZE(__pyx_args)) {
14599  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14600  CYTHON_FALLTHROUGH;
14601  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14602  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14603  break;
14604  default: goto __pyx_L5_argtuple_error;
14605  }
14606  }
14607  __pyx_v_x = values[0];
14608  __pyx_v_t = values[1];
14609  __pyx_v_n = values[2];
14610  }
14611  goto __pyx_L4_argument_unpacking_done;
14612  __pyx_L5_argtuple_error:;
14613  __Pyx_RaiseArgtupleInvalid("lambda9", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 519, __pyx_L3_error)
14614  __pyx_L3_error:;
14615  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda9", __pyx_clineno, __pyx_lineno, __pyx_filename);
14616  __Pyx_RefNannyFinishContext();
14617  return NULL;
14618  __pyx_L4_argument_unpacking_done:;
14619  __pyx_r = __pyx_lambda_funcdef_lambda9(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
14620 
14621  /* function exit code */
14622  __Pyx_RefNannyFinishContext();
14623  return __pyx_r;
14624 }
14625 
14626 static PyObject *__pyx_lambda_funcdef_lambda9(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
14627  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_cur_scope;
14628  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_outer_scope;
14629  PyObject *__pyx_r = NULL;
14630  __Pyx_TraceDeclarations
14631  __Pyx_RefNannyDeclarations
14632  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
14633  double __pyx_t_2;
14634  PyObject *__pyx_t_3 = NULL;
14635  int __pyx_lineno = 0;
14636  const char *__pyx_filename = NULL;
14637  int __pyx_clineno = 0;
14638  __Pyx_RefNannySetupContext("lambda9", 0);
14639  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
14640  __pyx_cur_scope = __pyx_outer_scope;
14641  __Pyx_TraceCall("lambda9", __pyx_f[0], 519, 0, __PYX_ERR(0, 519, __pyx_L1_error));
14642  __Pyx_XDECREF(__pyx_r);
14643  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 519, __pyx_L1_error) }
14644  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 519, __pyx_L1_error)
14645  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L1_error)
14646  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_hy(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 519, __pyx_L1_error)
14647  __Pyx_GOTREF(__pyx_t_3);
14648  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14649  __pyx_t_1.memview = NULL;
14650  __pyx_t_1.data = NULL;
14651  __pyx_r = __pyx_t_3;
14652  __pyx_t_3 = 0;
14653  goto __pyx_L0;
14654 
14655  /* function exit code */
14656  __pyx_L1_error:;
14657  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14658  __Pyx_XDECREF(__pyx_t_3);
14659  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda9", __pyx_clineno, __pyx_lineno, __pyx_filename);
14660  __pyx_r = NULL;
14661  __pyx_L0:;
14662  __Pyx_XGIVEREF(__pyx_r);
14663  __Pyx_TraceReturn(__pyx_r, 0);
14664  __Pyx_RefNannyFinishContext();
14665  return __pyx_r;
14666 }
14667 
14668 /* "mprans/BoundaryConditions.py":520
14669  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
14670  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
14671  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t) # <<<<<<<<<<<<<<
14672  *
14673  * def __cpp_MoveMesh_h(self, x, t):
14674  */
14675 
14676 /* Python wrapper */
14677 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_2lambda10(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14678 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_2lambda10 = {"lambda10", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_2lambda10, METH_VARARGS|METH_KEYWORDS, 0};
14679 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_2lambda10(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14680  PyObject *__pyx_v_x = 0;
14681  PyObject *__pyx_v_t = 0;
14682  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
14683  int __pyx_lineno = 0;
14684  const char *__pyx_filename = NULL;
14685  int __pyx_clineno = 0;
14686  PyObject *__pyx_r = 0;
14687  __Pyx_RefNannyDeclarations
14688  __Pyx_RefNannySetupContext("lambda10 (wrapper)", 0);
14689  {
14690  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
14691  PyObject* values[3] = {0,0,0};
14692  values[2] = ((PyObject *)((PyObject *)Py_None));
14693  if (unlikely(__pyx_kwds)) {
14694  Py_ssize_t kw_args;
14695  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14696  switch (pos_args) {
14697  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14698  CYTHON_FALLTHROUGH;
14699  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14700  CYTHON_FALLTHROUGH;
14701  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14702  CYTHON_FALLTHROUGH;
14703  case 0: break;
14704  default: goto __pyx_L5_argtuple_error;
14705  }
14706  kw_args = PyDict_Size(__pyx_kwds);
14707  switch (pos_args) {
14708  case 0:
14709  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
14710  else goto __pyx_L5_argtuple_error;
14711  CYTHON_FALLTHROUGH;
14712  case 1:
14713  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
14714  else {
14715  __Pyx_RaiseArgtupleInvalid("lambda10", 0, 2, 3, 1); __PYX_ERR(0, 520, __pyx_L3_error)
14716  }
14717  CYTHON_FALLTHROUGH;
14718  case 2:
14719  if (kw_args > 0) {
14720  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
14721  if (value) { values[2] = value; kw_args--; }
14722  }
14723  }
14724  if (unlikely(kw_args > 0)) {
14725  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda10") < 0)) __PYX_ERR(0, 520, __pyx_L3_error)
14726  }
14727  } else {
14728  switch (PyTuple_GET_SIZE(__pyx_args)) {
14729  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14730  CYTHON_FALLTHROUGH;
14731  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14732  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14733  break;
14734  default: goto __pyx_L5_argtuple_error;
14735  }
14736  }
14737  __pyx_v_x = values[0];
14738  __pyx_v_t = values[1];
14739  __pyx_v_n = values[2];
14740  }
14741  goto __pyx_L4_argument_unpacking_done;
14742  __pyx_L5_argtuple_error:;
14743  __Pyx_RaiseArgtupleInvalid("lambda10", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 520, __pyx_L3_error)
14744  __pyx_L3_error:;
14745  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda10", __pyx_clineno, __pyx_lineno, __pyx_filename);
14746  __Pyx_RefNannyFinishContext();
14747  return NULL;
14748  __pyx_L4_argument_unpacking_done:;
14749  __pyx_r = __pyx_lambda_funcdef_lambda10(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
14750 
14751  /* function exit code */
14752  __Pyx_RefNannyFinishContext();
14753  return __pyx_r;
14754 }
14755 
14756 static PyObject *__pyx_lambda_funcdef_lambda10(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
14757  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_cur_scope;
14758  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_outer_scope;
14759  PyObject *__pyx_r = NULL;
14760  __Pyx_TraceDeclarations
14761  __Pyx_RefNannyDeclarations
14762  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
14763  double __pyx_t_2;
14764  PyObject *__pyx_t_3 = NULL;
14765  int __pyx_lineno = 0;
14766  const char *__pyx_filename = NULL;
14767  int __pyx_clineno = 0;
14768  __Pyx_RefNannySetupContext("lambda10", 0);
14769  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *) __Pyx_CyFunction_GetClosure(__pyx_self);
14770  __pyx_cur_scope = __pyx_outer_scope;
14771  __Pyx_TraceCall("lambda10", __pyx_f[0], 520, 0, __PYX_ERR(0, 520, __pyx_L1_error));
14772  __Pyx_XDECREF(__pyx_r);
14773  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 520, __pyx_L1_error) }
14774  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 520, __pyx_L1_error)
14775  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 520, __pyx_L1_error)
14776  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_hz(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error)
14777  __Pyx_GOTREF(__pyx_t_3);
14778  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14779  __pyx_t_1.memview = NULL;
14780  __pyx_t_1.data = NULL;
14781  __pyx_r = __pyx_t_3;
14782  __pyx_t_3 = 0;
14783  goto __pyx_L0;
14784 
14785  /* function exit code */
14786  __pyx_L1_error:;
14787  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
14788  __Pyx_XDECREF(__pyx_t_3);
14789  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh.lambda10", __pyx_clineno, __pyx_lineno, __pyx_filename);
14790  __pyx_r = NULL;
14791  __pyx_L0:;
14792  __Pyx_XGIVEREF(__pyx_r);
14793  __Pyx_TraceReturn(__pyx_r, 0);
14794  __Pyx_RefNannyFinishContext();
14795  return __pyx_r;
14796 }
14797 
14798 /* "mprans/BoundaryConditions.py":494
14799  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
14800  * """
14801  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
14802  * """
14803  * Sets boundary conditions for moving the mesh with a rigid body
14804  */
14805 
14806 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_last_pos, PyObject *__pyx_v_h, PyObject *__pyx_v_rot_matrix) {
14807  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_cur_scope;
14808  PyObject *__pyx_r = NULL;
14809  __Pyx_TraceDeclarations
14810  __Pyx_RefNannyDeclarations
14811  int __pyx_t_1;
14812  int __pyx_t_2;
14813  PyObject *__pyx_t_3 = NULL;
14814  PyObject *__pyx_t_4 = NULL;
14815  PyObject *__pyx_t_5 = NULL;
14816  PyObject *__pyx_t_6 = NULL;
14817  PyObject *__pyx_t_7 = NULL;
14818  PyObject *__pyx_t_8 = NULL;
14819  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
14820  __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
14821  int __pyx_lineno = 0;
14822  const char *__pyx_filename = NULL;
14823  int __pyx_clineno = 0;
14824  __Pyx_TraceFrameInit(__pyx_codeobj__29)
14825  __Pyx_RefNannySetupContext("setMoveMesh", 0);
14826  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh, __pyx_empty_tuple, NULL);
14827  if (unlikely(!__pyx_cur_scope)) {
14828  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)Py_None);
14829  __Pyx_INCREF(Py_None);
14830  __PYX_ERR(0, 494, __pyx_L1_error)
14831  } else {
14832  __Pyx_GOTREF(__pyx_cur_scope);
14833  }
14834  __Pyx_TraceCall("setMoveMesh", __pyx_f[0], 494, 0, __PYX_ERR(0, 494, __pyx_L1_error));
14835  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
14836  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
14837  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
14838  __Pyx_INCREF(__pyx_v_rot_matrix);
14839 
14840  /* "mprans/BoundaryConditions.py":511
14841  * without loosing their memory address
14842  * """
14843  * if rot_matrix is None: # <<<<<<<<<<<<<<
14844  * rot_matrix = np.array([[1., 0., 0.],
14845  * [0., 1., 0.],
14846  */
14847  __pyx_t_1 = (__pyx_v_rot_matrix == Py_None);
14848  __pyx_t_2 = (__pyx_t_1 != 0);
14849  if (__pyx_t_2) {
14850 
14851  /* "mprans/BoundaryConditions.py":512
14852  * """
14853  * if rot_matrix is None:
14854  * rot_matrix = np.array([[1., 0., 0.], # <<<<<<<<<<<<<<
14855  * [0., 1., 0.],
14856  * [0., 0., 1.]])
14857  */
14858  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
14859  __Pyx_GOTREF(__pyx_t_4);
14860  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L1_error)
14861  __Pyx_GOTREF(__pyx_t_5);
14862  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14863  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
14864  __Pyx_GOTREF(__pyx_t_4);
14865  __Pyx_INCREF(__pyx_float_1_);
14866  __Pyx_GIVEREF(__pyx_float_1_);
14867  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_1_);
14868  __Pyx_INCREF(__pyx_float_0_);
14869  __Pyx_GIVEREF(__pyx_float_0_);
14870  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_0_);
14871  __Pyx_INCREF(__pyx_float_0_);
14872  __Pyx_GIVEREF(__pyx_float_0_);
14873  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_0_);
14874 
14875  /* "mprans/BoundaryConditions.py":513
14876  * if rot_matrix is None:
14877  * rot_matrix = np.array([[1., 0., 0.],
14878  * [0., 1., 0.], # <<<<<<<<<<<<<<
14879  * [0., 0., 1.]])
14880  * self.body_python_rot_matrix = rot_matrix
14881  */
14882  __pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 513, __pyx_L1_error)
14883  __Pyx_GOTREF(__pyx_t_6);
14884  __Pyx_INCREF(__pyx_float_0_);
14885  __Pyx_GIVEREF(__pyx_float_0_);
14886  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_0_);
14887  __Pyx_INCREF(__pyx_float_1_);
14888  __Pyx_GIVEREF(__pyx_float_1_);
14889  PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_1_);
14890  __Pyx_INCREF(__pyx_float_0_);
14891  __Pyx_GIVEREF(__pyx_float_0_);
14892  PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_0_);
14893 
14894  /* "mprans/BoundaryConditions.py":514
14895  * rot_matrix = np.array([[1., 0., 0.],
14896  * [0., 1., 0.],
14897  * [0., 0., 1.]]) # <<<<<<<<<<<<<<
14898  * self.body_python_rot_matrix = rot_matrix
14899  * self.body_python_last_pos = last_pos
14900  */
14901  __pyx_t_7 = PyList_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 514, __pyx_L1_error)
14902  __Pyx_GOTREF(__pyx_t_7);
14903  __Pyx_INCREF(__pyx_float_0_);
14904  __Pyx_GIVEREF(__pyx_float_0_);
14905  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_0_);
14906  __Pyx_INCREF(__pyx_float_0_);
14907  __Pyx_GIVEREF(__pyx_float_0_);
14908  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_0_);
14909  __Pyx_INCREF(__pyx_float_1_);
14910  __Pyx_GIVEREF(__pyx_float_1_);
14911  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_float_1_);
14912 
14913  /* "mprans/BoundaryConditions.py":512
14914  * """
14915  * if rot_matrix is None:
14916  * rot_matrix = np.array([[1., 0., 0.], # <<<<<<<<<<<<<<
14917  * [0., 1., 0.],
14918  * [0., 0., 1.]])
14919  */
14920  __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 512, __pyx_L1_error)
14921  __Pyx_GOTREF(__pyx_t_8);
14922  __Pyx_GIVEREF(__pyx_t_4);
14923  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
14924  __Pyx_GIVEREF(__pyx_t_6);
14925  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
14926  __Pyx_GIVEREF(__pyx_t_7);
14927  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_7);
14928  __pyx_t_4 = 0;
14929  __pyx_t_6 = 0;
14930  __pyx_t_7 = 0;
14931  __pyx_t_7 = NULL;
14932  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
14933  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
14934  if (likely(__pyx_t_7)) {
14935  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
14936  __Pyx_INCREF(__pyx_t_7);
14937  __Pyx_INCREF(function);
14938  __Pyx_DECREF_SET(__pyx_t_5, function);
14939  }
14940  }
14941  __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8);
14942  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
14943  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14944  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 512, __pyx_L1_error)
14945  __Pyx_GOTREF(__pyx_t_3);
14946  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14947  __Pyx_DECREF_SET(__pyx_v_rot_matrix, __pyx_t_3);
14948  __pyx_t_3 = 0;
14949 
14950  /* "mprans/BoundaryConditions.py":511
14951  * without loosing their memory address
14952  * """
14953  * if rot_matrix is None: # <<<<<<<<<<<<<<
14954  * rot_matrix = np.array([[1., 0., 0.],
14955  * [0., 1., 0.],
14956  */
14957  }
14958 
14959  /* "mprans/BoundaryConditions.py":515
14960  * [0., 1., 0.],
14961  * [0., 0., 1.]])
14962  * self.body_python_rot_matrix = rot_matrix # <<<<<<<<<<<<<<
14963  * self.body_python_last_pos = last_pos
14964  * self.body_python_h = h
14965  */
14966  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_rot_matrix, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 515, __pyx_L1_error)
14967  __PYX_XDEC_MEMVIEW(&__pyx_cur_scope->__pyx_v_self->body_python_rot_matrix, 0);
14968  __pyx_cur_scope->__pyx_v_self->body_python_rot_matrix = __pyx_t_9;
14969  __pyx_t_9.memview = NULL;
14970  __pyx_t_9.data = NULL;
14971 
14972  /* "mprans/BoundaryConditions.py":516
14973  * [0., 0., 1.]])
14974  * self.body_python_rot_matrix = rot_matrix
14975  * self.body_python_last_pos = last_pos # <<<<<<<<<<<<<<
14976  * self.body_python_h = h
14977  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
14978  */
14979  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_last_pos, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 516, __pyx_L1_error)
14980  __PYX_XDEC_MEMVIEW(&__pyx_cur_scope->__pyx_v_self->body_python_last_pos, 0);
14981  __pyx_cur_scope->__pyx_v_self->body_python_last_pos = __pyx_t_10;
14982  __pyx_t_10.memview = NULL;
14983  __pyx_t_10.data = NULL;
14984 
14985  /* "mprans/BoundaryConditions.py":517
14986  * self.body_python_rot_matrix = rot_matrix
14987  * self.body_python_last_pos = last_pos
14988  * self.body_python_h = h # <<<<<<<<<<<<<<
14989  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
14990  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
14991  */
14992  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_h, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 517, __pyx_L1_error)
14993  __PYX_XDEC_MEMVIEW(&__pyx_cur_scope->__pyx_v_self->body_python_h, 0);
14994  __pyx_cur_scope->__pyx_v_self->body_python_h = __pyx_t_10;
14995  __pyx_t_10.memview = NULL;
14996  __pyx_t_10.data = NULL;
14997 
14998  /* "mprans/BoundaryConditions.py":518
14999  * self.body_python_last_pos = last_pos
15000  * self.body_python_h = h
15001  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t) # <<<<<<<<<<<<<<
15002  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
15003  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
15004  */
15005  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_lambda8, 0, __pyx_n_s_setMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error)
15006  __Pyx_GOTREF(__pyx_t_3);
15007  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__30);
15008  __Pyx_GIVEREF(__pyx_t_3);
15009  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->hx_dirichlet->uOfXT);
15010  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->hx_dirichlet->uOfXT);
15011  __pyx_cur_scope->__pyx_v_self->hx_dirichlet->uOfXT = __pyx_t_3;
15012  __pyx_t_3 = 0;
15013 
15014  /* "mprans/BoundaryConditions.py":519
15015  * self.body_python_h = h
15016  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
15017  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t) # <<<<<<<<<<<<<<
15018  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
15019  *
15020  */
15021  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_1lambda9, 0, __pyx_n_s_setMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 519, __pyx_L1_error)
15022  __Pyx_GOTREF(__pyx_t_3);
15023  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__31);
15024  __Pyx_GIVEREF(__pyx_t_3);
15025  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->hy_dirichlet->uOfXT);
15026  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->hy_dirichlet->uOfXT);
15027  __pyx_cur_scope->__pyx_v_self->hy_dirichlet->uOfXT = __pyx_t_3;
15028  __pyx_t_3 = 0;
15029 
15030  /* "mprans/BoundaryConditions.py":520
15031  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
15032  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
15033  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t) # <<<<<<<<<<<<<<
15034  *
15035  * def __cpp_MoveMesh_h(self, x, t):
15036  */
15037  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setMoveMesh_2lambda10, 0, __pyx_n_s_setMoveMesh_locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error)
15038  __Pyx_GOTREF(__pyx_t_3);
15039  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__32);
15040  __Pyx_GIVEREF(__pyx_t_3);
15041  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->hz_dirichlet->uOfXT);
15042  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->hz_dirichlet->uOfXT);
15043  __pyx_cur_scope->__pyx_v_self->hz_dirichlet->uOfXT = __pyx_t_3;
15044  __pyx_t_3 = 0;
15045 
15046  /* "mprans/BoundaryConditions.py":494
15047  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
15048  * """
15049  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
15050  * """
15051  * Sets boundary conditions for moving the mesh with a rigid body
15052  */
15053 
15054  /* function exit code */
15055  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15056  goto __pyx_L0;
15057  __pyx_L1_error:;
15058  __Pyx_XDECREF(__pyx_t_3);
15059  __Pyx_XDECREF(__pyx_t_4);
15060  __Pyx_XDECREF(__pyx_t_5);
15061  __Pyx_XDECREF(__pyx_t_6);
15062  __Pyx_XDECREF(__pyx_t_7);
15063  __Pyx_XDECREF(__pyx_t_8);
15064  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
15065  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
15066  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setMoveMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
15067  __pyx_r = NULL;
15068  __pyx_L0:;
15069  __Pyx_XDECREF(__pyx_v_rot_matrix);
15070  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
15071  __Pyx_XGIVEREF(__pyx_r);
15072  __Pyx_TraceReturn(__pyx_r, 0);
15073  __Pyx_RefNannyFinishContext();
15074  return __pyx_r;
15075 }
15076 
15077 /* "mprans/BoundaryConditions.py":522
15078  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
15079  *
15080  * def __cpp_MoveMesh_h(self, x, t): # <<<<<<<<<<<<<<
15081  * cython.declare(x_0=cython.double[3])
15082  * cython.declare(new_x_0=cython.double[3])
15083  */
15084 
15085 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15086 __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_h(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, CYTHON_UNUSED double __pyx_v_t, int __pyx_skip_dispatch) {
15087  PyArrayObject *__pyx_v_hx = 0;
15088  double __pyx_v_x_0[3];
15089  double __pyx_v_new_x_0[3];
15090  __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
15091  __Pyx_TraceDeclarations
15092  __Pyx_RefNannyDeclarations
15093  PyObject *__pyx_t_1 = NULL;
15094  PyObject *__pyx_t_2 = NULL;
15095  PyObject *__pyx_t_3 = NULL;
15096  PyObject *__pyx_t_4 = NULL;
15097  PyObject *__pyx_t_5 = NULL;
15098  PyObject *__pyx_t_6 = NULL;
15099  int __pyx_t_7;
15100  PyObject *__pyx_t_8 = NULL;
15101  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
15102  Py_ssize_t __pyx_t_10;
15103  Py_ssize_t __pyx_t_11;
15104  double __pyx_t_12[3];
15105  int __pyx_lineno = 0;
15106  const char *__pyx_filename = NULL;
15107  int __pyx_clineno = 0;
15108  __Pyx_TraceFrameInit(__pyx_codeobj__33)
15109  __Pyx_RefNannySetupContext("__cpp_MoveMesh_h", 0);
15110  __Pyx_TraceCall("__cpp_MoveMesh_h", __pyx_f[0], 522, 0, __PYX_ERR(0, 522, __pyx_L1_error));
15111  /* Check if called by wrapper */
15112  if (unlikely(__pyx_skip_dispatch)) ;
15113  /* Check if overridden in Python */
15114  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15115  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15116  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15117  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15118  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15119  #endif
15120  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpp_MoveMesh_h); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error)
15121  __Pyx_GOTREF(__pyx_t_1);
15122  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h)) {
15123  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_x, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 522, __pyx_L1_error)
15124  __Pyx_GOTREF(__pyx_t_3);
15125  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 522, __pyx_L1_error)
15126  __Pyx_GOTREF(__pyx_t_4);
15127  __Pyx_INCREF(__pyx_t_1);
15128  __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
15129  __pyx_t_7 = 0;
15130  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
15131  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
15132  if (likely(__pyx_t_6)) {
15133  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
15134  __Pyx_INCREF(__pyx_t_6);
15135  __Pyx_INCREF(function);
15136  __Pyx_DECREF_SET(__pyx_t_5, function);
15137  __pyx_t_7 = 1;
15138  }
15139  }
15140  #if CYTHON_FAST_PYCALL
15141  if (PyFunction_Check(__pyx_t_5)) {
15142  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15143  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
15144  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15145  __Pyx_GOTREF(__pyx_t_2);
15146  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15147  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15148  } else
15149  #endif
15150  #if CYTHON_FAST_PYCCALL
15151  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
15152  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15153  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
15154  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15155  __Pyx_GOTREF(__pyx_t_2);
15156  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15157  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15158  } else
15159  #endif
15160  {
15161  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 522, __pyx_L1_error)
15162  __Pyx_GOTREF(__pyx_t_8);
15163  if (__pyx_t_6) {
15164  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
15165  }
15166  __Pyx_GIVEREF(__pyx_t_3);
15167  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
15168  __Pyx_GIVEREF(__pyx_t_4);
15169  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
15170  __pyx_t_3 = 0;
15171  __pyx_t_4 = 0;
15172  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
15173  __Pyx_GOTREF(__pyx_t_2);
15174  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15175  }
15176  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15177  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 522, __pyx_L1_error)
15178  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15179  __pyx_r = __pyx_t_9;
15180  __pyx_t_9.memview = NULL;
15181  __pyx_t_9.data = NULL;
15182  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15183  goto __pyx_L0;
15184  }
15185  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15186  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15187  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15188  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15189  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15190  }
15191  #endif
15192  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15193  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15194  }
15195  #endif
15196  }
15197 
15198  /* "mprans/BoundaryConditions.py":525
15199  * cython.declare(x_0=cython.double[3])
15200  * cython.declare(new_x_0=cython.double[3])
15201  * hx = np.zeros(3) # <<<<<<<<<<<<<<
15202  * x_0[0] = x[0] - self.body_python_last_pos[0]
15203  * x_0[1] = x[1] - self.body_python_last_pos[1]
15204  */
15205  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error)
15206  __Pyx_GOTREF(__pyx_t_2);
15207  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 525, __pyx_L1_error)
15208  __Pyx_GOTREF(__pyx_t_5);
15209  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15210  __pyx_t_2 = NULL;
15211  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
15212  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
15213  if (likely(__pyx_t_2)) {
15214  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
15215  __Pyx_INCREF(__pyx_t_2);
15216  __Pyx_INCREF(function);
15217  __Pyx_DECREF_SET(__pyx_t_5, function);
15218  }
15219  }
15220  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_int_3);
15221  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
15222  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
15223  __Pyx_GOTREF(__pyx_t_1);
15224  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15225  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 525, __pyx_L1_error)
15226  __pyx_v_hx = ((PyArrayObject *)__pyx_t_1);
15227  __pyx_t_1 = 0;
15228 
15229  /* "mprans/BoundaryConditions.py":526
15230  * cython.declare(new_x_0=cython.double[3])
15231  * hx = np.zeros(3)
15232  * x_0[0] = x[0] - self.body_python_last_pos[0] # <<<<<<<<<<<<<<
15233  * x_0[1] = x[1] - self.body_python_last_pos[1]
15234  * x_0[2] = x[2] - self.body_python_last_pos[2]
15235  */
15236  __pyx_t_10 = 0;
15237  __pyx_t_11 = 0;
15238  (__pyx_v_x_0[0]) = ((*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_10 * __pyx_v_x.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_last_pos.data + __pyx_t_11 * __pyx_v_self->body_python_last_pos.strides[0]) ))));
15239 
15240  /* "mprans/BoundaryConditions.py":527
15241  * hx = np.zeros(3)
15242  * x_0[0] = x[0] - self.body_python_last_pos[0]
15243  * x_0[1] = x[1] - self.body_python_last_pos[1] # <<<<<<<<<<<<<<
15244  * x_0[2] = x[2] - self.body_python_last_pos[2]
15245  * new_x_0 = np.dot(x_0, self.body_python_rot_matrix)
15246  */
15247  __pyx_t_11 = 1;
15248  __pyx_t_10 = 1;
15249  (__pyx_v_x_0[1]) = ((*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_11 * __pyx_v_x.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_last_pos.data + __pyx_t_10 * __pyx_v_self->body_python_last_pos.strides[0]) ))));
15250 
15251  /* "mprans/BoundaryConditions.py":528
15252  * x_0[0] = x[0] - self.body_python_last_pos[0]
15253  * x_0[1] = x[1] - self.body_python_last_pos[1]
15254  * x_0[2] = x[2] - self.body_python_last_pos[2] # <<<<<<<<<<<<<<
15255  * new_x_0 = np.dot(x_0, self.body_python_rot_matrix)
15256  * hx[0] = new_x_0[0] - x_0[0] + self.body_python_h[0]
15257  */
15258  __pyx_t_10 = 2;
15259  __pyx_t_11 = 2;
15260  (__pyx_v_x_0[2]) = ((*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_10 * __pyx_v_x.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_last_pos.data + __pyx_t_11 * __pyx_v_self->body_python_last_pos.strides[0]) ))));
15261 
15262  /* "mprans/BoundaryConditions.py":529
15263  * x_0[1] = x[1] - self.body_python_last_pos[1]
15264  * x_0[2] = x[2] - self.body_python_last_pos[2]
15265  * new_x_0 = np.dot(x_0, self.body_python_rot_matrix) # <<<<<<<<<<<<<<
15266  * hx[0] = new_x_0[0] - x_0[0] + self.body_python_h[0]
15267  * hx[1] = new_x_0[1] - x_0[1] + self.body_python_h[1]
15268  */
15269  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 529, __pyx_L1_error)
15270  __Pyx_GOTREF(__pyx_t_5);
15271  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_dot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 529, __pyx_L1_error)
15272  __Pyx_GOTREF(__pyx_t_2);
15273  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15274  __pyx_t_5 = __Pyx_carray_to_py_double(__pyx_v_x_0, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 529, __pyx_L1_error)
15275  __Pyx_GOTREF(__pyx_t_5);
15276  __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_self->body_python_rot_matrix, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 529, __pyx_L1_error)
15277  __Pyx_GOTREF(__pyx_t_8);
15278  __pyx_t_4 = NULL;
15279  __pyx_t_7 = 0;
15280  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
15281  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
15282  if (likely(__pyx_t_4)) {
15283  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15284  __Pyx_INCREF(__pyx_t_4);
15285  __Pyx_INCREF(function);
15286  __Pyx_DECREF_SET(__pyx_t_2, function);
15287  __pyx_t_7 = 1;
15288  }
15289  }
15290  #if CYTHON_FAST_PYCALL
15291  if (PyFunction_Check(__pyx_t_2)) {
15292  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_8};
15293  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error)
15294  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15295  __Pyx_GOTREF(__pyx_t_1);
15296  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15297  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15298  } else
15299  #endif
15300  #if CYTHON_FAST_PYCCALL
15301  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
15302  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_8};
15303  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error)
15304  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15305  __Pyx_GOTREF(__pyx_t_1);
15306  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15307  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15308  } else
15309  #endif
15310  {
15311  __pyx_t_3 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 529, __pyx_L1_error)
15312  __Pyx_GOTREF(__pyx_t_3);
15313  if (__pyx_t_4) {
15314  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
15315  }
15316  __Pyx_GIVEREF(__pyx_t_5);
15317  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_7, __pyx_t_5);
15318  __Pyx_GIVEREF(__pyx_t_8);
15319  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_7, __pyx_t_8);
15320  __pyx_t_5 = 0;
15321  __pyx_t_8 = 0;
15322  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error)
15323  __Pyx_GOTREF(__pyx_t_1);
15324  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15325  }
15326  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15327  if (unlikely(__Pyx_carray_from_py_double(__pyx_t_1, __pyx_t_12, 3) < 0)) __PYX_ERR(0, 529, __pyx_L1_error)
15328  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15329  memcpy(&(__pyx_v_new_x_0[0]), __pyx_t_12, sizeof(__pyx_v_new_x_0[0]) * (3));
15330 
15331  /* "mprans/BoundaryConditions.py":530
15332  * x_0[2] = x[2] - self.body_python_last_pos[2]
15333  * new_x_0 = np.dot(x_0, self.body_python_rot_matrix)
15334  * hx[0] = new_x_0[0] - x_0[0] + self.body_python_h[0] # <<<<<<<<<<<<<<
15335  * hx[1] = new_x_0[1] - x_0[1] + self.body_python_h[1]
15336  * hx[2] = new_x_0[2] - x_0[2] + self.body_python_h[2]
15337  */
15338  __pyx_t_11 = 0;
15339  __pyx_t_1 = PyFloat_FromDouble((((__pyx_v_new_x_0[0]) - (__pyx_v_x_0[0])) + (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_h.data + __pyx_t_11 * __pyx_v_self->body_python_h.strides[0]) ))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 530, __pyx_L1_error)
15340  __Pyx_GOTREF(__pyx_t_1);
15341  if (unlikely(__Pyx_SetItemInt(((PyObject *)__pyx_v_hx), 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 530, __pyx_L1_error)
15342  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15343 
15344  /* "mprans/BoundaryConditions.py":531
15345  * new_x_0 = np.dot(x_0, self.body_python_rot_matrix)
15346  * hx[0] = new_x_0[0] - x_0[0] + self.body_python_h[0]
15347  * hx[1] = new_x_0[1] - x_0[1] + self.body_python_h[1] # <<<<<<<<<<<<<<
15348  * hx[2] = new_x_0[2] - x_0[2] + self.body_python_h[2]
15349  * return hx
15350  */
15351  __pyx_t_11 = 1;
15352  __pyx_t_1 = PyFloat_FromDouble((((__pyx_v_new_x_0[1]) - (__pyx_v_x_0[1])) + (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_h.data + __pyx_t_11 * __pyx_v_self->body_python_h.strides[0]) ))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 531, __pyx_L1_error)
15353  __Pyx_GOTREF(__pyx_t_1);
15354  if (unlikely(__Pyx_SetItemInt(((PyObject *)__pyx_v_hx), 1, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 531, __pyx_L1_error)
15355  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15356 
15357  /* "mprans/BoundaryConditions.py":532
15358  * hx[0] = new_x_0[0] - x_0[0] + self.body_python_h[0]
15359  * hx[1] = new_x_0[1] - x_0[1] + self.body_python_h[1]
15360  * hx[2] = new_x_0[2] - x_0[2] + self.body_python_h[2] # <<<<<<<<<<<<<<
15361  * return hx
15362  *
15363  */
15364  __pyx_t_11 = 2;
15365  __pyx_t_1 = PyFloat_FromDouble((((__pyx_v_new_x_0[2]) - (__pyx_v_x_0[2])) + (*((double *) ( /* dim=0 */ (__pyx_v_self->body_python_h.data + __pyx_t_11 * __pyx_v_self->body_python_h.strides[0]) ))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 532, __pyx_L1_error)
15366  __Pyx_GOTREF(__pyx_t_1);
15367  if (unlikely(__Pyx_SetItemInt(((PyObject *)__pyx_v_hx), 2, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 532, __pyx_L1_error)
15368  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15369 
15370  /* "mprans/BoundaryConditions.py":533
15371  * hx[1] = new_x_0[1] - x_0[1] + self.body_python_h[1]
15372  * hx[2] = new_x_0[2] - x_0[2] + self.body_python_h[2]
15373  * return hx # <<<<<<<<<<<<<<
15374  *
15375  * def __cpp_MoveMesh_hx(self, x, t):
15376  */
15377  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(((PyObject *)__pyx_v_hx), PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 533, __pyx_L1_error)
15378  __pyx_r = __pyx_t_9;
15379  __pyx_t_9.memview = NULL;
15380  __pyx_t_9.data = NULL;
15381  goto __pyx_L0;
15382 
15383  /* "mprans/BoundaryConditions.py":522
15384  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
15385  *
15386  * def __cpp_MoveMesh_h(self, x, t): # <<<<<<<<<<<<<<
15387  * cython.declare(x_0=cython.double[3])
15388  * cython.declare(new_x_0=cython.double[3])
15389  */
15390 
15391  /* function exit code */
15392  __pyx_L1_error:;
15393  __Pyx_XDECREF(__pyx_t_1);
15394  __Pyx_XDECREF(__pyx_t_2);
15395  __Pyx_XDECREF(__pyx_t_3);
15396  __Pyx_XDECREF(__pyx_t_4);
15397  __Pyx_XDECREF(__pyx_t_5);
15398  __Pyx_XDECREF(__pyx_t_6);
15399  __Pyx_XDECREF(__pyx_t_8);
15400  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
15401  __pyx_r.data = NULL;
15402  __pyx_r.memview = NULL;
15403  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
15404  goto __pyx_L2;
15405  __pyx_L0:;
15406  if (unlikely(!__pyx_r.memview)) {
15407  PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized");
15408  }
15409  __pyx_L2:;
15410  __Pyx_XDECREF((PyObject *)__pyx_v_hx);
15411  __Pyx_TraceReturn(Py_None, 0);
15412  __Pyx_RefNannyFinishContext();
15413  return __pyx_r;
15414 }
15415 
15416 /* Python wrapper */
15417 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15418 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_32__cpp_MoveMesh_h[] = "BC_RANS.__cpp_MoveMesh_h(self, double[:] x, double t) -> double[:]";
15419 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h = {"__cpp_MoveMesh_h", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_32__cpp_MoveMesh_h};
15420 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15421  __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
15422  double __pyx_v_t;
15423  int __pyx_lineno = 0;
15424  const char *__pyx_filename = NULL;
15425  int __pyx_clineno = 0;
15426  PyObject *__pyx_r = 0;
15427  __Pyx_RefNannyDeclarations
15428  __Pyx_RefNannySetupContext("__cpp_MoveMesh_h (wrapper)", 0);
15429  {
15430  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,0};
15431  PyObject* values[2] = {0,0};
15432  if (unlikely(__pyx_kwds)) {
15433  Py_ssize_t kw_args;
15434  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15435  switch (pos_args) {
15436  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15437  CYTHON_FALLTHROUGH;
15438  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15439  CYTHON_FALLTHROUGH;
15440  case 0: break;
15441  default: goto __pyx_L5_argtuple_error;
15442  }
15443  kw_args = PyDict_Size(__pyx_kwds);
15444  switch (pos_args) {
15445  case 0:
15446  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
15447  else goto __pyx_L5_argtuple_error;
15448  CYTHON_FALLTHROUGH;
15449  case 1:
15450  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
15451  else {
15452  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_h", 1, 2, 2, 1); __PYX_ERR(0, 522, __pyx_L3_error)
15453  }
15454  }
15455  if (unlikely(kw_args > 0)) {
15456  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cpp_MoveMesh_h") < 0)) __PYX_ERR(0, 522, __pyx_L3_error)
15457  }
15458  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15459  goto __pyx_L5_argtuple_error;
15460  } else {
15461  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15462  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15463  }
15464  __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 522, __pyx_L3_error)
15465  __pyx_v_t = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_t == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 522, __pyx_L3_error)
15466  }
15467  goto __pyx_L4_argument_unpacking_done;
15468  __pyx_L5_argtuple_error:;
15469  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_h", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 522, __pyx_L3_error)
15470  __pyx_L3_error:;
15471  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
15472  __Pyx_RefNannyFinishContext();
15473  return NULL;
15474  __pyx_L4_argument_unpacking_done:;
15475  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_32__cpp_MoveMesh_h(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_x, __pyx_v_t);
15476 
15477  /* function exit code */
15478  __Pyx_RefNannyFinishContext();
15479  return __pyx_r;
15480 }
15481 
15482 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_32__cpp_MoveMesh_h(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
15483  PyObject *__pyx_r = NULL;
15484  __Pyx_TraceDeclarations
15485  __Pyx_RefNannyDeclarations
15486  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
15487  PyObject *__pyx_t_2 = NULL;
15488  int __pyx_lineno = 0;
15489  const char *__pyx_filename = NULL;
15490  int __pyx_clineno = 0;
15491  __Pyx_TraceFrameInit(__pyx_codeobj__33)
15492  __Pyx_RefNannySetupContext("__cpp_MoveMesh_h", 0);
15493  __Pyx_TraceCall("__cpp_MoveMesh_h (wrapper)", __pyx_f[0], 522, 0, __PYX_ERR(0, 522, __pyx_L1_error));
15494  __Pyx_XDECREF(__pyx_r);
15495  __pyx_t_1 = __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_h(__pyx_v_self, __pyx_v_x, __pyx_v_t, 1); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 522, __pyx_L1_error)
15496  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error)
15497  __Pyx_GOTREF(__pyx_t_2);
15498  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
15499  __pyx_t_1.memview = NULL;
15500  __pyx_t_1.data = NULL;
15501  __pyx_r = __pyx_t_2;
15502  __pyx_t_2 = 0;
15503  goto __pyx_L0;
15504 
15505  /* function exit code */
15506  __pyx_L1_error:;
15507  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
15508  __Pyx_XDECREF(__pyx_t_2);
15509  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
15510  __pyx_r = NULL;
15511  __pyx_L0:;
15512  __PYX_XDEC_MEMVIEW(&__pyx_v_x, 1);
15513  __Pyx_XGIVEREF(__pyx_r);
15514  __Pyx_TraceReturn(__pyx_r, 0);
15515  __Pyx_RefNannyFinishContext();
15516  return __pyx_r;
15517 }
15518 
15519 /* "mprans/BoundaryConditions.py":535
15520  * return hx
15521  *
15522  * def __cpp_MoveMesh_hx(self, x, t): # <<<<<<<<<<<<<<
15523  * return self.__cpp_MoveMesh_h(x, t)[0]
15524  *
15525  */
15526 
15527 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15528 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hx(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch) {
15529  double __pyx_r;
15530  __Pyx_TraceDeclarations
15531  __Pyx_RefNannyDeclarations
15532  PyObject *__pyx_t_1 = NULL;
15533  PyObject *__pyx_t_2 = NULL;
15534  PyObject *__pyx_t_3 = NULL;
15535  PyObject *__pyx_t_4 = NULL;
15536  PyObject *__pyx_t_5 = NULL;
15537  PyObject *__pyx_t_6 = NULL;
15538  int __pyx_t_7;
15539  PyObject *__pyx_t_8 = NULL;
15540  double __pyx_t_9;
15541  __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
15542  Py_ssize_t __pyx_t_11;
15543  int __pyx_lineno = 0;
15544  const char *__pyx_filename = NULL;
15545  int __pyx_clineno = 0;
15546  __Pyx_TraceFrameInit(__pyx_codeobj__34)
15547  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hx", 0);
15548  __Pyx_TraceCall("__cpp_MoveMesh_hx", __pyx_f[0], 535, 0, __PYX_ERR(0, 535, __pyx_L1_error));
15549  /* Check if called by wrapper */
15550  if (unlikely(__pyx_skip_dispatch)) ;
15551  /* Check if overridden in Python */
15552  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15553  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15554  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15555  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15556  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15557  #endif
15558  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpp_MoveMesh_hx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error)
15559  __Pyx_GOTREF(__pyx_t_1);
15560  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx)) {
15561  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_x, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 535, __pyx_L1_error)
15562  __Pyx_GOTREF(__pyx_t_3);
15563  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 535, __pyx_L1_error)
15564  __Pyx_GOTREF(__pyx_t_4);
15565  __Pyx_INCREF(__pyx_t_1);
15566  __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
15567  __pyx_t_7 = 0;
15568  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
15569  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
15570  if (likely(__pyx_t_6)) {
15571  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
15572  __Pyx_INCREF(__pyx_t_6);
15573  __Pyx_INCREF(function);
15574  __Pyx_DECREF_SET(__pyx_t_5, function);
15575  __pyx_t_7 = 1;
15576  }
15577  }
15578  #if CYTHON_FAST_PYCALL
15579  if (PyFunction_Check(__pyx_t_5)) {
15580  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15581  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error)
15582  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15583  __Pyx_GOTREF(__pyx_t_2);
15584  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15585  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15586  } else
15587  #endif
15588  #if CYTHON_FAST_PYCCALL
15589  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
15590  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15591  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error)
15592  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15593  __Pyx_GOTREF(__pyx_t_2);
15594  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15595  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15596  } else
15597  #endif
15598  {
15599  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 535, __pyx_L1_error)
15600  __Pyx_GOTREF(__pyx_t_8);
15601  if (__pyx_t_6) {
15602  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
15603  }
15604  __Pyx_GIVEREF(__pyx_t_3);
15605  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
15606  __Pyx_GIVEREF(__pyx_t_4);
15607  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
15608  __pyx_t_3 = 0;
15609  __pyx_t_4 = 0;
15610  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error)
15611  __Pyx_GOTREF(__pyx_t_2);
15612  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15613  }
15614  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15615  __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error)
15616  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15617  __pyx_r = __pyx_t_9;
15618  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15619  goto __pyx_L0;
15620  }
15621  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15622  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15623  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15624  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15625  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15626  }
15627  #endif
15628  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15629  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15630  }
15631  #endif
15632  }
15633 
15634  /* "mprans/BoundaryConditions.py":536
15635  *
15636  * def __cpp_MoveMesh_hx(self, x, t):
15637  * return self.__cpp_MoveMesh_h(x, t)[0] # <<<<<<<<<<<<<<
15638  *
15639  * def __cpp_MoveMesh_hy(self, x, t):
15640  */
15641  __pyx_t_10 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_h(__pyx_v_self, __pyx_v_x, __pyx_v_t, 0); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 536, __pyx_L1_error)
15642  __pyx_t_11 = 0;
15643  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_10.data + __pyx_t_11 * __pyx_t_10.strides[0]) )));
15644  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
15645  __pyx_t_10.memview = NULL;
15646  __pyx_t_10.data = NULL;
15647  goto __pyx_L0;
15648 
15649  /* "mprans/BoundaryConditions.py":535
15650  * return hx
15651  *
15652  * def __cpp_MoveMesh_hx(self, x, t): # <<<<<<<<<<<<<<
15653  * return self.__cpp_MoveMesh_h(x, t)[0]
15654  *
15655  */
15656 
15657  /* function exit code */
15658  __pyx_L1_error:;
15659  __Pyx_XDECREF(__pyx_t_1);
15660  __Pyx_XDECREF(__pyx_t_2);
15661  __Pyx_XDECREF(__pyx_t_3);
15662  __Pyx_XDECREF(__pyx_t_4);
15663  __Pyx_XDECREF(__pyx_t_5);
15664  __Pyx_XDECREF(__pyx_t_6);
15665  __Pyx_XDECREF(__pyx_t_8);
15666  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
15667  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hx", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15668  __pyx_r = 0;
15669  __pyx_L0:;
15670  __Pyx_TraceReturn(Py_None, 0);
15671  __Pyx_RefNannyFinishContext();
15672  return __pyx_r;
15673 }
15674 
15675 /* Python wrapper */
15676 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15677 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_34__cpp_MoveMesh_hx[] = "BC_RANS.__cpp_MoveMesh_hx(self, double[:] x, double t) -> double";
15678 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx = {"__cpp_MoveMesh_hx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_34__cpp_MoveMesh_hx};
15679 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15680  __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
15681  double __pyx_v_t;
15682  int __pyx_lineno = 0;
15683  const char *__pyx_filename = NULL;
15684  int __pyx_clineno = 0;
15685  PyObject *__pyx_r = 0;
15686  __Pyx_RefNannyDeclarations
15687  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hx (wrapper)", 0);
15688  {
15689  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,0};
15690  PyObject* values[2] = {0,0};
15691  if (unlikely(__pyx_kwds)) {
15692  Py_ssize_t kw_args;
15693  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15694  switch (pos_args) {
15695  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15696  CYTHON_FALLTHROUGH;
15697  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15698  CYTHON_FALLTHROUGH;
15699  case 0: break;
15700  default: goto __pyx_L5_argtuple_error;
15701  }
15702  kw_args = PyDict_Size(__pyx_kwds);
15703  switch (pos_args) {
15704  case 0:
15705  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
15706  else goto __pyx_L5_argtuple_error;
15707  CYTHON_FALLTHROUGH;
15708  case 1:
15709  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
15710  else {
15711  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hx", 1, 2, 2, 1); __PYX_ERR(0, 535, __pyx_L3_error)
15712  }
15713  }
15714  if (unlikely(kw_args > 0)) {
15715  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cpp_MoveMesh_hx") < 0)) __PYX_ERR(0, 535, __pyx_L3_error)
15716  }
15717  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15718  goto __pyx_L5_argtuple_error;
15719  } else {
15720  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15721  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15722  }
15723  __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 535, __pyx_L3_error)
15724  __pyx_v_t = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_t == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
15725  }
15726  goto __pyx_L4_argument_unpacking_done;
15727  __pyx_L5_argtuple_error:;
15728  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hx", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 535, __pyx_L3_error)
15729  __pyx_L3_error:;
15730  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hx", __pyx_clineno, __pyx_lineno, __pyx_filename);
15731  __Pyx_RefNannyFinishContext();
15732  return NULL;
15733  __pyx_L4_argument_unpacking_done:;
15734  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_34__cpp_MoveMesh_hx(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_x, __pyx_v_t);
15735 
15736  /* function exit code */
15737  __Pyx_RefNannyFinishContext();
15738  return __pyx_r;
15739 }
15740 
15741 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_34__cpp_MoveMesh_hx(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
15742  PyObject *__pyx_r = NULL;
15743  __Pyx_TraceDeclarations
15744  __Pyx_RefNannyDeclarations
15745  PyObject *__pyx_t_1 = NULL;
15746  int __pyx_lineno = 0;
15747  const char *__pyx_filename = NULL;
15748  int __pyx_clineno = 0;
15749  __Pyx_TraceFrameInit(__pyx_codeobj__34)
15750  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hx", 0);
15751  __Pyx_TraceCall("__cpp_MoveMesh_hx (wrapper)", __pyx_f[0], 535, 0, __PYX_ERR(0, 535, __pyx_L1_error));
15752  __Pyx_XDECREF(__pyx_r);
15753  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hx(__pyx_v_self, __pyx_v_x, __pyx_v_t, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error)
15754  __Pyx_GOTREF(__pyx_t_1);
15755  __pyx_r = __pyx_t_1;
15756  __pyx_t_1 = 0;
15757  goto __pyx_L0;
15758 
15759  /* function exit code */
15760  __pyx_L1_error:;
15761  __Pyx_XDECREF(__pyx_t_1);
15762  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hx", __pyx_clineno, __pyx_lineno, __pyx_filename);
15763  __pyx_r = NULL;
15764  __pyx_L0:;
15765  __PYX_XDEC_MEMVIEW(&__pyx_v_x, 1);
15766  __Pyx_XGIVEREF(__pyx_r);
15767  __Pyx_TraceReturn(__pyx_r, 0);
15768  __Pyx_RefNannyFinishContext();
15769  return __pyx_r;
15770 }
15771 
15772 /* "mprans/BoundaryConditions.py":538
15773  * return self.__cpp_MoveMesh_h(x, t)[0]
15774  *
15775  * def __cpp_MoveMesh_hy(self, x, t): # <<<<<<<<<<<<<<
15776  * return self.__cpp_MoveMesh_h(x, t)[1]
15777  *
15778  */
15779 
15780 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15781 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hy(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch) {
15782  double __pyx_r;
15783  __Pyx_TraceDeclarations
15784  __Pyx_RefNannyDeclarations
15785  PyObject *__pyx_t_1 = NULL;
15786  PyObject *__pyx_t_2 = NULL;
15787  PyObject *__pyx_t_3 = NULL;
15788  PyObject *__pyx_t_4 = NULL;
15789  PyObject *__pyx_t_5 = NULL;
15790  PyObject *__pyx_t_6 = NULL;
15791  int __pyx_t_7;
15792  PyObject *__pyx_t_8 = NULL;
15793  double __pyx_t_9;
15794  __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
15795  Py_ssize_t __pyx_t_11;
15796  int __pyx_lineno = 0;
15797  const char *__pyx_filename = NULL;
15798  int __pyx_clineno = 0;
15799  __Pyx_TraceFrameInit(__pyx_codeobj__35)
15800  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hy", 0);
15801  __Pyx_TraceCall("__cpp_MoveMesh_hy", __pyx_f[0], 538, 0, __PYX_ERR(0, 538, __pyx_L1_error));
15802  /* Check if called by wrapper */
15803  if (unlikely(__pyx_skip_dispatch)) ;
15804  /* Check if overridden in Python */
15805  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15806  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15807  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15808  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15809  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15810  #endif
15811  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpp_MoveMesh_hy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
15812  __Pyx_GOTREF(__pyx_t_1);
15813  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy)) {
15814  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_x, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 538, __pyx_L1_error)
15815  __Pyx_GOTREF(__pyx_t_3);
15816  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 538, __pyx_L1_error)
15817  __Pyx_GOTREF(__pyx_t_4);
15818  __Pyx_INCREF(__pyx_t_1);
15819  __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
15820  __pyx_t_7 = 0;
15821  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
15822  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
15823  if (likely(__pyx_t_6)) {
15824  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
15825  __Pyx_INCREF(__pyx_t_6);
15826  __Pyx_INCREF(function);
15827  __Pyx_DECREF_SET(__pyx_t_5, function);
15828  __pyx_t_7 = 1;
15829  }
15830  }
15831  #if CYTHON_FAST_PYCALL
15832  if (PyFunction_Check(__pyx_t_5)) {
15833  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15834  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error)
15835  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15836  __Pyx_GOTREF(__pyx_t_2);
15837  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15838  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15839  } else
15840  #endif
15841  #if CYTHON_FAST_PYCCALL
15842  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
15843  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
15844  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error)
15845  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15846  __Pyx_GOTREF(__pyx_t_2);
15847  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15848  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15849  } else
15850  #endif
15851  {
15852  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 538, __pyx_L1_error)
15853  __Pyx_GOTREF(__pyx_t_8);
15854  if (__pyx_t_6) {
15855  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
15856  }
15857  __Pyx_GIVEREF(__pyx_t_3);
15858  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
15859  __Pyx_GIVEREF(__pyx_t_4);
15860  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
15861  __pyx_t_3 = 0;
15862  __pyx_t_4 = 0;
15863  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error)
15864  __Pyx_GOTREF(__pyx_t_2);
15865  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15866  }
15867  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15868  __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 538, __pyx_L1_error)
15869  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15870  __pyx_r = __pyx_t_9;
15871  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15872  goto __pyx_L0;
15873  }
15874  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15875  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15876  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15877  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15878  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15879  }
15880  #endif
15881  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15882  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15883  }
15884  #endif
15885  }
15886 
15887  /* "mprans/BoundaryConditions.py":539
15888  *
15889  * def __cpp_MoveMesh_hy(self, x, t):
15890  * return self.__cpp_MoveMesh_h(x, t)[1] # <<<<<<<<<<<<<<
15891  *
15892  * def __cpp_MoveMesh_hz(self, x, t):
15893  */
15894  __pyx_t_10 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_h(__pyx_v_self, __pyx_v_x, __pyx_v_t, 0); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 539, __pyx_L1_error)
15895  __pyx_t_11 = 1;
15896  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_10.data + __pyx_t_11 * __pyx_t_10.strides[0]) )));
15897  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
15898  __pyx_t_10.memview = NULL;
15899  __pyx_t_10.data = NULL;
15900  goto __pyx_L0;
15901 
15902  /* "mprans/BoundaryConditions.py":538
15903  * return self.__cpp_MoveMesh_h(x, t)[0]
15904  *
15905  * def __cpp_MoveMesh_hy(self, x, t): # <<<<<<<<<<<<<<
15906  * return self.__cpp_MoveMesh_h(x, t)[1]
15907  *
15908  */
15909 
15910  /* function exit code */
15911  __pyx_L1_error:;
15912  __Pyx_XDECREF(__pyx_t_1);
15913  __Pyx_XDECREF(__pyx_t_2);
15914  __Pyx_XDECREF(__pyx_t_3);
15915  __Pyx_XDECREF(__pyx_t_4);
15916  __Pyx_XDECREF(__pyx_t_5);
15917  __Pyx_XDECREF(__pyx_t_6);
15918  __Pyx_XDECREF(__pyx_t_8);
15919  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
15920  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hy", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15921  __pyx_r = 0;
15922  __pyx_L0:;
15923  __Pyx_TraceReturn(Py_None, 0);
15924  __Pyx_RefNannyFinishContext();
15925  return __pyx_r;
15926 }
15927 
15928 /* Python wrapper */
15929 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15930 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_36__cpp_MoveMesh_hy[] = "BC_RANS.__cpp_MoveMesh_hy(self, double[:] x, double t) -> double";
15931 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy = {"__cpp_MoveMesh_hy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_36__cpp_MoveMesh_hy};
15932 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15933  __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
15934  double __pyx_v_t;
15935  int __pyx_lineno = 0;
15936  const char *__pyx_filename = NULL;
15937  int __pyx_clineno = 0;
15938  PyObject *__pyx_r = 0;
15939  __Pyx_RefNannyDeclarations
15940  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hy (wrapper)", 0);
15941  {
15942  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,0};
15943  PyObject* values[2] = {0,0};
15944  if (unlikely(__pyx_kwds)) {
15945  Py_ssize_t kw_args;
15946  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15947  switch (pos_args) {
15948  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15949  CYTHON_FALLTHROUGH;
15950  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15951  CYTHON_FALLTHROUGH;
15952  case 0: break;
15953  default: goto __pyx_L5_argtuple_error;
15954  }
15955  kw_args = PyDict_Size(__pyx_kwds);
15956  switch (pos_args) {
15957  case 0:
15958  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
15959  else goto __pyx_L5_argtuple_error;
15960  CYTHON_FALLTHROUGH;
15961  case 1:
15962  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
15963  else {
15964  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hy", 1, 2, 2, 1); __PYX_ERR(0, 538, __pyx_L3_error)
15965  }
15966  }
15967  if (unlikely(kw_args > 0)) {
15968  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cpp_MoveMesh_hy") < 0)) __PYX_ERR(0, 538, __pyx_L3_error)
15969  }
15970  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15971  goto __pyx_L5_argtuple_error;
15972  } else {
15973  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15974  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15975  }
15976  __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 538, __pyx_L3_error)
15977  __pyx_v_t = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_t == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 538, __pyx_L3_error)
15978  }
15979  goto __pyx_L4_argument_unpacking_done;
15980  __pyx_L5_argtuple_error:;
15981  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 538, __pyx_L3_error)
15982  __pyx_L3_error:;
15983  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hy", __pyx_clineno, __pyx_lineno, __pyx_filename);
15984  __Pyx_RefNannyFinishContext();
15985  return NULL;
15986  __pyx_L4_argument_unpacking_done:;
15987  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_36__cpp_MoveMesh_hy(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_x, __pyx_v_t);
15988 
15989  /* function exit code */
15990  __Pyx_RefNannyFinishContext();
15991  return __pyx_r;
15992 }
15993 
15994 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_36__cpp_MoveMesh_hy(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
15995  PyObject *__pyx_r = NULL;
15996  __Pyx_TraceDeclarations
15997  __Pyx_RefNannyDeclarations
15998  PyObject *__pyx_t_1 = NULL;
15999  int __pyx_lineno = 0;
16000  const char *__pyx_filename = NULL;
16001  int __pyx_clineno = 0;
16002  __Pyx_TraceFrameInit(__pyx_codeobj__35)
16003  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hy", 0);
16004  __Pyx_TraceCall("__cpp_MoveMesh_hy (wrapper)", __pyx_f[0], 538, 0, __PYX_ERR(0, 538, __pyx_L1_error));
16005  __Pyx_XDECREF(__pyx_r);
16006  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hy(__pyx_v_self, __pyx_v_x, __pyx_v_t, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
16007  __Pyx_GOTREF(__pyx_t_1);
16008  __pyx_r = __pyx_t_1;
16009  __pyx_t_1 = 0;
16010  goto __pyx_L0;
16011 
16012  /* function exit code */
16013  __pyx_L1_error:;
16014  __Pyx_XDECREF(__pyx_t_1);
16015  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hy", __pyx_clineno, __pyx_lineno, __pyx_filename);
16016  __pyx_r = NULL;
16017  __pyx_L0:;
16018  __PYX_XDEC_MEMVIEW(&__pyx_v_x, 1);
16019  __Pyx_XGIVEREF(__pyx_r);
16020  __Pyx_TraceReturn(__pyx_r, 0);
16021  __Pyx_RefNannyFinishContext();
16022  return __pyx_r;
16023 }
16024 
16025 /* "mprans/BoundaryConditions.py":541
16026  * return self.__cpp_MoveMesh_h(x, t)[1]
16027  *
16028  * def __cpp_MoveMesh_hz(self, x, t): # <<<<<<<<<<<<<<
16029  * return self.__cpp_MoveMesh_h(x, t)[2]
16030  *
16031  */
16032 
16033 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16034 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hz(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t, int __pyx_skip_dispatch) {
16035  double __pyx_r;
16036  __Pyx_TraceDeclarations
16037  __Pyx_RefNannyDeclarations
16038  PyObject *__pyx_t_1 = NULL;
16039  PyObject *__pyx_t_2 = NULL;
16040  PyObject *__pyx_t_3 = NULL;
16041  PyObject *__pyx_t_4 = NULL;
16042  PyObject *__pyx_t_5 = NULL;
16043  PyObject *__pyx_t_6 = NULL;
16044  int __pyx_t_7;
16045  PyObject *__pyx_t_8 = NULL;
16046  double __pyx_t_9;
16047  __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
16048  Py_ssize_t __pyx_t_11;
16049  int __pyx_lineno = 0;
16050  const char *__pyx_filename = NULL;
16051  int __pyx_clineno = 0;
16052  __Pyx_TraceFrameInit(__pyx_codeobj__36)
16053  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hz", 0);
16054  __Pyx_TraceCall("__cpp_MoveMesh_hz", __pyx_f[0], 541, 0, __PYX_ERR(0, 541, __pyx_L1_error));
16055  /* Check if called by wrapper */
16056  if (unlikely(__pyx_skip_dispatch)) ;
16057  /* Check if overridden in Python */
16058  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
16059  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16060  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16061  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
16062  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16063  #endif
16064  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpp_MoveMesh_hz); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 541, __pyx_L1_error)
16065  __Pyx_GOTREF(__pyx_t_1);
16066  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz)) {
16067  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_x, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error)
16068  __Pyx_GOTREF(__pyx_t_3);
16069  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 541, __pyx_L1_error)
16070  __Pyx_GOTREF(__pyx_t_4);
16071  __Pyx_INCREF(__pyx_t_1);
16072  __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
16073  __pyx_t_7 = 0;
16074  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
16075  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
16076  if (likely(__pyx_t_6)) {
16077  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
16078  __Pyx_INCREF(__pyx_t_6);
16079  __Pyx_INCREF(function);
16080  __Pyx_DECREF_SET(__pyx_t_5, function);
16081  __pyx_t_7 = 1;
16082  }
16083  }
16084  #if CYTHON_FAST_PYCALL
16085  if (PyFunction_Check(__pyx_t_5)) {
16086  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
16087  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error)
16088  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
16089  __Pyx_GOTREF(__pyx_t_2);
16090  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16091  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16092  } else
16093  #endif
16094  #if CYTHON_FAST_PYCCALL
16095  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
16096  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
16097  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error)
16098  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
16099  __Pyx_GOTREF(__pyx_t_2);
16100  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16101  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16102  } else
16103  #endif
16104  {
16105  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 541, __pyx_L1_error)
16106  __Pyx_GOTREF(__pyx_t_8);
16107  if (__pyx_t_6) {
16108  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
16109  }
16110  __Pyx_GIVEREF(__pyx_t_3);
16111  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
16112  __Pyx_GIVEREF(__pyx_t_4);
16113  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
16114  __pyx_t_3 = 0;
16115  __pyx_t_4 = 0;
16116  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error)
16117  __Pyx_GOTREF(__pyx_t_2);
16118  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
16119  }
16120  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16121  __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 541, __pyx_L1_error)
16122  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16123  __pyx_r = __pyx_t_9;
16124  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16125  goto __pyx_L0;
16126  }
16127  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16128  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16129  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
16130  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
16131  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16132  }
16133  #endif
16134  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16135  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16136  }
16137  #endif
16138  }
16139 
16140  /* "mprans/BoundaryConditions.py":542
16141  *
16142  * def __cpp_MoveMesh_hz(self, x, t):
16143  * return self.__cpp_MoveMesh_h(x, t)[2] # <<<<<<<<<<<<<<
16144  *
16145  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None,
16146  */
16147  __pyx_t_10 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_MoveMesh_h(__pyx_v_self, __pyx_v_x, __pyx_v_t, 0); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 542, __pyx_L1_error)
16148  __pyx_t_11 = 2;
16149  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_10.data + __pyx_t_11 * __pyx_t_10.strides[0]) )));
16150  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
16151  __pyx_t_10.memview = NULL;
16152  __pyx_t_10.data = NULL;
16153  goto __pyx_L0;
16154 
16155  /* "mprans/BoundaryConditions.py":541
16156  * return self.__cpp_MoveMesh_h(x, t)[1]
16157  *
16158  * def __cpp_MoveMesh_hz(self, x, t): # <<<<<<<<<<<<<<
16159  * return self.__cpp_MoveMesh_h(x, t)[2]
16160  *
16161  */
16162 
16163  /* function exit code */
16164  __pyx_L1_error:;
16165  __Pyx_XDECREF(__pyx_t_1);
16166  __Pyx_XDECREF(__pyx_t_2);
16167  __Pyx_XDECREF(__pyx_t_3);
16168  __Pyx_XDECREF(__pyx_t_4);
16169  __Pyx_XDECREF(__pyx_t_5);
16170  __Pyx_XDECREF(__pyx_t_6);
16171  __Pyx_XDECREF(__pyx_t_8);
16172  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
16173  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hz", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
16174  __pyx_r = 0;
16175  __pyx_L0:;
16176  __Pyx_TraceReturn(Py_None, 0);
16177  __Pyx_RefNannyFinishContext();
16178  return __pyx_r;
16179 }
16180 
16181 /* Python wrapper */
16182 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16183 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_38__cpp_MoveMesh_hz[] = "BC_RANS.__cpp_MoveMesh_hz(self, double[:] x, double t) -> double";
16184 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz = {"__cpp_MoveMesh_hz", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_38__cpp_MoveMesh_hz};
16185 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16186  __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
16187  double __pyx_v_t;
16188  int __pyx_lineno = 0;
16189  const char *__pyx_filename = NULL;
16190  int __pyx_clineno = 0;
16191  PyObject *__pyx_r = 0;
16192  __Pyx_RefNannyDeclarations
16193  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hz (wrapper)", 0);
16194  {
16195  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,0};
16196  PyObject* values[2] = {0,0};
16197  if (unlikely(__pyx_kwds)) {
16198  Py_ssize_t kw_args;
16199  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16200  switch (pos_args) {
16201  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16202  CYTHON_FALLTHROUGH;
16203  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16204  CYTHON_FALLTHROUGH;
16205  case 0: break;
16206  default: goto __pyx_L5_argtuple_error;
16207  }
16208  kw_args = PyDict_Size(__pyx_kwds);
16209  switch (pos_args) {
16210  case 0:
16211  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
16212  else goto __pyx_L5_argtuple_error;
16213  CYTHON_FALLTHROUGH;
16214  case 1:
16215  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
16216  else {
16217  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hz", 1, 2, 2, 1); __PYX_ERR(0, 541, __pyx_L3_error)
16218  }
16219  }
16220  if (unlikely(kw_args > 0)) {
16221  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cpp_MoveMesh_hz") < 0)) __PYX_ERR(0, 541, __pyx_L3_error)
16222  }
16223  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
16224  goto __pyx_L5_argtuple_error;
16225  } else {
16226  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16227  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16228  }
16229  __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 541, __pyx_L3_error)
16230  __pyx_v_t = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_t == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 541, __pyx_L3_error)
16231  }
16232  goto __pyx_L4_argument_unpacking_done;
16233  __pyx_L5_argtuple_error:;
16234  __Pyx_RaiseArgtupleInvalid("__cpp_MoveMesh_hz", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 541, __pyx_L3_error)
16235  __pyx_L3_error:;
16236  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hz", __pyx_clineno, __pyx_lineno, __pyx_filename);
16237  __Pyx_RefNannyFinishContext();
16238  return NULL;
16239  __pyx_L4_argument_unpacking_done:;
16240  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_38__cpp_MoveMesh_hz(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_x, __pyx_v_t);
16241 
16242  /* function exit code */
16243  __Pyx_RefNannyFinishContext();
16244  return __pyx_r;
16245 }
16246 
16247 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_38__cpp_MoveMesh_hz(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
16248  PyObject *__pyx_r = NULL;
16249  __Pyx_TraceDeclarations
16250  __Pyx_RefNannyDeclarations
16251  PyObject *__pyx_t_1 = NULL;
16252  int __pyx_lineno = 0;
16253  const char *__pyx_filename = NULL;
16254  int __pyx_clineno = 0;
16255  __Pyx_TraceFrameInit(__pyx_codeobj__36)
16256  __Pyx_RefNannySetupContext("__cpp_MoveMesh_hz", 0);
16257  __Pyx_TraceCall("__cpp_MoveMesh_hz (wrapper)", __pyx_f[0], 541, 0, __PYX_ERR(0, 541, __pyx_L1_error));
16258  __Pyx_XDECREF(__pyx_r);
16259  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hz(__pyx_v_self, __pyx_v_x, __pyx_v_t, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 541, __pyx_L1_error)
16260  __Pyx_GOTREF(__pyx_t_1);
16261  __pyx_r = __pyx_t_1;
16262  __pyx_t_1 = 0;
16263  goto __pyx_L0;
16264 
16265  /* function exit code */
16266  __pyx_L1_error:;
16267  __Pyx_XDECREF(__pyx_t_1);
16268  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__cpp_MoveMesh_hz", __pyx_clineno, __pyx_lineno, __pyx_filename);
16269  __pyx_r = NULL;
16270  __pyx_L0:;
16271  __PYX_XDEC_MEMVIEW(&__pyx_v_x, 1);
16272  __Pyx_XGIVEREF(__pyx_r);
16273  __Pyx_TraceReturn(__pyx_r, 0);
16274  __Pyx_RefNannyFinishContext();
16275  return __pyx_r;
16276 }
16277 
16278 /* "mprans/BoundaryConditions.py":544
16279  * return self.__cpp_MoveMesh_h(x, t)[2]
16280  *
16281  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
16282  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
16283  * """
16284  */
16285 
16286 /* Python wrapper */
16287 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16288 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet[] = "BC_RANS.setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None, orientation=None, wind_speed=None, vof_air=1., vof_water=0., kInflow=1e-30, dInflow=1e-10)\n\n Imposes a velocity profile on the fluid with input wave and wind\n conditions.\n\n Parameters\n ----------\n wave: proteus.WaveTools\n class describing a wave (from proteus.WaveTools)\n smoothing: float\n smoothing distance (typically 3.*he)\n vert_axis: Optional[int]\n index of vertical position vector (x:0, y:1, z:2), must always be\n aligned with gravity. If not set, will be 1 in 2D (y), 2 in 3D (z).\n wind_speed: Optional[array_like]\n speed of air phase\n vof_air: Optional[float]\n VOF value of air (default is 1.)\n vof_water: Optional[float]\n VOF value of water (default is 0.)\n\n Below the sea water level: fluid velocity to wave speed.\n Above the sea water level: fluid velocity set to wind speed\n (with smoothing).\n ";
16289 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet = {"setUnsteadyTwoPhaseVelocityInlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet};
16290 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16291  PyObject *__pyx_v_wave = 0;
16292  PyObject *__pyx_v_smoothing = 0;
16293  PyObject *__pyx_v_vert_axis = 0;
16294  PyObject *__pyx_v_orientation = 0;
16295  PyObject *__pyx_v_wind_speed = 0;
16296  PyObject *__pyx_v_vof_air = 0;
16297  PyObject *__pyx_v_vof_water = 0;
16298  PyObject *__pyx_v_kInflow = 0;
16299  PyObject *__pyx_v_dInflow = 0;
16300  int __pyx_lineno = 0;
16301  const char *__pyx_filename = NULL;
16302  int __pyx_clineno = 0;
16303  PyObject *__pyx_r = 0;
16304  __Pyx_RefNannyDeclarations
16305  __Pyx_RefNannySetupContext("setUnsteadyTwoPhaseVelocityInlet (wrapper)", 0);
16306  {
16307  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_wave,&__pyx_n_s_smoothing,&__pyx_n_s_vert_axis,&__pyx_n_s_orientation,&__pyx_n_s_wind_speed,&__pyx_n_s_vof_air,&__pyx_n_s_vof_water,&__pyx_n_s_kInflow,&__pyx_n_s_dInflow,0};
16308  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
16309  values[2] = ((PyObject *)Py_None);
16310  values[3] = ((PyObject *)Py_None);
16311 
16312  /* "mprans/BoundaryConditions.py":545
16313  *
16314  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None,
16315  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10): # <<<<<<<<<<<<<<
16316  * """
16317  * Imposes a velocity profile on the fluid with input wave and wind
16318  */
16319  values[4] = ((PyObject *)Py_None);
16320  values[5] = ((PyObject *)__pyx_float_1_);
16321  values[6] = ((PyObject *)__pyx_float_0_);
16322  values[7] = ((PyObject *)__pyx_float_1eneg_30);
16323  values[8] = ((PyObject *)__pyx_float_1eneg_10);
16324  if (unlikely(__pyx_kwds)) {
16325  Py_ssize_t kw_args;
16326  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16327  switch (pos_args) {
16328  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16329  CYTHON_FALLTHROUGH;
16330  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16331  CYTHON_FALLTHROUGH;
16332  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16333  CYTHON_FALLTHROUGH;
16334  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16335  CYTHON_FALLTHROUGH;
16336  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16337  CYTHON_FALLTHROUGH;
16338  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16339  CYTHON_FALLTHROUGH;
16340  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16341  CYTHON_FALLTHROUGH;
16342  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16343  CYTHON_FALLTHROUGH;
16344  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16345  CYTHON_FALLTHROUGH;
16346  case 0: break;
16347  default: goto __pyx_L5_argtuple_error;
16348  }
16349  kw_args = PyDict_Size(__pyx_kwds);
16350  switch (pos_args) {
16351  case 0:
16352  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wave)) != 0)) kw_args--;
16353  else goto __pyx_L5_argtuple_error;
16354  CYTHON_FALLTHROUGH;
16355  case 1:
16356  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothing)) != 0)) kw_args--;
16357  else {
16358  __Pyx_RaiseArgtupleInvalid("setUnsteadyTwoPhaseVelocityInlet", 0, 2, 9, 1); __PYX_ERR(0, 544, __pyx_L3_error)
16359  }
16360  CYTHON_FALLTHROUGH;
16361  case 2:
16362  if (kw_args > 0) {
16363  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vert_axis);
16364  if (value) { values[2] = value; kw_args--; }
16365  }
16366  CYTHON_FALLTHROUGH;
16367  case 3:
16368  if (kw_args > 0) {
16369  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation);
16370  if (value) { values[3] = value; kw_args--; }
16371  }
16372  CYTHON_FALLTHROUGH;
16373  case 4:
16374  if (kw_args > 0) {
16375  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wind_speed);
16376  if (value) { values[4] = value; kw_args--; }
16377  }
16378  CYTHON_FALLTHROUGH;
16379  case 5:
16380  if (kw_args > 0) {
16381  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_air);
16382  if (value) { values[5] = value; kw_args--; }
16383  }
16384  CYTHON_FALLTHROUGH;
16385  case 6:
16386  if (kw_args > 0) {
16387  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_water);
16388  if (value) { values[6] = value; kw_args--; }
16389  }
16390  CYTHON_FALLTHROUGH;
16391  case 7:
16392  if (kw_args > 0) {
16393  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflow);
16394  if (value) { values[7] = value; kw_args--; }
16395  }
16396  CYTHON_FALLTHROUGH;
16397  case 8:
16398  if (kw_args > 0) {
16399  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dInflow);
16400  if (value) { values[8] = value; kw_args--; }
16401  }
16402  }
16403  if (unlikely(kw_args > 0)) {
16404  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUnsteadyTwoPhaseVelocityInlet") < 0)) __PYX_ERR(0, 544, __pyx_L3_error)
16405  }
16406  } else {
16407  switch (PyTuple_GET_SIZE(__pyx_args)) {
16408  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16409  CYTHON_FALLTHROUGH;
16410  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16411  CYTHON_FALLTHROUGH;
16412  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16413  CYTHON_FALLTHROUGH;
16414  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16415  CYTHON_FALLTHROUGH;
16416  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16417  CYTHON_FALLTHROUGH;
16418  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16419  CYTHON_FALLTHROUGH;
16420  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16421  CYTHON_FALLTHROUGH;
16422  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16423  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16424  break;
16425  default: goto __pyx_L5_argtuple_error;
16426  }
16427  }
16428  __pyx_v_wave = values[0];
16429  __pyx_v_smoothing = values[1];
16430  __pyx_v_vert_axis = values[2];
16431  __pyx_v_orientation = values[3];
16432  __pyx_v_wind_speed = values[4];
16433  __pyx_v_vof_air = values[5];
16434  __pyx_v_vof_water = values[6];
16435  __pyx_v_kInflow = values[7];
16436  __pyx_v_dInflow = values[8];
16437  }
16438  goto __pyx_L4_argument_unpacking_done;
16439  __pyx_L5_argtuple_error:;
16440  __Pyx_RaiseArgtupleInvalid("setUnsteadyTwoPhaseVelocityInlet", 0, 2, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 544, __pyx_L3_error)
16441  __pyx_L3_error:;
16442  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
16443  __Pyx_RefNannyFinishContext();
16444  return NULL;
16445  __pyx_L4_argument_unpacking_done:;
16446  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_wave, __pyx_v_smoothing, __pyx_v_vert_axis, __pyx_v_orientation, __pyx_v_wind_speed, __pyx_v_vof_air, __pyx_v_vof_water, __pyx_v_kInflow, __pyx_v_dInflow);
16447 
16448  /* "mprans/BoundaryConditions.py":544
16449  * return self.__cpp_MoveMesh_h(x, t)[2]
16450  *
16451  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
16452  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
16453  * """
16454  */
16455 
16456  /* function exit code */
16457  __Pyx_RefNannyFinishContext();
16458  return __pyx_r;
16459 }
16460 
16461 /* "mprans/BoundaryConditions.py":583
16462  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
16463  *
16464  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t) # <<<<<<<<<<<<<<
16465  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
16466  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
16467  */
16468 
16469 /* Python wrapper */
16470 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_lambda11(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16471 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_lambda11 = {"lambda11", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_lambda11, METH_VARARGS|METH_KEYWORDS, 0};
16472 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_lambda11(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16473  PyObject *__pyx_v_x = 0;
16474  PyObject *__pyx_v_t = 0;
16475  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
16476  int __pyx_lineno = 0;
16477  const char *__pyx_filename = NULL;
16478  int __pyx_clineno = 0;
16479  PyObject *__pyx_r = 0;
16480  __Pyx_RefNannyDeclarations
16481  __Pyx_RefNannySetupContext("lambda11 (wrapper)", 0);
16482  {
16483  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
16484  PyObject* values[3] = {0,0,0};
16485  values[2] = ((PyObject *)((PyObject *)Py_None));
16486  if (unlikely(__pyx_kwds)) {
16487  Py_ssize_t kw_args;
16488  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16489  switch (pos_args) {
16490  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16491  CYTHON_FALLTHROUGH;
16492  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16493  CYTHON_FALLTHROUGH;
16494  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16495  CYTHON_FALLTHROUGH;
16496  case 0: break;
16497  default: goto __pyx_L5_argtuple_error;
16498  }
16499  kw_args = PyDict_Size(__pyx_kwds);
16500  switch (pos_args) {
16501  case 0:
16502  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
16503  else goto __pyx_L5_argtuple_error;
16504  CYTHON_FALLTHROUGH;
16505  case 1:
16506  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
16507  else {
16508  __Pyx_RaiseArgtupleInvalid("lambda11", 0, 2, 3, 1); __PYX_ERR(0, 583, __pyx_L3_error)
16509  }
16510  CYTHON_FALLTHROUGH;
16511  case 2:
16512  if (kw_args > 0) {
16513  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
16514  if (value) { values[2] = value; kw_args--; }
16515  }
16516  }
16517  if (unlikely(kw_args > 0)) {
16518  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda11") < 0)) __PYX_ERR(0, 583, __pyx_L3_error)
16519  }
16520  } else {
16521  switch (PyTuple_GET_SIZE(__pyx_args)) {
16522  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16523  CYTHON_FALLTHROUGH;
16524  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16525  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16526  break;
16527  default: goto __pyx_L5_argtuple_error;
16528  }
16529  }
16530  __pyx_v_x = values[0];
16531  __pyx_v_t = values[1];
16532  __pyx_v_n = values[2];
16533  }
16534  goto __pyx_L4_argument_unpacking_done;
16535  __pyx_L5_argtuple_error:;
16536  __Pyx_RaiseArgtupleInvalid("lambda11", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 583, __pyx_L3_error)
16537  __pyx_L3_error:;
16538  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda11", __pyx_clineno, __pyx_lineno, __pyx_filename);
16539  __Pyx_RefNannyFinishContext();
16540  return NULL;
16541  __pyx_L4_argument_unpacking_done:;
16542  __pyx_r = __pyx_lambda_funcdef_lambda11(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
16543 
16544  /* function exit code */
16545  __Pyx_RefNannyFinishContext();
16546  return __pyx_r;
16547 }
16548 
16549 static PyObject *__pyx_lambda_funcdef_lambda11(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
16550  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
16551  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
16552  PyObject *__pyx_r = NULL;
16553  __Pyx_TraceDeclarations
16554  __Pyx_RefNannyDeclarations
16555  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
16556  double __pyx_t_2;
16557  PyObject *__pyx_t_3 = NULL;
16558  int __pyx_lineno = 0;
16559  const char *__pyx_filename = NULL;
16560  int __pyx_clineno = 0;
16561  __Pyx_RefNannySetupContext("lambda11", 0);
16562  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
16563  __pyx_cur_scope = __pyx_outer_scope;
16564  __Pyx_TraceCall("lambda11", __pyx_f[0], 583, 0, __PYX_ERR(0, 583, __pyx_L1_error));
16565  __Pyx_XDECREF(__pyx_r);
16566  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 583, __pyx_L1_error) }
16567  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 583, __pyx_L1_error)
16568  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L1_error)
16569  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 583, __pyx_L1_error)
16570  __Pyx_GOTREF(__pyx_t_3);
16571  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16572  __pyx_t_1.memview = NULL;
16573  __pyx_t_1.data = NULL;
16574  __pyx_r = __pyx_t_3;
16575  __pyx_t_3 = 0;
16576  goto __pyx_L0;
16577 
16578  /* function exit code */
16579  __pyx_L1_error:;
16580  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16581  __Pyx_XDECREF(__pyx_t_3);
16582  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda11", __pyx_clineno, __pyx_lineno, __pyx_filename);
16583  __pyx_r = NULL;
16584  __pyx_L0:;
16585  __Pyx_XGIVEREF(__pyx_r);
16586  __Pyx_TraceReturn(__pyx_r, 0);
16587  __Pyx_RefNannyFinishContext();
16588  return __pyx_r;
16589 }
16590 
16591 /* "mprans/BoundaryConditions.py":584
16592  *
16593  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
16594  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t) # <<<<<<<<<<<<<<
16595  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
16596  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
16597  */
16598 
16599 /* Python wrapper */
16600 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_1lambda12(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16601 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_1lambda12 = {"lambda12", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_1lambda12, METH_VARARGS|METH_KEYWORDS, 0};
16602 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_1lambda12(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16603  PyObject *__pyx_v_x = 0;
16604  PyObject *__pyx_v_t = 0;
16605  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
16606  int __pyx_lineno = 0;
16607  const char *__pyx_filename = NULL;
16608  int __pyx_clineno = 0;
16609  PyObject *__pyx_r = 0;
16610  __Pyx_RefNannyDeclarations
16611  __Pyx_RefNannySetupContext("lambda12 (wrapper)", 0);
16612  {
16613  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
16614  PyObject* values[3] = {0,0,0};
16615  values[2] = ((PyObject *)((PyObject *)Py_None));
16616  if (unlikely(__pyx_kwds)) {
16617  Py_ssize_t kw_args;
16618  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16619  switch (pos_args) {
16620  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16621  CYTHON_FALLTHROUGH;
16622  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16623  CYTHON_FALLTHROUGH;
16624  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16625  CYTHON_FALLTHROUGH;
16626  case 0: break;
16627  default: goto __pyx_L5_argtuple_error;
16628  }
16629  kw_args = PyDict_Size(__pyx_kwds);
16630  switch (pos_args) {
16631  case 0:
16632  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
16633  else goto __pyx_L5_argtuple_error;
16634  CYTHON_FALLTHROUGH;
16635  case 1:
16636  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
16637  else {
16638  __Pyx_RaiseArgtupleInvalid("lambda12", 0, 2, 3, 1); __PYX_ERR(0, 584, __pyx_L3_error)
16639  }
16640  CYTHON_FALLTHROUGH;
16641  case 2:
16642  if (kw_args > 0) {
16643  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
16644  if (value) { values[2] = value; kw_args--; }
16645  }
16646  }
16647  if (unlikely(kw_args > 0)) {
16648  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda12") < 0)) __PYX_ERR(0, 584, __pyx_L3_error)
16649  }
16650  } else {
16651  switch (PyTuple_GET_SIZE(__pyx_args)) {
16652  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16653  CYTHON_FALLTHROUGH;
16654  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16655  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16656  break;
16657  default: goto __pyx_L5_argtuple_error;
16658  }
16659  }
16660  __pyx_v_x = values[0];
16661  __pyx_v_t = values[1];
16662  __pyx_v_n = values[2];
16663  }
16664  goto __pyx_L4_argument_unpacking_done;
16665  __pyx_L5_argtuple_error:;
16666  __Pyx_RaiseArgtupleInvalid("lambda12", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 584, __pyx_L3_error)
16667  __pyx_L3_error:;
16668  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda12", __pyx_clineno, __pyx_lineno, __pyx_filename);
16669  __Pyx_RefNannyFinishContext();
16670  return NULL;
16671  __pyx_L4_argument_unpacking_done:;
16672  __pyx_r = __pyx_lambda_funcdef_lambda12(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
16673 
16674  /* function exit code */
16675  __Pyx_RefNannyFinishContext();
16676  return __pyx_r;
16677 }
16678 
16679 static PyObject *__pyx_lambda_funcdef_lambda12(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
16680  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
16681  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
16682  PyObject *__pyx_r = NULL;
16683  __Pyx_TraceDeclarations
16684  __Pyx_RefNannyDeclarations
16685  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
16686  double __pyx_t_2;
16687  PyObject *__pyx_t_3 = NULL;
16688  int __pyx_lineno = 0;
16689  const char *__pyx_filename = NULL;
16690  int __pyx_clineno = 0;
16691  __Pyx_RefNannySetupContext("lambda12", 0);
16692  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
16693  __pyx_cur_scope = __pyx_outer_scope;
16694  __Pyx_TraceCall("lambda12", __pyx_f[0], 584, 0, __PYX_ERR(0, 584, __pyx_L1_error));
16695  __Pyx_XDECREF(__pyx_r);
16696  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 584, __pyx_L1_error) }
16697  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 584, __pyx_L1_error)
16698  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 584, __pyx_L1_error)
16699  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error)
16700  __Pyx_GOTREF(__pyx_t_3);
16701  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16702  __pyx_t_1.memview = NULL;
16703  __pyx_t_1.data = NULL;
16704  __pyx_r = __pyx_t_3;
16705  __pyx_t_3 = 0;
16706  goto __pyx_L0;
16707 
16708  /* function exit code */
16709  __pyx_L1_error:;
16710  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16711  __Pyx_XDECREF(__pyx_t_3);
16712  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda12", __pyx_clineno, __pyx_lineno, __pyx_filename);
16713  __pyx_r = NULL;
16714  __pyx_L0:;
16715  __Pyx_XGIVEREF(__pyx_r);
16716  __Pyx_TraceReturn(__pyx_r, 0);
16717  __Pyx_RefNannyFinishContext();
16718  return __pyx_r;
16719 }
16720 
16721 /* "mprans/BoundaryConditions.py":585
16722  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
16723  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
16724  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t) # <<<<<<<<<<<<<<
16725  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
16726  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
16727  */
16728 
16729 /* Python wrapper */
16730 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_2lambda13(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16731 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_2lambda13 = {"lambda13", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_2lambda13, METH_VARARGS|METH_KEYWORDS, 0};
16732 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_2lambda13(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16733  PyObject *__pyx_v_x = 0;
16734  PyObject *__pyx_v_t = 0;
16735  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
16736  int __pyx_lineno = 0;
16737  const char *__pyx_filename = NULL;
16738  int __pyx_clineno = 0;
16739  PyObject *__pyx_r = 0;
16740  __Pyx_RefNannyDeclarations
16741  __Pyx_RefNannySetupContext("lambda13 (wrapper)", 0);
16742  {
16743  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
16744  PyObject* values[3] = {0,0,0};
16745  values[2] = ((PyObject *)((PyObject *)Py_None));
16746  if (unlikely(__pyx_kwds)) {
16747  Py_ssize_t kw_args;
16748  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16749  switch (pos_args) {
16750  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16751  CYTHON_FALLTHROUGH;
16752  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16753  CYTHON_FALLTHROUGH;
16754  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16755  CYTHON_FALLTHROUGH;
16756  case 0: break;
16757  default: goto __pyx_L5_argtuple_error;
16758  }
16759  kw_args = PyDict_Size(__pyx_kwds);
16760  switch (pos_args) {
16761  case 0:
16762  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
16763  else goto __pyx_L5_argtuple_error;
16764  CYTHON_FALLTHROUGH;
16765  case 1:
16766  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
16767  else {
16768  __Pyx_RaiseArgtupleInvalid("lambda13", 0, 2, 3, 1); __PYX_ERR(0, 585, __pyx_L3_error)
16769  }
16770  CYTHON_FALLTHROUGH;
16771  case 2:
16772  if (kw_args > 0) {
16773  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
16774  if (value) { values[2] = value; kw_args--; }
16775  }
16776  }
16777  if (unlikely(kw_args > 0)) {
16778  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda13") < 0)) __PYX_ERR(0, 585, __pyx_L3_error)
16779  }
16780  } else {
16781  switch (PyTuple_GET_SIZE(__pyx_args)) {
16782  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16783  CYTHON_FALLTHROUGH;
16784  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16785  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16786  break;
16787  default: goto __pyx_L5_argtuple_error;
16788  }
16789  }
16790  __pyx_v_x = values[0];
16791  __pyx_v_t = values[1];
16792  __pyx_v_n = values[2];
16793  }
16794  goto __pyx_L4_argument_unpacking_done;
16795  __pyx_L5_argtuple_error:;
16796  __Pyx_RaiseArgtupleInvalid("lambda13", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 585, __pyx_L3_error)
16797  __pyx_L3_error:;
16798  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda13", __pyx_clineno, __pyx_lineno, __pyx_filename);
16799  __Pyx_RefNannyFinishContext();
16800  return NULL;
16801  __pyx_L4_argument_unpacking_done:;
16802  __pyx_r = __pyx_lambda_funcdef_lambda13(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
16803 
16804  /* function exit code */
16805  __Pyx_RefNannyFinishContext();
16806  return __pyx_r;
16807 }
16808 
16809 static PyObject *__pyx_lambda_funcdef_lambda13(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
16810  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
16811  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
16812  PyObject *__pyx_r = NULL;
16813  __Pyx_TraceDeclarations
16814  __Pyx_RefNannyDeclarations
16815  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
16816  double __pyx_t_2;
16817  PyObject *__pyx_t_3 = NULL;
16818  int __pyx_lineno = 0;
16819  const char *__pyx_filename = NULL;
16820  int __pyx_clineno = 0;
16821  __Pyx_RefNannySetupContext("lambda13", 0);
16822  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
16823  __pyx_cur_scope = __pyx_outer_scope;
16824  __Pyx_TraceCall("lambda13", __pyx_f[0], 585, 0, __PYX_ERR(0, 585, __pyx_L1_error));
16825  __Pyx_XDECREF(__pyx_r);
16826  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 585, __pyx_L1_error) }
16827  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 585, __pyx_L1_error)
16828  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 585, __pyx_L1_error)
16829  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
16830  __Pyx_GOTREF(__pyx_t_3);
16831  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16832  __pyx_t_1.memview = NULL;
16833  __pyx_t_1.data = NULL;
16834  __pyx_r = __pyx_t_3;
16835  __pyx_t_3 = 0;
16836  goto __pyx_L0;
16837 
16838  /* function exit code */
16839  __pyx_L1_error:;
16840  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16841  __Pyx_XDECREF(__pyx_t_3);
16842  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda13", __pyx_clineno, __pyx_lineno, __pyx_filename);
16843  __pyx_r = NULL;
16844  __pyx_L0:;
16845  __Pyx_XGIVEREF(__pyx_r);
16846  __Pyx_TraceReturn(__pyx_r, 0);
16847  __Pyx_RefNannyFinishContext();
16848  return __pyx_r;
16849 }
16850 
16851 /* "mprans/BoundaryConditions.py":586
16852  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
16853  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
16854  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t) # <<<<<<<<<<<<<<
16855  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
16856  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
16857  */
16858 
16859 /* Python wrapper */
16860 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_3lambda14(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16861 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_3lambda14 = {"lambda14", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_3lambda14, METH_VARARGS|METH_KEYWORDS, 0};
16862 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_3lambda14(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16863  PyObject *__pyx_v_x = 0;
16864  PyObject *__pyx_v_t = 0;
16865  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
16866  int __pyx_lineno = 0;
16867  const char *__pyx_filename = NULL;
16868  int __pyx_clineno = 0;
16869  PyObject *__pyx_r = 0;
16870  __Pyx_RefNannyDeclarations
16871  __Pyx_RefNannySetupContext("lambda14 (wrapper)", 0);
16872  {
16873  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
16874  PyObject* values[3] = {0,0,0};
16875  values[2] = ((PyObject *)((PyObject *)Py_None));
16876  if (unlikely(__pyx_kwds)) {
16877  Py_ssize_t kw_args;
16878  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16879  switch (pos_args) {
16880  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16881  CYTHON_FALLTHROUGH;
16882  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16883  CYTHON_FALLTHROUGH;
16884  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16885  CYTHON_FALLTHROUGH;
16886  case 0: break;
16887  default: goto __pyx_L5_argtuple_error;
16888  }
16889  kw_args = PyDict_Size(__pyx_kwds);
16890  switch (pos_args) {
16891  case 0:
16892  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
16893  else goto __pyx_L5_argtuple_error;
16894  CYTHON_FALLTHROUGH;
16895  case 1:
16896  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
16897  else {
16898  __Pyx_RaiseArgtupleInvalid("lambda14", 0, 2, 3, 1); __PYX_ERR(0, 586, __pyx_L3_error)
16899  }
16900  CYTHON_FALLTHROUGH;
16901  case 2:
16902  if (kw_args > 0) {
16903  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
16904  if (value) { values[2] = value; kw_args--; }
16905  }
16906  }
16907  if (unlikely(kw_args > 0)) {
16908  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda14") < 0)) __PYX_ERR(0, 586, __pyx_L3_error)
16909  }
16910  } else {
16911  switch (PyTuple_GET_SIZE(__pyx_args)) {
16912  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16913  CYTHON_FALLTHROUGH;
16914  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16915  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16916  break;
16917  default: goto __pyx_L5_argtuple_error;
16918  }
16919  }
16920  __pyx_v_x = values[0];
16921  __pyx_v_t = values[1];
16922  __pyx_v_n = values[2];
16923  }
16924  goto __pyx_L4_argument_unpacking_done;
16925  __pyx_L5_argtuple_error:;
16926  __Pyx_RaiseArgtupleInvalid("lambda14", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 586, __pyx_L3_error)
16927  __pyx_L3_error:;
16928  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
16929  __Pyx_RefNannyFinishContext();
16930  return NULL;
16931  __pyx_L4_argument_unpacking_done:;
16932  __pyx_r = __pyx_lambda_funcdef_lambda14(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
16933 
16934  /* function exit code */
16935  __Pyx_RefNannyFinishContext();
16936  return __pyx_r;
16937 }
16938 
16939 static PyObject *__pyx_lambda_funcdef_lambda14(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
16940  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
16941  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
16942  PyObject *__pyx_r = NULL;
16943  __Pyx_TraceDeclarations
16944  __Pyx_RefNannyDeclarations
16945  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
16946  double __pyx_t_2;
16947  PyObject *__pyx_t_3 = NULL;
16948  int __pyx_lineno = 0;
16949  const char *__pyx_filename = NULL;
16950  int __pyx_clineno = 0;
16951  __Pyx_RefNannySetupContext("lambda14", 0);
16952  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
16953  __pyx_cur_scope = __pyx_outer_scope;
16954  __Pyx_TraceCall("lambda14", __pyx_f[0], 586, 0, __PYX_ERR(0, 586, __pyx_L1_error));
16955  __Pyx_XDECREF(__pyx_r);
16956  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 586, __pyx_L1_error) }
16957  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 586, __pyx_L1_error)
16958  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 586, __pyx_L1_error)
16959  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 586, __pyx_L1_error)
16960  __Pyx_GOTREF(__pyx_t_3);
16961  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16962  __pyx_t_1.memview = NULL;
16963  __pyx_t_1.data = NULL;
16964  __pyx_r = __pyx_t_3;
16965  __pyx_t_3 = 0;
16966  goto __pyx_L0;
16967 
16968  /* function exit code */
16969  __pyx_L1_error:;
16970  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
16971  __Pyx_XDECREF(__pyx_t_3);
16972  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
16973  __pyx_r = NULL;
16974  __pyx_L0:;
16975  __Pyx_XGIVEREF(__pyx_r);
16976  __Pyx_TraceReturn(__pyx_r, 0);
16977  __Pyx_RefNannyFinishContext();
16978  return __pyx_r;
16979 }
16980 
16981 /* "mprans/BoundaryConditions.py":587
16982  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
16983  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
16984  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t) # <<<<<<<<<<<<<<
16985  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
16986  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
16987  */
16988 
16989 /* Python wrapper */
16990 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_4lambda15(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16991 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_4lambda15 = {"lambda15", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_4lambda15, METH_VARARGS|METH_KEYWORDS, 0};
16992 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_4lambda15(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16993  PyObject *__pyx_v_x = 0;
16994  PyObject *__pyx_v_t = 0;
16995  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
16996  int __pyx_lineno = 0;
16997  const char *__pyx_filename = NULL;
16998  int __pyx_clineno = 0;
16999  PyObject *__pyx_r = 0;
17000  __Pyx_RefNannyDeclarations
17001  __Pyx_RefNannySetupContext("lambda15 (wrapper)", 0);
17002  {
17003  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
17004  PyObject* values[3] = {0,0,0};
17005  values[2] = ((PyObject *)((PyObject *)Py_None));
17006  if (unlikely(__pyx_kwds)) {
17007  Py_ssize_t kw_args;
17008  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17009  switch (pos_args) {
17010  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17011  CYTHON_FALLTHROUGH;
17012  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17013  CYTHON_FALLTHROUGH;
17014  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17015  CYTHON_FALLTHROUGH;
17016  case 0: break;
17017  default: goto __pyx_L5_argtuple_error;
17018  }
17019  kw_args = PyDict_Size(__pyx_kwds);
17020  switch (pos_args) {
17021  case 0:
17022  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
17023  else goto __pyx_L5_argtuple_error;
17024  CYTHON_FALLTHROUGH;
17025  case 1:
17026  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
17027  else {
17028  __Pyx_RaiseArgtupleInvalid("lambda15", 0, 2, 3, 1); __PYX_ERR(0, 587, __pyx_L3_error)
17029  }
17030  CYTHON_FALLTHROUGH;
17031  case 2:
17032  if (kw_args > 0) {
17033  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
17034  if (value) { values[2] = value; kw_args--; }
17035  }
17036  }
17037  if (unlikely(kw_args > 0)) {
17038  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda15") < 0)) __PYX_ERR(0, 587, __pyx_L3_error)
17039  }
17040  } else {
17041  switch (PyTuple_GET_SIZE(__pyx_args)) {
17042  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17043  CYTHON_FALLTHROUGH;
17044  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17045  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17046  break;
17047  default: goto __pyx_L5_argtuple_error;
17048  }
17049  }
17050  __pyx_v_x = values[0];
17051  __pyx_v_t = values[1];
17052  __pyx_v_n = values[2];
17053  }
17054  goto __pyx_L4_argument_unpacking_done;
17055  __pyx_L5_argtuple_error:;
17056  __Pyx_RaiseArgtupleInvalid("lambda15", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 587, __pyx_L3_error)
17057  __pyx_L3_error:;
17058  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda15", __pyx_clineno, __pyx_lineno, __pyx_filename);
17059  __Pyx_RefNannyFinishContext();
17060  return NULL;
17061  __pyx_L4_argument_unpacking_done:;
17062  __pyx_r = __pyx_lambda_funcdef_lambda15(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
17063 
17064  /* function exit code */
17065  __Pyx_RefNannyFinishContext();
17066  return __pyx_r;
17067 }
17068 
17069 static PyObject *__pyx_lambda_funcdef_lambda15(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
17070  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
17071  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
17072  PyObject *__pyx_r = NULL;
17073  __Pyx_TraceDeclarations
17074  __Pyx_RefNannyDeclarations
17075  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
17076  double __pyx_t_2;
17077  PyObject *__pyx_t_3 = NULL;
17078  int __pyx_lineno = 0;
17079  const char *__pyx_filename = NULL;
17080  int __pyx_clineno = 0;
17081  __Pyx_RefNannySetupContext("lambda15", 0);
17082  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
17083  __pyx_cur_scope = __pyx_outer_scope;
17084  __Pyx_TraceCall("lambda15", __pyx_f[0], 587, 0, __PYX_ERR(0, 587, __pyx_L1_error));
17085  __Pyx_XDECREF(__pyx_r);
17086  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 587, __pyx_L1_error) }
17087  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 587, __pyx_L1_error)
17088  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 587, __pyx_L1_error)
17089  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 587, __pyx_L1_error)
17090  __Pyx_GOTREF(__pyx_t_3);
17091  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17092  __pyx_t_1.memview = NULL;
17093  __pyx_t_1.data = NULL;
17094  __pyx_r = __pyx_t_3;
17095  __pyx_t_3 = 0;
17096  goto __pyx_L0;
17097 
17098  /* function exit code */
17099  __pyx_L1_error:;
17100  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17101  __Pyx_XDECREF(__pyx_t_3);
17102  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda15", __pyx_clineno, __pyx_lineno, __pyx_filename);
17103  __pyx_r = NULL;
17104  __pyx_L0:;
17105  __Pyx_XGIVEREF(__pyx_r);
17106  __Pyx_TraceReturn(__pyx_r, 0);
17107  __Pyx_RefNannyFinishContext();
17108  return __pyx_r;
17109 }
17110 
17111 /* "mprans/BoundaryConditions.py":588
17112  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
17113  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17114  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
17115  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17116  *
17117  */
17118 
17119 /* Python wrapper */
17120 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_5lambda16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17121 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_5lambda16 = {"lambda16", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_5lambda16, METH_VARARGS|METH_KEYWORDS, 0};
17122 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_5lambda16(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17123  PyObject *__pyx_v_x = 0;
17124  PyObject *__pyx_v_t = 0;
17125  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
17126  int __pyx_lineno = 0;
17127  const char *__pyx_filename = NULL;
17128  int __pyx_clineno = 0;
17129  PyObject *__pyx_r = 0;
17130  __Pyx_RefNannyDeclarations
17131  __Pyx_RefNannySetupContext("lambda16 (wrapper)", 0);
17132  {
17133  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
17134  PyObject* values[3] = {0,0,0};
17135  values[2] = ((PyObject *)((PyObject *)Py_None));
17136  if (unlikely(__pyx_kwds)) {
17137  Py_ssize_t kw_args;
17138  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17139  switch (pos_args) {
17140  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17141  CYTHON_FALLTHROUGH;
17142  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17143  CYTHON_FALLTHROUGH;
17144  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17145  CYTHON_FALLTHROUGH;
17146  case 0: break;
17147  default: goto __pyx_L5_argtuple_error;
17148  }
17149  kw_args = PyDict_Size(__pyx_kwds);
17150  switch (pos_args) {
17151  case 0:
17152  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
17153  else goto __pyx_L5_argtuple_error;
17154  CYTHON_FALLTHROUGH;
17155  case 1:
17156  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
17157  else {
17158  __Pyx_RaiseArgtupleInvalid("lambda16", 0, 2, 3, 1); __PYX_ERR(0, 588, __pyx_L3_error)
17159  }
17160  CYTHON_FALLTHROUGH;
17161  case 2:
17162  if (kw_args > 0) {
17163  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
17164  if (value) { values[2] = value; kw_args--; }
17165  }
17166  }
17167  if (unlikely(kw_args > 0)) {
17168  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda16") < 0)) __PYX_ERR(0, 588, __pyx_L3_error)
17169  }
17170  } else {
17171  switch (PyTuple_GET_SIZE(__pyx_args)) {
17172  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17173  CYTHON_FALLTHROUGH;
17174  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17175  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17176  break;
17177  default: goto __pyx_L5_argtuple_error;
17178  }
17179  }
17180  __pyx_v_x = values[0];
17181  __pyx_v_t = values[1];
17182  __pyx_v_n = values[2];
17183  }
17184  goto __pyx_L4_argument_unpacking_done;
17185  __pyx_L5_argtuple_error:;
17186  __Pyx_RaiseArgtupleInvalid("lambda16", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 588, __pyx_L3_error)
17187  __pyx_L3_error:;
17188  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda16", __pyx_clineno, __pyx_lineno, __pyx_filename);
17189  __Pyx_RefNannyFinishContext();
17190  return NULL;
17191  __pyx_L4_argument_unpacking_done:;
17192  __pyx_r = __pyx_lambda_funcdef_lambda16(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
17193 
17194  /* function exit code */
17195  __Pyx_RefNannyFinishContext();
17196  return __pyx_r;
17197 }
17198 
17199 static PyObject *__pyx_lambda_funcdef_lambda16(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
17200  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
17201  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
17202  PyObject *__pyx_r = NULL;
17203  __Pyx_TraceDeclarations
17204  __Pyx_RefNannyDeclarations
17205  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
17206  double __pyx_t_2;
17207  PyObject *__pyx_t_3 = NULL;
17208  int __pyx_lineno = 0;
17209  const char *__pyx_filename = NULL;
17210  int __pyx_clineno = 0;
17211  __Pyx_RefNannySetupContext("lambda16", 0);
17212  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
17213  __pyx_cur_scope = __pyx_outer_scope;
17214  __Pyx_TraceCall("lambda16", __pyx_f[0], 588, 0, __PYX_ERR(0, 588, __pyx_L1_error));
17215  __Pyx_XDECREF(__pyx_r);
17216  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 588, __pyx_L1_error) }
17217  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 588, __pyx_L1_error)
17218  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 588, __pyx_L1_error)
17219  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 588, __pyx_L1_error)
17220  __Pyx_GOTREF(__pyx_t_3);
17221  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17222  __pyx_t_1.memview = NULL;
17223  __pyx_t_1.data = NULL;
17224  __pyx_r = __pyx_t_3;
17225  __pyx_t_3 = 0;
17226  goto __pyx_L0;
17227 
17228  /* function exit code */
17229  __pyx_L1_error:;
17230  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17231  __Pyx_XDECREF(__pyx_t_3);
17232  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda16", __pyx_clineno, __pyx_lineno, __pyx_filename);
17233  __pyx_r = NULL;
17234  __pyx_L0:;
17235  __Pyx_XGIVEREF(__pyx_r);
17236  __Pyx_TraceReturn(__pyx_r, 0);
17237  __Pyx_RefNannyFinishContext();
17238  return __pyx_r;
17239 }
17240 
17241 /* "mprans/BoundaryConditions.py":589
17242  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17243  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17244  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
17245  *
17246  * self.pInc_diffusive.setConstantBC(0.0)
17247  */
17248 
17249 /* Python wrapper */
17250 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_6lambda17(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17251 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_6lambda17 = {"lambda17", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_6lambda17, METH_VARARGS|METH_KEYWORDS, 0};
17252 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_6lambda17(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17253  PyObject *__pyx_v_x = 0;
17254  PyObject *__pyx_v_t = 0;
17255  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
17256  int __pyx_lineno = 0;
17257  const char *__pyx_filename = NULL;
17258  int __pyx_clineno = 0;
17259  PyObject *__pyx_r = 0;
17260  __Pyx_RefNannyDeclarations
17261  __Pyx_RefNannySetupContext("lambda17 (wrapper)", 0);
17262  {
17263  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
17264  PyObject* values[3] = {0,0,0};
17265  values[2] = ((PyObject *)((PyObject *)Py_None));
17266  if (unlikely(__pyx_kwds)) {
17267  Py_ssize_t kw_args;
17268  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17269  switch (pos_args) {
17270  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17271  CYTHON_FALLTHROUGH;
17272  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17273  CYTHON_FALLTHROUGH;
17274  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17275  CYTHON_FALLTHROUGH;
17276  case 0: break;
17277  default: goto __pyx_L5_argtuple_error;
17278  }
17279  kw_args = PyDict_Size(__pyx_kwds);
17280  switch (pos_args) {
17281  case 0:
17282  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
17283  else goto __pyx_L5_argtuple_error;
17284  CYTHON_FALLTHROUGH;
17285  case 1:
17286  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
17287  else {
17288  __Pyx_RaiseArgtupleInvalid("lambda17", 0, 2, 3, 1); __PYX_ERR(0, 589, __pyx_L3_error)
17289  }
17290  CYTHON_FALLTHROUGH;
17291  case 2:
17292  if (kw_args > 0) {
17293  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
17294  if (value) { values[2] = value; kw_args--; }
17295  }
17296  }
17297  if (unlikely(kw_args > 0)) {
17298  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda17") < 0)) __PYX_ERR(0, 589, __pyx_L3_error)
17299  }
17300  } else {
17301  switch (PyTuple_GET_SIZE(__pyx_args)) {
17302  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17303  CYTHON_FALLTHROUGH;
17304  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17305  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17306  break;
17307  default: goto __pyx_L5_argtuple_error;
17308  }
17309  }
17310  __pyx_v_x = values[0];
17311  __pyx_v_t = values[1];
17312  __pyx_v_n = values[2];
17313  }
17314  goto __pyx_L4_argument_unpacking_done;
17315  __pyx_L5_argtuple_error:;
17316  __Pyx_RaiseArgtupleInvalid("lambda17", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 589, __pyx_L3_error)
17317  __pyx_L3_error:;
17318  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda17", __pyx_clineno, __pyx_lineno, __pyx_filename);
17319  __Pyx_RefNannyFinishContext();
17320  return NULL;
17321  __pyx_L4_argument_unpacking_done:;
17322  __pyx_r = __pyx_lambda_funcdef_lambda17(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
17323 
17324  /* function exit code */
17325  __Pyx_RefNannyFinishContext();
17326  return __pyx_r;
17327 }
17328 
17329 static PyObject *__pyx_lambda_funcdef_lambda17(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
17330  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
17331  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
17332  PyObject *__pyx_r = NULL;
17333  __Pyx_TraceDeclarations
17334  __Pyx_RefNannyDeclarations
17335  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
17336  double __pyx_t_2;
17337  PyObject *__pyx_t_3 = NULL;
17338  int __pyx_lineno = 0;
17339  const char *__pyx_filename = NULL;
17340  int __pyx_clineno = 0;
17341  __Pyx_RefNannySetupContext("lambda17", 0);
17342  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
17343  __pyx_cur_scope = __pyx_outer_scope;
17344  __Pyx_TraceCall("lambda17", __pyx_f[0], 589, 0, __PYX_ERR(0, 589, __pyx_L1_error));
17345  __Pyx_XDECREF(__pyx_r);
17346  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 589, __pyx_L1_error) }
17347  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 589, __pyx_L1_error)
17348  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 589, __pyx_L1_error)
17349  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 589, __pyx_L1_error)
17350  __Pyx_GOTREF(__pyx_t_3);
17351  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17352  __pyx_t_1.memview = NULL;
17353  __pyx_t_1.data = NULL;
17354  __pyx_r = __pyx_t_3;
17355  __pyx_t_3 = 0;
17356  goto __pyx_L0;
17357 
17358  /* function exit code */
17359  __pyx_L1_error:;
17360  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17361  __Pyx_XDECREF(__pyx_t_3);
17362  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda17", __pyx_clineno, __pyx_lineno, __pyx_filename);
17363  __pyx_r = NULL;
17364  __pyx_L0:;
17365  __Pyx_XGIVEREF(__pyx_r);
17366  __Pyx_TraceReturn(__pyx_r, 0);
17367  __Pyx_RefNannyFinishContext();
17368  return __pyx_r;
17369 }
17370 
17371 /* "mprans/BoundaryConditions.py":592
17372  *
17373  * self.pInc_diffusive.setConstantBC(0.0)
17374  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0) # <<<<<<<<<<<<<<
17375  * self.vos_dirichlet.setConstantBC(0.0)
17376  * self.us_dirichlet.setConstantBC(0.0)
17377  */
17378 
17379 /* Python wrapper */
17380 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_7lambda18(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17381 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_7lambda18 = {"lambda18", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_7lambda18, METH_VARARGS|METH_KEYWORDS, 0};
17382 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_7lambda18(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17383  PyObject *__pyx_v_x = 0;
17384  PyObject *__pyx_v_t = 0;
17385  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
17386  int __pyx_lineno = 0;
17387  const char *__pyx_filename = NULL;
17388  int __pyx_clineno = 0;
17389  PyObject *__pyx_r = 0;
17390  __Pyx_RefNannyDeclarations
17391  __Pyx_RefNannySetupContext("lambda18 (wrapper)", 0);
17392  {
17393  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
17394  PyObject* values[3] = {0,0,0};
17395  values[2] = ((PyObject *)((PyObject *)Py_None));
17396  if (unlikely(__pyx_kwds)) {
17397  Py_ssize_t kw_args;
17398  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17399  switch (pos_args) {
17400  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17401  CYTHON_FALLTHROUGH;
17402  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17403  CYTHON_FALLTHROUGH;
17404  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17405  CYTHON_FALLTHROUGH;
17406  case 0: break;
17407  default: goto __pyx_L5_argtuple_error;
17408  }
17409  kw_args = PyDict_Size(__pyx_kwds);
17410  switch (pos_args) {
17411  case 0:
17412  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
17413  else goto __pyx_L5_argtuple_error;
17414  CYTHON_FALLTHROUGH;
17415  case 1:
17416  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
17417  else {
17418  __Pyx_RaiseArgtupleInvalid("lambda18", 0, 2, 3, 1); __PYX_ERR(0, 592, __pyx_L3_error)
17419  }
17420  CYTHON_FALLTHROUGH;
17421  case 2:
17422  if (kw_args > 0) {
17423  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
17424  if (value) { values[2] = value; kw_args--; }
17425  }
17426  }
17427  if (unlikely(kw_args > 0)) {
17428  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda18") < 0)) __PYX_ERR(0, 592, __pyx_L3_error)
17429  }
17430  } else {
17431  switch (PyTuple_GET_SIZE(__pyx_args)) {
17432  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17433  CYTHON_FALLTHROUGH;
17434  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17435  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17436  break;
17437  default: goto __pyx_L5_argtuple_error;
17438  }
17439  }
17440  __pyx_v_x = values[0];
17441  __pyx_v_t = values[1];
17442  __pyx_v_n = values[2];
17443  }
17444  goto __pyx_L4_argument_unpacking_done;
17445  __pyx_L5_argtuple_error:;
17446  __Pyx_RaiseArgtupleInvalid("lambda18", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 592, __pyx_L3_error)
17447  __pyx_L3_error:;
17448  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda18", __pyx_clineno, __pyx_lineno, __pyx_filename);
17449  __Pyx_RefNannyFinishContext();
17450  return NULL;
17451  __pyx_L4_argument_unpacking_done:;
17452  __pyx_r = __pyx_lambda_funcdef_lambda18(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
17453 
17454  /* function exit code */
17455  __Pyx_RefNannyFinishContext();
17456  return __pyx_r;
17457 }
17458 
17459 static PyObject *__pyx_lambda_funcdef_lambda18(PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
17460  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
17461  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_outer_scope;
17462  PyObject *__pyx_r = NULL;
17463  __Pyx_TraceDeclarations
17464  __Pyx_RefNannyDeclarations
17465  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
17466  double __pyx_t_2;
17467  PyObject *__pyx_t_3 = NULL;
17468  int __pyx_lineno = 0;
17469  const char *__pyx_filename = NULL;
17470  int __pyx_clineno = 0;
17471  __Pyx_RefNannySetupContext("lambda18", 0);
17472  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
17473  __pyx_cur_scope = __pyx_outer_scope;
17474  __Pyx_TraceCall("lambda18", __pyx_f[0], 592, 0, __PYX_ERR(0, 592, __pyx_L1_error));
17475  __Pyx_XDECREF(__pyx_r);
17476  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 592, __pyx_L1_error) }
17477  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_x, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 592, __pyx_L1_error)
17478  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 592, __pyx_L1_error)
17479  __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(__pyx_cur_scope->__pyx_v_self, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 592, __pyx_L1_error)
17480  __Pyx_GOTREF(__pyx_t_3);
17481  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17482  __pyx_t_1.memview = NULL;
17483  __pyx_t_1.data = NULL;
17484  __pyx_r = __pyx_t_3;
17485  __pyx_t_3 = 0;
17486  goto __pyx_L0;
17487 
17488  /* function exit code */
17489  __pyx_L1_error:;
17490  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17491  __Pyx_XDECREF(__pyx_t_3);
17492  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet.lambda18", __pyx_clineno, __pyx_lineno, __pyx_filename);
17493  __pyx_r = NULL;
17494  __pyx_L0:;
17495  __Pyx_XGIVEREF(__pyx_r);
17496  __Pyx_TraceReturn(__pyx_r, 0);
17497  __Pyx_RefNannyFinishContext();
17498  return __pyx_r;
17499 }
17500 
17501 /* "mprans/BoundaryConditions.py":544
17502  * return self.__cpp_MoveMesh_h(x, t)[2]
17503  *
17504  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
17505  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
17506  * """
17507  */
17508 
17509 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_wave, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_orientation, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_vof_air, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dInflow) {
17510  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_cur_scope;
17511  PyObject *__pyx_v_b_or = NULL;
17512  PyObject *__pyx_r = NULL;
17513  __Pyx_TraceDeclarations
17514  __Pyx_RefNannyDeclarations
17515  PyObject *__pyx_t_1 = NULL;
17516  PyObject *__pyx_t_2 = NULL;
17517  PyObject *__pyx_t_3 = NULL;
17518  int __pyx_t_4;
17519  int __pyx_t_5;
17520  int __pyx_lineno = 0;
17521  const char *__pyx_filename = NULL;
17522  int __pyx_clineno = 0;
17523  __Pyx_TraceFrameInit(__pyx_codeobj__37)
17524  __Pyx_RefNannySetupContext("setUnsteadyTwoPhaseVelocityInlet", 0);
17525  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet, __pyx_empty_tuple, NULL);
17526  if (unlikely(!__pyx_cur_scope)) {
17527  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)Py_None);
17528  __Pyx_INCREF(Py_None);
17529  __PYX_ERR(0, 544, __pyx_L1_error)
17530  } else {
17531  __Pyx_GOTREF(__pyx_cur_scope);
17532  }
17533  __Pyx_TraceCall("setUnsteadyTwoPhaseVelocityInlet", __pyx_f[0], 544, 0, __PYX_ERR(0, 544, __pyx_L1_error));
17534  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
17535  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
17536  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
17537  __Pyx_INCREF(__pyx_v_vert_axis);
17538  __Pyx_INCREF(__pyx_v_wind_speed);
17539 
17540  /* "mprans/BoundaryConditions.py":570
17541  * (with smoothing).
17542  * """
17543  * self.reset() # <<<<<<<<<<<<<<
17544  * if vert_axis is None:
17545  * vert_axis = self.nd - 1
17546  */
17547  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error)
17548  __Pyx_GOTREF(__pyx_t_2);
17549  __pyx_t_3 = NULL;
17550  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17551  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17552  if (likely(__pyx_t_3)) {
17553  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17554  __Pyx_INCREF(__pyx_t_3);
17555  __Pyx_INCREF(function);
17556  __Pyx_DECREF_SET(__pyx_t_2, function);
17557  }
17558  }
17559  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
17560  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17561  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L1_error)
17562  __Pyx_GOTREF(__pyx_t_1);
17563  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17564  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17565 
17566  /* "mprans/BoundaryConditions.py":571
17567  * """
17568  * self.reset()
17569  * if vert_axis is None: # <<<<<<<<<<<<<<
17570  * vert_axis = self.nd - 1
17571  * if wind_speed is None:
17572  */
17573  __pyx_t_4 = (__pyx_v_vert_axis == Py_None);
17574  __pyx_t_5 = (__pyx_t_4 != 0);
17575  if (__pyx_t_5) {
17576 
17577  /* "mprans/BoundaryConditions.py":572
17578  * self.reset()
17579  * if vert_axis is None:
17580  * vert_axis = self.nd - 1 # <<<<<<<<<<<<<<
17581  * if wind_speed is None:
17582  * wind_speed = np.zeros(3)
17583  */
17584  __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_cur_scope->__pyx_v_self->__pyx_base.nd - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error)
17585  __Pyx_GOTREF(__pyx_t_1);
17586  __Pyx_DECREF_SET(__pyx_v_vert_axis, __pyx_t_1);
17587  __pyx_t_1 = 0;
17588 
17589  /* "mprans/BoundaryConditions.py":571
17590  * """
17591  * self.reset()
17592  * if vert_axis is None: # <<<<<<<<<<<<<<
17593  * vert_axis = self.nd - 1
17594  * if wind_speed is None:
17595  */
17596  }
17597 
17598  /* "mprans/BoundaryConditions.py":573
17599  * if vert_axis is None:
17600  * vert_axis = self.nd - 1
17601  * if wind_speed is None: # <<<<<<<<<<<<<<
17602  * wind_speed = np.zeros(3)
17603  * if orientation is not None:
17604  */
17605  __pyx_t_5 = (__pyx_v_wind_speed == Py_None);
17606  __pyx_t_4 = (__pyx_t_5 != 0);
17607  if (__pyx_t_4) {
17608 
17609  /* "mprans/BoundaryConditions.py":574
17610  * vert_axis = self.nd - 1
17611  * if wind_speed is None:
17612  * wind_speed = np.zeros(3) # <<<<<<<<<<<<<<
17613  * if orientation is not None:
17614  * b_or = orientation
17615  */
17616  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
17617  __Pyx_GOTREF(__pyx_t_2);
17618  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error)
17619  __Pyx_GOTREF(__pyx_t_3);
17620  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17621  __pyx_t_2 = NULL;
17622  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
17623  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
17624  if (likely(__pyx_t_2)) {
17625  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
17626  __Pyx_INCREF(__pyx_t_2);
17627  __Pyx_INCREF(function);
17628  __Pyx_DECREF_SET(__pyx_t_3, function);
17629  }
17630  }
17631  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_3);
17632  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17633  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
17634  __Pyx_GOTREF(__pyx_t_1);
17635  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17636  __Pyx_DECREF_SET(__pyx_v_wind_speed, __pyx_t_1);
17637  __pyx_t_1 = 0;
17638 
17639  /* "mprans/BoundaryConditions.py":573
17640  * if vert_axis is None:
17641  * vert_axis = self.nd - 1
17642  * if wind_speed is None: # <<<<<<<<<<<<<<
17643  * wind_speed = np.zeros(3)
17644  * if orientation is not None:
17645  */
17646  }
17647 
17648  /* "mprans/BoundaryConditions.py":575
17649  * if wind_speed is None:
17650  * wind_speed = np.zeros(3)
17651  * if orientation is not None: # <<<<<<<<<<<<<<
17652  * b_or = orientation
17653  * else:
17654  */
17655  __pyx_t_4 = (__pyx_v_orientation != Py_None);
17656  __pyx_t_5 = (__pyx_t_4 != 0);
17657  if (__pyx_t_5) {
17658 
17659  /* "mprans/BoundaryConditions.py":576
17660  * wind_speed = np.zeros(3)
17661  * if orientation is not None:
17662  * b_or = orientation # <<<<<<<<<<<<<<
17663  * else:
17664  * b_or=self._b_or
17665  */
17666  __Pyx_INCREF(__pyx_v_orientation);
17667  __pyx_v_b_or = __pyx_v_orientation;
17668 
17669  /* "mprans/BoundaryConditions.py":575
17670  * if wind_speed is None:
17671  * wind_speed = np.zeros(3)
17672  * if orientation is not None: # <<<<<<<<<<<<<<
17673  * b_or = orientation
17674  * else:
17675  */
17676  goto __pyx_L5;
17677  }
17678 
17679  /* "mprans/BoundaryConditions.py":578
17680  * b_or = orientation
17681  * else:
17682  * b_or=self._b_or # <<<<<<<<<<<<<<
17683  * assert b_or is not None, "ERROR: Boundary orientation for Unsteady flow inlet is not defined"
17684  * self.waves = __cppClass_WavesCharacteristics(waves=wave, vert_axis=vert_axis, b_or=b_or,
17685  */
17686  /*else*/ {
17687  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_cur_scope->__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error)
17688  __Pyx_GOTREF(__pyx_t_1);
17689  __pyx_v_b_or = __pyx_t_1;
17690  __pyx_t_1 = 0;
17691  }
17692  __pyx_L5:;
17693 
17694  /* "mprans/BoundaryConditions.py":579
17695  * else:
17696  * b_or=self._b_or
17697  * assert b_or is not None, "ERROR: Boundary orientation for Unsteady flow inlet is not defined" # <<<<<<<<<<<<<<
17698  * self.waves = __cppClass_WavesCharacteristics(waves=wave, vert_axis=vert_axis, b_or=b_or,
17699  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
17700  */
17701  #ifndef CYTHON_WITHOUT_ASSERTIONS
17702  if (unlikely(!Py_OptimizeFlag)) {
17703  __pyx_t_5 = (__pyx_v_b_or != Py_None);
17704  if (unlikely(!(__pyx_t_5 != 0))) {
17705  PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_ERROR_Boundary_orientation_for_U);
17706  __PYX_ERR(0, 579, __pyx_L1_error)
17707  }
17708  }
17709  #endif
17710 
17711  /* "mprans/BoundaryConditions.py":580
17712  * b_or=self._b_or
17713  * assert b_or is not None, "ERROR: Boundary orientation for Unsteady flow inlet is not defined"
17714  * self.waves = __cppClass_WavesCharacteristics(waves=wave, vert_axis=vert_axis, b_or=b_or, # <<<<<<<<<<<<<<
17715  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
17716  *
17717  */
17718  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error)
17719  __Pyx_GOTREF(__pyx_t_1);
17720  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_waves, __pyx_v_wave) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17721  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vert_axis, __pyx_v_vert_axis) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17722  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_b_or, __pyx_v_b_or) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17723 
17724  /* "mprans/BoundaryConditions.py":581
17725  * assert b_or is not None, "ERROR: Boundary orientation for Unsteady flow inlet is not defined"
17726  * self.waves = __cppClass_WavesCharacteristics(waves=wave, vert_axis=vert_axis, b_or=b_or,
17727  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air) # <<<<<<<<<<<<<<
17728  *
17729  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
17730  */
17731  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_wind_speed, __pyx_v_wind_speed) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17732  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_smoothing, __pyx_v_smoothing) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17733  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vof_water, __pyx_v_vof_water) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17734  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vof_air, __pyx_v_vof_air) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
17735 
17736  /* "mprans/BoundaryConditions.py":580
17737  * b_or=self._b_or
17738  * assert b_or is not None, "ERROR: Boundary orientation for Unsteady flow inlet is not defined"
17739  * self.waves = __cppClass_WavesCharacteristics(waves=wave, vert_axis=vert_axis, b_or=b_or, # <<<<<<<<<<<<<<
17740  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
17741  *
17742  */
17743  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error)
17744  __Pyx_GOTREF(__pyx_t_3);
17745  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17746  __Pyx_GIVEREF(__pyx_t_3);
17747  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->waves);
17748  __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->waves));
17749  __pyx_cur_scope->__pyx_v_self->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_t_3);
17750  __pyx_t_3 = 0;
17751 
17752  /* "mprans/BoundaryConditions.py":583
17753  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
17754  *
17755  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t) # <<<<<<<<<<<<<<
17756  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
17757  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
17758  */
17759  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_lambda11, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 583, __pyx_L1_error)
17760  __Pyx_GOTREF(__pyx_t_3);
17761  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__38);
17762  __Pyx_GIVEREF(__pyx_t_3);
17763  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT);
17764  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT);
17765  __pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT = __pyx_t_3;
17766  __pyx_t_3 = 0;
17767 
17768  /* "mprans/BoundaryConditions.py":584
17769  *
17770  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
17771  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t) # <<<<<<<<<<<<<<
17772  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
17773  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
17774  */
17775  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_1lambda12, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error)
17776  __Pyx_GOTREF(__pyx_t_3);
17777  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__39);
17778  __Pyx_GIVEREF(__pyx_t_3);
17779  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT);
17780  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT);
17781  __pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT = __pyx_t_3;
17782  __pyx_t_3 = 0;
17783 
17784  /* "mprans/BoundaryConditions.py":585
17785  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
17786  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
17787  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t) # <<<<<<<<<<<<<<
17788  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
17789  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17790  */
17791  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_2lambda13, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
17792  __Pyx_GOTREF(__pyx_t_3);
17793  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__40);
17794  __Pyx_GIVEREF(__pyx_t_3);
17795  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT);
17796  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT);
17797  __pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT = __pyx_t_3;
17798  __pyx_t_3 = 0;
17799 
17800  /* "mprans/BoundaryConditions.py":586
17801  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
17802  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
17803  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t) # <<<<<<<<<<<<<<
17804  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17805  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17806  */
17807  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_3lambda14, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 586, __pyx_L1_error)
17808  __Pyx_GOTREF(__pyx_t_3);
17809  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__41);
17810  __Pyx_GIVEREF(__pyx_t_3);
17811  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT);
17812  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT);
17813  __pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT = __pyx_t_3;
17814  __pyx_t_3 = 0;
17815 
17816  /* "mprans/BoundaryConditions.py":587
17817  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
17818  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
17819  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t) # <<<<<<<<<<<<<<
17820  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17821  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17822  */
17823  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_4lambda15, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 587, __pyx_L1_error)
17824  __Pyx_GOTREF(__pyx_t_3);
17825  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__42);
17826  __Pyx_GIVEREF(__pyx_t_3);
17827  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT);
17828  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT);
17829  __pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT = __pyx_t_3;
17830  __pyx_t_3 = 0;
17831 
17832  /* "mprans/BoundaryConditions.py":588
17833  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
17834  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17835  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
17836  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17837  *
17838  */
17839  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_5lambda16, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 588, __pyx_L1_error)
17840  __Pyx_GOTREF(__pyx_t_3);
17841  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__43);
17842  __Pyx_GIVEREF(__pyx_t_3);
17843  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->p_advective->uOfXT);
17844  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->p_advective->uOfXT);
17845  __pyx_cur_scope->__pyx_v_self->p_advective->uOfXT = __pyx_t_3;
17846  __pyx_t_3 = 0;
17847 
17848  /* "mprans/BoundaryConditions.py":589
17849  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
17850  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17851  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
17852  *
17853  * self.pInc_diffusive.setConstantBC(0.0)
17854  */
17855  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_6lambda17, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 589, __pyx_L1_error)
17856  __Pyx_GOTREF(__pyx_t_3);
17857  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__44);
17858  __Pyx_GIVEREF(__pyx_t_3);
17859  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->pInc_advective->uOfXT);
17860  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->pInc_advective->uOfXT);
17861  __pyx_cur_scope->__pyx_v_self->pInc_advective->uOfXT = __pyx_t_3;
17862  __pyx_t_3 = 0;
17863 
17864  /* "mprans/BoundaryConditions.py":591
17865  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
17866  *
17867  * self.pInc_diffusive.setConstantBC(0.0) # <<<<<<<<<<<<<<
17868  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0)
17869  * self.vos_dirichlet.setConstantBC(0.0)
17870  */
17871  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->pInc_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
17872  __Pyx_GOTREF(__pyx_t_1);
17873  __pyx_t_2 = NULL;
17874  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17875  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
17876  if (likely(__pyx_t_2)) {
17877  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17878  __Pyx_INCREF(__pyx_t_2);
17879  __Pyx_INCREF(function);
17880  __Pyx_DECREF_SET(__pyx_t_1, function);
17881  }
17882  }
17883  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
17884  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17885  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 591, __pyx_L1_error)
17886  __Pyx_GOTREF(__pyx_t_3);
17887  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17888  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17889 
17890  /* "mprans/BoundaryConditions.py":592
17891  *
17892  * self.pInc_diffusive.setConstantBC(0.0)
17893  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0) # <<<<<<<<<<<<<<
17894  * self.vos_dirichlet.setConstantBC(0.0)
17895  * self.us_dirichlet.setConstantBC(0.0)
17896  */
17897  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_32setUnsteadyTwoPhaseVelocityInlet_7lambda18, 0, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 592, __pyx_L1_error)
17898  __Pyx_GOTREF(__pyx_t_3);
17899  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__45);
17900  __Pyx_GIVEREF(__pyx_t_3);
17901  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->pInit_advective->uOfXT);
17902  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->pInit_advective->uOfXT);
17903  __pyx_cur_scope->__pyx_v_self->pInit_advective->uOfXT = __pyx_t_3;
17904  __pyx_t_3 = 0;
17905 
17906  /* "mprans/BoundaryConditions.py":593
17907  * self.pInc_diffusive.setConstantBC(0.0)
17908  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0)
17909  * self.vos_dirichlet.setConstantBC(0.0) # <<<<<<<<<<<<<<
17910  * self.us_dirichlet.setConstantBC(0.0)
17911  * self.vs_dirichlet.setConstantBC(0.0)
17912  */
17913  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->vos_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error)
17914  __Pyx_GOTREF(__pyx_t_1);
17915  __pyx_t_2 = NULL;
17916  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17917  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
17918  if (likely(__pyx_t_2)) {
17919  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17920  __Pyx_INCREF(__pyx_t_2);
17921  __Pyx_INCREF(function);
17922  __Pyx_DECREF_SET(__pyx_t_1, function);
17923  }
17924  }
17925  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
17926  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17927  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 593, __pyx_L1_error)
17928  __Pyx_GOTREF(__pyx_t_3);
17929  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17930  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17931 
17932  /* "mprans/BoundaryConditions.py":594
17933  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0)
17934  * self.vos_dirichlet.setConstantBC(0.0)
17935  * self.us_dirichlet.setConstantBC(0.0) # <<<<<<<<<<<<<<
17936  * self.vs_dirichlet.setConstantBC(0.0)
17937  * self.ws_dirichlet.setConstantBC(0.0)
17938  */
17939  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->us_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error)
17940  __Pyx_GOTREF(__pyx_t_1);
17941  __pyx_t_2 = NULL;
17942  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17943  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
17944  if (likely(__pyx_t_2)) {
17945  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17946  __Pyx_INCREF(__pyx_t_2);
17947  __Pyx_INCREF(function);
17948  __Pyx_DECREF_SET(__pyx_t_1, function);
17949  }
17950  }
17951  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
17952  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17953  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 594, __pyx_L1_error)
17954  __Pyx_GOTREF(__pyx_t_3);
17955  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17956  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17957 
17958  /* "mprans/BoundaryConditions.py":595
17959  * self.vos_dirichlet.setConstantBC(0.0)
17960  * self.us_dirichlet.setConstantBC(0.0)
17961  * self.vs_dirichlet.setConstantBC(0.0) # <<<<<<<<<<<<<<
17962  * self.ws_dirichlet.setConstantBC(0.0)
17963  * self.k_dirichlet.setConstantBC(kInflow)
17964  */
17965  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->vs_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
17966  __Pyx_GOTREF(__pyx_t_1);
17967  __pyx_t_2 = NULL;
17968  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17969  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
17970  if (likely(__pyx_t_2)) {
17971  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17972  __Pyx_INCREF(__pyx_t_2);
17973  __Pyx_INCREF(function);
17974  __Pyx_DECREF_SET(__pyx_t_1, function);
17975  }
17976  }
17977  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
17978  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17979  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 595, __pyx_L1_error)
17980  __Pyx_GOTREF(__pyx_t_3);
17981  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17982  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17983 
17984  /* "mprans/BoundaryConditions.py":596
17985  * self.us_dirichlet.setConstantBC(0.0)
17986  * self.vs_dirichlet.setConstantBC(0.0)
17987  * self.ws_dirichlet.setConstantBC(0.0) # <<<<<<<<<<<<<<
17988  * self.k_dirichlet.setConstantBC(kInflow)
17989  * self.dissipation_dirichlet.setConstantBC(dInflow)
17990  */
17991  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->ws_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L1_error)
17992  __Pyx_GOTREF(__pyx_t_1);
17993  __pyx_t_2 = NULL;
17994  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17995  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
17996  if (likely(__pyx_t_2)) {
17997  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17998  __Pyx_INCREF(__pyx_t_2);
17999  __Pyx_INCREF(function);
18000  __Pyx_DECREF_SET(__pyx_t_1, function);
18001  }
18002  }
18003  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
18004  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18005  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 596, __pyx_L1_error)
18006  __Pyx_GOTREF(__pyx_t_3);
18007  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18008  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18009 
18010  /* "mprans/BoundaryConditions.py":597
18011  * self.vs_dirichlet.setConstantBC(0.0)
18012  * self.ws_dirichlet.setConstantBC(0.0)
18013  * self.k_dirichlet.setConstantBC(kInflow) # <<<<<<<<<<<<<<
18014  * self.dissipation_dirichlet.setConstantBC(dInflow)
18015  * self.dissipation_diffusive.setConstantBC(0.)
18016  */
18017  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->k_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L1_error)
18018  __Pyx_GOTREF(__pyx_t_1);
18019  __pyx_t_2 = NULL;
18020  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
18021  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
18022  if (likely(__pyx_t_2)) {
18023  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
18024  __Pyx_INCREF(__pyx_t_2);
18025  __Pyx_INCREF(function);
18026  __Pyx_DECREF_SET(__pyx_t_1, function);
18027  }
18028  }
18029  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_kInflow) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_kInflow);
18030  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18031  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 597, __pyx_L1_error)
18032  __Pyx_GOTREF(__pyx_t_3);
18033  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18034  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18035 
18036  /* "mprans/BoundaryConditions.py":598
18037  * self.ws_dirichlet.setConstantBC(0.0)
18038  * self.k_dirichlet.setConstantBC(kInflow)
18039  * self.dissipation_dirichlet.setConstantBC(dInflow) # <<<<<<<<<<<<<<
18040  * self.dissipation_diffusive.setConstantBC(0.)
18041  * self.k_diffusive.setConstantBC(0.0)
18042  */
18043  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->dissipation_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L1_error)
18044  __Pyx_GOTREF(__pyx_t_1);
18045  __pyx_t_2 = NULL;
18046  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
18047  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
18048  if (likely(__pyx_t_2)) {
18049  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
18050  __Pyx_INCREF(__pyx_t_2);
18051  __Pyx_INCREF(function);
18052  __Pyx_DECREF_SET(__pyx_t_1, function);
18053  }
18054  }
18055  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_dInflow) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_dInflow);
18056  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18057  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 598, __pyx_L1_error)
18058  __Pyx_GOTREF(__pyx_t_3);
18059  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18060  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18061 
18062  /* "mprans/BoundaryConditions.py":599
18063  * self.k_dirichlet.setConstantBC(kInflow)
18064  * self.dissipation_dirichlet.setConstantBC(dInflow)
18065  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
18066  * self.k_diffusive.setConstantBC(0.0)
18067  *
18068  */
18069  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error)
18070  __Pyx_GOTREF(__pyx_t_1);
18071  __pyx_t_2 = NULL;
18072  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
18073  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
18074  if (likely(__pyx_t_2)) {
18075  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
18076  __Pyx_INCREF(__pyx_t_2);
18077  __Pyx_INCREF(function);
18078  __Pyx_DECREF_SET(__pyx_t_1, function);
18079  }
18080  }
18081  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_);
18082  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18083  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 599, __pyx_L1_error)
18084  __Pyx_GOTREF(__pyx_t_3);
18085  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18086  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18087 
18088  /* "mprans/BoundaryConditions.py":600
18089  * self.dissipation_dirichlet.setConstantBC(dInflow)
18090  * self.dissipation_diffusive.setConstantBC(0.)
18091  * self.k_diffusive.setConstantBC(0.0) # <<<<<<<<<<<<<<
18092  *
18093  * def __cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(self, x, t):
18094  */
18095  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error)
18096  __Pyx_GOTREF(__pyx_t_1);
18097  __pyx_t_2 = NULL;
18098  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
18099  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
18100  if (likely(__pyx_t_2)) {
18101  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
18102  __Pyx_INCREF(__pyx_t_2);
18103  __Pyx_INCREF(function);
18104  __Pyx_DECREF_SET(__pyx_t_1, function);
18105  }
18106  }
18107  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_float_0_0) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_float_0_0);
18108  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18109  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 600, __pyx_L1_error)
18110  __Pyx_GOTREF(__pyx_t_3);
18111  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18112  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18113 
18114  /* "mprans/BoundaryConditions.py":544
18115  * return self.__cpp_MoveMesh_h(x, t)[2]
18116  *
18117  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
18118  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
18119  * """
18120  */
18121 
18122  /* function exit code */
18123  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18124  goto __pyx_L0;
18125  __pyx_L1_error:;
18126  __Pyx_XDECREF(__pyx_t_1);
18127  __Pyx_XDECREF(__pyx_t_2);
18128  __Pyx_XDECREF(__pyx_t_3);
18129  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setUnsteadyTwoPhaseVelocityInlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
18130  __pyx_r = NULL;
18131  __pyx_L0:;
18132  __Pyx_XDECREF(__pyx_v_b_or);
18133  __Pyx_XDECREF(__pyx_v_vert_axis);
18134  __Pyx_XDECREF(__pyx_v_wind_speed);
18135  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
18136  __Pyx_XGIVEREF(__pyx_r);
18137  __Pyx_TraceReturn(__pyx_r, 0);
18138  __Pyx_RefNannyFinishContext();
18139  return __pyx_r;
18140 }
18141 
18142 /* "mprans/BoundaryConditions.py":602
18143  * self.k_diffusive.setConstantBC(0.0)
18144  *
18145  * def __cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18146  * cython.declare(xx=cython.double[3])
18147  * xx[0] = x[0]
18148  */
18149 
18150 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18151  double __pyx_v_xx[3];
18152  double __pyx_r;
18153  __Pyx_TraceDeclarations
18154  __Pyx_RefNannyDeclarations
18155  Py_ssize_t __pyx_t_1;
18156  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
18157  int __pyx_lineno = 0;
18158  const char *__pyx_filename = NULL;
18159  int __pyx_clineno = 0;
18160  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet", 0);
18161  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet", __pyx_f[0], 602, 0, __PYX_ERR(0, 602, __pyx_L1_error));
18162 
18163  /* "mprans/BoundaryConditions.py":604
18164  * def __cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(self, x, t):
18165  * cython.declare(xx=cython.double[3])
18166  * xx[0] = x[0] # <<<<<<<<<<<<<<
18167  * xx[1] = x[1]
18168  * xx[2] = x[2]
18169  */
18170  __pyx_t_1 = 0;
18171  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18172 
18173  /* "mprans/BoundaryConditions.py":605
18174  * cython.declare(xx=cython.double[3])
18175  * xx[0] = x[0]
18176  * xx[1] = x[1] # <<<<<<<<<<<<<<
18177  * xx[2] = x[2]
18178  * return self.waves.__cpp_calculate_velocity(xx, t)[0]
18179  */
18180  __pyx_t_1 = 1;
18181  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18182 
18183  /* "mprans/BoundaryConditions.py":606
18184  * xx[0] = x[0]
18185  * xx[1] = x[1]
18186  * xx[2] = x[2] # <<<<<<<<<<<<<<
18187  * return self.waves.__cpp_calculate_velocity(xx, t)[0]
18188  *
18189  */
18190  __pyx_t_1 = 2;
18191  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18192 
18193  /* "mprans/BoundaryConditions.py":607
18194  * xx[1] = x[1]
18195  * xx[2] = x[2]
18196  * return self.waves.__cpp_calculate_velocity(xx, t)[0] # <<<<<<<<<<<<<<
18197  *
18198  * def __cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(self, x, t):
18199  */
18200  __pyx_t_2 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_velocity(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 607, __pyx_L1_error)
18201  __pyx_t_1 = 0;
18202  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_2.data + __pyx_t_1 * __pyx_t_2.strides[0]) )));
18203  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18204  __pyx_t_2.memview = NULL;
18205  __pyx_t_2.data = NULL;
18206  goto __pyx_L0;
18207 
18208  /* "mprans/BoundaryConditions.py":602
18209  * self.k_diffusive.setConstantBC(0.0)
18210  *
18211  * def __cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18212  * cython.declare(xx=cython.double[3])
18213  * xx[0] = x[0]
18214  */
18215 
18216  /* function exit code */
18217  __pyx_L1_error:;
18218  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18219  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18220  __pyx_r = 0;
18221  __pyx_L0:;
18222  __Pyx_TraceReturn(Py_None, 0);
18223  __Pyx_RefNannyFinishContext();
18224  return __pyx_r;
18225 }
18226 
18227 /* "mprans/BoundaryConditions.py":609
18228  * return self.waves.__cpp_calculate_velocity(xx, t)[0]
18229  *
18230  * def __cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18231  * cython.declare(xx=cython.double[3])
18232  * xx[0] = x[0]
18233  */
18234 
18235 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18236  double __pyx_v_xx[3];
18237  double __pyx_r;
18238  __Pyx_TraceDeclarations
18239  __Pyx_RefNannyDeclarations
18240  Py_ssize_t __pyx_t_1;
18241  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
18242  int __pyx_lineno = 0;
18243  const char *__pyx_filename = NULL;
18244  int __pyx_clineno = 0;
18245  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet", 0);
18246  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet", __pyx_f[0], 609, 0, __PYX_ERR(0, 609, __pyx_L1_error));
18247 
18248  /* "mprans/BoundaryConditions.py":611
18249  * def __cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(self, x, t):
18250  * cython.declare(xx=cython.double[3])
18251  * xx[0] = x[0] # <<<<<<<<<<<<<<
18252  * xx[1] = x[1]
18253  * xx[2] = x[2]
18254  */
18255  __pyx_t_1 = 0;
18256  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18257 
18258  /* "mprans/BoundaryConditions.py":612
18259  * cython.declare(xx=cython.double[3])
18260  * xx[0] = x[0]
18261  * xx[1] = x[1] # <<<<<<<<<<<<<<
18262  * xx[2] = x[2]
18263  * return self.waves.__cpp_calculate_velocity(xx, t)[1]
18264  */
18265  __pyx_t_1 = 1;
18266  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18267 
18268  /* "mprans/BoundaryConditions.py":613
18269  * xx[0] = x[0]
18270  * xx[1] = x[1]
18271  * xx[2] = x[2] # <<<<<<<<<<<<<<
18272  * return self.waves.__cpp_calculate_velocity(xx, t)[1]
18273  *
18274  */
18275  __pyx_t_1 = 2;
18276  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18277 
18278  /* "mprans/BoundaryConditions.py":614
18279  * xx[1] = x[1]
18280  * xx[2] = x[2]
18281  * return self.waves.__cpp_calculate_velocity(xx, t)[1] # <<<<<<<<<<<<<<
18282  *
18283  * def __cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(self, x, t):
18284  */
18285  __pyx_t_2 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_velocity(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 614, __pyx_L1_error)
18286  __pyx_t_1 = 1;
18287  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_2.data + __pyx_t_1 * __pyx_t_2.strides[0]) )));
18288  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18289  __pyx_t_2.memview = NULL;
18290  __pyx_t_2.data = NULL;
18291  goto __pyx_L0;
18292 
18293  /* "mprans/BoundaryConditions.py":609
18294  * return self.waves.__cpp_calculate_velocity(xx, t)[0]
18295  *
18296  * def __cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18297  * cython.declare(xx=cython.double[3])
18298  * xx[0] = x[0]
18299  */
18300 
18301  /* function exit code */
18302  __pyx_L1_error:;
18303  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18304  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18305  __pyx_r = 0;
18306  __pyx_L0:;
18307  __Pyx_TraceReturn(Py_None, 0);
18308  __Pyx_RefNannyFinishContext();
18309  return __pyx_r;
18310 }
18311 
18312 /* "mprans/BoundaryConditions.py":616
18313  * return self.waves.__cpp_calculate_velocity(xx, t)[1]
18314  *
18315  * def __cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18316  * cython.declare(xx=cython.double[3])
18317  * xx[0] = x[0]
18318  */
18319 
18320 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18321  double __pyx_v_xx[3];
18322  double __pyx_r;
18323  __Pyx_TraceDeclarations
18324  __Pyx_RefNannyDeclarations
18325  Py_ssize_t __pyx_t_1;
18326  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
18327  int __pyx_lineno = 0;
18328  const char *__pyx_filename = NULL;
18329  int __pyx_clineno = 0;
18330  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet", 0);
18331  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet", __pyx_f[0], 616, 0, __PYX_ERR(0, 616, __pyx_L1_error));
18332 
18333  /* "mprans/BoundaryConditions.py":618
18334  * def __cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(self, x, t):
18335  * cython.declare(xx=cython.double[3])
18336  * xx[0] = x[0] # <<<<<<<<<<<<<<
18337  * xx[1] = x[1]
18338  * xx[2] = x[2]
18339  */
18340  __pyx_t_1 = 0;
18341  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18342 
18343  /* "mprans/BoundaryConditions.py":619
18344  * cython.declare(xx=cython.double[3])
18345  * xx[0] = x[0]
18346  * xx[1] = x[1] # <<<<<<<<<<<<<<
18347  * xx[2] = x[2]
18348  * return self.waves.__cpp_calculate_velocity(xx, t)[2]
18349  */
18350  __pyx_t_1 = 1;
18351  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18352 
18353  /* "mprans/BoundaryConditions.py":620
18354  * xx[0] = x[0]
18355  * xx[1] = x[1]
18356  * xx[2] = x[2] # <<<<<<<<<<<<<<
18357  * return self.waves.__cpp_calculate_velocity(xx, t)[2]
18358  *
18359  */
18360  __pyx_t_1 = 2;
18361  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18362 
18363  /* "mprans/BoundaryConditions.py":621
18364  * xx[1] = x[1]
18365  * xx[2] = x[2]
18366  * return self.waves.__cpp_calculate_velocity(xx, t)[2] # <<<<<<<<<<<<<<
18367  *
18368  * def __cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(self, x, t):
18369  */
18370  __pyx_t_2 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_velocity(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 621, __pyx_L1_error)
18371  __pyx_t_1 = 2;
18372  __pyx_r = (*((double *) ( /* dim=0 */ (__pyx_t_2.data + __pyx_t_1 * __pyx_t_2.strides[0]) )));
18373  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18374  __pyx_t_2.memview = NULL;
18375  __pyx_t_2.data = NULL;
18376  goto __pyx_L0;
18377 
18378  /* "mprans/BoundaryConditions.py":616
18379  * return self.waves.__cpp_calculate_velocity(xx, t)[1]
18380  *
18381  * def __cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18382  * cython.declare(xx=cython.double[3])
18383  * xx[0] = x[0]
18384  */
18385 
18386  /* function exit code */
18387  __pyx_L1_error:;
18388  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
18389  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18390  __pyx_r = 0;
18391  __pyx_L0:;
18392  __Pyx_TraceReturn(Py_None, 0);
18393  __Pyx_RefNannyFinishContext();
18394  return __pyx_r;
18395 }
18396 
18397 /* "mprans/BoundaryConditions.py":623
18398  * return self.waves.__cpp_calculate_velocity(xx, t)[2]
18399  *
18400  * def __cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(self, x, t): # <<<<<<<<<<<<<<
18401  * cython.declare(xx=cython.double[3])
18402  * xx[0] = x[0]
18403  */
18404 
18405 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18406  double __pyx_v_xx[3];
18407  double __pyx_r;
18408  __Pyx_TraceDeclarations
18409  __Pyx_RefNannyDeclarations
18410  Py_ssize_t __pyx_t_1;
18411  int __pyx_lineno = 0;
18412  const char *__pyx_filename = NULL;
18413  int __pyx_clineno = 0;
18414  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective", 0);
18415  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective", __pyx_f[0], 623, 0, __PYX_ERR(0, 623, __pyx_L1_error));
18416 
18417  /* "mprans/BoundaryConditions.py":625
18418  * def __cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(self, x, t):
18419  * cython.declare(xx=cython.double[3])
18420  * xx[0] = x[0] # <<<<<<<<<<<<<<
18421  * xx[1] = x[1]
18422  * xx[2] = x[2]
18423  */
18424  __pyx_t_1 = 0;
18425  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18426 
18427  /* "mprans/BoundaryConditions.py":626
18428  * cython.declare(xx=cython.double[3])
18429  * xx[0] = x[0]
18430  * xx[1] = x[1] # <<<<<<<<<<<<<<
18431  * xx[2] = x[2]
18432  * return self.waves.__cpp_calculate_pressure(xx, t)
18433  */
18434  __pyx_t_1 = 1;
18435  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18436 
18437  /* "mprans/BoundaryConditions.py":627
18438  * xx[0] = x[0]
18439  * xx[1] = x[1]
18440  * xx[2] = x[2] # <<<<<<<<<<<<<<
18441  * return self.waves.__cpp_calculate_pressure(xx, t)
18442  *
18443  */
18444  __pyx_t_1 = 2;
18445  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18446 
18447  /* "mprans/BoundaryConditions.py":628
18448  * xx[1] = x[1]
18449  * xx[2] = x[2]
18450  * return self.waves.__cpp_calculate_pressure(xx, t) # <<<<<<<<<<<<<<
18451  *
18452  * def __cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(self, x, t):
18453  */
18454  __pyx_r = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_pressure(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t);
18455  goto __pyx_L0;
18456 
18457  /* "mprans/BoundaryConditions.py":623
18458  * return self.waves.__cpp_calculate_velocity(xx, t)[2]
18459  *
18460  * def __cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(self, x, t): # <<<<<<<<<<<<<<
18461  * cython.declare(xx=cython.double[3])
18462  * xx[0] = x[0]
18463  */
18464 
18465  /* function exit code */
18466  __pyx_L1_error:;
18467  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18468  __pyx_r = 0;
18469  __pyx_L0:;
18470  __Pyx_TraceReturn(Py_None, 0);
18471  __Pyx_RefNannyFinishContext();
18472  return __pyx_r;
18473 }
18474 
18475 /* "mprans/BoundaryConditions.py":630
18476  * return self.waves.__cpp_calculate_pressure(xx, t)
18477  *
18478  * def __cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18479  * cython.declare(xx=cython.double[3])
18480  * xx[0] = x[0]
18481  */
18482 
18483 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18484  double __pyx_v_xx[3];
18485  double __pyx_r;
18486  __Pyx_TraceDeclarations
18487  __Pyx_RefNannyDeclarations
18488  Py_ssize_t __pyx_t_1;
18489  int __pyx_lineno = 0;
18490  const char *__pyx_filename = NULL;
18491  int __pyx_clineno = 0;
18492  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet", 0);
18493  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet", __pyx_f[0], 630, 0, __PYX_ERR(0, 630, __pyx_L1_error));
18494 
18495  /* "mprans/BoundaryConditions.py":632
18496  * def __cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(self, x, t):
18497  * cython.declare(xx=cython.double[3])
18498  * xx[0] = x[0] # <<<<<<<<<<<<<<
18499  * xx[1] = x[1]
18500  * xx[2] = x[2]
18501  */
18502  __pyx_t_1 = 0;
18503  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18504 
18505  /* "mprans/BoundaryConditions.py":633
18506  * cython.declare(xx=cython.double[3])
18507  * xx[0] = x[0]
18508  * xx[1] = x[1] # <<<<<<<<<<<<<<
18509  * xx[2] = x[2]
18510  * return self.waves.__cpp_calculate_phi(xx, t)
18511  */
18512  __pyx_t_1 = 1;
18513  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18514 
18515  /* "mprans/BoundaryConditions.py":634
18516  * xx[0] = x[0]
18517  * xx[1] = x[1]
18518  * xx[2] = x[2] # <<<<<<<<<<<<<<
18519  * return self.waves.__cpp_calculate_phi(xx, t)
18520  *
18521  */
18522  __pyx_t_1 = 2;
18523  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18524 
18525  /* "mprans/BoundaryConditions.py":635
18526  * xx[1] = x[1]
18527  * xx[2] = x[2]
18528  * return self.waves.__cpp_calculate_phi(xx, t) # <<<<<<<<<<<<<<
18529  *
18530  * def __cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(self, x, t):
18531  */
18532  __pyx_r = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_phi(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t);
18533  goto __pyx_L0;
18534 
18535  /* "mprans/BoundaryConditions.py":630
18536  * return self.waves.__cpp_calculate_pressure(xx, t)
18537  *
18538  * def __cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18539  * cython.declare(xx=cython.double[3])
18540  * xx[0] = x[0]
18541  */
18542 
18543  /* function exit code */
18544  __pyx_L1_error:;
18545  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18546  __pyx_r = 0;
18547  __pyx_L0:;
18548  __Pyx_TraceReturn(Py_None, 0);
18549  __Pyx_RefNannyFinishContext();
18550  return __pyx_r;
18551 }
18552 
18553 /* "mprans/BoundaryConditions.py":637
18554  * return self.waves.__cpp_calculate_phi(xx, t)
18555  *
18556  * def __cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18557  * cython.declare(xx=cython.double[3])
18558  * xx[0] = x[0]
18559  */
18560 
18561 double __pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, __Pyx_memviewslice __pyx_v_x, double __pyx_v_t) {
18562  double __pyx_v_xx[3];
18563  double __pyx_r;
18564  __Pyx_TraceDeclarations
18565  __Pyx_RefNannyDeclarations
18566  Py_ssize_t __pyx_t_1;
18567  int __pyx_lineno = 0;
18568  const char *__pyx_filename = NULL;
18569  int __pyx_clineno = 0;
18570  __Pyx_RefNannySetupContext("__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet", 0);
18571  __Pyx_TraceCall("__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet", __pyx_f[0], 637, 0, __PYX_ERR(0, 637, __pyx_L1_error));
18572 
18573  /* "mprans/BoundaryConditions.py":639
18574  * def __cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(self, x, t):
18575  * cython.declare(xx=cython.double[3])
18576  * xx[0] = x[0] # <<<<<<<<<<<<<<
18577  * xx[1] = x[1]
18578  * xx[2] = x[2]
18579  */
18580  __pyx_t_1 = 0;
18581  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18582 
18583  /* "mprans/BoundaryConditions.py":640
18584  * cython.declare(xx=cython.double[3])
18585  * xx[0] = x[0]
18586  * xx[1] = x[1] # <<<<<<<<<<<<<<
18587  * xx[2] = x[2]
18588  * return self.waves.__cpp_calculate_vof(xx, t)
18589  */
18590  __pyx_t_1 = 1;
18591  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18592 
18593  /* "mprans/BoundaryConditions.py":641
18594  * xx[0] = x[0]
18595  * xx[1] = x[1]
18596  * xx[2] = x[2] # <<<<<<<<<<<<<<
18597  * return self.waves.__cpp_calculate_vof(xx, t)
18598  *
18599  */
18600  __pyx_t_1 = 2;
18601  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
18602 
18603  /* "mprans/BoundaryConditions.py":642
18604  * xx[1] = x[1]
18605  * xx[2] = x[2]
18606  * return self.waves.__cpp_calculate_vof(xx, t) # <<<<<<<<<<<<<<
18607  *
18608  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None,
18609  */
18610  __pyx_r = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_vof(__pyx_v_self->waves, __pyx_v_xx, __pyx_v_t);
18611  goto __pyx_L0;
18612 
18613  /* "mprans/BoundaryConditions.py":637
18614  * return self.waves.__cpp_calculate_phi(xx, t)
18615  *
18616  * def __cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(self, x, t): # <<<<<<<<<<<<<<
18617  * cython.declare(xx=cython.double[3])
18618  * xx[0] = x[0]
18619  */
18620 
18621  /* function exit code */
18622  __pyx_L1_error:;
18623  __Pyx_WriteUnraisable("mprans.BoundaryConditions.BC_RANS.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
18624  __pyx_r = 0;
18625  __pyx_L0:;
18626  __Pyx_TraceReturn(Py_None, 0);
18627  __Pyx_RefNannyFinishContext();
18628  return __pyx_r;
18629 }
18630 
18631 /* "mprans/BoundaryConditions.py":644
18632  * return self.waves.__cpp_calculate_vof(xx, t)
18633  *
18634  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
18635  * vert_axis=None, air=1., water=0.,
18636  * kInflow=None, dissipationInflow=None,
18637  */
18638 
18639 /* Python wrapper */
18640 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18641 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet[] = "BC_RANS.setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, vert_axis=None, air=1., water=0., kInflow=None, dissipationInflow=None, kInflowAir=None, dissipationInflowAir=None)\n\n Imposes a velocity profile lower than the sea level and an open\n boundary for higher than the sealevel.\n Parameters\n ----------\n U: list.\n Velocity vector at the global system.\n Uwind: list.\n Air velocity vector at the global system.\n waterLevel: float.\n water level at global coordinate system.\n smoothing: float.\n range within smoothing function is valid.\n [3.0 times mesh element size can be a good value]\n vert_axis: optional. \n index of vertical in position vector, must always be\n aligned with gravity, by default set to 1].\n air: optional.\n Volume fraction for air (1.0 by default).\n water: optional.\n Volume fraction for water (0.0 by default).\n kInflow: float (optional).\n K inflow value for turbulent model imposed at the boundary.\n dissipationInflow: float (optional).\n Dissipation inflow value for turbulent model imposed at the boundary.\n kInflowAir: float (optional).\n Air K inflow value for turbulent model imposed at the boundary.\n dissipationInflowAir: float (optional).\n Air dissipation inflow value for turbulent model imposed at the boundary.\n Below the seawater level, the condition returns the _dirichlet and\n p_advective condition according to the inflow velocity.\n Above the sea water level, the condition returns the gravity as zero,\n and sets _dirichlet condition to zero, only if there is a zero inflow\n velocity component.\n (!) This condition is best used for boundaries and gravity aligned with\n one of the main axes.\n ";
18642 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet = {"setTwoPhaseVelocityInlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet};
18643 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18644  PyObject *__pyx_v_U = 0;
18645  PyObject *__pyx_v_waterLevel = 0;
18646  PyObject *__pyx_v_smoothing = 0;
18647  PyObject *__pyx_v_Uwind = 0;
18648  PyObject *__pyx_v_vert_axis = 0;
18649  PyObject *__pyx_v_air = 0;
18650  PyObject *__pyx_v_water = 0;
18651  PyObject *__pyx_v_kInflow = 0;
18652  PyObject *__pyx_v_dissipationInflow = 0;
18653  PyObject *__pyx_v_kInflowAir = 0;
18654  PyObject *__pyx_v_dissipationInflowAir = 0;
18655  int __pyx_lineno = 0;
18656  const char *__pyx_filename = NULL;
18657  int __pyx_clineno = 0;
18658  PyObject *__pyx_r = 0;
18659  __Pyx_RefNannyDeclarations
18660  __Pyx_RefNannySetupContext("setTwoPhaseVelocityInlet (wrapper)", 0);
18661  {
18662  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_U,&__pyx_n_s_waterLevel,&__pyx_n_s_smoothing,&__pyx_n_s_Uwind,&__pyx_n_s_vert_axis,&__pyx_n_s_air,&__pyx_n_s_water,&__pyx_n_s_kInflow,&__pyx_n_s_dissipationInflow,&__pyx_n_s_kInflowAir,&__pyx_n_s_dissipationInflowAir,0};
18663  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
18664  values[3] = ((PyObject *)Py_None);
18665 
18666  /* "mprans/BoundaryConditions.py":645
18667  *
18668  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None,
18669  * vert_axis=None, air=1., water=0., # <<<<<<<<<<<<<<
18670  * kInflow=None, dissipationInflow=None,
18671  * kInflowAir=None, dissipationInflowAir=None):
18672  */
18673  values[4] = ((PyObject *)Py_None);
18674  values[5] = ((PyObject *)__pyx_float_1_);
18675  values[6] = ((PyObject *)__pyx_float_0_);
18676 
18677  /* "mprans/BoundaryConditions.py":646
18678  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None,
18679  * vert_axis=None, air=1., water=0.,
18680  * kInflow=None, dissipationInflow=None, # <<<<<<<<<<<<<<
18681  * kInflowAir=None, dissipationInflowAir=None):
18682  * """
18683  */
18684  values[7] = ((PyObject *)Py_None);
18685  values[8] = ((PyObject *)Py_None);
18686 
18687  /* "mprans/BoundaryConditions.py":647
18688  * vert_axis=None, air=1., water=0.,
18689  * kInflow=None, dissipationInflow=None,
18690  * kInflowAir=None, dissipationInflowAir=None): # <<<<<<<<<<<<<<
18691  * """
18692  * Imposes a velocity profile lower than the sea level and an open
18693  */
18694  values[9] = ((PyObject *)Py_None);
18695  values[10] = ((PyObject *)Py_None);
18696  if (unlikely(__pyx_kwds)) {
18697  Py_ssize_t kw_args;
18698  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18699  switch (pos_args) {
18700  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
18701  CYTHON_FALLTHROUGH;
18702  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
18703  CYTHON_FALLTHROUGH;
18704  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
18705  CYTHON_FALLTHROUGH;
18706  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
18707  CYTHON_FALLTHROUGH;
18708  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
18709  CYTHON_FALLTHROUGH;
18710  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
18711  CYTHON_FALLTHROUGH;
18712  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18713  CYTHON_FALLTHROUGH;
18714  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18715  CYTHON_FALLTHROUGH;
18716  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18717  CYTHON_FALLTHROUGH;
18718  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18719  CYTHON_FALLTHROUGH;
18720  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18721  CYTHON_FALLTHROUGH;
18722  case 0: break;
18723  default: goto __pyx_L5_argtuple_error;
18724  }
18725  kw_args = PyDict_Size(__pyx_kwds);
18726  switch (pos_args) {
18727  case 0:
18728  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U)) != 0)) kw_args--;
18729  else goto __pyx_L5_argtuple_error;
18730  CYTHON_FALLTHROUGH;
18731  case 1:
18732  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_waterLevel)) != 0)) kw_args--;
18733  else {
18734  __Pyx_RaiseArgtupleInvalid("setTwoPhaseVelocityInlet", 0, 3, 11, 1); __PYX_ERR(0, 644, __pyx_L3_error)
18735  }
18736  CYTHON_FALLTHROUGH;
18737  case 2:
18738  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothing)) != 0)) kw_args--;
18739  else {
18740  __Pyx_RaiseArgtupleInvalid("setTwoPhaseVelocityInlet", 0, 3, 11, 2); __PYX_ERR(0, 644, __pyx_L3_error)
18741  }
18742  CYTHON_FALLTHROUGH;
18743  case 3:
18744  if (kw_args > 0) {
18745  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Uwind);
18746  if (value) { values[3] = value; kw_args--; }
18747  }
18748  CYTHON_FALLTHROUGH;
18749  case 4:
18750  if (kw_args > 0) {
18751  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vert_axis);
18752  if (value) { values[4] = value; kw_args--; }
18753  }
18754  CYTHON_FALLTHROUGH;
18755  case 5:
18756  if (kw_args > 0) {
18757  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_air);
18758  if (value) { values[5] = value; kw_args--; }
18759  }
18760  CYTHON_FALLTHROUGH;
18761  case 6:
18762  if (kw_args > 0) {
18763  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_water);
18764  if (value) { values[6] = value; kw_args--; }
18765  }
18766  CYTHON_FALLTHROUGH;
18767  case 7:
18768  if (kw_args > 0) {
18769  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflow);
18770  if (value) { values[7] = value; kw_args--; }
18771  }
18772  CYTHON_FALLTHROUGH;
18773  case 8:
18774  if (kw_args > 0) {
18775  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dissipationInflow);
18776  if (value) { values[8] = value; kw_args--; }
18777  }
18778  CYTHON_FALLTHROUGH;
18779  case 9:
18780  if (kw_args > 0) {
18781  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflowAir);
18782  if (value) { values[9] = value; kw_args--; }
18783  }
18784  CYTHON_FALLTHROUGH;
18785  case 10:
18786  if (kw_args > 0) {
18787  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dissipationInflowAir);
18788  if (value) { values[10] = value; kw_args--; }
18789  }
18790  }
18791  if (unlikely(kw_args > 0)) {
18792  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTwoPhaseVelocityInlet") < 0)) __PYX_ERR(0, 644, __pyx_L3_error)
18793  }
18794  } else {
18795  switch (PyTuple_GET_SIZE(__pyx_args)) {
18796  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
18797  CYTHON_FALLTHROUGH;
18798  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
18799  CYTHON_FALLTHROUGH;
18800  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
18801  CYTHON_FALLTHROUGH;
18802  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
18803  CYTHON_FALLTHROUGH;
18804  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
18805  CYTHON_FALLTHROUGH;
18806  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
18807  CYTHON_FALLTHROUGH;
18808  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18809  CYTHON_FALLTHROUGH;
18810  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18811  CYTHON_FALLTHROUGH;
18812  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18813  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18814  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18815  break;
18816  default: goto __pyx_L5_argtuple_error;
18817  }
18818  }
18819  __pyx_v_U = values[0];
18820  __pyx_v_waterLevel = values[1];
18821  __pyx_v_smoothing = values[2];
18822  __pyx_v_Uwind = values[3];
18823  __pyx_v_vert_axis = values[4];
18824  __pyx_v_air = values[5];
18825  __pyx_v_water = values[6];
18826  __pyx_v_kInflow = values[7];
18827  __pyx_v_dissipationInflow = values[8];
18828  __pyx_v_kInflowAir = values[9];
18829  __pyx_v_dissipationInflowAir = values[10];
18830  }
18831  goto __pyx_L4_argument_unpacking_done;
18832  __pyx_L5_argtuple_error:;
18833  __Pyx_RaiseArgtupleInvalid("setTwoPhaseVelocityInlet", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 644, __pyx_L3_error)
18834  __pyx_L3_error:;
18835  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
18836  __Pyx_RefNannyFinishContext();
18837  return NULL;
18838  __pyx_L4_argument_unpacking_done:;
18839  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_U, __pyx_v_waterLevel, __pyx_v_smoothing, __pyx_v_Uwind, __pyx_v_vert_axis, __pyx_v_air, __pyx_v_water, __pyx_v_kInflow, __pyx_v_dissipationInflow, __pyx_v_kInflowAir, __pyx_v_dissipationInflowAir);
18840 
18841  /* "mprans/BoundaryConditions.py":644
18842  * return self.waves.__cpp_calculate_vof(xx, t)
18843  *
18844  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
18845  * vert_axis=None, air=1., water=0.,
18846  * kInflow=None, dissipationInflow=None,
18847  */
18848 
18849  /* function exit code */
18850  __Pyx_RefNannyFinishContext();
18851  return __pyx_r;
18852 }
18853 
18854 /* "mprans/BoundaryConditions.py":696
18855  * Uwind = np.array(Uwind)
18856  *
18857  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
18858  * def ux_dirichlet(x, t, n=None):
18859  * phi = x[vert_axis] - waterLevel
18860  */
18861 
18862 /* Python wrapper */
18863 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_1get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i); /*proto*/
18864 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_1get_inlet_ux_dirichlet = {"get_inlet_ux_dirichlet", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_1get_inlet_ux_dirichlet, METH_O, 0};
18865 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_1get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i) {
18866  PyObject *__pyx_r = 0;
18867  __Pyx_RefNannyDeclarations
18868  __Pyx_RefNannySetupContext("get_inlet_ux_dirichlet (wrapper)", 0);
18869  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(__pyx_self, ((PyObject *)__pyx_v_i));
18870 
18871  /* function exit code */
18872  __Pyx_RefNannyFinishContext();
18873  return __pyx_r;
18874 }
18875 
18876 /* "mprans/BoundaryConditions.py":697
18877  *
18878  * def get_inlet_ux_dirichlet(i):
18879  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
18880  * phi = x[vert_axis] - waterLevel
18881  * if phi <= 0.:
18882  */
18883 
18884 /* Python wrapper */
18885 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_1ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18886 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_1ux_dirichlet = {"ux_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_1ux_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
18887 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_1ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18888  PyObject *__pyx_v_x = 0;
18889  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
18890  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
18891  int __pyx_lineno = 0;
18892  const char *__pyx_filename = NULL;
18893  int __pyx_clineno = 0;
18894  PyObject *__pyx_r = 0;
18895  __Pyx_RefNannyDeclarations
18896  __Pyx_RefNannySetupContext("ux_dirichlet (wrapper)", 0);
18897  {
18898  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
18899  PyObject* values[3] = {0,0,0};
18900  values[2] = ((PyObject *)((PyObject *)Py_None));
18901  if (unlikely(__pyx_kwds)) {
18902  Py_ssize_t kw_args;
18903  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18904  switch (pos_args) {
18905  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18906  CYTHON_FALLTHROUGH;
18907  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18908  CYTHON_FALLTHROUGH;
18909  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18910  CYTHON_FALLTHROUGH;
18911  case 0: break;
18912  default: goto __pyx_L5_argtuple_error;
18913  }
18914  kw_args = PyDict_Size(__pyx_kwds);
18915  switch (pos_args) {
18916  case 0:
18917  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
18918  else goto __pyx_L5_argtuple_error;
18919  CYTHON_FALLTHROUGH;
18920  case 1:
18921  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
18922  else {
18923  __Pyx_RaiseArgtupleInvalid("ux_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 697, __pyx_L3_error)
18924  }
18925  CYTHON_FALLTHROUGH;
18926  case 2:
18927  if (kw_args > 0) {
18928  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
18929  if (value) { values[2] = value; kw_args--; }
18930  }
18931  }
18932  if (unlikely(kw_args > 0)) {
18933  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ux_dirichlet") < 0)) __PYX_ERR(0, 697, __pyx_L3_error)
18934  }
18935  } else {
18936  switch (PyTuple_GET_SIZE(__pyx_args)) {
18937  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18938  CYTHON_FALLTHROUGH;
18939  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18940  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18941  break;
18942  default: goto __pyx_L5_argtuple_error;
18943  }
18944  }
18945  __pyx_v_x = values[0];
18946  __pyx_v_t = values[1];
18947  __pyx_v_n = values[2];
18948  }
18949  goto __pyx_L4_argument_unpacking_done;
18950  __pyx_L5_argtuple_error:;
18951  __Pyx_RaiseArgtupleInvalid("ux_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 697, __pyx_L3_error)
18952  __pyx_L3_error:;
18953  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.get_inlet_ux_dirichlet.ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
18954  __Pyx_RefNannyFinishContext();
18955  return NULL;
18956  __pyx_L4_argument_unpacking_done:;
18957  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_ux_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
18958 
18959  /* function exit code */
18960  __Pyx_RefNannyFinishContext();
18961  return __pyx_r;
18962 }
18963 
18964 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
18965  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *__pyx_cur_scope;
18966  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *__pyx_outer_scope;
18967  PyObject *__pyx_v_phi = NULL;
18968  PyObject *__pyx_v_H = NULL;
18969  PyObject *__pyx_v_u = NULL;
18970  PyObject *__pyx_r = NULL;
18971  __Pyx_TraceDeclarations
18972  __Pyx_RefNannyDeclarations
18973  PyObject *__pyx_t_1 = NULL;
18974  PyObject *__pyx_t_2 = NULL;
18975  int __pyx_t_3;
18976  PyObject *__pyx_t_4 = NULL;
18977  PyObject *__pyx_t_5 = NULL;
18978  int __pyx_t_6;
18979  PyObject *__pyx_t_7 = NULL;
18980  int __pyx_lineno = 0;
18981  const char *__pyx_filename = NULL;
18982  int __pyx_clineno = 0;
18983  __Pyx_RefNannySetupContext("ux_dirichlet", 0);
18984  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
18985  __pyx_cur_scope = __pyx_outer_scope;
18986  __Pyx_TraceCall("ux_dirichlet", __pyx_f[0], 697, 0, __PYX_ERR(0, 697, __pyx_L1_error));
18987 
18988  /* "mprans/BoundaryConditions.py":698
18989  * def get_inlet_ux_dirichlet(i):
18990  * def ux_dirichlet(x, t, n=None):
18991  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
18992  * if phi <= 0.:
18993  * H = 0.0
18994  */
18995  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 698, __pyx_L1_error) }
18996  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
18997  __Pyx_GOTREF(__pyx_t_1);
18998  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 698, __pyx_L1_error) }
18999  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error)
19000  __Pyx_GOTREF(__pyx_t_2);
19001  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19002  __pyx_v_phi = __pyx_t_2;
19003  __pyx_t_2 = 0;
19004 
19005  /* "mprans/BoundaryConditions.py":699
19006  * def ux_dirichlet(x, t, n=None):
19007  * phi = x[vert_axis] - waterLevel
19008  * if phi <= 0.: # <<<<<<<<<<<<<<
19009  * H = 0.0
19010  * elif 0 < phi <= smoothing:
19011  */
19012  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
19013  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 699, __pyx_L1_error)
19014  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19015  if (__pyx_t_3) {
19016 
19017  /* "mprans/BoundaryConditions.py":700
19018  * phi = x[vert_axis] - waterLevel
19019  * if phi <= 0.:
19020  * H = 0.0 # <<<<<<<<<<<<<<
19021  * elif 0 < phi <= smoothing:
19022  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19023  */
19024  __Pyx_INCREF(__pyx_float_0_0);
19025  __pyx_v_H = __pyx_float_0_0;
19026 
19027  /* "mprans/BoundaryConditions.py":699
19028  * def ux_dirichlet(x, t, n=None):
19029  * phi = x[vert_axis] - waterLevel
19030  * if phi <= 0.: # <<<<<<<<<<<<<<
19031  * H = 0.0
19032  * elif 0 < phi <= smoothing:
19033  */
19034  goto __pyx_L3;
19035  }
19036 
19037  /* "mprans/BoundaryConditions.py":701
19038  * if phi <= 0.:
19039  * H = 0.0
19040  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
19041  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19042  * else:
19043  */
19044  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 701, __pyx_L1_error)
19045  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
19046  __Pyx_DECREF(__pyx_t_2);
19047  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 701, __pyx_L1_error) }
19048  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 701, __pyx_L1_error)
19049  }
19050  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
19051  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19052  if (__pyx_t_3) {
19053 
19054  /* "mprans/BoundaryConditions.py":702
19055  * H = 0.0
19056  * elif 0 < phi <= smoothing:
19057  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
19058  * else:
19059  * H = 1.0
19060  */
19061  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
19062  __Pyx_GOTREF(__pyx_t_1);
19063  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 702, __pyx_L1_error) }
19064  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 702, __pyx_L1_error) }
19065  __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_float_2_, 2., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
19066  __Pyx_GOTREF(__pyx_t_4);
19067  __pyx_t_5 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
19068  __Pyx_GOTREF(__pyx_t_5);
19069  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
19070  __pyx_t_4 = NULL;
19071  __pyx_t_6 = 0;
19072  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
19073  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
19074  if (likely(__pyx_t_4)) {
19075  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
19076  __Pyx_INCREF(__pyx_t_4);
19077  __Pyx_INCREF(function);
19078  __Pyx_DECREF_SET(__pyx_t_1, function);
19079  __pyx_t_6 = 1;
19080  }
19081  }
19082  #if CYTHON_FAST_PYCALL
19083  if (PyFunction_Check(__pyx_t_1)) {
19084  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_t_5};
19085  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 702, __pyx_L1_error)
19086  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
19087  __Pyx_GOTREF(__pyx_t_2);
19088  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19089  } else
19090  #endif
19091  #if CYTHON_FAST_PYCCALL
19092  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
19093  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_t_5};
19094  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 702, __pyx_L1_error)
19095  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
19096  __Pyx_GOTREF(__pyx_t_2);
19097  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19098  } else
19099  #endif
19100  {
19101  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
19102  __Pyx_GOTREF(__pyx_t_7);
19103  if (__pyx_t_4) {
19104  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
19105  }
19106  __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
19107  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
19108  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
19109  __Pyx_GIVEREF(__pyx_t_5);
19110  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5);
19111  __pyx_t_5 = 0;
19112  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 702, __pyx_L1_error)
19113  __Pyx_GOTREF(__pyx_t_2);
19114  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19115  }
19116  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19117  __pyx_v_H = __pyx_t_2;
19118  __pyx_t_2 = 0;
19119 
19120  /* "mprans/BoundaryConditions.py":701
19121  * if phi <= 0.:
19122  * H = 0.0
19123  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
19124  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19125  * else:
19126  */
19127  goto __pyx_L3;
19128  }
19129 
19130  /* "mprans/BoundaryConditions.py":704
19131  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19132  * else:
19133  * H = 1.0 # <<<<<<<<<<<<<<
19134  * u = H * Uwind[i] + (1 - H) * U[i]
19135  * return u
19136  */
19137  /*else*/ {
19138  __Pyx_INCREF(__pyx_float_1_0);
19139  __pyx_v_H = __pyx_float_1_0;
19140  }
19141  __pyx_L3:;
19142 
19143  /* "mprans/BoundaryConditions.py":705
19144  * else:
19145  * H = 1.0
19146  * u = H * Uwind[i] + (1 - H) * U[i] # <<<<<<<<<<<<<<
19147  * return u
19148  * return ux_dirichlet
19149  */
19150  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_Uwind)) { __Pyx_RaiseClosureNameError("Uwind"); __PYX_ERR(0, 705, __pyx_L1_error) }
19151  if (unlikely(!__pyx_cur_scope->__pyx_v_i)) { __Pyx_RaiseClosureNameError("i"); __PYX_ERR(0, 705, __pyx_L1_error) }
19152  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_Uwind, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 705, __pyx_L1_error)
19153  __Pyx_GOTREF(__pyx_t_2);
19154  __pyx_t_1 = PyNumber_Multiply(__pyx_v_H, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error)
19155  __Pyx_GOTREF(__pyx_t_1);
19156  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19157  __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 705, __pyx_L1_error)
19158  __Pyx_GOTREF(__pyx_t_2);
19159  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_U)) { __Pyx_RaiseClosureNameError("U"); __PYX_ERR(0, 705, __pyx_L1_error) }
19160  if (unlikely(!__pyx_cur_scope->__pyx_v_i)) { __Pyx_RaiseClosureNameError("i"); __PYX_ERR(0, 705, __pyx_L1_error) }
19161  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_U, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 705, __pyx_L1_error)
19162  __Pyx_GOTREF(__pyx_t_7);
19163  __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error)
19164  __Pyx_GOTREF(__pyx_t_5);
19165  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19166  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19167  __pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 705, __pyx_L1_error)
19168  __Pyx_GOTREF(__pyx_t_7);
19169  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19170  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19171  __pyx_v_u = __pyx_t_7;
19172  __pyx_t_7 = 0;
19173 
19174  /* "mprans/BoundaryConditions.py":706
19175  * H = 1.0
19176  * u = H * Uwind[i] + (1 - H) * U[i]
19177  * return u # <<<<<<<<<<<<<<
19178  * return ux_dirichlet
19179  *
19180  */
19181  __Pyx_XDECREF(__pyx_r);
19182  __Pyx_INCREF(__pyx_v_u);
19183  __pyx_r = __pyx_v_u;
19184  goto __pyx_L0;
19185 
19186  /* "mprans/BoundaryConditions.py":697
19187  *
19188  * def get_inlet_ux_dirichlet(i):
19189  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19190  * phi = x[vert_axis] - waterLevel
19191  * if phi <= 0.:
19192  */
19193 
19194  /* function exit code */
19195  __pyx_L1_error:;
19196  __Pyx_XDECREF(__pyx_t_1);
19197  __Pyx_XDECREF(__pyx_t_2);
19198  __Pyx_XDECREF(__pyx_t_4);
19199  __Pyx_XDECREF(__pyx_t_5);
19200  __Pyx_XDECREF(__pyx_t_7);
19201  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.get_inlet_ux_dirichlet.ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19202  __pyx_r = NULL;
19203  __pyx_L0:;
19204  __Pyx_XDECREF(__pyx_v_phi);
19205  __Pyx_XDECREF(__pyx_v_H);
19206  __Pyx_XDECREF(__pyx_v_u);
19207  __Pyx_XGIVEREF(__pyx_r);
19208  __Pyx_TraceReturn(__pyx_r, 0);
19209  __Pyx_RefNannyFinishContext();
19210  return __pyx_r;
19211 }
19212 
19213 /* "mprans/BoundaryConditions.py":696
19214  * Uwind = np.array(Uwind)
19215  *
19216  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
19217  * def ux_dirichlet(x, t, n=None):
19218  * phi = x[vert_axis] - waterLevel
19219  */
19220 
19221 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i) {
19222  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *__pyx_cur_scope;
19223  PyObject *__pyx_v_ux_dirichlet = 0;
19224  PyObject *__pyx_r = NULL;
19225  __Pyx_TraceDeclarations
19226  __Pyx_RefNannyDeclarations
19227  PyObject *__pyx_t_1 = NULL;
19228  int __pyx_lineno = 0;
19229  const char *__pyx_filename = NULL;
19230  int __pyx_clineno = 0;
19231  __Pyx_RefNannySetupContext("get_inlet_ux_dirichlet", 0);
19232  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet, __pyx_empty_tuple, NULL);
19233  if (unlikely(!__pyx_cur_scope)) {
19234  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)Py_None);
19235  __Pyx_INCREF(Py_None);
19236  __PYX_ERR(0, 696, __pyx_L1_error)
19237  } else {
19238  __Pyx_GOTREF(__pyx_cur_scope);
19239  }
19240  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
19241  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
19242  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
19243  __Pyx_TraceCall("get_inlet_ux_dirichlet", __pyx_f[0], 696, 0, __PYX_ERR(0, 696, __pyx_L1_error));
19244  __pyx_cur_scope->__pyx_v_i = __pyx_v_i;
19245  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_i);
19246  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_i);
19247 
19248  /* "mprans/BoundaryConditions.py":697
19249  *
19250  * def get_inlet_ux_dirichlet(i):
19251  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19252  * phi = x[vert_axis] - waterLevel
19253  * if phi <= 0.:
19254  */
19255  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_22get_inlet_ux_dirichlet_1ux_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error)
19256  __Pyx_GOTREF(__pyx_t_1);
19257  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__48);
19258  __pyx_v_ux_dirichlet = __pyx_t_1;
19259  __pyx_t_1 = 0;
19260 
19261  /* "mprans/BoundaryConditions.py":707
19262  * u = H * Uwind[i] + (1 - H) * U[i]
19263  * return u
19264  * return ux_dirichlet # <<<<<<<<<<<<<<
19265  *
19266  * def inlet_phi_dirichlet(x, t, n=None):
19267  */
19268  __Pyx_XDECREF(__pyx_r);
19269  __Pyx_INCREF(__pyx_v_ux_dirichlet);
19270  __pyx_r = __pyx_v_ux_dirichlet;
19271  goto __pyx_L0;
19272 
19273  /* "mprans/BoundaryConditions.py":696
19274  * Uwind = np.array(Uwind)
19275  *
19276  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
19277  * def ux_dirichlet(x, t, n=None):
19278  * phi = x[vert_axis] - waterLevel
19279  */
19280 
19281  /* function exit code */
19282  __pyx_L1_error:;
19283  __Pyx_XDECREF(__pyx_t_1);
19284  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.get_inlet_ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19285  __pyx_r = NULL;
19286  __pyx_L0:;
19287  __Pyx_XDECREF(__pyx_v_ux_dirichlet);
19288  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
19289  __Pyx_XGIVEREF(__pyx_r);
19290  __Pyx_TraceReturn(__pyx_r, 0);
19291  __Pyx_RefNannyFinishContext();
19292  return __pyx_r;
19293 }
19294 
19295 /* "mprans/BoundaryConditions.py":709
19296  * return ux_dirichlet
19297  *
19298  * def inlet_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19299  * phi = x[vert_axis] - waterLevel
19300  * return phi
19301  */
19302 
19303 /* Python wrapper */
19304 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_3inlet_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19305 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_3inlet_phi_dirichlet = {"inlet_phi_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_3inlet_phi_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
19306 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_3inlet_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19307  PyObject *__pyx_v_x = 0;
19308  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
19309  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
19310  int __pyx_lineno = 0;
19311  const char *__pyx_filename = NULL;
19312  int __pyx_clineno = 0;
19313  PyObject *__pyx_r = 0;
19314  __Pyx_RefNannyDeclarations
19315  __Pyx_RefNannySetupContext("inlet_phi_dirichlet (wrapper)", 0);
19316  {
19317  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
19318  PyObject* values[3] = {0,0,0};
19319  values[2] = ((PyObject *)((PyObject *)Py_None));
19320  if (unlikely(__pyx_kwds)) {
19321  Py_ssize_t kw_args;
19322  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19323  switch (pos_args) {
19324  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19325  CYTHON_FALLTHROUGH;
19326  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19327  CYTHON_FALLTHROUGH;
19328  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19329  CYTHON_FALLTHROUGH;
19330  case 0: break;
19331  default: goto __pyx_L5_argtuple_error;
19332  }
19333  kw_args = PyDict_Size(__pyx_kwds);
19334  switch (pos_args) {
19335  case 0:
19336  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
19337  else goto __pyx_L5_argtuple_error;
19338  CYTHON_FALLTHROUGH;
19339  case 1:
19340  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
19341  else {
19342  __Pyx_RaiseArgtupleInvalid("inlet_phi_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 709, __pyx_L3_error)
19343  }
19344  CYTHON_FALLTHROUGH;
19345  case 2:
19346  if (kw_args > 0) {
19347  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
19348  if (value) { values[2] = value; kw_args--; }
19349  }
19350  }
19351  if (unlikely(kw_args > 0)) {
19352  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_phi_dirichlet") < 0)) __PYX_ERR(0, 709, __pyx_L3_error)
19353  }
19354  } else {
19355  switch (PyTuple_GET_SIZE(__pyx_args)) {
19356  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19357  CYTHON_FALLTHROUGH;
19358  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19359  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19360  break;
19361  default: goto __pyx_L5_argtuple_error;
19362  }
19363  }
19364  __pyx_v_x = values[0];
19365  __pyx_v_t = values[1];
19366  __pyx_v_n = values[2];
19367  }
19368  goto __pyx_L4_argument_unpacking_done;
19369  __pyx_L5_argtuple_error:;
19370  __Pyx_RaiseArgtupleInvalid("inlet_phi_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 709, __pyx_L3_error)
19371  __pyx_L3_error:;
19372  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_phi_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19373  __Pyx_RefNannyFinishContext();
19374  return NULL;
19375  __pyx_L4_argument_unpacking_done:;
19376  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_2inlet_phi_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
19377 
19378  /* function exit code */
19379  __Pyx_RefNannyFinishContext();
19380  return __pyx_r;
19381 }
19382 
19383 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_2inlet_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
19384  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
19385  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
19386  PyObject *__pyx_v_phi = NULL;
19387  PyObject *__pyx_r = NULL;
19388  __Pyx_TraceDeclarations
19389  __Pyx_RefNannyDeclarations
19390  PyObject *__pyx_t_1 = NULL;
19391  PyObject *__pyx_t_2 = NULL;
19392  int __pyx_lineno = 0;
19393  const char *__pyx_filename = NULL;
19394  int __pyx_clineno = 0;
19395  __Pyx_RefNannySetupContext("inlet_phi_dirichlet", 0);
19396  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
19397  __pyx_cur_scope = __pyx_outer_scope;
19398  __Pyx_TraceCall("inlet_phi_dirichlet", __pyx_f[0], 709, 0, __PYX_ERR(0, 709, __pyx_L1_error));
19399 
19400  /* "mprans/BoundaryConditions.py":710
19401  *
19402  * def inlet_phi_dirichlet(x, t, n=None):
19403  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
19404  * return phi
19405  *
19406  */
19407  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 710, __pyx_L1_error) }
19408  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 710, __pyx_L1_error)
19409  __Pyx_GOTREF(__pyx_t_1);
19410  if (unlikely(!__pyx_cur_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 710, __pyx_L1_error) }
19411  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 710, __pyx_L1_error)
19412  __Pyx_GOTREF(__pyx_t_2);
19413  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19414  __pyx_v_phi = __pyx_t_2;
19415  __pyx_t_2 = 0;
19416 
19417  /* "mprans/BoundaryConditions.py":711
19418  * def inlet_phi_dirichlet(x, t, n=None):
19419  * phi = x[vert_axis] - waterLevel
19420  * return phi # <<<<<<<<<<<<<<
19421  *
19422  * def inlet_vof_dirichlet(x, t, n=None):
19423  */
19424  __Pyx_XDECREF(__pyx_r);
19425  __Pyx_INCREF(__pyx_v_phi);
19426  __pyx_r = __pyx_v_phi;
19427  goto __pyx_L0;
19428 
19429  /* "mprans/BoundaryConditions.py":709
19430  * return ux_dirichlet
19431  *
19432  * def inlet_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19433  * phi = x[vert_axis] - waterLevel
19434  * return phi
19435  */
19436 
19437  /* function exit code */
19438  __pyx_L1_error:;
19439  __Pyx_XDECREF(__pyx_t_1);
19440  __Pyx_XDECREF(__pyx_t_2);
19441  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_phi_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19442  __pyx_r = NULL;
19443  __pyx_L0:;
19444  __Pyx_XDECREF(__pyx_v_phi);
19445  __Pyx_XGIVEREF(__pyx_r);
19446  __Pyx_TraceReturn(__pyx_r, 0);
19447  __Pyx_RefNannyFinishContext();
19448  return __pyx_r;
19449 }
19450 
19451 /* "mprans/BoundaryConditions.py":713
19452  * return phi
19453  *
19454  * def inlet_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19455  * phi = x[vert_axis] - waterLevel
19456  * if phi >= smoothing:
19457  */
19458 
19459 /* Python wrapper */
19460 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_5inlet_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19461 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_5inlet_vof_dirichlet = {"inlet_vof_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_5inlet_vof_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
19462 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_5inlet_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19463  PyObject *__pyx_v_x = 0;
19464  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
19465  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
19466  int __pyx_lineno = 0;
19467  const char *__pyx_filename = NULL;
19468  int __pyx_clineno = 0;
19469  PyObject *__pyx_r = 0;
19470  __Pyx_RefNannyDeclarations
19471  __Pyx_RefNannySetupContext("inlet_vof_dirichlet (wrapper)", 0);
19472  {
19473  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
19474  PyObject* values[3] = {0,0,0};
19475  values[2] = ((PyObject *)((PyObject *)Py_None));
19476  if (unlikely(__pyx_kwds)) {
19477  Py_ssize_t kw_args;
19478  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19479  switch (pos_args) {
19480  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19481  CYTHON_FALLTHROUGH;
19482  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19483  CYTHON_FALLTHROUGH;
19484  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19485  CYTHON_FALLTHROUGH;
19486  case 0: break;
19487  default: goto __pyx_L5_argtuple_error;
19488  }
19489  kw_args = PyDict_Size(__pyx_kwds);
19490  switch (pos_args) {
19491  case 0:
19492  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
19493  else goto __pyx_L5_argtuple_error;
19494  CYTHON_FALLTHROUGH;
19495  case 1:
19496  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
19497  else {
19498  __Pyx_RaiseArgtupleInvalid("inlet_vof_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 713, __pyx_L3_error)
19499  }
19500  CYTHON_FALLTHROUGH;
19501  case 2:
19502  if (kw_args > 0) {
19503  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
19504  if (value) { values[2] = value; kw_args--; }
19505  }
19506  }
19507  if (unlikely(kw_args > 0)) {
19508  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_vof_dirichlet") < 0)) __PYX_ERR(0, 713, __pyx_L3_error)
19509  }
19510  } else {
19511  switch (PyTuple_GET_SIZE(__pyx_args)) {
19512  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19513  CYTHON_FALLTHROUGH;
19514  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19515  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19516  break;
19517  default: goto __pyx_L5_argtuple_error;
19518  }
19519  }
19520  __pyx_v_x = values[0];
19521  __pyx_v_t = values[1];
19522  __pyx_v_n = values[2];
19523  }
19524  goto __pyx_L4_argument_unpacking_done;
19525  __pyx_L5_argtuple_error:;
19526  __Pyx_RaiseArgtupleInvalid("inlet_vof_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 713, __pyx_L3_error)
19527  __pyx_L3_error:;
19528  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_vof_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19529  __Pyx_RefNannyFinishContext();
19530  return NULL;
19531  __pyx_L4_argument_unpacking_done:;
19532  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_4inlet_vof_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
19533 
19534  /* function exit code */
19535  __Pyx_RefNannyFinishContext();
19536  return __pyx_r;
19537 }
19538 
19539 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_4inlet_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
19540  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
19541  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
19542  PyObject *__pyx_v_phi = NULL;
19543  PyObject *__pyx_v_H = NULL;
19544  PyObject *__pyx_v_vof = NULL;
19545  PyObject *__pyx_r = NULL;
19546  __Pyx_TraceDeclarations
19547  __Pyx_RefNannyDeclarations
19548  PyObject *__pyx_t_1 = NULL;
19549  PyObject *__pyx_t_2 = NULL;
19550  int __pyx_t_3;
19551  int __pyx_t_4;
19552  PyObject *__pyx_t_5 = NULL;
19553  int __pyx_t_6;
19554  PyObject *__pyx_t_7 = NULL;
19555  int __pyx_lineno = 0;
19556  const char *__pyx_filename = NULL;
19557  int __pyx_clineno = 0;
19558  __Pyx_RefNannySetupContext("inlet_vof_dirichlet", 0);
19559  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
19560  __pyx_cur_scope = __pyx_outer_scope;
19561  __Pyx_TraceCall("inlet_vof_dirichlet", __pyx_f[0], 713, 0, __PYX_ERR(0, 713, __pyx_L1_error));
19562 
19563  /* "mprans/BoundaryConditions.py":714
19564  *
19565  * def inlet_vof_dirichlet(x, t, n=None):
19566  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
19567  * if phi >= smoothing:
19568  * H = 1.
19569  */
19570  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 714, __pyx_L1_error) }
19571  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L1_error)
19572  __Pyx_GOTREF(__pyx_t_1);
19573  if (unlikely(!__pyx_cur_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 714, __pyx_L1_error) }
19574  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 714, __pyx_L1_error)
19575  __Pyx_GOTREF(__pyx_t_2);
19576  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19577  __pyx_v_phi = __pyx_t_2;
19578  __pyx_t_2 = 0;
19579 
19580  /* "mprans/BoundaryConditions.py":715
19581  * def inlet_vof_dirichlet(x, t, n=None):
19582  * phi = x[vert_axis] - waterLevel
19583  * if phi >= smoothing: # <<<<<<<<<<<<<<
19584  * H = 1.
19585  * elif smoothing > 0 and -smoothing < phi < smoothing:
19586  */
19587  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 715, __pyx_L1_error) }
19588  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 715, __pyx_L1_error)
19589  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 715, __pyx_L1_error)
19590  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19591  if (__pyx_t_3) {
19592 
19593  /* "mprans/BoundaryConditions.py":716
19594  * phi = x[vert_axis] - waterLevel
19595  * if phi >= smoothing:
19596  * H = 1. # <<<<<<<<<<<<<<
19597  * elif smoothing > 0 and -smoothing < phi < smoothing:
19598  * H = smoothedHeaviside(smoothing, phi)
19599  */
19600  __Pyx_INCREF(__pyx_float_1_);
19601  __pyx_v_H = __pyx_float_1_;
19602 
19603  /* "mprans/BoundaryConditions.py":715
19604  * def inlet_vof_dirichlet(x, t, n=None):
19605  * phi = x[vert_axis] - waterLevel
19606  * if phi >= smoothing: # <<<<<<<<<<<<<<
19607  * H = 1.
19608  * elif smoothing > 0 and -smoothing < phi < smoothing:
19609  */
19610  goto __pyx_L3;
19611  }
19612 
19613  /* "mprans/BoundaryConditions.py":717
19614  * if phi >= smoothing:
19615  * H = 1.
19616  * elif smoothing > 0 and -smoothing < phi < smoothing: # <<<<<<<<<<<<<<
19617  * H = smoothedHeaviside(smoothing, phi)
19618  * elif phi <= -smoothing:
19619  */
19620  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 717, __pyx_L1_error) }
19621  __pyx_t_2 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_smoothing, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error)
19622  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 717, __pyx_L1_error)
19623  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19624  if (__pyx_t_4) {
19625  } else {
19626  __pyx_t_3 = __pyx_t_4;
19627  goto __pyx_L4_bool_binop_done;
19628  }
19629  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 717, __pyx_L1_error) }
19630  __pyx_t_2 = PyNumber_Negative(__pyx_cur_scope->__pyx_v_smoothing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error)
19631  __Pyx_GOTREF(__pyx_t_2);
19632  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error)
19633  if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
19634  __Pyx_DECREF(__pyx_t_1);
19635  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 717, __pyx_L1_error) }
19636  __pyx_t_1 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error)
19637  }
19638  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19639  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 717, __pyx_L1_error)
19640  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19641  __pyx_t_3 = __pyx_t_4;
19642  __pyx_L4_bool_binop_done:;
19643  if (__pyx_t_3) {
19644 
19645  /* "mprans/BoundaryConditions.py":718
19646  * H = 1.
19647  * elif smoothing > 0 and -smoothing < phi < smoothing:
19648  * H = smoothedHeaviside(smoothing, phi) # <<<<<<<<<<<<<<
19649  * elif phi <= -smoothing:
19650  * H = 0.
19651  */
19652  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error)
19653  __Pyx_GOTREF(__pyx_t_2);
19654  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 718, __pyx_L1_error) }
19655  __pyx_t_5 = NULL;
19656  __pyx_t_6 = 0;
19657  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
19658  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
19659  if (likely(__pyx_t_5)) {
19660  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
19661  __Pyx_INCREF(__pyx_t_5);
19662  __Pyx_INCREF(function);
19663  __Pyx_DECREF_SET(__pyx_t_2, function);
19664  __pyx_t_6 = 1;
19665  }
19666  }
19667  #if CYTHON_FAST_PYCALL
19668  if (PyFunction_Check(__pyx_t_2)) {
19669  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
19670  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error)
19671  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
19672  __Pyx_GOTREF(__pyx_t_1);
19673  } else
19674  #endif
19675  #if CYTHON_FAST_PYCCALL
19676  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
19677  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
19678  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error)
19679  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
19680  __Pyx_GOTREF(__pyx_t_1);
19681  } else
19682  #endif
19683  {
19684  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
19685  __Pyx_GOTREF(__pyx_t_7);
19686  if (__pyx_t_5) {
19687  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
19688  }
19689  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
19690  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
19691  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing);
19692  __Pyx_INCREF(__pyx_v_phi);
19693  __Pyx_GIVEREF(__pyx_v_phi);
19694  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_phi);
19695  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error)
19696  __Pyx_GOTREF(__pyx_t_1);
19697  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19698  }
19699  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19700  __pyx_v_H = __pyx_t_1;
19701  __pyx_t_1 = 0;
19702 
19703  /* "mprans/BoundaryConditions.py":717
19704  * if phi >= smoothing:
19705  * H = 1.
19706  * elif smoothing > 0 and -smoothing < phi < smoothing: # <<<<<<<<<<<<<<
19707  * H = smoothedHeaviside(smoothing, phi)
19708  * elif phi <= -smoothing:
19709  */
19710  goto __pyx_L3;
19711  }
19712 
19713  /* "mprans/BoundaryConditions.py":719
19714  * elif smoothing > 0 and -smoothing < phi < smoothing:
19715  * H = smoothedHeaviside(smoothing, phi)
19716  * elif phi <= -smoothing: # <<<<<<<<<<<<<<
19717  * H = 0.
19718  * vof = H * air + (1 - H) * water
19719  */
19720  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 719, __pyx_L1_error) }
19721  __pyx_t_1 = PyNumber_Negative(__pyx_cur_scope->__pyx_v_smoothing); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error)
19722  __Pyx_GOTREF(__pyx_t_1);
19723  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 719, __pyx_L1_error)
19724  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19725  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
19726  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19727  if (__pyx_t_3) {
19728 
19729  /* "mprans/BoundaryConditions.py":720
19730  * H = smoothedHeaviside(smoothing, phi)
19731  * elif phi <= -smoothing:
19732  * H = 0. # <<<<<<<<<<<<<<
19733  * vof = H * air + (1 - H) * water
19734  * return vof
19735  */
19736  __Pyx_INCREF(__pyx_float_0_);
19737  __pyx_v_H = __pyx_float_0_;
19738 
19739  /* "mprans/BoundaryConditions.py":719
19740  * elif smoothing > 0 and -smoothing < phi < smoothing:
19741  * H = smoothedHeaviside(smoothing, phi)
19742  * elif phi <= -smoothing: # <<<<<<<<<<<<<<
19743  * H = 0.
19744  * vof = H * air + (1 - H) * water
19745  */
19746  }
19747  __pyx_L3:;
19748 
19749  /* "mprans/BoundaryConditions.py":721
19750  * elif phi <= -smoothing:
19751  * H = 0.
19752  * vof = H * air + (1 - H) * water # <<<<<<<<<<<<<<
19753  * return vof
19754  *
19755  */
19756  if (unlikely(!__pyx_v_H)) { __Pyx_RaiseUnboundLocalError("H"); __PYX_ERR(0, 721, __pyx_L1_error) }
19757  if (unlikely(!__pyx_cur_scope->__pyx_v_air)) { __Pyx_RaiseClosureNameError("air"); __PYX_ERR(0, 721, __pyx_L1_error) }
19758  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_air); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 721, __pyx_L1_error)
19759  __Pyx_GOTREF(__pyx_t_2);
19760  if (unlikely(!__pyx_v_H)) { __Pyx_RaiseUnboundLocalError("H"); __PYX_ERR(0, 721, __pyx_L1_error) }
19761  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error)
19762  __Pyx_GOTREF(__pyx_t_1);
19763  if (unlikely(!__pyx_cur_scope->__pyx_v_water)) { __Pyx_RaiseClosureNameError("water"); __PYX_ERR(0, 721, __pyx_L1_error) }
19764  __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_water); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
19765  __Pyx_GOTREF(__pyx_t_7);
19766  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19767  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error)
19768  __Pyx_GOTREF(__pyx_t_1);
19769  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19770  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19771  __pyx_v_vof = __pyx_t_1;
19772  __pyx_t_1 = 0;
19773 
19774  /* "mprans/BoundaryConditions.py":722
19775  * H = 0.
19776  * vof = H * air + (1 - H) * water
19777  * return vof # <<<<<<<<<<<<<<
19778  *
19779  * def inlet_p_advective(x, t, n=None):
19780  */
19781  __Pyx_XDECREF(__pyx_r);
19782  __Pyx_INCREF(__pyx_v_vof);
19783  __pyx_r = __pyx_v_vof;
19784  goto __pyx_L0;
19785 
19786  /* "mprans/BoundaryConditions.py":713
19787  * return phi
19788  *
19789  * def inlet_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
19790  * phi = x[vert_axis] - waterLevel
19791  * if phi >= smoothing:
19792  */
19793 
19794  /* function exit code */
19795  __pyx_L1_error:;
19796  __Pyx_XDECREF(__pyx_t_1);
19797  __Pyx_XDECREF(__pyx_t_2);
19798  __Pyx_XDECREF(__pyx_t_5);
19799  __Pyx_XDECREF(__pyx_t_7);
19800  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_vof_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
19801  __pyx_r = NULL;
19802  __pyx_L0:;
19803  __Pyx_XDECREF(__pyx_v_phi);
19804  __Pyx_XDECREF(__pyx_v_H);
19805  __Pyx_XDECREF(__pyx_v_vof);
19806  __Pyx_XGIVEREF(__pyx_r);
19807  __Pyx_TraceReturn(__pyx_r, 0);
19808  __Pyx_RefNannyFinishContext();
19809  return __pyx_r;
19810 }
19811 
19812 /* "mprans/BoundaryConditions.py":724
19813  * return vof
19814  *
19815  * def inlet_p_advective(x, t, n=None): # <<<<<<<<<<<<<<
19816  * b_or = self._b_or
19817  * phi = x[vert_axis] - waterLevel
19818  */
19819 
19820 /* Python wrapper */
19821 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_7inlet_p_advective(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19822 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_7inlet_p_advective = {"inlet_p_advective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_7inlet_p_advective, METH_VARARGS|METH_KEYWORDS, 0};
19823 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_7inlet_p_advective(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19824  PyObject *__pyx_v_x = 0;
19825  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
19826  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
19827  int __pyx_lineno = 0;
19828  const char *__pyx_filename = NULL;
19829  int __pyx_clineno = 0;
19830  PyObject *__pyx_r = 0;
19831  __Pyx_RefNannyDeclarations
19832  __Pyx_RefNannySetupContext("inlet_p_advective (wrapper)", 0);
19833  {
19834  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
19835  PyObject* values[3] = {0,0,0};
19836  values[2] = ((PyObject *)((PyObject *)Py_None));
19837  if (unlikely(__pyx_kwds)) {
19838  Py_ssize_t kw_args;
19839  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19840  switch (pos_args) {
19841  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19842  CYTHON_FALLTHROUGH;
19843  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19844  CYTHON_FALLTHROUGH;
19845  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19846  CYTHON_FALLTHROUGH;
19847  case 0: break;
19848  default: goto __pyx_L5_argtuple_error;
19849  }
19850  kw_args = PyDict_Size(__pyx_kwds);
19851  switch (pos_args) {
19852  case 0:
19853  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
19854  else goto __pyx_L5_argtuple_error;
19855  CYTHON_FALLTHROUGH;
19856  case 1:
19857  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
19858  else {
19859  __Pyx_RaiseArgtupleInvalid("inlet_p_advective", 0, 2, 3, 1); __PYX_ERR(0, 724, __pyx_L3_error)
19860  }
19861  CYTHON_FALLTHROUGH;
19862  case 2:
19863  if (kw_args > 0) {
19864  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
19865  if (value) { values[2] = value; kw_args--; }
19866  }
19867  }
19868  if (unlikely(kw_args > 0)) {
19869  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_p_advective") < 0)) __PYX_ERR(0, 724, __pyx_L3_error)
19870  }
19871  } else {
19872  switch (PyTuple_GET_SIZE(__pyx_args)) {
19873  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19874  CYTHON_FALLTHROUGH;
19875  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19876  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19877  break;
19878  default: goto __pyx_L5_argtuple_error;
19879  }
19880  }
19881  __pyx_v_x = values[0];
19882  __pyx_v_t = values[1];
19883  __pyx_v_n = values[2];
19884  }
19885  goto __pyx_L4_argument_unpacking_done;
19886  __pyx_L5_argtuple_error:;
19887  __Pyx_RaiseArgtupleInvalid("inlet_p_advective", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 724, __pyx_L3_error)
19888  __pyx_L3_error:;
19889  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_p_advective", __pyx_clineno, __pyx_lineno, __pyx_filename);
19890  __Pyx_RefNannyFinishContext();
19891  return NULL;
19892  __pyx_L4_argument_unpacking_done:;
19893  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_6inlet_p_advective(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
19894 
19895  /* function exit code */
19896  __Pyx_RefNannyFinishContext();
19897  return __pyx_r;
19898 }
19899 
19900 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_6inlet_p_advective(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
19901  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
19902  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
19903  PyObject *__pyx_v_b_or = NULL;
19904  PyObject *__pyx_v_phi = NULL;
19905  PyObject *__pyx_v_H = NULL;
19906  PyObject *__pyx_v_u = NULL;
19907  PyObject *__pyx_v_u_p = NULL;
19908  PyObject *__pyx_r = NULL;
19909  __Pyx_TraceDeclarations
19910  __Pyx_RefNannyDeclarations
19911  PyObject *__pyx_t_1 = NULL;
19912  PyObject *__pyx_t_2 = NULL;
19913  int __pyx_t_3;
19914  PyObject *__pyx_t_4 = NULL;
19915  PyObject *__pyx_t_5 = NULL;
19916  int __pyx_t_6;
19917  PyObject *__pyx_t_7 = NULL;
19918  int __pyx_lineno = 0;
19919  const char *__pyx_filename = NULL;
19920  int __pyx_clineno = 0;
19921  __Pyx_RefNannySetupContext("inlet_p_advective", 0);
19922  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
19923  __pyx_cur_scope = __pyx_outer_scope;
19924  __Pyx_TraceCall("inlet_p_advective", __pyx_f[0], 724, 0, __PYX_ERR(0, 724, __pyx_L1_error));
19925 
19926  /* "mprans/BoundaryConditions.py":725
19927  *
19928  * def inlet_p_advective(x, t, n=None):
19929  * b_or = self._b_or # <<<<<<<<<<<<<<
19930  * phi = x[vert_axis] - waterLevel
19931  * if phi <= 0.:
19932  */
19933  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 725, __pyx_L1_error) }
19934  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_cur_scope->__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error)
19935  __Pyx_GOTREF(__pyx_t_1);
19936  __pyx_v_b_or = __pyx_t_1;
19937  __pyx_t_1 = 0;
19938 
19939  /* "mprans/BoundaryConditions.py":726
19940  * def inlet_p_advective(x, t, n=None):
19941  * b_or = self._b_or
19942  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
19943  * if phi <= 0.:
19944  * H = 0.0
19945  */
19946  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 726, __pyx_L1_error) }
19947  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error)
19948  __Pyx_GOTREF(__pyx_t_1);
19949  if (unlikely(!__pyx_cur_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 726, __pyx_L1_error) }
19950  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error)
19951  __Pyx_GOTREF(__pyx_t_2);
19952  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19953  __pyx_v_phi = __pyx_t_2;
19954  __pyx_t_2 = 0;
19955 
19956  /* "mprans/BoundaryConditions.py":727
19957  * b_or = self._b_or
19958  * phi = x[vert_axis] - waterLevel
19959  * if phi <= 0.: # <<<<<<<<<<<<<<
19960  * H = 0.0
19961  * elif 0 < phi <= smoothing:
19962  */
19963  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __pyx_L1_error)
19964  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 727, __pyx_L1_error)
19965  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19966  if (__pyx_t_3) {
19967 
19968  /* "mprans/BoundaryConditions.py":728
19969  * phi = x[vert_axis] - waterLevel
19970  * if phi <= 0.:
19971  * H = 0.0 # <<<<<<<<<<<<<<
19972  * elif 0 < phi <= smoothing:
19973  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19974  */
19975  __Pyx_INCREF(__pyx_float_0_0);
19976  __pyx_v_H = __pyx_float_0_0;
19977 
19978  /* "mprans/BoundaryConditions.py":727
19979  * b_or = self._b_or
19980  * phi = x[vert_axis] - waterLevel
19981  * if phi <= 0.: # <<<<<<<<<<<<<<
19982  * H = 0.0
19983  * elif 0 < phi <= smoothing:
19984  */
19985  goto __pyx_L3;
19986  }
19987 
19988  /* "mprans/BoundaryConditions.py":729
19989  * if phi <= 0.:
19990  * H = 0.0
19991  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
19992  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
19993  * else:
19994  */
19995  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 729, __pyx_L1_error)
19996  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
19997  __Pyx_DECREF(__pyx_t_2);
19998  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 729, __pyx_L1_error) }
19999  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 729, __pyx_L1_error)
20000  }
20001  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 729, __pyx_L1_error)
20002  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20003  if (__pyx_t_3) {
20004 
20005  /* "mprans/BoundaryConditions.py":730
20006  * H = 0.0
20007  * elif 0 < phi <= smoothing:
20008  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
20009  * else:
20010  * H = 1.0
20011  */
20012  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L1_error)
20013  __Pyx_GOTREF(__pyx_t_1);
20014  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 730, __pyx_L1_error) }
20015  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 730, __pyx_L1_error) }
20016  __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_, 2., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L1_error)
20017  __Pyx_GOTREF(__pyx_t_4);
20018  __pyx_t_5 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error)
20019  __Pyx_GOTREF(__pyx_t_5);
20020  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20021  __pyx_t_4 = NULL;
20022  __pyx_t_6 = 0;
20023  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
20024  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
20025  if (likely(__pyx_t_4)) {
20026  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
20027  __Pyx_INCREF(__pyx_t_4);
20028  __Pyx_INCREF(function);
20029  __Pyx_DECREF_SET(__pyx_t_1, function);
20030  __pyx_t_6 = 1;
20031  }
20032  }
20033  #if CYTHON_FAST_PYCALL
20034  if (PyFunction_Check(__pyx_t_1)) {
20035  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20036  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 730, __pyx_L1_error)
20037  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20038  __Pyx_GOTREF(__pyx_t_2);
20039  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20040  } else
20041  #endif
20042  #if CYTHON_FAST_PYCCALL
20043  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
20044  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20045  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 730, __pyx_L1_error)
20046  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20047  __Pyx_GOTREF(__pyx_t_2);
20048  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20049  } else
20050  #endif
20051  {
20052  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L1_error)
20053  __Pyx_GOTREF(__pyx_t_7);
20054  if (__pyx_t_4) {
20055  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
20056  }
20057  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
20058  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
20059  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing);
20060  __Pyx_GIVEREF(__pyx_t_5);
20061  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5);
20062  __pyx_t_5 = 0;
20063  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 730, __pyx_L1_error)
20064  __Pyx_GOTREF(__pyx_t_2);
20065  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20066  }
20067  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20068  __pyx_v_H = __pyx_t_2;
20069  __pyx_t_2 = 0;
20070 
20071  /* "mprans/BoundaryConditions.py":729
20072  * if phi <= 0.:
20073  * H = 0.0
20074  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
20075  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20076  * else:
20077  */
20078  goto __pyx_L3;
20079  }
20080 
20081  /* "mprans/BoundaryConditions.py":732
20082  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20083  * else:
20084  * H = 1.0 # <<<<<<<<<<<<<<
20085  * u = H * Uwind + (1 - H) * U
20086  * # This is the normal velocity, based on the inwards boundary
20087  */
20088  /*else*/ {
20089  __Pyx_INCREF(__pyx_float_1_0);
20090  __pyx_v_H = __pyx_float_1_0;
20091  }
20092  __pyx_L3:;
20093 
20094  /* "mprans/BoundaryConditions.py":733
20095  * else:
20096  * H = 1.0
20097  * u = H * Uwind + (1 - H) * U # <<<<<<<<<<<<<<
20098  * # This is the normal velocity, based on the inwards boundary
20099  * # orientation -b_or
20100  */
20101  if (unlikely(!__pyx_cur_scope->__pyx_v_Uwind)) { __Pyx_RaiseClosureNameError("Uwind"); __PYX_ERR(0, 733, __pyx_L1_error) }
20102  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_Uwind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 733, __pyx_L1_error)
20103  __Pyx_GOTREF(__pyx_t_2);
20104  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
20105  __Pyx_GOTREF(__pyx_t_1);
20106  if (unlikely(!__pyx_cur_scope->__pyx_v_U)) { __Pyx_RaiseClosureNameError("U"); __PYX_ERR(0, 733, __pyx_L1_error) }
20107  __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_U); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 733, __pyx_L1_error)
20108  __Pyx_GOTREF(__pyx_t_7);
20109  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20110  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
20111  __Pyx_GOTREF(__pyx_t_1);
20112  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20113  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20114  __pyx_v_u = __pyx_t_1;
20115  __pyx_t_1 = 0;
20116 
20117  /* "mprans/BoundaryConditions.py":736
20118  * # This is the normal velocity, based on the inwards boundary
20119  * # orientation -b_or
20120  * u_p = np.sum(u * np.abs(b_or)) # <<<<<<<<<<<<<<
20121  * return -u_p
20122  *
20123  */
20124  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 736, __pyx_L1_error)
20125  __Pyx_GOTREF(__pyx_t_7);
20126  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 736, __pyx_L1_error)
20127  __Pyx_GOTREF(__pyx_t_2);
20128  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20129  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 736, __pyx_L1_error)
20130  __Pyx_GOTREF(__pyx_t_5);
20131  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_abs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 736, __pyx_L1_error)
20132  __Pyx_GOTREF(__pyx_t_4);
20133  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20134  __pyx_t_5 = NULL;
20135  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
20136  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
20137  if (likely(__pyx_t_5)) {
20138  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
20139  __Pyx_INCREF(__pyx_t_5);
20140  __Pyx_INCREF(function);
20141  __Pyx_DECREF_SET(__pyx_t_4, function);
20142  }
20143  }
20144  __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_b_or) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_b_or);
20145  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
20146  if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 736, __pyx_L1_error)
20147  __Pyx_GOTREF(__pyx_t_7);
20148  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20149  __pyx_t_4 = PyNumber_Multiply(__pyx_v_u, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 736, __pyx_L1_error)
20150  __Pyx_GOTREF(__pyx_t_4);
20151  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20152  __pyx_t_7 = NULL;
20153  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
20154  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
20155  if (likely(__pyx_t_7)) {
20156  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
20157  __Pyx_INCREF(__pyx_t_7);
20158  __Pyx_INCREF(function);
20159  __Pyx_DECREF_SET(__pyx_t_2, function);
20160  }
20161  }
20162  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
20163  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
20164  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20165  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 736, __pyx_L1_error)
20166  __Pyx_GOTREF(__pyx_t_1);
20167  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20168  __pyx_v_u_p = __pyx_t_1;
20169  __pyx_t_1 = 0;
20170 
20171  /* "mprans/BoundaryConditions.py":737
20172  * # orientation -b_or
20173  * u_p = np.sum(u * np.abs(b_or))
20174  * return -u_p # <<<<<<<<<<<<<<
20175  *
20176  * def inlet_k_dirichlet(x, t, n=None):
20177  */
20178  __Pyx_XDECREF(__pyx_r);
20179  __pyx_t_1 = PyNumber_Negative(__pyx_v_u_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error)
20180  __Pyx_GOTREF(__pyx_t_1);
20181  __pyx_r = __pyx_t_1;
20182  __pyx_t_1 = 0;
20183  goto __pyx_L0;
20184 
20185  /* "mprans/BoundaryConditions.py":724
20186  * return vof
20187  *
20188  * def inlet_p_advective(x, t, n=None): # <<<<<<<<<<<<<<
20189  * b_or = self._b_or
20190  * phi = x[vert_axis] - waterLevel
20191  */
20192 
20193  /* function exit code */
20194  __pyx_L1_error:;
20195  __Pyx_XDECREF(__pyx_t_1);
20196  __Pyx_XDECREF(__pyx_t_2);
20197  __Pyx_XDECREF(__pyx_t_4);
20198  __Pyx_XDECREF(__pyx_t_5);
20199  __Pyx_XDECREF(__pyx_t_7);
20200  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_p_advective", __pyx_clineno, __pyx_lineno, __pyx_filename);
20201  __pyx_r = NULL;
20202  __pyx_L0:;
20203  __Pyx_XDECREF(__pyx_v_b_or);
20204  __Pyx_XDECREF(__pyx_v_phi);
20205  __Pyx_XDECREF(__pyx_v_H);
20206  __Pyx_XDECREF(__pyx_v_u);
20207  __Pyx_XDECREF(__pyx_v_u_p);
20208  __Pyx_XGIVEREF(__pyx_r);
20209  __Pyx_TraceReturn(__pyx_r, 0);
20210  __Pyx_RefNannyFinishContext();
20211  return __pyx_r;
20212 }
20213 
20214 /* "mprans/BoundaryConditions.py":739
20215  * return -u_p
20216  *
20217  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
20218  * phi = x[vert_axis] - waterLevel
20219  * if phi <= 0.:
20220  */
20221 
20222 /* Python wrapper */
20223 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_9inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20224 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_9inlet_k_dirichlet = {"inlet_k_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_9inlet_k_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
20225 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_9inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20226  PyObject *__pyx_v_x = 0;
20227  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
20228  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
20229  int __pyx_lineno = 0;
20230  const char *__pyx_filename = NULL;
20231  int __pyx_clineno = 0;
20232  PyObject *__pyx_r = 0;
20233  __Pyx_RefNannyDeclarations
20234  __Pyx_RefNannySetupContext("inlet_k_dirichlet (wrapper)", 0);
20235  {
20236  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
20237  PyObject* values[3] = {0,0,0};
20238  values[2] = ((PyObject *)((PyObject *)Py_None));
20239  if (unlikely(__pyx_kwds)) {
20240  Py_ssize_t kw_args;
20241  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20242  switch (pos_args) {
20243  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20244  CYTHON_FALLTHROUGH;
20245  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20246  CYTHON_FALLTHROUGH;
20247  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20248  CYTHON_FALLTHROUGH;
20249  case 0: break;
20250  default: goto __pyx_L5_argtuple_error;
20251  }
20252  kw_args = PyDict_Size(__pyx_kwds);
20253  switch (pos_args) {
20254  case 0:
20255  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
20256  else goto __pyx_L5_argtuple_error;
20257  CYTHON_FALLTHROUGH;
20258  case 1:
20259  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
20260  else {
20261  __Pyx_RaiseArgtupleInvalid("inlet_k_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 739, __pyx_L3_error)
20262  }
20263  CYTHON_FALLTHROUGH;
20264  case 2:
20265  if (kw_args > 0) {
20266  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
20267  if (value) { values[2] = value; kw_args--; }
20268  }
20269  }
20270  if (unlikely(kw_args > 0)) {
20271  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_k_dirichlet") < 0)) __PYX_ERR(0, 739, __pyx_L3_error)
20272  }
20273  } else {
20274  switch (PyTuple_GET_SIZE(__pyx_args)) {
20275  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20276  CYTHON_FALLTHROUGH;
20277  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20278  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20279  break;
20280  default: goto __pyx_L5_argtuple_error;
20281  }
20282  }
20283  __pyx_v_x = values[0];
20284  __pyx_v_t = values[1];
20285  __pyx_v_n = values[2];
20286  }
20287  goto __pyx_L4_argument_unpacking_done;
20288  __pyx_L5_argtuple_error:;
20289  __Pyx_RaiseArgtupleInvalid("inlet_k_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 739, __pyx_L3_error)
20290  __pyx_L3_error:;
20291  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
20292  __Pyx_RefNannyFinishContext();
20293  return NULL;
20294  __pyx_L4_argument_unpacking_done:;
20295  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_8inlet_k_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
20296 
20297  /* function exit code */
20298  __Pyx_RefNannyFinishContext();
20299  return __pyx_r;
20300 }
20301 
20302 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_8inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
20303  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
20304  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
20305  PyObject *__pyx_v_phi = NULL;
20306  PyObject *__pyx_v_H = NULL;
20307  PyObject *__pyx_r = NULL;
20308  __Pyx_TraceDeclarations
20309  __Pyx_RefNannyDeclarations
20310  PyObject *__pyx_t_1 = NULL;
20311  PyObject *__pyx_t_2 = NULL;
20312  int __pyx_t_3;
20313  PyObject *__pyx_t_4 = NULL;
20314  PyObject *__pyx_t_5 = NULL;
20315  int __pyx_t_6;
20316  PyObject *__pyx_t_7 = NULL;
20317  int __pyx_lineno = 0;
20318  const char *__pyx_filename = NULL;
20319  int __pyx_clineno = 0;
20320  __Pyx_RefNannySetupContext("inlet_k_dirichlet", 0);
20321  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
20322  __pyx_cur_scope = __pyx_outer_scope;
20323  __Pyx_TraceCall("inlet_k_dirichlet", __pyx_f[0], 739, 0, __PYX_ERR(0, 739, __pyx_L1_error));
20324 
20325  /* "mprans/BoundaryConditions.py":740
20326  *
20327  * def inlet_k_dirichlet(x, t, n=None):
20328  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
20329  * if phi <= 0.:
20330  * H = 0.0
20331  */
20332  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 740, __pyx_L1_error) }
20333  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error)
20334  __Pyx_GOTREF(__pyx_t_1);
20335  if (unlikely(!__pyx_cur_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 740, __pyx_L1_error) }
20336  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L1_error)
20337  __Pyx_GOTREF(__pyx_t_2);
20338  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20339  __pyx_v_phi = __pyx_t_2;
20340  __pyx_t_2 = 0;
20341 
20342  /* "mprans/BoundaryConditions.py":741
20343  * def inlet_k_dirichlet(x, t, n=None):
20344  * phi = x[vert_axis] - waterLevel
20345  * if phi <= 0.: # <<<<<<<<<<<<<<
20346  * H = 0.0
20347  * elif 0 < phi <= smoothing:
20348  */
20349  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 741, __pyx_L1_error)
20350  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 741, __pyx_L1_error)
20351  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20352  if (__pyx_t_3) {
20353 
20354  /* "mprans/BoundaryConditions.py":742
20355  * phi = x[vert_axis] - waterLevel
20356  * if phi <= 0.:
20357  * H = 0.0 # <<<<<<<<<<<<<<
20358  * elif 0 < phi <= smoothing:
20359  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20360  */
20361  __Pyx_INCREF(__pyx_float_0_0);
20362  __pyx_v_H = __pyx_float_0_0;
20363 
20364  /* "mprans/BoundaryConditions.py":741
20365  * def inlet_k_dirichlet(x, t, n=None):
20366  * phi = x[vert_axis] - waterLevel
20367  * if phi <= 0.: # <<<<<<<<<<<<<<
20368  * H = 0.0
20369  * elif 0 < phi <= smoothing:
20370  */
20371  goto __pyx_L3;
20372  }
20373 
20374  /* "mprans/BoundaryConditions.py":743
20375  * if phi <= 0.:
20376  * H = 0.0
20377  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
20378  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20379  * else:
20380  */
20381  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 743, __pyx_L1_error)
20382  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
20383  __Pyx_DECREF(__pyx_t_2);
20384  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 743, __pyx_L1_error) }
20385  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 743, __pyx_L1_error)
20386  }
20387  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 743, __pyx_L1_error)
20388  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20389  if (__pyx_t_3) {
20390 
20391  /* "mprans/BoundaryConditions.py":744
20392  * H = 0.0
20393  * elif 0 < phi <= smoothing:
20394  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
20395  * else:
20396  * H = 1.0
20397  */
20398  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L1_error)
20399  __Pyx_GOTREF(__pyx_t_1);
20400  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 744, __pyx_L1_error) }
20401  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 744, __pyx_L1_error) }
20402  __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_, 2., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 744, __pyx_L1_error)
20403  __Pyx_GOTREF(__pyx_t_4);
20404  __pyx_t_5 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 744, __pyx_L1_error)
20405  __Pyx_GOTREF(__pyx_t_5);
20406  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20407  __pyx_t_4 = NULL;
20408  __pyx_t_6 = 0;
20409  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
20410  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
20411  if (likely(__pyx_t_4)) {
20412  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
20413  __Pyx_INCREF(__pyx_t_4);
20414  __Pyx_INCREF(function);
20415  __Pyx_DECREF_SET(__pyx_t_1, function);
20416  __pyx_t_6 = 1;
20417  }
20418  }
20419  #if CYTHON_FAST_PYCALL
20420  if (PyFunction_Check(__pyx_t_1)) {
20421  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20422  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error)
20423  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20424  __Pyx_GOTREF(__pyx_t_2);
20425  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20426  } else
20427  #endif
20428  #if CYTHON_FAST_PYCCALL
20429  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
20430  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20431  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error)
20432  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20433  __Pyx_GOTREF(__pyx_t_2);
20434  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20435  } else
20436  #endif
20437  {
20438  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 744, __pyx_L1_error)
20439  __Pyx_GOTREF(__pyx_t_7);
20440  if (__pyx_t_4) {
20441  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
20442  }
20443  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
20444  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
20445  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing);
20446  __Pyx_GIVEREF(__pyx_t_5);
20447  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5);
20448  __pyx_t_5 = 0;
20449  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error)
20450  __Pyx_GOTREF(__pyx_t_2);
20451  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20452  }
20453  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20454  __pyx_v_H = __pyx_t_2;
20455  __pyx_t_2 = 0;
20456 
20457  /* "mprans/BoundaryConditions.py":743
20458  * if phi <= 0.:
20459  * H = 0.0
20460  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
20461  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20462  * else:
20463  */
20464  goto __pyx_L3;
20465  }
20466 
20467  /* "mprans/BoundaryConditions.py":746
20468  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20469  * else:
20470  * H = 1.0 # <<<<<<<<<<<<<<
20471  * return H * kInflowAir + (1 - H) * kInflow
20472  *
20473  */
20474  /*else*/ {
20475  __Pyx_INCREF(__pyx_float_1_0);
20476  __pyx_v_H = __pyx_float_1_0;
20477  }
20478  __pyx_L3:;
20479 
20480  /* "mprans/BoundaryConditions.py":747
20481  * else:
20482  * H = 1.0
20483  * return H * kInflowAir + (1 - H) * kInflow # <<<<<<<<<<<<<<
20484  *
20485  * def inlet_dissipation_dirichlet(x, t, n=None):
20486  */
20487  __Pyx_XDECREF(__pyx_r);
20488  if (unlikely(!__pyx_cur_scope->__pyx_v_kInflowAir)) { __Pyx_RaiseClosureNameError("kInflowAir"); __PYX_ERR(0, 747, __pyx_L1_error) }
20489  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_kInflowAir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 747, __pyx_L1_error)
20490  __Pyx_GOTREF(__pyx_t_2);
20491  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L1_error)
20492  __Pyx_GOTREF(__pyx_t_1);
20493  if (unlikely(!__pyx_cur_scope->__pyx_v_kInflow)) { __Pyx_RaiseClosureNameError("kInflow"); __PYX_ERR(0, 747, __pyx_L1_error) }
20494  __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_kInflow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error)
20495  __Pyx_GOTREF(__pyx_t_7);
20496  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20497  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L1_error)
20498  __Pyx_GOTREF(__pyx_t_1);
20499  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20500  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20501  __pyx_r = __pyx_t_1;
20502  __pyx_t_1 = 0;
20503  goto __pyx_L0;
20504 
20505  /* "mprans/BoundaryConditions.py":739
20506  * return -u_p
20507  *
20508  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
20509  * phi = x[vert_axis] - waterLevel
20510  * if phi <= 0.:
20511  */
20512 
20513  /* function exit code */
20514  __pyx_L1_error:;
20515  __Pyx_XDECREF(__pyx_t_1);
20516  __Pyx_XDECREF(__pyx_t_2);
20517  __Pyx_XDECREF(__pyx_t_4);
20518  __Pyx_XDECREF(__pyx_t_5);
20519  __Pyx_XDECREF(__pyx_t_7);
20520  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
20521  __pyx_r = NULL;
20522  __pyx_L0:;
20523  __Pyx_XDECREF(__pyx_v_phi);
20524  __Pyx_XDECREF(__pyx_v_H);
20525  __Pyx_XGIVEREF(__pyx_r);
20526  __Pyx_TraceReturn(__pyx_r, 0);
20527  __Pyx_RefNannyFinishContext();
20528  return __pyx_r;
20529 }
20530 
20531 /* "mprans/BoundaryConditions.py":749
20532  * return H * kInflowAir + (1 - H) * kInflow
20533  *
20534  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
20535  * phi = x[vert_axis] - waterLevel
20536  * if phi <= 0.:
20537  */
20538 
20539 /* Python wrapper */
20540 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_11inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20541 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_11inlet_dissipation_dirichlet = {"inlet_dissipation_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_11inlet_dissipation_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
20542 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_11inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20543  PyObject *__pyx_v_x = 0;
20544  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
20545  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
20546  int __pyx_lineno = 0;
20547  const char *__pyx_filename = NULL;
20548  int __pyx_clineno = 0;
20549  PyObject *__pyx_r = 0;
20550  __Pyx_RefNannyDeclarations
20551  __Pyx_RefNannySetupContext("inlet_dissipation_dirichlet (wrapper)", 0);
20552  {
20553  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
20554  PyObject* values[3] = {0,0,0};
20555  values[2] = ((PyObject *)((PyObject *)Py_None));
20556  if (unlikely(__pyx_kwds)) {
20557  Py_ssize_t kw_args;
20558  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20559  switch (pos_args) {
20560  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20561  CYTHON_FALLTHROUGH;
20562  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20563  CYTHON_FALLTHROUGH;
20564  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20565  CYTHON_FALLTHROUGH;
20566  case 0: break;
20567  default: goto __pyx_L5_argtuple_error;
20568  }
20569  kw_args = PyDict_Size(__pyx_kwds);
20570  switch (pos_args) {
20571  case 0:
20572  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
20573  else goto __pyx_L5_argtuple_error;
20574  CYTHON_FALLTHROUGH;
20575  case 1:
20576  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
20577  else {
20578  __Pyx_RaiseArgtupleInvalid("inlet_dissipation_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 749, __pyx_L3_error)
20579  }
20580  CYTHON_FALLTHROUGH;
20581  case 2:
20582  if (kw_args > 0) {
20583  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
20584  if (value) { values[2] = value; kw_args--; }
20585  }
20586  }
20587  if (unlikely(kw_args > 0)) {
20588  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_dissipation_dirichlet") < 0)) __PYX_ERR(0, 749, __pyx_L3_error)
20589  }
20590  } else {
20591  switch (PyTuple_GET_SIZE(__pyx_args)) {
20592  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20593  CYTHON_FALLTHROUGH;
20594  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20595  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20596  break;
20597  default: goto __pyx_L5_argtuple_error;
20598  }
20599  }
20600  __pyx_v_x = values[0];
20601  __pyx_v_t = values[1];
20602  __pyx_v_n = values[2];
20603  }
20604  goto __pyx_L4_argument_unpacking_done;
20605  __pyx_L5_argtuple_error:;
20606  __Pyx_RaiseArgtupleInvalid("inlet_dissipation_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 749, __pyx_L3_error)
20607  __pyx_L3_error:;
20608  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
20609  __Pyx_RefNannyFinishContext();
20610  return NULL;
20611  __pyx_L4_argument_unpacking_done:;
20612  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_10inlet_dissipation_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
20613 
20614  /* function exit code */
20615  __Pyx_RefNannyFinishContext();
20616  return __pyx_r;
20617 }
20618 
20619 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_10inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
20620  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
20621  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_outer_scope;
20622  PyObject *__pyx_v_phi = NULL;
20623  PyObject *__pyx_v_H = NULL;
20624  PyObject *__pyx_r = NULL;
20625  __Pyx_TraceDeclarations
20626  __Pyx_RefNannyDeclarations
20627  PyObject *__pyx_t_1 = NULL;
20628  PyObject *__pyx_t_2 = NULL;
20629  int __pyx_t_3;
20630  PyObject *__pyx_t_4 = NULL;
20631  PyObject *__pyx_t_5 = NULL;
20632  int __pyx_t_6;
20633  PyObject *__pyx_t_7 = NULL;
20634  int __pyx_lineno = 0;
20635  const char *__pyx_filename = NULL;
20636  int __pyx_clineno = 0;
20637  __Pyx_RefNannySetupContext("inlet_dissipation_dirichlet", 0);
20638  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
20639  __pyx_cur_scope = __pyx_outer_scope;
20640  __Pyx_TraceCall("inlet_dissipation_dirichlet", __pyx_f[0], 749, 0, __PYX_ERR(0, 749, __pyx_L1_error));
20641 
20642  /* "mprans/BoundaryConditions.py":750
20643  *
20644  * def inlet_dissipation_dirichlet(x, t, n=None):
20645  * phi = x[vert_axis] - waterLevel # <<<<<<<<<<<<<<
20646  * if phi <= 0.:
20647  * H = 0.0
20648  */
20649  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 750, __pyx_L1_error) }
20650  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error)
20651  __Pyx_GOTREF(__pyx_t_1);
20652  if (unlikely(!__pyx_cur_scope->__pyx_v_waterLevel)) { __Pyx_RaiseClosureNameError("waterLevel"); __PYX_ERR(0, 750, __pyx_L1_error) }
20653  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_waterLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error)
20654  __Pyx_GOTREF(__pyx_t_2);
20655  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20656  __pyx_v_phi = __pyx_t_2;
20657  __pyx_t_2 = 0;
20658 
20659  /* "mprans/BoundaryConditions.py":751
20660  * def inlet_dissipation_dirichlet(x, t, n=None):
20661  * phi = x[vert_axis] - waterLevel
20662  * if phi <= 0.: # <<<<<<<<<<<<<<
20663  * H = 0.0
20664  * elif 0 < phi <= smoothing:
20665  */
20666  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 751, __pyx_L1_error)
20667  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 751, __pyx_L1_error)
20668  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20669  if (__pyx_t_3) {
20670 
20671  /* "mprans/BoundaryConditions.py":752
20672  * phi = x[vert_axis] - waterLevel
20673  * if phi <= 0.:
20674  * H = 0.0 # <<<<<<<<<<<<<<
20675  * elif 0 < phi <= smoothing:
20676  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20677  */
20678  __Pyx_INCREF(__pyx_float_0_0);
20679  __pyx_v_H = __pyx_float_0_0;
20680 
20681  /* "mprans/BoundaryConditions.py":751
20682  * def inlet_dissipation_dirichlet(x, t, n=None):
20683  * phi = x[vert_axis] - waterLevel
20684  * if phi <= 0.: # <<<<<<<<<<<<<<
20685  * H = 0.0
20686  * elif 0 < phi <= smoothing:
20687  */
20688  goto __pyx_L3;
20689  }
20690 
20691  /* "mprans/BoundaryConditions.py":753
20692  * if phi <= 0.:
20693  * H = 0.0
20694  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
20695  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20696  * else:
20697  */
20698  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 753, __pyx_L1_error)
20699  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
20700  __Pyx_DECREF(__pyx_t_2);
20701  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 753, __pyx_L1_error) }
20702  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 753, __pyx_L1_error)
20703  }
20704  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 753, __pyx_L1_error)
20705  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20706  if (__pyx_t_3) {
20707 
20708  /* "mprans/BoundaryConditions.py":754
20709  * H = 0.0
20710  * elif 0 < phi <= smoothing:
20711  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
20712  * else:
20713  * H = 1.0
20714  */
20715  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error)
20716  __Pyx_GOTREF(__pyx_t_1);
20717  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 754, __pyx_L1_error) }
20718  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 754, __pyx_L1_error) }
20719  __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_, 2., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 754, __pyx_L1_error)
20720  __Pyx_GOTREF(__pyx_t_4);
20721  __pyx_t_5 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 754, __pyx_L1_error)
20722  __Pyx_GOTREF(__pyx_t_5);
20723  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20724  __pyx_t_4 = NULL;
20725  __pyx_t_6 = 0;
20726  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
20727  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
20728  if (likely(__pyx_t_4)) {
20729  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
20730  __Pyx_INCREF(__pyx_t_4);
20731  __Pyx_INCREF(function);
20732  __Pyx_DECREF_SET(__pyx_t_1, function);
20733  __pyx_t_6 = 1;
20734  }
20735  }
20736  #if CYTHON_FAST_PYCALL
20737  if (PyFunction_Check(__pyx_t_1)) {
20738  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20739  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 754, __pyx_L1_error)
20740  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20741  __Pyx_GOTREF(__pyx_t_2);
20742  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20743  } else
20744  #endif
20745  #if CYTHON_FAST_PYCCALL
20746  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
20747  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_smoothing, __pyx_t_5};
20748  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 754, __pyx_L1_error)
20749  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20750  __Pyx_GOTREF(__pyx_t_2);
20751  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20752  } else
20753  #endif
20754  {
20755  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 754, __pyx_L1_error)
20756  __Pyx_GOTREF(__pyx_t_7);
20757  if (__pyx_t_4) {
20758  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
20759  }
20760  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
20761  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
20762  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing);
20763  __Pyx_GIVEREF(__pyx_t_5);
20764  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5);
20765  __pyx_t_5 = 0;
20766  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 754, __pyx_L1_error)
20767  __Pyx_GOTREF(__pyx_t_2);
20768  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20769  }
20770  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20771  __pyx_v_H = __pyx_t_2;
20772  __pyx_t_2 = 0;
20773 
20774  /* "mprans/BoundaryConditions.py":753
20775  * if phi <= 0.:
20776  * H = 0.0
20777  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
20778  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20779  * else:
20780  */
20781  goto __pyx_L3;
20782  }
20783 
20784  /* "mprans/BoundaryConditions.py":756
20785  * H = smoothedHeaviside(smoothing, phi-smoothing/2.)#smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
20786  * else:
20787  * H = 1.0 # <<<<<<<<<<<<<<
20788  * return H * dissipationInflowAir + (1 - H) * dissipationInflow
20789  *
20790  */
20791  /*else*/ {
20792  __Pyx_INCREF(__pyx_float_1_0);
20793  __pyx_v_H = __pyx_float_1_0;
20794  }
20795  __pyx_L3:;
20796 
20797  /* "mprans/BoundaryConditions.py":757
20798  * else:
20799  * H = 1.0
20800  * return H * dissipationInflowAir + (1 - H) * dissipationInflow # <<<<<<<<<<<<<<
20801  *
20802  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
20803  */
20804  __Pyx_XDECREF(__pyx_r);
20805  if (unlikely(!__pyx_cur_scope->__pyx_v_dissipationInflowAir)) { __Pyx_RaiseClosureNameError("dissipationInflowAir"); __PYX_ERR(0, 757, __pyx_L1_error) }
20806  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_dissipationInflowAir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 757, __pyx_L1_error)
20807  __Pyx_GOTREF(__pyx_t_2);
20808  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 757, __pyx_L1_error)
20809  __Pyx_GOTREF(__pyx_t_1);
20810  if (unlikely(!__pyx_cur_scope->__pyx_v_dissipationInflow)) { __Pyx_RaiseClosureNameError("dissipationInflow"); __PYX_ERR(0, 757, __pyx_L1_error) }
20811  __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_dissipationInflow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
20812  __Pyx_GOTREF(__pyx_t_7);
20813  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20814  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 757, __pyx_L1_error)
20815  __Pyx_GOTREF(__pyx_t_1);
20816  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20817  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20818  __pyx_r = __pyx_t_1;
20819  __pyx_t_1 = 0;
20820  goto __pyx_L0;
20821 
20822  /* "mprans/BoundaryConditions.py":749
20823  * return H * kInflowAir + (1 - H) * kInflow
20824  *
20825  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
20826  * phi = x[vert_axis] - waterLevel
20827  * if phi <= 0.:
20828  */
20829 
20830  /* function exit code */
20831  __pyx_L1_error:;
20832  __Pyx_XDECREF(__pyx_t_1);
20833  __Pyx_XDECREF(__pyx_t_2);
20834  __Pyx_XDECREF(__pyx_t_4);
20835  __Pyx_XDECREF(__pyx_t_5);
20836  __Pyx_XDECREF(__pyx_t_7);
20837  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet.inlet_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
20838  __pyx_r = NULL;
20839  __pyx_L0:;
20840  __Pyx_XDECREF(__pyx_v_phi);
20841  __Pyx_XDECREF(__pyx_v_H);
20842  __Pyx_XGIVEREF(__pyx_r);
20843  __Pyx_TraceReturn(__pyx_r, 0);
20844  __Pyx_RefNannyFinishContext();
20845  return __pyx_r;
20846 }
20847 
20848 /* "mprans/BoundaryConditions.py":644
20849  * return self.waves.__cpp_calculate_vof(xx, t)
20850  *
20851  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
20852  * vert_axis=None, air=1., water=0.,
20853  * kInflow=None, dissipationInflow=None,
20854  */
20855 
20856 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_U, PyObject *__pyx_v_waterLevel, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_Uwind, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_air, PyObject *__pyx_v_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dissipationInflow, PyObject *__pyx_v_kInflowAir, PyObject *__pyx_v_dissipationInflowAir) {
20857  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_cur_scope;
20858  PyObject *__pyx_v_get_inlet_ux_dirichlet = 0;
20859  PyObject *__pyx_v_inlet_phi_dirichlet = 0;
20860  PyObject *__pyx_v_inlet_vof_dirichlet = 0;
20861  PyObject *__pyx_v_inlet_p_advective = 0;
20862  PyObject *__pyx_v_inlet_k_dirichlet = 0;
20863  PyObject *__pyx_v_inlet_dissipation_dirichlet = 0;
20864  PyObject *__pyx_r = NULL;
20865  __Pyx_TraceDeclarations
20866  __Pyx_RefNannyDeclarations
20867  PyObject *__pyx_t_1 = NULL;
20868  PyObject *__pyx_t_2 = NULL;
20869  PyObject *__pyx_t_3 = NULL;
20870  int __pyx_t_4;
20871  int __pyx_t_5;
20872  int __pyx_lineno = 0;
20873  const char *__pyx_filename = NULL;
20874  int __pyx_clineno = 0;
20875  __Pyx_TraceFrameInit(__pyx_codeobj__49)
20876  __Pyx_RefNannySetupContext("setTwoPhaseVelocityInlet", 0);
20877  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet, __pyx_empty_tuple, NULL);
20878  if (unlikely(!__pyx_cur_scope)) {
20879  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)Py_None);
20880  __Pyx_INCREF(Py_None);
20881  __PYX_ERR(0, 644, __pyx_L1_error)
20882  } else {
20883  __Pyx_GOTREF(__pyx_cur_scope);
20884  }
20885  __Pyx_TraceCall("setTwoPhaseVelocityInlet", __pyx_f[0], 644, 0, __PYX_ERR(0, 644, __pyx_L1_error));
20886  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
20887  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
20888  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
20889  __pyx_cur_scope->__pyx_v_U = __pyx_v_U;
20890  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_U);
20891  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_U);
20892  __pyx_cur_scope->__pyx_v_waterLevel = __pyx_v_waterLevel;
20893  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_waterLevel);
20894  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_waterLevel);
20895  __pyx_cur_scope->__pyx_v_smoothing = __pyx_v_smoothing;
20896  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
20897  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
20898  __pyx_cur_scope->__pyx_v_Uwind = __pyx_v_Uwind;
20899  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_Uwind);
20900  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_Uwind);
20901  __pyx_cur_scope->__pyx_v_vert_axis = __pyx_v_vert_axis;
20902  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_vert_axis);
20903  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_vert_axis);
20904  __pyx_cur_scope->__pyx_v_air = __pyx_v_air;
20905  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_air);
20906  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_air);
20907  __pyx_cur_scope->__pyx_v_water = __pyx_v_water;
20908  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_water);
20909  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_water);
20910  __pyx_cur_scope->__pyx_v_kInflow = __pyx_v_kInflow;
20911  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_kInflow);
20912  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kInflow);
20913  __pyx_cur_scope->__pyx_v_dissipationInflow = __pyx_v_dissipationInflow;
20914  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dissipationInflow);
20915  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dissipationInflow);
20916  __pyx_cur_scope->__pyx_v_kInflowAir = __pyx_v_kInflowAir;
20917  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_kInflowAir);
20918  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kInflowAir);
20919  __pyx_cur_scope->__pyx_v_dissipationInflowAir = __pyx_v_dissipationInflowAir;
20920  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dissipationInflowAir);
20921  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dissipationInflowAir);
20922 
20923  /* "mprans/BoundaryConditions.py":685
20924  * one of the main axes.
20925  * """
20926  * self.reset() # <<<<<<<<<<<<<<
20927  * self.BC_type = 'TwoPhaseVelocityInlet'
20928  *
20929  */
20930  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 685, __pyx_L1_error)
20931  __Pyx_GOTREF(__pyx_t_2);
20932  __pyx_t_3 = NULL;
20933  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
20934  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
20935  if (likely(__pyx_t_3)) {
20936  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
20937  __Pyx_INCREF(__pyx_t_3);
20938  __Pyx_INCREF(function);
20939  __Pyx_DECREF_SET(__pyx_t_2, function);
20940  }
20941  }
20942  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
20943  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
20944  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 685, __pyx_L1_error)
20945  __Pyx_GOTREF(__pyx_t_1);
20946  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20947  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20948 
20949  /* "mprans/BoundaryConditions.py":686
20950  * """
20951  * self.reset()
20952  * self.BC_type = 'TwoPhaseVelocityInlet' # <<<<<<<<<<<<<<
20953  *
20954  * if vert_axis is None:
20955  */
20956  __Pyx_INCREF(__pyx_n_s_TwoPhaseVelocityInlet);
20957  __Pyx_GIVEREF(__pyx_n_s_TwoPhaseVelocityInlet);
20958  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->__pyx_base.BC_type);
20959  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->__pyx_base.BC_type);
20960  __pyx_cur_scope->__pyx_v_self->__pyx_base.BC_type = __pyx_n_s_TwoPhaseVelocityInlet;
20961 
20962  /* "mprans/BoundaryConditions.py":688
20963  * self.BC_type = 'TwoPhaseVelocityInlet'
20964  *
20965  * if vert_axis is None: # <<<<<<<<<<<<<<
20966  * vert_axis = self.nd - 1
20967  * if Uwind is None:
20968  */
20969  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_vert_axis == Py_None);
20970  __pyx_t_5 = (__pyx_t_4 != 0);
20971  if (__pyx_t_5) {
20972 
20973  /* "mprans/BoundaryConditions.py":689
20974  *
20975  * if vert_axis is None:
20976  * vert_axis = self.nd - 1 # <<<<<<<<<<<<<<
20977  * if Uwind is None:
20978  * Uwind = np.zeros(3)
20979  */
20980  __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_cur_scope->__pyx_v_self->__pyx_base.nd - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __pyx_L1_error)
20981  __Pyx_GOTREF(__pyx_t_1);
20982  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vert_axis);
20983  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_vert_axis, __pyx_t_1);
20984  __Pyx_GIVEREF(__pyx_t_1);
20985  __pyx_t_1 = 0;
20986 
20987  /* "mprans/BoundaryConditions.py":688
20988  * self.BC_type = 'TwoPhaseVelocityInlet'
20989  *
20990  * if vert_axis is None: # <<<<<<<<<<<<<<
20991  * vert_axis = self.nd - 1
20992  * if Uwind is None:
20993  */
20994  }
20995 
20996  /* "mprans/BoundaryConditions.py":690
20997  * if vert_axis is None:
20998  * vert_axis = self.nd - 1
20999  * if Uwind is None: # <<<<<<<<<<<<<<
21000  * Uwind = np.zeros(3)
21001  *
21002  */
21003  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_Uwind == Py_None);
21004  __pyx_t_4 = (__pyx_t_5 != 0);
21005  if (__pyx_t_4) {
21006 
21007  /* "mprans/BoundaryConditions.py":691
21008  * vert_axis = self.nd - 1
21009  * if Uwind is None:
21010  * Uwind = np.zeros(3) # <<<<<<<<<<<<<<
21011  *
21012  * U = np.array(U)
21013  */
21014  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 691, __pyx_L1_error)
21015  __Pyx_GOTREF(__pyx_t_2);
21016  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 691, __pyx_L1_error)
21017  __Pyx_GOTREF(__pyx_t_3);
21018  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21019  __pyx_t_2 = NULL;
21020  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
21021  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
21022  if (likely(__pyx_t_2)) {
21023  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21024  __Pyx_INCREF(__pyx_t_2);
21025  __Pyx_INCREF(function);
21026  __Pyx_DECREF_SET(__pyx_t_3, function);
21027  }
21028  }
21029  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_3);
21030  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
21031  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 691, __pyx_L1_error)
21032  __Pyx_GOTREF(__pyx_t_1);
21033  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21034  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_Uwind);
21035  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_Uwind, __pyx_t_1);
21036  __Pyx_GIVEREF(__pyx_t_1);
21037  __pyx_t_1 = 0;
21038 
21039  /* "mprans/BoundaryConditions.py":690
21040  * if vert_axis is None:
21041  * vert_axis = self.nd - 1
21042  * if Uwind is None: # <<<<<<<<<<<<<<
21043  * Uwind = np.zeros(3)
21044  *
21045  */
21046  }
21047 
21048  /* "mprans/BoundaryConditions.py":693
21049  * Uwind = np.zeros(3)
21050  *
21051  * U = np.array(U) # <<<<<<<<<<<<<<
21052  * Uwind = np.array(Uwind)
21053  *
21054  */
21055  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 693, __pyx_L1_error)
21056  __Pyx_GOTREF(__pyx_t_3);
21057  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 693, __pyx_L1_error)
21058  __Pyx_GOTREF(__pyx_t_2);
21059  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21060  __pyx_t_3 = NULL;
21061  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
21062  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
21063  if (likely(__pyx_t_3)) {
21064  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
21065  __Pyx_INCREF(__pyx_t_3);
21066  __Pyx_INCREF(function);
21067  __Pyx_DECREF_SET(__pyx_t_2, function);
21068  }
21069  }
21070  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_U) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_U);
21071  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
21072  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error)
21073  __Pyx_GOTREF(__pyx_t_1);
21074  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21075  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_U);
21076  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_U, __pyx_t_1);
21077  __Pyx_GIVEREF(__pyx_t_1);
21078  __pyx_t_1 = 0;
21079 
21080  /* "mprans/BoundaryConditions.py":694
21081  *
21082  * U = np.array(U)
21083  * Uwind = np.array(Uwind) # <<<<<<<<<<<<<<
21084  *
21085  * def get_inlet_ux_dirichlet(i):
21086  */
21087  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
21088  __Pyx_GOTREF(__pyx_t_2);
21089  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 694, __pyx_L1_error)
21090  __Pyx_GOTREF(__pyx_t_3);
21091  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21092  __pyx_t_2 = NULL;
21093  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
21094  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
21095  if (likely(__pyx_t_2)) {
21096  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21097  __Pyx_INCREF(__pyx_t_2);
21098  __Pyx_INCREF(function);
21099  __Pyx_DECREF_SET(__pyx_t_3, function);
21100  }
21101  }
21102  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_Uwind) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_Uwind);
21103  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
21104  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
21105  __Pyx_GOTREF(__pyx_t_1);
21106  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21107  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_Uwind);
21108  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_Uwind, __pyx_t_1);
21109  __Pyx_GIVEREF(__pyx_t_1);
21110  __pyx_t_1 = 0;
21111 
21112  /* "mprans/BoundaryConditions.py":696
21113  * Uwind = np.array(Uwind)
21114  *
21115  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
21116  * def ux_dirichlet(x, t, n=None):
21117  * phi = x[vert_axis] - waterLevel
21118  */
21119  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_1get_inlet_ux_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error)
21120  __Pyx_GOTREF(__pyx_t_1);
21121  __pyx_v_get_inlet_ux_dirichlet = __pyx_t_1;
21122  __pyx_t_1 = 0;
21123 
21124  /* "mprans/BoundaryConditions.py":709
21125  * return ux_dirichlet
21126  *
21127  * def inlet_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
21128  * phi = x[vert_axis] - waterLevel
21129  * return phi
21130  */
21131  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_3inlet_phi_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_3, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L1_error)
21132  __Pyx_GOTREF(__pyx_t_1);
21133  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__54);
21134  __pyx_v_inlet_phi_dirichlet = __pyx_t_1;
21135  __pyx_t_1 = 0;
21136 
21137  /* "mprans/BoundaryConditions.py":713
21138  * return phi
21139  *
21140  * def inlet_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
21141  * phi = x[vert_axis] - waterLevel
21142  * if phi >= smoothing:
21143  */
21144  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_5inlet_vof_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_4, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 713, __pyx_L1_error)
21145  __Pyx_GOTREF(__pyx_t_1);
21146  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__57);
21147  __pyx_v_inlet_vof_dirichlet = __pyx_t_1;
21148  __pyx_t_1 = 0;
21149 
21150  /* "mprans/BoundaryConditions.py":724
21151  * return vof
21152  *
21153  * def inlet_p_advective(x, t, n=None): # <<<<<<<<<<<<<<
21154  * b_or = self._b_or
21155  * phi = x[vert_axis] - waterLevel
21156  */
21157  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_7inlet_p_advective, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_5, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error)
21158  __Pyx_GOTREF(__pyx_t_1);
21159  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__60);
21160  __pyx_v_inlet_p_advective = __pyx_t_1;
21161  __pyx_t_1 = 0;
21162 
21163  /* "mprans/BoundaryConditions.py":739
21164  * return -u_p
21165  *
21166  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
21167  * phi = x[vert_axis] - waterLevel
21168  * if phi <= 0.:
21169  */
21170  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_9inlet_k_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_6, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L1_error)
21171  __Pyx_GOTREF(__pyx_t_1);
21172  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__63);
21173  __pyx_v_inlet_k_dirichlet = __pyx_t_1;
21174  __pyx_t_1 = 0;
21175 
21176  /* "mprans/BoundaryConditions.py":749
21177  * return H * kInflowAir + (1 - H) * kInflow
21178  *
21179  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
21180  * phi = x[vert_axis] - waterLevel
21181  * if phi <= 0.:
21182  */
21183  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_11inlet_dissipation_dirichlet, 0, __pyx_n_s_setTwoPhaseVelocityInlet_locals_7, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L1_error)
21184  __Pyx_GOTREF(__pyx_t_1);
21185  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__66);
21186  __pyx_v_inlet_dissipation_dirichlet = __pyx_t_1;
21187  __pyx_t_1 = 0;
21188 
21189  /* "mprans/BoundaryConditions.py":759
21190  * return H * dissipationInflowAir + (1 - H) * dissipationInflow
21191  *
21192  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0) # <<<<<<<<<<<<<<
21193  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
21194  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
21195  */
21196  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error)
21197  __Pyx_GOTREF(__pyx_t_1);
21198  __Pyx_GIVEREF(__pyx_t_1);
21199  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT);
21200  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT);
21201  __pyx_cur_scope->__pyx_v_self->u_dirichlet->uOfXT = __pyx_t_1;
21202  __pyx_t_1 = 0;
21203 
21204  /* "mprans/BoundaryConditions.py":760
21205  *
21206  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
21207  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1) # <<<<<<<<<<<<<<
21208  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
21209  * self.phi_dirichlet.uOfXT = inlet_phi_dirichlet
21210  */
21211  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error)
21212  __Pyx_GOTREF(__pyx_t_1);
21213  __Pyx_GIVEREF(__pyx_t_1);
21214  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT);
21215  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT);
21216  __pyx_cur_scope->__pyx_v_self->v_dirichlet->uOfXT = __pyx_t_1;
21217  __pyx_t_1 = 0;
21218 
21219  /* "mprans/BoundaryConditions.py":761
21220  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
21221  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
21222  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2) # <<<<<<<<<<<<<<
21223  * self.phi_dirichlet.uOfXT = inlet_phi_dirichlet
21224  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet
21225  */
21226  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_24setTwoPhaseVelocityInlet_get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error)
21227  __Pyx_GOTREF(__pyx_t_1);
21228  __Pyx_GIVEREF(__pyx_t_1);
21229  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT);
21230  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT);
21231  __pyx_cur_scope->__pyx_v_self->w_dirichlet->uOfXT = __pyx_t_1;
21232  __pyx_t_1 = 0;
21233 
21234  /* "mprans/BoundaryConditions.py":762
21235  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
21236  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
21237  * self.phi_dirichlet.uOfXT = inlet_phi_dirichlet # <<<<<<<<<<<<<<
21238  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet
21239  * self.p_advective.uOfXT = inlet_p_advective
21240  */
21241  __Pyx_INCREF(__pyx_v_inlet_phi_dirichlet);
21242  __Pyx_GIVEREF(__pyx_v_inlet_phi_dirichlet);
21243  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT);
21244  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT);
21245  __pyx_cur_scope->__pyx_v_self->phi_dirichlet->uOfXT = __pyx_v_inlet_phi_dirichlet;
21246 
21247  /* "mprans/BoundaryConditions.py":763
21248  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
21249  * self.phi_dirichlet.uOfXT = inlet_phi_dirichlet
21250  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet # <<<<<<<<<<<<<<
21251  * self.p_advective.uOfXT = inlet_p_advective
21252  * if kInflow is not None:
21253  */
21254  __Pyx_INCREF(__pyx_v_inlet_vof_dirichlet);
21255  __Pyx_GIVEREF(__pyx_v_inlet_vof_dirichlet);
21256  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT);
21257  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT);
21258  __pyx_cur_scope->__pyx_v_self->vof_dirichlet->uOfXT = __pyx_v_inlet_vof_dirichlet;
21259 
21260  /* "mprans/BoundaryConditions.py":764
21261  * self.phi_dirichlet.uOfXT = inlet_phi_dirichlet
21262  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet
21263  * self.p_advective.uOfXT = inlet_p_advective # <<<<<<<<<<<<<<
21264  * if kInflow is not None:
21265  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
21266  */
21267  __Pyx_INCREF(__pyx_v_inlet_p_advective);
21268  __Pyx_GIVEREF(__pyx_v_inlet_p_advective);
21269  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->p_advective->uOfXT);
21270  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->p_advective->uOfXT);
21271  __pyx_cur_scope->__pyx_v_self->p_advective->uOfXT = __pyx_v_inlet_p_advective;
21272 
21273  /* "mprans/BoundaryConditions.py":765
21274  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet
21275  * self.p_advective.uOfXT = inlet_p_advective
21276  * if kInflow is not None: # <<<<<<<<<<<<<<
21277  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
21278  * self.k_advective.resetBC()
21279  */
21280  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_kInflow != Py_None);
21281  __pyx_t_5 = (__pyx_t_4 != 0);
21282  if (__pyx_t_5) {
21283 
21284  /* "mprans/BoundaryConditions.py":766
21285  * self.p_advective.uOfXT = inlet_p_advective
21286  * if kInflow is not None:
21287  * self.k_dirichlet.uOfXT = inlet_k_dirichlet # <<<<<<<<<<<<<<
21288  * self.k_advective.resetBC()
21289  * self.k_diffusive.resetBC()
21290  */
21291  __Pyx_INCREF(__pyx_v_inlet_k_dirichlet);
21292  __Pyx_GIVEREF(__pyx_v_inlet_k_dirichlet);
21293  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->k_dirichlet->uOfXT);
21294  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->k_dirichlet->uOfXT);
21295  __pyx_cur_scope->__pyx_v_self->k_dirichlet->uOfXT = __pyx_v_inlet_k_dirichlet;
21296 
21297  /* "mprans/BoundaryConditions.py":767
21298  * if kInflow is not None:
21299  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
21300  * self.k_advective.resetBC() # <<<<<<<<<<<<<<
21301  * self.k_diffusive.resetBC()
21302  * if dissipationInflow is not None:
21303  */
21304  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_cur_scope->__pyx_v_self->k_advective->__pyx_vtab)->resetBC(__pyx_cur_scope->__pyx_v_self->k_advective, 0);
21305 
21306  /* "mprans/BoundaryConditions.py":768
21307  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
21308  * self.k_advective.resetBC()
21309  * self.k_diffusive.resetBC() # <<<<<<<<<<<<<<
21310  * if dissipationInflow is not None:
21311  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
21312  */
21313  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_cur_scope->__pyx_v_self->k_diffusive->__pyx_vtab)->resetBC(__pyx_cur_scope->__pyx_v_self->k_diffusive, 0);
21314 
21315  /* "mprans/BoundaryConditions.py":765
21316  * self.vof_dirichlet.uOfXT = inlet_vof_dirichlet
21317  * self.p_advective.uOfXT = inlet_p_advective
21318  * if kInflow is not None: # <<<<<<<<<<<<<<
21319  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
21320  * self.k_advective.resetBC()
21321  */
21322  }
21323 
21324  /* "mprans/BoundaryConditions.py":769
21325  * self.k_advective.resetBC()
21326  * self.k_diffusive.resetBC()
21327  * if dissipationInflow is not None: # <<<<<<<<<<<<<<
21328  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
21329  * self.dissipation_advective.resetBC()
21330  */
21331  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_dissipationInflow != Py_None);
21332  __pyx_t_4 = (__pyx_t_5 != 0);
21333  if (__pyx_t_4) {
21334 
21335  /* "mprans/BoundaryConditions.py":770
21336  * self.k_diffusive.resetBC()
21337  * if dissipationInflow is not None:
21338  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet # <<<<<<<<<<<<<<
21339  * self.dissipation_advective.resetBC()
21340  * self.dissipation_diffusive.resetBC()
21341  */
21342  __Pyx_INCREF(__pyx_v_inlet_dissipation_dirichlet);
21343  __Pyx_GIVEREF(__pyx_v_inlet_dissipation_dirichlet);
21344  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->dissipation_dirichlet->uOfXT);
21345  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->dissipation_dirichlet->uOfXT);
21346  __pyx_cur_scope->__pyx_v_self->dissipation_dirichlet->uOfXT = __pyx_v_inlet_dissipation_dirichlet;
21347 
21348  /* "mprans/BoundaryConditions.py":771
21349  * if dissipationInflow is not None:
21350  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
21351  * self.dissipation_advective.resetBC() # <<<<<<<<<<<<<<
21352  * self.dissipation_diffusive.resetBC()
21353  *
21354  */
21355  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_cur_scope->__pyx_v_self->dissipation_advective->__pyx_vtab)->resetBC(__pyx_cur_scope->__pyx_v_self->dissipation_advective, 0);
21356 
21357  /* "mprans/BoundaryConditions.py":772
21358  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
21359  * self.dissipation_advective.resetBC()
21360  * self.dissipation_diffusive.resetBC() # <<<<<<<<<<<<<<
21361  *
21362  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g,
21363  */
21364  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_cur_scope->__pyx_v_self->dissipation_diffusive->__pyx_vtab)->resetBC(__pyx_cur_scope->__pyx_v_self->dissipation_diffusive, 0);
21365 
21366  /* "mprans/BoundaryConditions.py":769
21367  * self.k_advective.resetBC()
21368  * self.k_diffusive.resetBC()
21369  * if dissipationInflow is not None: # <<<<<<<<<<<<<<
21370  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
21371  * self.dissipation_advective.resetBC()
21372  */
21373  }
21374 
21375  /* "mprans/BoundaryConditions.py":644
21376  * return self.waves.__cpp_calculate_vof(xx, t)
21377  *
21378  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
21379  * vert_axis=None, air=1., water=0.,
21380  * kInflow=None, dissipationInflow=None,
21381  */
21382 
21383  /* function exit code */
21384  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21385  goto __pyx_L0;
21386  __pyx_L1_error:;
21387  __Pyx_XDECREF(__pyx_t_1);
21388  __Pyx_XDECREF(__pyx_t_2);
21389  __Pyx_XDECREF(__pyx_t_3);
21390  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setTwoPhaseVelocityInlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
21391  __pyx_r = NULL;
21392  __pyx_L0:;
21393  __Pyx_XDECREF(__pyx_v_get_inlet_ux_dirichlet);
21394  __Pyx_XDECREF(__pyx_v_inlet_phi_dirichlet);
21395  __Pyx_XDECREF(__pyx_v_inlet_vof_dirichlet);
21396  __Pyx_XDECREF(__pyx_v_inlet_p_advective);
21397  __Pyx_XDECREF(__pyx_v_inlet_k_dirichlet);
21398  __Pyx_XDECREF(__pyx_v_inlet_dissipation_dirichlet);
21399  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
21400  __Pyx_XGIVEREF(__pyx_r);
21401  __Pyx_TraceReturn(__pyx_r, 0);
21402  __Pyx_RefNannyFinishContext();
21403  return __pyx_r;
21404 }
21405 
21406 /* "mprans/BoundaryConditions.py":774
21407  * self.dissipation_diffusive.resetBC()
21408  *
21409  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
21410  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
21411  * pRef=0.0, vert_axis=None,
21412  */
21413 
21414 /* Python wrapper */
21415 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21416 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth[] = "BC_RANS.setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, refLevel, smoothing, orientation=None, U=None, Uwind=None, pRef=0.0, vert_axis=None, air=1.0, water=0.0, kInflow=None, dissipationInflow=None, kInflowAir=None, dissipationInflowAir=None)\n\n Returns the pressure and vof profile based on the known depth.\n If the boundary is aligned with one of the main axes, sets the tangential\n velocity components to zero as well.\n (!) This condition is best used for boundaries and gravity aligned with\n one of the main axes.\n\n Parameters\n ----------\n rhoUp: Phase density of the upper part.\n rhoDown: Phase density of the lower part.\n g: Gravitational acceleration vector.\n refLevel: Level at which pressure = pRef.\n pRef: Reference value for the pressure at x[vert_axis]=refLevel, by default set to 0.\n vert_axis: index of vertical in position vector, must always be aligned with gravity, by default set to 1.\n ";
21417 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth = {"setHydrostaticPressureOutletWithDepth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth};
21418 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21419  PyObject *__pyx_v_seaLevel = 0;
21420  PyObject *__pyx_v_rhoUp = 0;
21421  PyObject *__pyx_v_rhoDown = 0;
21422  PyObject *__pyx_v_g = 0;
21423  PyObject *__pyx_v_refLevel = 0;
21424  PyObject *__pyx_v_smoothing = 0;
21425  PyObject *__pyx_v_orientation = 0;
21426  PyObject *__pyx_v_U = 0;
21427  PyObject *__pyx_v_Uwind = 0;
21428  PyObject *__pyx_v_pRef = 0;
21429  PyObject *__pyx_v_vert_axis = 0;
21430  PyObject *__pyx_v_air = 0;
21431  PyObject *__pyx_v_water = 0;
21432  PyObject *__pyx_v_kInflow = 0;
21433  PyObject *__pyx_v_dissipationInflow = 0;
21434  PyObject *__pyx_v_kInflowAir = 0;
21435  PyObject *__pyx_v_dissipationInflowAir = 0;
21436  int __pyx_lineno = 0;
21437  const char *__pyx_filename = NULL;
21438  int __pyx_clineno = 0;
21439  PyObject *__pyx_r = 0;
21440  __Pyx_RefNannyDeclarations
21441  __Pyx_RefNannySetupContext("setHydrostaticPressureOutletWithDepth (wrapper)", 0);
21442  {
21443  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_seaLevel,&__pyx_n_s_rhoUp,&__pyx_n_s_rhoDown,&__pyx_n_s_g,&__pyx_n_s_refLevel,&__pyx_n_s_smoothing,&__pyx_n_s_orientation,&__pyx_n_s_U,&__pyx_n_s_Uwind,&__pyx_n_s_pRef,&__pyx_n_s_vert_axis,&__pyx_n_s_air,&__pyx_n_s_water,&__pyx_n_s_kInflow,&__pyx_n_s_dissipationInflow,&__pyx_n_s_kInflowAir,&__pyx_n_s_dissipationInflowAir,0};
21444  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
21445 
21446  /* "mprans/BoundaryConditions.py":775
21447  *
21448  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g,
21449  * refLevel, smoothing, orientation=None,U=None, Uwind=None, # <<<<<<<<<<<<<<
21450  * pRef=0.0, vert_axis=None,
21451  * air=1.0, water=0.0,
21452  */
21453  values[6] = ((PyObject *)Py_None);
21454  values[7] = ((PyObject *)Py_None);
21455  values[8] = ((PyObject *)Py_None);
21456  values[9] = ((PyObject *)__pyx_float_0_0);
21457 
21458  /* "mprans/BoundaryConditions.py":776
21459  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g,
21460  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
21461  * pRef=0.0, vert_axis=None, # <<<<<<<<<<<<<<
21462  * air=1.0, water=0.0,
21463  * kInflow=None, dissipationInflow=None,
21464  */
21465  values[10] = ((PyObject *)Py_None);
21466  values[11] = ((PyObject *)__pyx_float_1_0);
21467  values[12] = ((PyObject *)__pyx_float_0_0);
21468 
21469  /* "mprans/BoundaryConditions.py":778
21470  * pRef=0.0, vert_axis=None,
21471  * air=1.0, water=0.0,
21472  * kInflow=None, dissipationInflow=None, # <<<<<<<<<<<<<<
21473  * kInflowAir=None, dissipationInflowAir=None):
21474  * """
21475  */
21476  values[13] = ((PyObject *)Py_None);
21477  values[14] = ((PyObject *)Py_None);
21478 
21479  /* "mprans/BoundaryConditions.py":779
21480  * air=1.0, water=0.0,
21481  * kInflow=None, dissipationInflow=None,
21482  * kInflowAir=None, dissipationInflowAir=None): # <<<<<<<<<<<<<<
21483  * """
21484  * Returns the pressure and vof profile based on the known depth.
21485  */
21486  values[15] = ((PyObject *)Py_None);
21487  values[16] = ((PyObject *)Py_None);
21488  if (unlikely(__pyx_kwds)) {
21489  Py_ssize_t kw_args;
21490  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21491  switch (pos_args) {
21492  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21493  CYTHON_FALLTHROUGH;
21494  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21495  CYTHON_FALLTHROUGH;
21496  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21497  CYTHON_FALLTHROUGH;
21498  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21499  CYTHON_FALLTHROUGH;
21500  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21501  CYTHON_FALLTHROUGH;
21502  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21503  CYTHON_FALLTHROUGH;
21504  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21505  CYTHON_FALLTHROUGH;
21506  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21507  CYTHON_FALLTHROUGH;
21508  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21509  CYTHON_FALLTHROUGH;
21510  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21511  CYTHON_FALLTHROUGH;
21512  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21513  CYTHON_FALLTHROUGH;
21514  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21515  CYTHON_FALLTHROUGH;
21516  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21517  CYTHON_FALLTHROUGH;
21518  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21519  CYTHON_FALLTHROUGH;
21520  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21521  CYTHON_FALLTHROUGH;
21522  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21523  CYTHON_FALLTHROUGH;
21524  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21525  CYTHON_FALLTHROUGH;
21526  case 0: break;
21527  default: goto __pyx_L5_argtuple_error;
21528  }
21529  kw_args = PyDict_Size(__pyx_kwds);
21530  switch (pos_args) {
21531  case 0:
21532  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seaLevel)) != 0)) kw_args--;
21533  else goto __pyx_L5_argtuple_error;
21534  CYTHON_FALLTHROUGH;
21535  case 1:
21536  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhoUp)) != 0)) kw_args--;
21537  else {
21538  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, 1); __PYX_ERR(0, 774, __pyx_L3_error)
21539  }
21540  CYTHON_FALLTHROUGH;
21541  case 2:
21542  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhoDown)) != 0)) kw_args--;
21543  else {
21544  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, 2); __PYX_ERR(0, 774, __pyx_L3_error)
21545  }
21546  CYTHON_FALLTHROUGH;
21547  case 3:
21548  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
21549  else {
21550  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, 3); __PYX_ERR(0, 774, __pyx_L3_error)
21551  }
21552  CYTHON_FALLTHROUGH;
21553  case 4:
21554  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refLevel)) != 0)) kw_args--;
21555  else {
21556  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, 4); __PYX_ERR(0, 774, __pyx_L3_error)
21557  }
21558  CYTHON_FALLTHROUGH;
21559  case 5:
21560  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothing)) != 0)) kw_args--;
21561  else {
21562  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, 5); __PYX_ERR(0, 774, __pyx_L3_error)
21563  }
21564  CYTHON_FALLTHROUGH;
21565  case 6:
21566  if (kw_args > 0) {
21567  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation);
21568  if (value) { values[6] = value; kw_args--; }
21569  }
21570  CYTHON_FALLTHROUGH;
21571  case 7:
21572  if (kw_args > 0) {
21573  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U);
21574  if (value) { values[7] = value; kw_args--; }
21575  }
21576  CYTHON_FALLTHROUGH;
21577  case 8:
21578  if (kw_args > 0) {
21579  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Uwind);
21580  if (value) { values[8] = value; kw_args--; }
21581  }
21582  CYTHON_FALLTHROUGH;
21583  case 9:
21584  if (kw_args > 0) {
21585  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pRef);
21586  if (value) { values[9] = value; kw_args--; }
21587  }
21588  CYTHON_FALLTHROUGH;
21589  case 10:
21590  if (kw_args > 0) {
21591  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vert_axis);
21592  if (value) { values[10] = value; kw_args--; }
21593  }
21594  CYTHON_FALLTHROUGH;
21595  case 11:
21596  if (kw_args > 0) {
21597  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_air);
21598  if (value) { values[11] = value; kw_args--; }
21599  }
21600  CYTHON_FALLTHROUGH;
21601  case 12:
21602  if (kw_args > 0) {
21603  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_water);
21604  if (value) { values[12] = value; kw_args--; }
21605  }
21606  CYTHON_FALLTHROUGH;
21607  case 13:
21608  if (kw_args > 0) {
21609  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflow);
21610  if (value) { values[13] = value; kw_args--; }
21611  }
21612  CYTHON_FALLTHROUGH;
21613  case 14:
21614  if (kw_args > 0) {
21615  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dissipationInflow);
21616  if (value) { values[14] = value; kw_args--; }
21617  }
21618  CYTHON_FALLTHROUGH;
21619  case 15:
21620  if (kw_args > 0) {
21621  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInflowAir);
21622  if (value) { values[15] = value; kw_args--; }
21623  }
21624  CYTHON_FALLTHROUGH;
21625  case 16:
21626  if (kw_args > 0) {
21627  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dissipationInflowAir);
21628  if (value) { values[16] = value; kw_args--; }
21629  }
21630  }
21631  if (unlikely(kw_args > 0)) {
21632  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHydrostaticPressureOutletWithDepth") < 0)) __PYX_ERR(0, 774, __pyx_L3_error)
21633  }
21634  } else {
21635  switch (PyTuple_GET_SIZE(__pyx_args)) {
21636  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21637  CYTHON_FALLTHROUGH;
21638  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21639  CYTHON_FALLTHROUGH;
21640  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21641  CYTHON_FALLTHROUGH;
21642  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21643  CYTHON_FALLTHROUGH;
21644  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21645  CYTHON_FALLTHROUGH;
21646  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21647  CYTHON_FALLTHROUGH;
21648  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21649  CYTHON_FALLTHROUGH;
21650  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21651  CYTHON_FALLTHROUGH;
21652  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21653  CYTHON_FALLTHROUGH;
21654  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21655  CYTHON_FALLTHROUGH;
21656  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21657  CYTHON_FALLTHROUGH;
21658  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21659  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21660  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21661  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21662  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21663  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21664  break;
21665  default: goto __pyx_L5_argtuple_error;
21666  }
21667  }
21668  __pyx_v_seaLevel = values[0];
21669  __pyx_v_rhoUp = values[1];
21670  __pyx_v_rhoDown = values[2];
21671  __pyx_v_g = values[3];
21672  __pyx_v_refLevel = values[4];
21673  __pyx_v_smoothing = values[5];
21674  __pyx_v_orientation = values[6];
21675  __pyx_v_U = values[7];
21676  __pyx_v_Uwind = values[8];
21677  __pyx_v_pRef = values[9];
21678  __pyx_v_vert_axis = values[10];
21679  __pyx_v_air = values[11];
21680  __pyx_v_water = values[12];
21681  __pyx_v_kInflow = values[13];
21682  __pyx_v_dissipationInflow = values[14];
21683  __pyx_v_kInflowAir = values[15];
21684  __pyx_v_dissipationInflowAir = values[16];
21685  }
21686  goto __pyx_L4_argument_unpacking_done;
21687  __pyx_L5_argtuple_error:;
21688  __Pyx_RaiseArgtupleInvalid("setHydrostaticPressureOutletWithDepth", 0, 6, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 774, __pyx_L3_error)
21689  __pyx_L3_error:;
21690  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth", __pyx_clineno, __pyx_lineno, __pyx_filename);
21691  __Pyx_RefNannyFinishContext();
21692  return NULL;
21693  __pyx_L4_argument_unpacking_done:;
21694  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), __pyx_v_seaLevel, __pyx_v_rhoUp, __pyx_v_rhoDown, __pyx_v_g, __pyx_v_refLevel, __pyx_v_smoothing, __pyx_v_orientation, __pyx_v_U, __pyx_v_Uwind, __pyx_v_pRef, __pyx_v_vert_axis, __pyx_v_air, __pyx_v_water, __pyx_v_kInflow, __pyx_v_dissipationInflow, __pyx_v_kInflowAir, __pyx_v_dissipationInflowAir);
21695 
21696  /* "mprans/BoundaryConditions.py":774
21697  * self.dissipation_diffusive.resetBC()
21698  *
21699  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
21700  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
21701  * pRef=0.0, vert_axis=None,
21702  */
21703 
21704  /* function exit code */
21705  __Pyx_RefNannyFinishContext();
21706  return __pyx_r;
21707 }
21708 
21709 /* "mprans/BoundaryConditions.py":801
21710  * vert_axis = self.nd - 1
21711  *
21712  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None): # <<<<<<<<<<<<<<
21713  * p_top = pRef
21714  * phi_top = refLevel - seaLevel
21715  */
21716 
21717 /* Python wrapper */
21718 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_1hydrostaticPressureOutletWithDepth_p_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21719 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_1hydrostaticPressureOutletWithDepth_p_dirichlet = {"hydrostaticPressureOutletWithDepth_p_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_1hydrostaticPressureOutletWithDepth_p_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
21720 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_1hydrostaticPressureOutletWithDepth_p_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21721  PyObject *__pyx_v_x = 0;
21722  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
21723  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
21724  int __pyx_lineno = 0;
21725  const char *__pyx_filename = NULL;
21726  int __pyx_clineno = 0;
21727  PyObject *__pyx_r = 0;
21728  __Pyx_RefNannyDeclarations
21729  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_p_dirichlet (wrapper)", 0);
21730  {
21731  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
21732  PyObject* values[3] = {0,0,0};
21733  values[2] = ((PyObject *)((PyObject *)Py_None));
21734  if (unlikely(__pyx_kwds)) {
21735  Py_ssize_t kw_args;
21736  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21737  switch (pos_args) {
21738  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21739  CYTHON_FALLTHROUGH;
21740  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21741  CYTHON_FALLTHROUGH;
21742  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21743  CYTHON_FALLTHROUGH;
21744  case 0: break;
21745  default: goto __pyx_L5_argtuple_error;
21746  }
21747  kw_args = PyDict_Size(__pyx_kwds);
21748  switch (pos_args) {
21749  case 0:
21750  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
21751  else goto __pyx_L5_argtuple_error;
21752  CYTHON_FALLTHROUGH;
21753  case 1:
21754  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
21755  else {
21756  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_p_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 801, __pyx_L3_error)
21757  }
21758  CYTHON_FALLTHROUGH;
21759  case 2:
21760  if (kw_args > 0) {
21761  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
21762  if (value) { values[2] = value; kw_args--; }
21763  }
21764  }
21765  if (unlikely(kw_args > 0)) {
21766  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hydrostaticPressureOutletWithDepth_p_dirichlet") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
21767  }
21768  } else {
21769  switch (PyTuple_GET_SIZE(__pyx_args)) {
21770  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21771  CYTHON_FALLTHROUGH;
21772  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21773  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21774  break;
21775  default: goto __pyx_L5_argtuple_error;
21776  }
21777  }
21778  __pyx_v_x = values[0];
21779  __pyx_v_t = values[1];
21780  __pyx_v_n = values[2];
21781  }
21782  goto __pyx_L4_argument_unpacking_done;
21783  __pyx_L5_argtuple_error:;
21784  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_p_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 801, __pyx_L3_error)
21785  __pyx_L3_error:;
21786  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_p_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
21787  __Pyx_RefNannyFinishContext();
21788  return NULL;
21789  __pyx_L4_argument_unpacking_done:;
21790  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_hydrostaticPressureOutletWithDepth_p_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
21791 
21792  /* function exit code */
21793  __Pyx_RefNannyFinishContext();
21794  return __pyx_r;
21795 }
21796 
21797 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_hydrostaticPressureOutletWithDepth_p_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
21798  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
21799  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
21800  PyObject *__pyx_v_p_top = NULL;
21801  PyObject *__pyx_v_phi_top = NULL;
21802  PyObject *__pyx_v_phi = NULL;
21803  PyObject *__pyx_r = NULL;
21804  __Pyx_TraceDeclarations
21805  __Pyx_RefNannyDeclarations
21806  PyObject *__pyx_t_1 = NULL;
21807  PyObject *__pyx_t_2 = NULL;
21808  PyObject *__pyx_t_3 = NULL;
21809  PyObject *__pyx_t_4 = NULL;
21810  PyObject *__pyx_t_5 = NULL;
21811  PyObject *__pyx_t_6 = NULL;
21812  int __pyx_t_7;
21813  PyObject *__pyx_t_8 = NULL;
21814  PyObject *__pyx_t_9 = NULL;
21815  int __pyx_lineno = 0;
21816  const char *__pyx_filename = NULL;
21817  int __pyx_clineno = 0;
21818  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_p_dirichlet", 0);
21819  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
21820  __pyx_cur_scope = __pyx_outer_scope;
21821  __Pyx_TraceCall("hydrostaticPressureOutletWithDepth_p_dirichlet", __pyx_f[0], 801, 0, __PYX_ERR(0, 801, __pyx_L1_error));
21822 
21823  /* "mprans/BoundaryConditions.py":802
21824  *
21825  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None):
21826  * p_top = pRef # <<<<<<<<<<<<<<
21827  * phi_top = refLevel - seaLevel
21828  * phi = x[vert_axis] - seaLevel
21829  */
21830  if (unlikely(!__pyx_cur_scope->__pyx_v_pRef)) { __Pyx_RaiseClosureNameError("pRef"); __PYX_ERR(0, 802, __pyx_L1_error) }
21831  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_pRef);
21832  __pyx_v_p_top = __pyx_cur_scope->__pyx_v_pRef;
21833 
21834  /* "mprans/BoundaryConditions.py":803
21835  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None):
21836  * p_top = pRef
21837  * phi_top = refLevel - seaLevel # <<<<<<<<<<<<<<
21838  * phi = x[vert_axis] - seaLevel
21839  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) +
21840  */
21841  if (unlikely(!__pyx_cur_scope->__pyx_v_refLevel)) { __Pyx_RaiseClosureNameError("refLevel"); __PYX_ERR(0, 803, __pyx_L1_error) }
21842  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 803, __pyx_L1_error) }
21843  __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_refLevel, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L1_error)
21844  __Pyx_GOTREF(__pyx_t_1);
21845  __pyx_v_phi_top = __pyx_t_1;
21846  __pyx_t_1 = 0;
21847 
21848  /* "mprans/BoundaryConditions.py":804
21849  * p_top = pRef
21850  * phi_top = refLevel - seaLevel
21851  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
21852  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) +
21853  * (rhoUp - rhoDown) *
21854  */
21855  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 804, __pyx_L1_error) }
21856  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error)
21857  __Pyx_GOTREF(__pyx_t_1);
21858  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 804, __pyx_L1_error) }
21859  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
21860  __Pyx_GOTREF(__pyx_t_2);
21861  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21862  __pyx_v_phi = __pyx_t_2;
21863  __pyx_t_2 = 0;
21864 
21865  /* "mprans/BoundaryConditions.py":805
21866  * phi_top = refLevel - seaLevel
21867  * phi = x[vert_axis] - seaLevel
21868  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) + # <<<<<<<<<<<<<<
21869  * (rhoUp - rhoDown) *
21870  * (smoothedHeaviside_integral(smoothing, phi_top)
21871  */
21872  __Pyx_XDECREF(__pyx_r);
21873  if (unlikely(!__pyx_cur_scope->__pyx_v_g)) { __Pyx_RaiseClosureNameError("g"); __PYX_ERR(0, 805, __pyx_L1_error) }
21874  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 805, __pyx_L1_error) }
21875  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_g, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 805, __pyx_L1_error)
21876  __Pyx_GOTREF(__pyx_t_2);
21877  if (unlikely(!__pyx_cur_scope->__pyx_v_rhoDown)) { __Pyx_RaiseClosureNameError("rhoDown"); __PYX_ERR(0, 805, __pyx_L1_error) }
21878  __pyx_t_1 = PyNumber_Subtract(__pyx_v_phi_top, __pyx_v_phi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error)
21879  __Pyx_GOTREF(__pyx_t_1);
21880  __pyx_t_3 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_rhoDown, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 805, __pyx_L1_error)
21881  __Pyx_GOTREF(__pyx_t_3);
21882  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21883 
21884  /* "mprans/BoundaryConditions.py":806
21885  * phi = x[vert_axis] - seaLevel
21886  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) +
21887  * (rhoUp - rhoDown) * # <<<<<<<<<<<<<<
21888  * (smoothedHeaviside_integral(smoothing, phi_top)
21889  * -
21890  */
21891  if (unlikely(!__pyx_cur_scope->__pyx_v_rhoUp)) { __Pyx_RaiseClosureNameError("rhoUp"); __PYX_ERR(0, 806, __pyx_L1_error) }
21892  if (unlikely(!__pyx_cur_scope->__pyx_v_rhoDown)) { __Pyx_RaiseClosureNameError("rhoDown"); __PYX_ERR(0, 806, __pyx_L1_error) }
21893  __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_rhoUp, __pyx_cur_scope->__pyx_v_rhoDown); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L1_error)
21894  __Pyx_GOTREF(__pyx_t_1);
21895 
21896  /* "mprans/BoundaryConditions.py":807
21897  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) +
21898  * (rhoUp - rhoDown) *
21899  * (smoothedHeaviside_integral(smoothing, phi_top) # <<<<<<<<<<<<<<
21900  * -
21901  * smoothedHeaviside_integral(smoothing, phi)))
21902  */
21903  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_smoothedHeaviside_integral); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 807, __pyx_L1_error)
21904  __Pyx_GOTREF(__pyx_t_5);
21905  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 807, __pyx_L1_error) }
21906  __pyx_t_6 = NULL;
21907  __pyx_t_7 = 0;
21908  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
21909  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
21910  if (likely(__pyx_t_6)) {
21911  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
21912  __Pyx_INCREF(__pyx_t_6);
21913  __Pyx_INCREF(function);
21914  __Pyx_DECREF_SET(__pyx_t_5, function);
21915  __pyx_t_7 = 1;
21916  }
21917  }
21918  #if CYTHON_FAST_PYCALL
21919  if (PyFunction_Check(__pyx_t_5)) {
21920  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi_top};
21921  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L1_error)
21922  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
21923  __Pyx_GOTREF(__pyx_t_4);
21924  } else
21925  #endif
21926  #if CYTHON_FAST_PYCCALL
21927  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
21928  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi_top};
21929  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L1_error)
21930  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
21931  __Pyx_GOTREF(__pyx_t_4);
21932  } else
21933  #endif
21934  {
21935  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 807, __pyx_L1_error)
21936  __Pyx_GOTREF(__pyx_t_8);
21937  if (__pyx_t_6) {
21938  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
21939  }
21940  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
21941  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
21942  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
21943  __Pyx_INCREF(__pyx_v_phi_top);
21944  __Pyx_GIVEREF(__pyx_v_phi_top);
21945  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_phi_top);
21946  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L1_error)
21947  __Pyx_GOTREF(__pyx_t_4);
21948  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
21949  }
21950  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
21951 
21952  /* "mprans/BoundaryConditions.py":809
21953  * (smoothedHeaviside_integral(smoothing, phi_top)
21954  * -
21955  * smoothedHeaviside_integral(smoothing, phi))) # <<<<<<<<<<<<<<
21956  *
21957  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None):
21958  */
21959  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_smoothedHeaviside_integral); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 809, __pyx_L1_error)
21960  __Pyx_GOTREF(__pyx_t_8);
21961  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 809, __pyx_L1_error) }
21962  __pyx_t_6 = NULL;
21963  __pyx_t_7 = 0;
21964  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
21965  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
21966  if (likely(__pyx_t_6)) {
21967  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
21968  __Pyx_INCREF(__pyx_t_6);
21969  __Pyx_INCREF(function);
21970  __Pyx_DECREF_SET(__pyx_t_8, function);
21971  __pyx_t_7 = 1;
21972  }
21973  }
21974  #if CYTHON_FAST_PYCALL
21975  if (PyFunction_Check(__pyx_t_8)) {
21976  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
21977  __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 809, __pyx_L1_error)
21978  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
21979  __Pyx_GOTREF(__pyx_t_5);
21980  } else
21981  #endif
21982  #if CYTHON_FAST_PYCCALL
21983  if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
21984  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
21985  __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 809, __pyx_L1_error)
21986  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
21987  __Pyx_GOTREF(__pyx_t_5);
21988  } else
21989  #endif
21990  {
21991  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 809, __pyx_L1_error)
21992  __Pyx_GOTREF(__pyx_t_9);
21993  if (__pyx_t_6) {
21994  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
21995  }
21996  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
21997  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
21998  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
21999  __Pyx_INCREF(__pyx_v_phi);
22000  __Pyx_GIVEREF(__pyx_v_phi);
22001  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_v_phi);
22002  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 809, __pyx_L1_error)
22003  __Pyx_GOTREF(__pyx_t_5);
22004  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
22005  }
22006  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22007 
22008  /* "mprans/BoundaryConditions.py":808
22009  * (rhoUp - rhoDown) *
22010  * (smoothedHeaviside_integral(smoothing, phi_top)
22011  * - # <<<<<<<<<<<<<<
22012  * smoothedHeaviside_integral(smoothing, phi)))
22013  *
22014  */
22015  __pyx_t_8 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 808, __pyx_L1_error)
22016  __Pyx_GOTREF(__pyx_t_8);
22017  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22018  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22019 
22020  /* "mprans/BoundaryConditions.py":806
22021  * phi = x[vert_axis] - seaLevel
22022  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) +
22023  * (rhoUp - rhoDown) * # <<<<<<<<<<<<<<
22024  * (smoothedHeaviside_integral(smoothing, phi_top)
22025  * -
22026  */
22027  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 806, __pyx_L1_error)
22028  __Pyx_GOTREF(__pyx_t_5);
22029  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22030  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22031 
22032  /* "mprans/BoundaryConditions.py":805
22033  * phi_top = refLevel - seaLevel
22034  * phi = x[vert_axis] - seaLevel
22035  * return p_top - g[vert_axis] * (rhoDown * (phi_top - phi) + # <<<<<<<<<<<<<<
22036  * (rhoUp - rhoDown) *
22037  * (smoothedHeaviside_integral(smoothing, phi_top)
22038  */
22039  __pyx_t_8 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 805, __pyx_L1_error)
22040  __Pyx_GOTREF(__pyx_t_8);
22041  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22042  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22043  __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 805, __pyx_L1_error)
22044  __Pyx_GOTREF(__pyx_t_5);
22045  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22046  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22047  __pyx_t_8 = PyNumber_Subtract(__pyx_v_p_top, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 805, __pyx_L1_error)
22048  __Pyx_GOTREF(__pyx_t_8);
22049  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22050  __pyx_r = __pyx_t_8;
22051  __pyx_t_8 = 0;
22052  goto __pyx_L0;
22053 
22054  /* "mprans/BoundaryConditions.py":801
22055  * vert_axis = self.nd - 1
22056  *
22057  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None): # <<<<<<<<<<<<<<
22058  * p_top = pRef
22059  * phi_top = refLevel - seaLevel
22060  */
22061 
22062  /* function exit code */
22063  __pyx_L1_error:;
22064  __Pyx_XDECREF(__pyx_t_1);
22065  __Pyx_XDECREF(__pyx_t_2);
22066  __Pyx_XDECREF(__pyx_t_3);
22067  __Pyx_XDECREF(__pyx_t_4);
22068  __Pyx_XDECREF(__pyx_t_5);
22069  __Pyx_XDECREF(__pyx_t_6);
22070  __Pyx_XDECREF(__pyx_t_8);
22071  __Pyx_XDECREF(__pyx_t_9);
22072  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_p_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22073  __pyx_r = NULL;
22074  __pyx_L0:;
22075  __Pyx_XDECREF(__pyx_v_p_top);
22076  __Pyx_XDECREF(__pyx_v_phi_top);
22077  __Pyx_XDECREF(__pyx_v_phi);
22078  __Pyx_XGIVEREF(__pyx_r);
22079  __Pyx_TraceReturn(__pyx_r, 0);
22080  __Pyx_RefNannyFinishContext();
22081  return __pyx_r;
22082 }
22083 
22084 /* "mprans/BoundaryConditions.py":811
22085  * smoothedHeaviside_integral(smoothing, phi)))
22086  *
22087  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22088  * phi = x[vert_axis] - seaLevel
22089  * return phi
22090  */
22091 
22092 /* Python wrapper */
22093 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_3hydrostaticPressureOutletWithDepth_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22094 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_3hydrostaticPressureOutletWithDepth_phi_dirichlet = {"hydrostaticPressureOutletWithDepth_phi_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_3hydrostaticPressureOutletWithDepth_phi_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
22095 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_3hydrostaticPressureOutletWithDepth_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22096  PyObject *__pyx_v_x = 0;
22097  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
22098  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
22099  int __pyx_lineno = 0;
22100  const char *__pyx_filename = NULL;
22101  int __pyx_clineno = 0;
22102  PyObject *__pyx_r = 0;
22103  __Pyx_RefNannyDeclarations
22104  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_phi_dirichlet (wrapper)", 0);
22105  {
22106  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
22107  PyObject* values[3] = {0,0,0};
22108  values[2] = ((PyObject *)((PyObject *)Py_None));
22109  if (unlikely(__pyx_kwds)) {
22110  Py_ssize_t kw_args;
22111  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22112  switch (pos_args) {
22113  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22114  CYTHON_FALLTHROUGH;
22115  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22116  CYTHON_FALLTHROUGH;
22117  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22118  CYTHON_FALLTHROUGH;
22119  case 0: break;
22120  default: goto __pyx_L5_argtuple_error;
22121  }
22122  kw_args = PyDict_Size(__pyx_kwds);
22123  switch (pos_args) {
22124  case 0:
22125  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
22126  else goto __pyx_L5_argtuple_error;
22127  CYTHON_FALLTHROUGH;
22128  case 1:
22129  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
22130  else {
22131  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_phi_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 811, __pyx_L3_error)
22132  }
22133  CYTHON_FALLTHROUGH;
22134  case 2:
22135  if (kw_args > 0) {
22136  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
22137  if (value) { values[2] = value; kw_args--; }
22138  }
22139  }
22140  if (unlikely(kw_args > 0)) {
22141  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hydrostaticPressureOutletWithDepth_phi_dirichlet") < 0)) __PYX_ERR(0, 811, __pyx_L3_error)
22142  }
22143  } else {
22144  switch (PyTuple_GET_SIZE(__pyx_args)) {
22145  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22146  CYTHON_FALLTHROUGH;
22147  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22148  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22149  break;
22150  default: goto __pyx_L5_argtuple_error;
22151  }
22152  }
22153  __pyx_v_x = values[0];
22154  __pyx_v_t = values[1];
22155  __pyx_v_n = values[2];
22156  }
22157  goto __pyx_L4_argument_unpacking_done;
22158  __pyx_L5_argtuple_error:;
22159  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_phi_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 811, __pyx_L3_error)
22160  __pyx_L3_error:;
22161  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_phi_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22162  __Pyx_RefNannyFinishContext();
22163  return NULL;
22164  __pyx_L4_argument_unpacking_done:;
22165  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_2hydrostaticPressureOutletWithDepth_phi_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
22166 
22167  /* function exit code */
22168  __Pyx_RefNannyFinishContext();
22169  return __pyx_r;
22170 }
22171 
22172 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_2hydrostaticPressureOutletWithDepth_phi_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
22173  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
22174  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
22175  PyObject *__pyx_v_phi = NULL;
22176  PyObject *__pyx_r = NULL;
22177  __Pyx_TraceDeclarations
22178  __Pyx_RefNannyDeclarations
22179  PyObject *__pyx_t_1 = NULL;
22180  PyObject *__pyx_t_2 = NULL;
22181  int __pyx_lineno = 0;
22182  const char *__pyx_filename = NULL;
22183  int __pyx_clineno = 0;
22184  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_phi_dirichlet", 0);
22185  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
22186  __pyx_cur_scope = __pyx_outer_scope;
22187  __Pyx_TraceCall("hydrostaticPressureOutletWithDepth_phi_dirichlet", __pyx_f[0], 811, 0, __PYX_ERR(0, 811, __pyx_L1_error));
22188 
22189  /* "mprans/BoundaryConditions.py":812
22190  *
22191  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None):
22192  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
22193  * return phi
22194  *
22195  */
22196  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 812, __pyx_L1_error) }
22197  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L1_error)
22198  __Pyx_GOTREF(__pyx_t_1);
22199  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 812, __pyx_L1_error) }
22200  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L1_error)
22201  __Pyx_GOTREF(__pyx_t_2);
22202  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22203  __pyx_v_phi = __pyx_t_2;
22204  __pyx_t_2 = 0;
22205 
22206  /* "mprans/BoundaryConditions.py":813
22207  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None):
22208  * phi = x[vert_axis] - seaLevel
22209  * return phi # <<<<<<<<<<<<<<
22210  *
22211  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None):
22212  */
22213  __Pyx_XDECREF(__pyx_r);
22214  __Pyx_INCREF(__pyx_v_phi);
22215  __pyx_r = __pyx_v_phi;
22216  goto __pyx_L0;
22217 
22218  /* "mprans/BoundaryConditions.py":811
22219  * smoothedHeaviside_integral(smoothing, phi)))
22220  *
22221  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22222  * phi = x[vert_axis] - seaLevel
22223  * return phi
22224  */
22225 
22226  /* function exit code */
22227  __pyx_L1_error:;
22228  __Pyx_XDECREF(__pyx_t_1);
22229  __Pyx_XDECREF(__pyx_t_2);
22230  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_phi_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22231  __pyx_r = NULL;
22232  __pyx_L0:;
22233  __Pyx_XDECREF(__pyx_v_phi);
22234  __Pyx_XGIVEREF(__pyx_r);
22235  __Pyx_TraceReturn(__pyx_r, 0);
22236  __Pyx_RefNannyFinishContext();
22237  return __pyx_r;
22238 }
22239 
22240 /* "mprans/BoundaryConditions.py":815
22241  * return phi
22242  *
22243  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22244  * phi = x[vert_axis] - seaLevel
22245  * if phi >= smoothing:
22246  */
22247 
22248 /* Python wrapper */
22249 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_5hydrostaticPressureOutletWithDepth_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22250 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_5hydrostaticPressureOutletWithDepth_vof_dirichlet = {"hydrostaticPressureOutletWithDepth_vof_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_5hydrostaticPressureOutletWithDepth_vof_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
22251 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_5hydrostaticPressureOutletWithDepth_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22252  PyObject *__pyx_v_x = 0;
22253  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
22254  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
22255  int __pyx_lineno = 0;
22256  const char *__pyx_filename = NULL;
22257  int __pyx_clineno = 0;
22258  PyObject *__pyx_r = 0;
22259  __Pyx_RefNannyDeclarations
22260  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_vof_dirichlet (wrapper)", 0);
22261  {
22262  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
22263  PyObject* values[3] = {0,0,0};
22264  values[2] = ((PyObject *)((PyObject *)Py_None));
22265  if (unlikely(__pyx_kwds)) {
22266  Py_ssize_t kw_args;
22267  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22268  switch (pos_args) {
22269  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22270  CYTHON_FALLTHROUGH;
22271  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22272  CYTHON_FALLTHROUGH;
22273  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22274  CYTHON_FALLTHROUGH;
22275  case 0: break;
22276  default: goto __pyx_L5_argtuple_error;
22277  }
22278  kw_args = PyDict_Size(__pyx_kwds);
22279  switch (pos_args) {
22280  case 0:
22281  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
22282  else goto __pyx_L5_argtuple_error;
22283  CYTHON_FALLTHROUGH;
22284  case 1:
22285  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
22286  else {
22287  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_vof_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 815, __pyx_L3_error)
22288  }
22289  CYTHON_FALLTHROUGH;
22290  case 2:
22291  if (kw_args > 0) {
22292  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
22293  if (value) { values[2] = value; kw_args--; }
22294  }
22295  }
22296  if (unlikely(kw_args > 0)) {
22297  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hydrostaticPressureOutletWithDepth_vof_dirichlet") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
22298  }
22299  } else {
22300  switch (PyTuple_GET_SIZE(__pyx_args)) {
22301  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22302  CYTHON_FALLTHROUGH;
22303  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22304  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22305  break;
22306  default: goto __pyx_L5_argtuple_error;
22307  }
22308  }
22309  __pyx_v_x = values[0];
22310  __pyx_v_t = values[1];
22311  __pyx_v_n = values[2];
22312  }
22313  goto __pyx_L4_argument_unpacking_done;
22314  __pyx_L5_argtuple_error:;
22315  __Pyx_RaiseArgtupleInvalid("hydrostaticPressureOutletWithDepth_vof_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
22316  __pyx_L3_error:;
22317  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_vof_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22318  __Pyx_RefNannyFinishContext();
22319  return NULL;
22320  __pyx_L4_argument_unpacking_done:;
22321  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_4hydrostaticPressureOutletWithDepth_vof_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
22322 
22323  /* function exit code */
22324  __Pyx_RefNannyFinishContext();
22325  return __pyx_r;
22326 }
22327 
22328 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_4hydrostaticPressureOutletWithDepth_vof_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
22329  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
22330  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
22331  PyObject *__pyx_v_phi = NULL;
22332  PyObject *__pyx_v_H = NULL;
22333  PyObject *__pyx_r = NULL;
22334  __Pyx_TraceDeclarations
22335  __Pyx_RefNannyDeclarations
22336  PyObject *__pyx_t_1 = NULL;
22337  PyObject *__pyx_t_2 = NULL;
22338  int __pyx_t_3;
22339  int __pyx_t_4;
22340  PyObject *__pyx_t_5 = NULL;
22341  int __pyx_t_6;
22342  PyObject *__pyx_t_7 = NULL;
22343  int __pyx_lineno = 0;
22344  const char *__pyx_filename = NULL;
22345  int __pyx_clineno = 0;
22346  __Pyx_RefNannySetupContext("hydrostaticPressureOutletWithDepth_vof_dirichlet", 0);
22347  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
22348  __pyx_cur_scope = __pyx_outer_scope;
22349  __Pyx_TraceCall("hydrostaticPressureOutletWithDepth_vof_dirichlet", __pyx_f[0], 815, 0, __PYX_ERR(0, 815, __pyx_L1_error));
22350 
22351  /* "mprans/BoundaryConditions.py":816
22352  *
22353  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None):
22354  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
22355  * if phi >= smoothing:
22356  * H = 1.
22357  */
22358  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 816, __pyx_L1_error) }
22359  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error)
22360  __Pyx_GOTREF(__pyx_t_1);
22361  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 816, __pyx_L1_error) }
22362  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
22363  __Pyx_GOTREF(__pyx_t_2);
22364  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22365  __pyx_v_phi = __pyx_t_2;
22366  __pyx_t_2 = 0;
22367 
22368  /* "mprans/BoundaryConditions.py":817
22369  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None):
22370  * phi = x[vert_axis] - seaLevel
22371  * if phi >= smoothing: # <<<<<<<<<<<<<<
22372  * H = 1.
22373  * elif smoothing > 0 and -smoothing < phi < smoothing:
22374  */
22375  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 817, __pyx_L1_error) }
22376  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
22377  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
22378  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22379  if (__pyx_t_3) {
22380 
22381  /* "mprans/BoundaryConditions.py":818
22382  * phi = x[vert_axis] - seaLevel
22383  * if phi >= smoothing:
22384  * H = 1. # <<<<<<<<<<<<<<
22385  * elif smoothing > 0 and -smoothing < phi < smoothing:
22386  * H = smoothedHeaviside(smoothing, phi)
22387  */
22388  __Pyx_INCREF(__pyx_float_1_);
22389  __pyx_v_H = __pyx_float_1_;
22390 
22391  /* "mprans/BoundaryConditions.py":817
22392  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None):
22393  * phi = x[vert_axis] - seaLevel
22394  * if phi >= smoothing: # <<<<<<<<<<<<<<
22395  * H = 1.
22396  * elif smoothing > 0 and -smoothing < phi < smoothing:
22397  */
22398  goto __pyx_L3;
22399  }
22400 
22401  /* "mprans/BoundaryConditions.py":819
22402  * if phi >= smoothing:
22403  * H = 1.
22404  * elif smoothing > 0 and -smoothing < phi < smoothing: # <<<<<<<<<<<<<<
22405  * H = smoothedHeaviside(smoothing, phi)
22406  * elif phi <= -smoothing:
22407  */
22408  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 819, __pyx_L1_error) }
22409  __pyx_t_2 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_smoothing, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 819, __pyx_L1_error)
22410  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 819, __pyx_L1_error)
22411  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22412  if (__pyx_t_4) {
22413  } else {
22414  __pyx_t_3 = __pyx_t_4;
22415  goto __pyx_L4_bool_binop_done;
22416  }
22417  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 819, __pyx_L1_error) }
22418  __pyx_t_2 = PyNumber_Negative(__pyx_cur_scope->__pyx_v_smoothing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 819, __pyx_L1_error)
22419  __Pyx_GOTREF(__pyx_t_2);
22420  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 819, __pyx_L1_error)
22421  if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
22422  __Pyx_DECREF(__pyx_t_1);
22423  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 819, __pyx_L1_error) }
22424  __pyx_t_1 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 819, __pyx_L1_error)
22425  }
22426  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22427  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 819, __pyx_L1_error)
22428  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22429  __pyx_t_3 = __pyx_t_4;
22430  __pyx_L4_bool_binop_done:;
22431  if (__pyx_t_3) {
22432 
22433  /* "mprans/BoundaryConditions.py":820
22434  * H = 1.
22435  * elif smoothing > 0 and -smoothing < phi < smoothing:
22436  * H = smoothedHeaviside(smoothing, phi) # <<<<<<<<<<<<<<
22437  * elif phi <= -smoothing:
22438  * H = 0.
22439  */
22440  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 820, __pyx_L1_error)
22441  __Pyx_GOTREF(__pyx_t_2);
22442  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 820, __pyx_L1_error) }
22443  __pyx_t_5 = NULL;
22444  __pyx_t_6 = 0;
22445  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
22446  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
22447  if (likely(__pyx_t_5)) {
22448  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22449  __Pyx_INCREF(__pyx_t_5);
22450  __Pyx_INCREF(function);
22451  __Pyx_DECREF_SET(__pyx_t_2, function);
22452  __pyx_t_6 = 1;
22453  }
22454  }
22455  #if CYTHON_FAST_PYCALL
22456  if (PyFunction_Check(__pyx_t_2)) {
22457  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
22458  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L1_error)
22459  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
22460  __Pyx_GOTREF(__pyx_t_1);
22461  } else
22462  #endif
22463  #if CYTHON_FAST_PYCCALL
22464  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
22465  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_smoothing, __pyx_v_phi};
22466  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L1_error)
22467  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
22468  __Pyx_GOTREF(__pyx_t_1);
22469  } else
22470  #endif
22471  {
22472  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 820, __pyx_L1_error)
22473  __Pyx_GOTREF(__pyx_t_7);
22474  if (__pyx_t_5) {
22475  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
22476  }
22477  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
22478  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
22479  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing);
22480  __Pyx_INCREF(__pyx_v_phi);
22481  __Pyx_GIVEREF(__pyx_v_phi);
22482  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_phi);
22483  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L1_error)
22484  __Pyx_GOTREF(__pyx_t_1);
22485  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
22486  }
22487  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22488  __pyx_v_H = __pyx_t_1;
22489  __pyx_t_1 = 0;
22490 
22491  /* "mprans/BoundaryConditions.py":819
22492  * if phi >= smoothing:
22493  * H = 1.
22494  * elif smoothing > 0 and -smoothing < phi < smoothing: # <<<<<<<<<<<<<<
22495  * H = smoothedHeaviside(smoothing, phi)
22496  * elif phi <= -smoothing:
22497  */
22498  goto __pyx_L3;
22499  }
22500 
22501  /* "mprans/BoundaryConditions.py":821
22502  * elif smoothing > 0 and -smoothing < phi < smoothing:
22503  * H = smoothedHeaviside(smoothing, phi)
22504  * elif phi <= -smoothing: # <<<<<<<<<<<<<<
22505  * H = 0.
22506  * return H * air + (1 - H) * water
22507  */
22508  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 821, __pyx_L1_error) }
22509  __pyx_t_1 = PyNumber_Negative(__pyx_cur_scope->__pyx_v_smoothing); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 821, __pyx_L1_error)
22510  __Pyx_GOTREF(__pyx_t_1);
22511  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 821, __pyx_L1_error)
22512  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22513  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
22514  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22515  if (__pyx_t_3) {
22516 
22517  /* "mprans/BoundaryConditions.py":822
22518  * H = smoothedHeaviside(smoothing, phi)
22519  * elif phi <= -smoothing:
22520  * H = 0. # <<<<<<<<<<<<<<
22521  * return H * air + (1 - H) * water
22522  *
22523  */
22524  __Pyx_INCREF(__pyx_float_0_);
22525  __pyx_v_H = __pyx_float_0_;
22526 
22527  /* "mprans/BoundaryConditions.py":821
22528  * elif smoothing > 0 and -smoothing < phi < smoothing:
22529  * H = smoothedHeaviside(smoothing, phi)
22530  * elif phi <= -smoothing: # <<<<<<<<<<<<<<
22531  * H = 0.
22532  * return H * air + (1 - H) * water
22533  */
22534  }
22535  __pyx_L3:;
22536 
22537  /* "mprans/BoundaryConditions.py":823
22538  * elif phi <= -smoothing:
22539  * H = 0.
22540  * return H * air + (1 - H) * water # <<<<<<<<<<<<<<
22541  *
22542  * def inlet_k_dirichlet(x, t, n=None):
22543  */
22544  __Pyx_XDECREF(__pyx_r);
22545  if (unlikely(!__pyx_v_H)) { __Pyx_RaiseUnboundLocalError("H"); __PYX_ERR(0, 823, __pyx_L1_error) }
22546  if (unlikely(!__pyx_cur_scope->__pyx_v_air)) { __Pyx_RaiseClosureNameError("air"); __PYX_ERR(0, 823, __pyx_L1_error) }
22547  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_air); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
22548  __Pyx_GOTREF(__pyx_t_2);
22549  if (unlikely(!__pyx_v_H)) { __Pyx_RaiseUnboundLocalError("H"); __PYX_ERR(0, 823, __pyx_L1_error) }
22550  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error)
22551  __Pyx_GOTREF(__pyx_t_1);
22552  if (unlikely(!__pyx_cur_scope->__pyx_v_water)) { __Pyx_RaiseClosureNameError("water"); __PYX_ERR(0, 823, __pyx_L1_error) }
22553  __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_water); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 823, __pyx_L1_error)
22554  __Pyx_GOTREF(__pyx_t_7);
22555  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22556  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error)
22557  __Pyx_GOTREF(__pyx_t_1);
22558  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22559  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
22560  __pyx_r = __pyx_t_1;
22561  __pyx_t_1 = 0;
22562  goto __pyx_L0;
22563 
22564  /* "mprans/BoundaryConditions.py":815
22565  * return phi
22566  *
22567  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22568  * phi = x[vert_axis] - seaLevel
22569  * if phi >= smoothing:
22570  */
22571 
22572  /* function exit code */
22573  __pyx_L1_error:;
22574  __Pyx_XDECREF(__pyx_t_1);
22575  __Pyx_XDECREF(__pyx_t_2);
22576  __Pyx_XDECREF(__pyx_t_5);
22577  __Pyx_XDECREF(__pyx_t_7);
22578  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.hydrostaticPressureOutletWithDepth_vof_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22579  __pyx_r = NULL;
22580  __pyx_L0:;
22581  __Pyx_XDECREF(__pyx_v_phi);
22582  __Pyx_XDECREF(__pyx_v_H);
22583  __Pyx_XGIVEREF(__pyx_r);
22584  __Pyx_TraceReturn(__pyx_r, 0);
22585  __Pyx_RefNannyFinishContext();
22586  return __pyx_r;
22587 }
22588 
22589 /* "mprans/BoundaryConditions.py":825
22590  * return H * air + (1 - H) * water
22591  *
22592  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22593  * phi = x[vert_axis] - seaLevel
22594  * if phi <= 0.:
22595  */
22596 
22597 /* Python wrapper */
22598 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_7inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22599 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_7inlet_k_dirichlet = {"inlet_k_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_7inlet_k_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
22600 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_7inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22601  PyObject *__pyx_v_x = 0;
22602  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
22603  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
22604  int __pyx_lineno = 0;
22605  const char *__pyx_filename = NULL;
22606  int __pyx_clineno = 0;
22607  PyObject *__pyx_r = 0;
22608  __Pyx_RefNannyDeclarations
22609  __Pyx_RefNannySetupContext("inlet_k_dirichlet (wrapper)", 0);
22610  {
22611  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
22612  PyObject* values[3] = {0,0,0};
22613  values[2] = ((PyObject *)((PyObject *)Py_None));
22614  if (unlikely(__pyx_kwds)) {
22615  Py_ssize_t kw_args;
22616  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22617  switch (pos_args) {
22618  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22619  CYTHON_FALLTHROUGH;
22620  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22621  CYTHON_FALLTHROUGH;
22622  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22623  CYTHON_FALLTHROUGH;
22624  case 0: break;
22625  default: goto __pyx_L5_argtuple_error;
22626  }
22627  kw_args = PyDict_Size(__pyx_kwds);
22628  switch (pos_args) {
22629  case 0:
22630  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
22631  else goto __pyx_L5_argtuple_error;
22632  CYTHON_FALLTHROUGH;
22633  case 1:
22634  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
22635  else {
22636  __Pyx_RaiseArgtupleInvalid("inlet_k_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 825, __pyx_L3_error)
22637  }
22638  CYTHON_FALLTHROUGH;
22639  case 2:
22640  if (kw_args > 0) {
22641  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
22642  if (value) { values[2] = value; kw_args--; }
22643  }
22644  }
22645  if (unlikely(kw_args > 0)) {
22646  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_k_dirichlet") < 0)) __PYX_ERR(0, 825, __pyx_L3_error)
22647  }
22648  } else {
22649  switch (PyTuple_GET_SIZE(__pyx_args)) {
22650  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22651  CYTHON_FALLTHROUGH;
22652  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22653  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22654  break;
22655  default: goto __pyx_L5_argtuple_error;
22656  }
22657  }
22658  __pyx_v_x = values[0];
22659  __pyx_v_t = values[1];
22660  __pyx_v_n = values[2];
22661  }
22662  goto __pyx_L4_argument_unpacking_done;
22663  __pyx_L5_argtuple_error:;
22664  __Pyx_RaiseArgtupleInvalid("inlet_k_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 825, __pyx_L3_error)
22665  __pyx_L3_error:;
22666  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.inlet_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22667  __Pyx_RefNannyFinishContext();
22668  return NULL;
22669  __pyx_L4_argument_unpacking_done:;
22670  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_6inlet_k_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
22671 
22672  /* function exit code */
22673  __Pyx_RefNannyFinishContext();
22674  return __pyx_r;
22675 }
22676 
22677 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_6inlet_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
22678  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
22679  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
22680  PyObject *__pyx_v_phi = NULL;
22681  PyObject *__pyx_v_H = NULL;
22682  PyObject *__pyx_r = NULL;
22683  __Pyx_TraceDeclarations
22684  __Pyx_RefNannyDeclarations
22685  PyObject *__pyx_t_1 = NULL;
22686  PyObject *__pyx_t_2 = NULL;
22687  int __pyx_t_3;
22688  PyObject *__pyx_t_4 = NULL;
22689  PyObject *__pyx_t_5 = NULL;
22690  PyObject *__pyx_t_6 = NULL;
22691  int __pyx_t_7;
22692  PyObject *__pyx_t_8 = NULL;
22693  PyObject *__pyx_t_9 = NULL;
22694  int __pyx_lineno = 0;
22695  const char *__pyx_filename = NULL;
22696  int __pyx_clineno = 0;
22697  __Pyx_RefNannySetupContext("inlet_k_dirichlet", 0);
22698  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
22699  __pyx_cur_scope = __pyx_outer_scope;
22700  __Pyx_TraceCall("inlet_k_dirichlet", __pyx_f[0], 825, 0, __PYX_ERR(0, 825, __pyx_L1_error));
22701 
22702  /* "mprans/BoundaryConditions.py":826
22703  *
22704  * def inlet_k_dirichlet(x, t, n=None):
22705  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
22706  * if phi <= 0.:
22707  * H = 0.0
22708  */
22709  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 826, __pyx_L1_error) }
22710  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L1_error)
22711  __Pyx_GOTREF(__pyx_t_1);
22712  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 826, __pyx_L1_error) }
22713  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 826, __pyx_L1_error)
22714  __Pyx_GOTREF(__pyx_t_2);
22715  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22716  __pyx_v_phi = __pyx_t_2;
22717  __pyx_t_2 = 0;
22718 
22719  /* "mprans/BoundaryConditions.py":827
22720  * def inlet_k_dirichlet(x, t, n=None):
22721  * phi = x[vert_axis] - seaLevel
22722  * if phi <= 0.: # <<<<<<<<<<<<<<
22723  * H = 0.0
22724  * elif 0 < phi <= smoothing:
22725  */
22726  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 827, __pyx_L1_error)
22727  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 827, __pyx_L1_error)
22728  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22729  if (__pyx_t_3) {
22730 
22731  /* "mprans/BoundaryConditions.py":828
22732  * phi = x[vert_axis] - seaLevel
22733  * if phi <= 0.:
22734  * H = 0.0 # <<<<<<<<<<<<<<
22735  * elif 0 < phi <= smoothing:
22736  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
22737  */
22738  __Pyx_INCREF(__pyx_float_0_0);
22739  __pyx_v_H = __pyx_float_0_0;
22740 
22741  /* "mprans/BoundaryConditions.py":827
22742  * def inlet_k_dirichlet(x, t, n=None):
22743  * phi = x[vert_axis] - seaLevel
22744  * if phi <= 0.: # <<<<<<<<<<<<<<
22745  * H = 0.0
22746  * elif 0 < phi <= smoothing:
22747  */
22748  goto __pyx_L3;
22749  }
22750 
22751  /* "mprans/BoundaryConditions.py":829
22752  * if phi <= 0.:
22753  * H = 0.0
22754  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
22755  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
22756  * else:
22757  */
22758  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error)
22759  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
22760  __Pyx_DECREF(__pyx_t_2);
22761  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 829, __pyx_L1_error) }
22762  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error)
22763  }
22764  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 829, __pyx_L1_error)
22765  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22766  if (__pyx_t_3) {
22767 
22768  /* "mprans/BoundaryConditions.py":830
22769  * H = 0.0
22770  * elif 0 < phi <= smoothing:
22771  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
22772  * else:
22773  * H = 1.0
22774  */
22775  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L1_error)
22776  __Pyx_GOTREF(__pyx_t_1);
22777  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
22778  __Pyx_GOTREF(__pyx_t_5);
22779  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 830, __pyx_L1_error) }
22780  __pyx_t_6 = NULL;
22781  __pyx_t_7 = 0;
22782  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
22783  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
22784  if (likely(__pyx_t_6)) {
22785  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
22786  __Pyx_INCREF(__pyx_t_6);
22787  __Pyx_INCREF(function);
22788  __Pyx_DECREF_SET(__pyx_t_5, function);
22789  __pyx_t_7 = 1;
22790  }
22791  }
22792  #if CYTHON_FAST_PYCALL
22793  if (PyFunction_Check(__pyx_t_5)) {
22794  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
22795  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
22796  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22797  __Pyx_GOTREF(__pyx_t_4);
22798  } else
22799  #endif
22800  #if CYTHON_FAST_PYCCALL
22801  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
22802  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
22803  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
22804  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22805  __Pyx_GOTREF(__pyx_t_4);
22806  } else
22807  #endif
22808  {
22809  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
22810  __Pyx_GOTREF(__pyx_t_8);
22811  if (__pyx_t_6) {
22812  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
22813  }
22814  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
22815  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
22816  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
22817  __Pyx_INCREF(__pyx_float_2_);
22818  __Pyx_GIVEREF(__pyx_float_2_);
22819  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_float_2_);
22820  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
22821  __Pyx_GOTREF(__pyx_t_4);
22822  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22823  }
22824  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22825  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_old_div); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
22826  __Pyx_GOTREF(__pyx_t_8);
22827  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 830, __pyx_L1_error) }
22828  __pyx_t_6 = NULL;
22829  __pyx_t_7 = 0;
22830  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
22831  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
22832  if (likely(__pyx_t_6)) {
22833  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
22834  __Pyx_INCREF(__pyx_t_6);
22835  __Pyx_INCREF(function);
22836  __Pyx_DECREF_SET(__pyx_t_8, function);
22837  __pyx_t_7 = 1;
22838  }
22839  }
22840  #if CYTHON_FAST_PYCALL
22841  if (PyFunction_Check(__pyx_t_8)) {
22842  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
22843  __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
22844  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22845  __Pyx_GOTREF(__pyx_t_5);
22846  } else
22847  #endif
22848  #if CYTHON_FAST_PYCCALL
22849  if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
22850  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
22851  __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
22852  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22853  __Pyx_GOTREF(__pyx_t_5);
22854  } else
22855  #endif
22856  {
22857  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 830, __pyx_L1_error)
22858  __Pyx_GOTREF(__pyx_t_9);
22859  if (__pyx_t_6) {
22860  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
22861  }
22862  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
22863  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
22864  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
22865  __Pyx_INCREF(__pyx_float_2_);
22866  __Pyx_GIVEREF(__pyx_float_2_);
22867  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_float_2_);
22868  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
22869  __Pyx_GOTREF(__pyx_t_5);
22870  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
22871  }
22872  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22873  __pyx_t_8 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
22874  __Pyx_GOTREF(__pyx_t_8);
22875  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22876  __pyx_t_5 = NULL;
22877  __pyx_t_7 = 0;
22878  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
22879  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
22880  if (likely(__pyx_t_5)) {
22881  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
22882  __Pyx_INCREF(__pyx_t_5);
22883  __Pyx_INCREF(function);
22884  __Pyx_DECREF_SET(__pyx_t_1, function);
22885  __pyx_t_7 = 1;
22886  }
22887  }
22888  #if CYTHON_FAST_PYCALL
22889  if (PyFunction_Check(__pyx_t_1)) {
22890  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
22891  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
22892  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
22893  __Pyx_GOTREF(__pyx_t_2);
22894  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22895  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22896  } else
22897  #endif
22898  #if CYTHON_FAST_PYCCALL
22899  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
22900  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
22901  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
22902  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
22903  __Pyx_GOTREF(__pyx_t_2);
22904  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22905  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
22906  } else
22907  #endif
22908  {
22909  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 830, __pyx_L1_error)
22910  __Pyx_GOTREF(__pyx_t_9);
22911  if (__pyx_t_5) {
22912  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL;
22913  }
22914  __Pyx_GIVEREF(__pyx_t_4);
22915  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_t_4);
22916  __Pyx_GIVEREF(__pyx_t_8);
22917  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_t_8);
22918  __pyx_t_4 = 0;
22919  __pyx_t_8 = 0;
22920  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
22921  __Pyx_GOTREF(__pyx_t_2);
22922  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
22923  }
22924  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22925  __pyx_v_H = __pyx_t_2;
22926  __pyx_t_2 = 0;
22927 
22928  /* "mprans/BoundaryConditions.py":829
22929  * if phi <= 0.:
22930  * H = 0.0
22931  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
22932  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
22933  * else:
22934  */
22935  goto __pyx_L3;
22936  }
22937 
22938  /* "mprans/BoundaryConditions.py":832
22939  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
22940  * else:
22941  * H = 1.0 # <<<<<<<<<<<<<<
22942  * return H * kInflowAir + (1 - H) * kInflow
22943  *
22944  */
22945  /*else*/ {
22946  __Pyx_INCREF(__pyx_float_1_0);
22947  __pyx_v_H = __pyx_float_1_0;
22948  }
22949  __pyx_L3:;
22950 
22951  /* "mprans/BoundaryConditions.py":833
22952  * else:
22953  * H = 1.0
22954  * return H * kInflowAir + (1 - H) * kInflow # <<<<<<<<<<<<<<
22955  *
22956  * def inlet_dissipation_dirichlet(x, t, n=None):
22957  */
22958  __Pyx_XDECREF(__pyx_r);
22959  if (unlikely(!__pyx_cur_scope->__pyx_v_kInflowAir)) { __Pyx_RaiseClosureNameError("kInflowAir"); __PYX_ERR(0, 833, __pyx_L1_error) }
22960  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_kInflowAir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
22961  __Pyx_GOTREF(__pyx_t_2);
22962  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error)
22963  __Pyx_GOTREF(__pyx_t_1);
22964  if (unlikely(!__pyx_cur_scope->__pyx_v_kInflow)) { __Pyx_RaiseClosureNameError("kInflow"); __PYX_ERR(0, 833, __pyx_L1_error) }
22965  __pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_kInflow); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 833, __pyx_L1_error)
22966  __Pyx_GOTREF(__pyx_t_9);
22967  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22968  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error)
22969  __Pyx_GOTREF(__pyx_t_1);
22970  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22971  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
22972  __pyx_r = __pyx_t_1;
22973  __pyx_t_1 = 0;
22974  goto __pyx_L0;
22975 
22976  /* "mprans/BoundaryConditions.py":825
22977  * return H * air + (1 - H) * water
22978  *
22979  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
22980  * phi = x[vert_axis] - seaLevel
22981  * if phi <= 0.:
22982  */
22983 
22984  /* function exit code */
22985  __pyx_L1_error:;
22986  __Pyx_XDECREF(__pyx_t_1);
22987  __Pyx_XDECREF(__pyx_t_2);
22988  __Pyx_XDECREF(__pyx_t_4);
22989  __Pyx_XDECREF(__pyx_t_5);
22990  __Pyx_XDECREF(__pyx_t_6);
22991  __Pyx_XDECREF(__pyx_t_8);
22992  __Pyx_XDECREF(__pyx_t_9);
22993  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.inlet_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
22994  __pyx_r = NULL;
22995  __pyx_L0:;
22996  __Pyx_XDECREF(__pyx_v_phi);
22997  __Pyx_XDECREF(__pyx_v_H);
22998  __Pyx_XGIVEREF(__pyx_r);
22999  __Pyx_TraceReturn(__pyx_r, 0);
23000  __Pyx_RefNannyFinishContext();
23001  return __pyx_r;
23002 }
23003 
23004 /* "mprans/BoundaryConditions.py":835
23005  * return H * kInflowAir + (1 - H) * kInflow
23006  *
23007  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
23008  * phi = x[vert_axis] - seaLevel
23009  * if phi <= 0.:
23010  */
23011 
23012 /* Python wrapper */
23013 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_9inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23014 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_9inlet_dissipation_dirichlet = {"inlet_dissipation_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_9inlet_dissipation_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
23015 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_9inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23016  PyObject *__pyx_v_x = 0;
23017  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
23018  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
23019  int __pyx_lineno = 0;
23020  const char *__pyx_filename = NULL;
23021  int __pyx_clineno = 0;
23022  PyObject *__pyx_r = 0;
23023  __Pyx_RefNannyDeclarations
23024  __Pyx_RefNannySetupContext("inlet_dissipation_dirichlet (wrapper)", 0);
23025  {
23026  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
23027  PyObject* values[3] = {0,0,0};
23028  values[2] = ((PyObject *)((PyObject *)Py_None));
23029  if (unlikely(__pyx_kwds)) {
23030  Py_ssize_t kw_args;
23031  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23032  switch (pos_args) {
23033  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23034  CYTHON_FALLTHROUGH;
23035  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23036  CYTHON_FALLTHROUGH;
23037  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23038  CYTHON_FALLTHROUGH;
23039  case 0: break;
23040  default: goto __pyx_L5_argtuple_error;
23041  }
23042  kw_args = PyDict_Size(__pyx_kwds);
23043  switch (pos_args) {
23044  case 0:
23045  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
23046  else goto __pyx_L5_argtuple_error;
23047  CYTHON_FALLTHROUGH;
23048  case 1:
23049  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
23050  else {
23051  __Pyx_RaiseArgtupleInvalid("inlet_dissipation_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 835, __pyx_L3_error)
23052  }
23053  CYTHON_FALLTHROUGH;
23054  case 2:
23055  if (kw_args > 0) {
23056  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
23057  if (value) { values[2] = value; kw_args--; }
23058  }
23059  }
23060  if (unlikely(kw_args > 0)) {
23061  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inlet_dissipation_dirichlet") < 0)) __PYX_ERR(0, 835, __pyx_L3_error)
23062  }
23063  } else {
23064  switch (PyTuple_GET_SIZE(__pyx_args)) {
23065  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23066  CYTHON_FALLTHROUGH;
23067  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23068  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23069  break;
23070  default: goto __pyx_L5_argtuple_error;
23071  }
23072  }
23073  __pyx_v_x = values[0];
23074  __pyx_v_t = values[1];
23075  __pyx_v_n = values[2];
23076  }
23077  goto __pyx_L4_argument_unpacking_done;
23078  __pyx_L5_argtuple_error:;
23079  __Pyx_RaiseArgtupleInvalid("inlet_dissipation_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 835, __pyx_L3_error)
23080  __pyx_L3_error:;
23081  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.inlet_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
23082  __Pyx_RefNannyFinishContext();
23083  return NULL;
23084  __pyx_L4_argument_unpacking_done:;
23085  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_8inlet_dissipation_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
23086 
23087  /* function exit code */
23088  __Pyx_RefNannyFinishContext();
23089  return __pyx_r;
23090 }
23091 
23092 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_8inlet_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
23093  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
23094  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_outer_scope;
23095  PyObject *__pyx_v_phi = NULL;
23096  PyObject *__pyx_v_H = NULL;
23097  PyObject *__pyx_r = NULL;
23098  __Pyx_TraceDeclarations
23099  __Pyx_RefNannyDeclarations
23100  PyObject *__pyx_t_1 = NULL;
23101  PyObject *__pyx_t_2 = NULL;
23102  int __pyx_t_3;
23103  PyObject *__pyx_t_4 = NULL;
23104  PyObject *__pyx_t_5 = NULL;
23105  PyObject *__pyx_t_6 = NULL;
23106  int __pyx_t_7;
23107  PyObject *__pyx_t_8 = NULL;
23108  PyObject *__pyx_t_9 = NULL;
23109  int __pyx_lineno = 0;
23110  const char *__pyx_filename = NULL;
23111  int __pyx_clineno = 0;
23112  __Pyx_RefNannySetupContext("inlet_dissipation_dirichlet", 0);
23113  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
23114  __pyx_cur_scope = __pyx_outer_scope;
23115  __Pyx_TraceCall("inlet_dissipation_dirichlet", __pyx_f[0], 835, 0, __PYX_ERR(0, 835, __pyx_L1_error));
23116 
23117  /* "mprans/BoundaryConditions.py":836
23118  *
23119  * def inlet_dissipation_dirichlet(x, t, n=None):
23120  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
23121  * if phi <= 0.:
23122  * H = 0.0
23123  */
23124  if (unlikely(!__pyx_cur_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 836, __pyx_L1_error) }
23125  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L1_error)
23126  __Pyx_GOTREF(__pyx_t_1);
23127  if (unlikely(!__pyx_cur_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 836, __pyx_L1_error) }
23128  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
23129  __Pyx_GOTREF(__pyx_t_2);
23130  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23131  __pyx_v_phi = __pyx_t_2;
23132  __pyx_t_2 = 0;
23133 
23134  /* "mprans/BoundaryConditions.py":837
23135  * def inlet_dissipation_dirichlet(x, t, n=None):
23136  * phi = x[vert_axis] - seaLevel
23137  * if phi <= 0.: # <<<<<<<<<<<<<<
23138  * H = 0.0
23139  * elif 0 < phi <= smoothing:
23140  */
23141  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L1_error)
23142  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 837, __pyx_L1_error)
23143  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23144  if (__pyx_t_3) {
23145 
23146  /* "mprans/BoundaryConditions.py":838
23147  * phi = x[vert_axis] - seaLevel
23148  * if phi <= 0.:
23149  * H = 0.0 # <<<<<<<<<<<<<<
23150  * elif 0 < phi <= smoothing:
23151  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23152  */
23153  __Pyx_INCREF(__pyx_float_0_0);
23154  __pyx_v_H = __pyx_float_0_0;
23155 
23156  /* "mprans/BoundaryConditions.py":837
23157  * def inlet_dissipation_dirichlet(x, t, n=None):
23158  * phi = x[vert_axis] - seaLevel
23159  * if phi <= 0.: # <<<<<<<<<<<<<<
23160  * H = 0.0
23161  * elif 0 < phi <= smoothing:
23162  */
23163  goto __pyx_L3;
23164  }
23165 
23166  /* "mprans/BoundaryConditions.py":839
23167  * if phi <= 0.:
23168  * H = 0.0
23169  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
23170  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23171  * else:
23172  */
23173  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 839, __pyx_L1_error)
23174  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
23175  __Pyx_DECREF(__pyx_t_2);
23176  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 839, __pyx_L1_error) }
23177  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 839, __pyx_L1_error)
23178  }
23179  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 839, __pyx_L1_error)
23180  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23181  if (__pyx_t_3) {
23182 
23183  /* "mprans/BoundaryConditions.py":840
23184  * H = 0.0
23185  * elif 0 < phi <= smoothing:
23186  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
23187  * else:
23188  * H = 1.0
23189  */
23190  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L1_error)
23191  __Pyx_GOTREF(__pyx_t_1);
23192  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
23193  __Pyx_GOTREF(__pyx_t_5);
23194  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 840, __pyx_L1_error) }
23195  __pyx_t_6 = NULL;
23196  __pyx_t_7 = 0;
23197  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
23198  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
23199  if (likely(__pyx_t_6)) {
23200  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
23201  __Pyx_INCREF(__pyx_t_6);
23202  __Pyx_INCREF(function);
23203  __Pyx_DECREF_SET(__pyx_t_5, function);
23204  __pyx_t_7 = 1;
23205  }
23206  }
23207  #if CYTHON_FAST_PYCALL
23208  if (PyFunction_Check(__pyx_t_5)) {
23209  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
23210  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error)
23211  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23212  __Pyx_GOTREF(__pyx_t_4);
23213  } else
23214  #endif
23215  #if CYTHON_FAST_PYCCALL
23216  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
23217  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
23218  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error)
23219  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23220  __Pyx_GOTREF(__pyx_t_4);
23221  } else
23222  #endif
23223  {
23224  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error)
23225  __Pyx_GOTREF(__pyx_t_8);
23226  if (__pyx_t_6) {
23227  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
23228  }
23229  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
23230  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
23231  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
23232  __Pyx_INCREF(__pyx_float_2_);
23233  __Pyx_GIVEREF(__pyx_float_2_);
23234  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_float_2_);
23235  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error)
23236  __Pyx_GOTREF(__pyx_t_4);
23237  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23238  }
23239  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23240  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_old_div); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error)
23241  __Pyx_GOTREF(__pyx_t_8);
23242  if (unlikely(!__pyx_cur_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 840, __pyx_L1_error) }
23243  __pyx_t_6 = NULL;
23244  __pyx_t_7 = 0;
23245  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
23246  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
23247  if (likely(__pyx_t_6)) {
23248  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
23249  __Pyx_INCREF(__pyx_t_6);
23250  __Pyx_INCREF(function);
23251  __Pyx_DECREF_SET(__pyx_t_8, function);
23252  __pyx_t_7 = 1;
23253  }
23254  }
23255  #if CYTHON_FAST_PYCALL
23256  if (PyFunction_Check(__pyx_t_8)) {
23257  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
23258  __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
23259  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23260  __Pyx_GOTREF(__pyx_t_5);
23261  } else
23262  #endif
23263  #if CYTHON_FAST_PYCCALL
23264  if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
23265  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_smoothing, __pyx_float_2_};
23266  __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
23267  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23268  __Pyx_GOTREF(__pyx_t_5);
23269  } else
23270  #endif
23271  {
23272  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 840, __pyx_L1_error)
23273  __Pyx_GOTREF(__pyx_t_9);
23274  if (__pyx_t_6) {
23275  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
23276  }
23277  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
23278  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
23279  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_smoothing);
23280  __Pyx_INCREF(__pyx_float_2_);
23281  __Pyx_GIVEREF(__pyx_float_2_);
23282  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_float_2_);
23283  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
23284  __Pyx_GOTREF(__pyx_t_5);
23285  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23286  }
23287  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23288  __pyx_t_8 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error)
23289  __Pyx_GOTREF(__pyx_t_8);
23290  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23291  __pyx_t_5 = NULL;
23292  __pyx_t_7 = 0;
23293  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
23294  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
23295  if (likely(__pyx_t_5)) {
23296  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
23297  __Pyx_INCREF(__pyx_t_5);
23298  __Pyx_INCREF(function);
23299  __Pyx_DECREF_SET(__pyx_t_1, function);
23300  __pyx_t_7 = 1;
23301  }
23302  }
23303  #if CYTHON_FAST_PYCALL
23304  if (PyFunction_Check(__pyx_t_1)) {
23305  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
23306  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
23307  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23308  __Pyx_GOTREF(__pyx_t_2);
23309  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23310  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23311  } else
23312  #endif
23313  #if CYTHON_FAST_PYCCALL
23314  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
23315  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
23316  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
23317  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23318  __Pyx_GOTREF(__pyx_t_2);
23319  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23320  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23321  } else
23322  #endif
23323  {
23324  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 840, __pyx_L1_error)
23325  __Pyx_GOTREF(__pyx_t_9);
23326  if (__pyx_t_5) {
23327  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL;
23328  }
23329  __Pyx_GIVEREF(__pyx_t_4);
23330  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_t_4);
23331  __Pyx_GIVEREF(__pyx_t_8);
23332  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_t_8);
23333  __pyx_t_4 = 0;
23334  __pyx_t_8 = 0;
23335  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
23336  __Pyx_GOTREF(__pyx_t_2);
23337  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23338  }
23339  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23340  __pyx_v_H = __pyx_t_2;
23341  __pyx_t_2 = 0;
23342 
23343  /* "mprans/BoundaryConditions.py":839
23344  * if phi <= 0.:
23345  * H = 0.0
23346  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
23347  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23348  * else:
23349  */
23350  goto __pyx_L3;
23351  }
23352 
23353  /* "mprans/BoundaryConditions.py":842
23354  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23355  * else:
23356  * H = 1.0 # <<<<<<<<<<<<<<
23357  * return H * dissipationInflowAir + (1 - H) * dissipationInflow
23358  *
23359  */
23360  /*else*/ {
23361  __Pyx_INCREF(__pyx_float_1_0);
23362  __pyx_v_H = __pyx_float_1_0;
23363  }
23364  __pyx_L3:;
23365 
23366  /* "mprans/BoundaryConditions.py":843
23367  * else:
23368  * H = 1.0
23369  * return H * dissipationInflowAir + (1 - H) * dissipationInflow # <<<<<<<<<<<<<<
23370  *
23371  * if orientation is not None:
23372  */
23373  __Pyx_XDECREF(__pyx_r);
23374  if (unlikely(!__pyx_cur_scope->__pyx_v_dissipationInflowAir)) { __Pyx_RaiseClosureNameError("dissipationInflowAir"); __PYX_ERR(0, 843, __pyx_L1_error) }
23375  __pyx_t_2 = PyNumber_Multiply(__pyx_v_H, __pyx_cur_scope->__pyx_v_dissipationInflowAir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 843, __pyx_L1_error)
23376  __Pyx_GOTREF(__pyx_t_2);
23377  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L1_error)
23378  __Pyx_GOTREF(__pyx_t_1);
23379  if (unlikely(!__pyx_cur_scope->__pyx_v_dissipationInflow)) { __Pyx_RaiseClosureNameError("dissipationInflow"); __PYX_ERR(0, 843, __pyx_L1_error) }
23380  __pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_dissipationInflow); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 843, __pyx_L1_error)
23381  __Pyx_GOTREF(__pyx_t_9);
23382  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23383  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L1_error)
23384  __Pyx_GOTREF(__pyx_t_1);
23385  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23386  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23387  __pyx_r = __pyx_t_1;
23388  __pyx_t_1 = 0;
23389  goto __pyx_L0;
23390 
23391  /* "mprans/BoundaryConditions.py":835
23392  * return H * kInflowAir + (1 - H) * kInflow
23393  *
23394  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
23395  * phi = x[vert_axis] - seaLevel
23396  * if phi <= 0.:
23397  */
23398 
23399  /* function exit code */
23400  __pyx_L1_error:;
23401  __Pyx_XDECREF(__pyx_t_1);
23402  __Pyx_XDECREF(__pyx_t_2);
23403  __Pyx_XDECREF(__pyx_t_4);
23404  __Pyx_XDECREF(__pyx_t_5);
23405  __Pyx_XDECREF(__pyx_t_6);
23406  __Pyx_XDECREF(__pyx_t_8);
23407  __Pyx_XDECREF(__pyx_t_9);
23408  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.inlet_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
23409  __pyx_r = NULL;
23410  __pyx_L0:;
23411  __Pyx_XDECREF(__pyx_v_phi);
23412  __Pyx_XDECREF(__pyx_v_H);
23413  __Pyx_XGIVEREF(__pyx_r);
23414  __Pyx_TraceReturn(__pyx_r, 0);
23415  __Pyx_RefNannyFinishContext();
23416  return __pyx_r;
23417 }
23418 
23419 /* "mprans/BoundaryConditions.py":878
23420  * self.dissipation_diffusive.setConstantBC(0.)
23421  * if U is not None:
23422  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
23423  * def ux_dirichlet(x, t, n=None):
23424  * phi = x[vert_axis] - seaLevel
23425  */
23426 
23427 /* Python wrapper */
23428 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_11get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i); /*proto*/
23429 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_11get_inlet_ux_dirichlet = {"get_inlet_ux_dirichlet", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_11get_inlet_ux_dirichlet, METH_O, 0};
23430 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_11get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i) {
23431  PyObject *__pyx_r = 0;
23432  __Pyx_RefNannyDeclarations
23433  __Pyx_RefNannySetupContext("get_inlet_ux_dirichlet (wrapper)", 0);
23434  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(__pyx_self, ((PyObject *)__pyx_v_i));
23435 
23436  /* function exit code */
23437  __Pyx_RefNannyFinishContext();
23438  return __pyx_r;
23439 }
23440 
23441 /* "mprans/BoundaryConditions.py":879
23442  * if U is not None:
23443  * def get_inlet_ux_dirichlet(i):
23444  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
23445  * phi = x[vert_axis] - seaLevel
23446  * if phi <= 0.:
23447  */
23448 
23449 /* Python wrapper */
23450 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_1ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23451 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_1ux_dirichlet = {"ux_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_1ux_dirichlet, METH_VARARGS|METH_KEYWORDS, 0};
23452 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_1ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23453  PyObject *__pyx_v_x = 0;
23454  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
23455  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
23456  int __pyx_lineno = 0;
23457  const char *__pyx_filename = NULL;
23458  int __pyx_clineno = 0;
23459  PyObject *__pyx_r = 0;
23460  __Pyx_RefNannyDeclarations
23461  __Pyx_RefNannySetupContext("ux_dirichlet (wrapper)", 0);
23462  {
23463  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
23464  PyObject* values[3] = {0,0,0};
23465  values[2] = ((PyObject *)((PyObject *)Py_None));
23466  if (unlikely(__pyx_kwds)) {
23467  Py_ssize_t kw_args;
23468  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23469  switch (pos_args) {
23470  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23471  CYTHON_FALLTHROUGH;
23472  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23473  CYTHON_FALLTHROUGH;
23474  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23475  CYTHON_FALLTHROUGH;
23476  case 0: break;
23477  default: goto __pyx_L5_argtuple_error;
23478  }
23479  kw_args = PyDict_Size(__pyx_kwds);
23480  switch (pos_args) {
23481  case 0:
23482  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
23483  else goto __pyx_L5_argtuple_error;
23484  CYTHON_FALLTHROUGH;
23485  case 1:
23486  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
23487  else {
23488  __Pyx_RaiseArgtupleInvalid("ux_dirichlet", 0, 2, 3, 1); __PYX_ERR(0, 879, __pyx_L3_error)
23489  }
23490  CYTHON_FALLTHROUGH;
23491  case 2:
23492  if (kw_args > 0) {
23493  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
23494  if (value) { values[2] = value; kw_args--; }
23495  }
23496  }
23497  if (unlikely(kw_args > 0)) {
23498  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ux_dirichlet") < 0)) __PYX_ERR(0, 879, __pyx_L3_error)
23499  }
23500  } else {
23501  switch (PyTuple_GET_SIZE(__pyx_args)) {
23502  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23503  CYTHON_FALLTHROUGH;
23504  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23505  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23506  break;
23507  default: goto __pyx_L5_argtuple_error;
23508  }
23509  }
23510  __pyx_v_x = values[0];
23511  __pyx_v_t = values[1];
23512  __pyx_v_n = values[2];
23513  }
23514  goto __pyx_L4_argument_unpacking_done;
23515  __pyx_L5_argtuple_error:;
23516  __Pyx_RaiseArgtupleInvalid("ux_dirichlet", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 879, __pyx_L3_error)
23517  __pyx_L3_error:;
23518  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.get_inlet_ux_dirichlet.ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
23519  __Pyx_RefNannyFinishContext();
23520  return NULL;
23521  __pyx_L4_argument_unpacking_done:;
23522  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_ux_dirichlet(__pyx_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
23523 
23524  /* function exit code */
23525  __Pyx_RefNannyFinishContext();
23526  return __pyx_r;
23527 }
23528 
23529 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
23530  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *__pyx_cur_scope;
23531  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *__pyx_outer_scope;
23532  PyObject *__pyx_v_phi = NULL;
23533  PyObject *__pyx_v_H = NULL;
23534  PyObject *__pyx_r = NULL;
23535  __Pyx_TraceDeclarations
23536  __Pyx_RefNannyDeclarations
23537  PyObject *__pyx_t_1 = NULL;
23538  PyObject *__pyx_t_2 = NULL;
23539  int __pyx_t_3;
23540  PyObject *__pyx_t_4 = NULL;
23541  PyObject *__pyx_t_5 = NULL;
23542  PyObject *__pyx_t_6 = NULL;
23543  int __pyx_t_7;
23544  PyObject *__pyx_t_8 = NULL;
23545  PyObject *__pyx_t_9 = NULL;
23546  int __pyx_lineno = 0;
23547  const char *__pyx_filename = NULL;
23548  int __pyx_clineno = 0;
23549  __Pyx_RefNannySetupContext("ux_dirichlet", 0);
23550  __pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *) __Pyx_CyFunction_GetClosure(__pyx_self);
23551  __pyx_cur_scope = __pyx_outer_scope;
23552  __Pyx_TraceCall("ux_dirichlet", __pyx_f[0], 879, 0, __PYX_ERR(0, 879, __pyx_L1_error));
23553 
23554  /* "mprans/BoundaryConditions.py":880
23555  * def get_inlet_ux_dirichlet(i):
23556  * def ux_dirichlet(x, t, n=None):
23557  * phi = x[vert_axis] - seaLevel # <<<<<<<<<<<<<<
23558  * if phi <= 0.:
23559  * H = 0.0
23560  */
23561  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_vert_axis)) { __Pyx_RaiseClosureNameError("vert_axis"); __PYX_ERR(0, 880, __pyx_L1_error) }
23562  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 880, __pyx_L1_error)
23563  __Pyx_GOTREF(__pyx_t_1);
23564  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_seaLevel)) { __Pyx_RaiseClosureNameError("seaLevel"); __PYX_ERR(0, 880, __pyx_L1_error) }
23565  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_seaLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 880, __pyx_L1_error)
23566  __Pyx_GOTREF(__pyx_t_2);
23567  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23568  __pyx_v_phi = __pyx_t_2;
23569  __pyx_t_2 = 0;
23570 
23571  /* "mprans/BoundaryConditions.py":881
23572  * def ux_dirichlet(x, t, n=None):
23573  * phi = x[vert_axis] - seaLevel
23574  * if phi <= 0.: # <<<<<<<<<<<<<<
23575  * H = 0.0
23576  * elif 0 < phi <= smoothing:
23577  */
23578  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_float_0_, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 881, __pyx_L1_error)
23579  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 881, __pyx_L1_error)
23580  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23581  if (__pyx_t_3) {
23582 
23583  /* "mprans/BoundaryConditions.py":882
23584  * phi = x[vert_axis] - seaLevel
23585  * if phi <= 0.:
23586  * H = 0.0 # <<<<<<<<<<<<<<
23587  * elif 0 < phi <= smoothing:
23588  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23589  */
23590  __Pyx_INCREF(__pyx_float_0_0);
23591  __pyx_v_H = __pyx_float_0_0;
23592 
23593  /* "mprans/BoundaryConditions.py":881
23594  * def ux_dirichlet(x, t, n=None):
23595  * phi = x[vert_axis] - seaLevel
23596  * if phi <= 0.: # <<<<<<<<<<<<<<
23597  * H = 0.0
23598  * elif 0 < phi <= smoothing:
23599  */
23600  goto __pyx_L3;
23601  }
23602 
23603  /* "mprans/BoundaryConditions.py":883
23604  * if phi <= 0.:
23605  * H = 0.0
23606  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
23607  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23608  * else:
23609  */
23610  __pyx_t_2 = PyObject_RichCompare(__pyx_int_0, __pyx_v_phi, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 883, __pyx_L1_error)
23611  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
23612  __Pyx_DECREF(__pyx_t_2);
23613  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 883, __pyx_L1_error) }
23614  __pyx_t_2 = PyObject_RichCompare(__pyx_v_phi, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 883, __pyx_L1_error)
23615  }
23616  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 883, __pyx_L1_error)
23617  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23618  if (__pyx_t_3) {
23619 
23620  /* "mprans/BoundaryConditions.py":884
23621  * H = 0.0
23622  * elif 0 < phi <= smoothing:
23623  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.)) # <<<<<<<<<<<<<<
23624  * else:
23625  * H = 1.0
23626  */
23627  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 884, __pyx_L1_error)
23628  __Pyx_GOTREF(__pyx_t_1);
23629  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 884, __pyx_L1_error)
23630  __Pyx_GOTREF(__pyx_t_5);
23631  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 884, __pyx_L1_error) }
23632  __pyx_t_6 = NULL;
23633  __pyx_t_7 = 0;
23634  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
23635  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
23636  if (likely(__pyx_t_6)) {
23637  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
23638  __Pyx_INCREF(__pyx_t_6);
23639  __Pyx_INCREF(function);
23640  __Pyx_DECREF_SET(__pyx_t_5, function);
23641  __pyx_t_7 = 1;
23642  }
23643  }
23644  #if CYTHON_FAST_PYCALL
23645  if (PyFunction_Check(__pyx_t_5)) {
23646  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_float_2_};
23647  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 884, __pyx_L1_error)
23648  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23649  __Pyx_GOTREF(__pyx_t_4);
23650  } else
23651  #endif
23652  #if CYTHON_FAST_PYCCALL
23653  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
23654  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_float_2_};
23655  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 884, __pyx_L1_error)
23656  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23657  __Pyx_GOTREF(__pyx_t_4);
23658  } else
23659  #endif
23660  {
23661  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 884, __pyx_L1_error)
23662  __Pyx_GOTREF(__pyx_t_8);
23663  if (__pyx_t_6) {
23664  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
23665  }
23666  __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23667  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23668  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23669  __Pyx_INCREF(__pyx_float_2_);
23670  __Pyx_GIVEREF(__pyx_float_2_);
23671  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_float_2_);
23672  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 884, __pyx_L1_error)
23673  __Pyx_GOTREF(__pyx_t_4);
23674  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23675  }
23676  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23677  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_old_div); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 884, __pyx_L1_error)
23678  __Pyx_GOTREF(__pyx_t_8);
23679  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing)) { __Pyx_RaiseClosureNameError("smoothing"); __PYX_ERR(0, 884, __pyx_L1_error) }
23680  __pyx_t_6 = NULL;
23681  __pyx_t_7 = 0;
23682  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
23683  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
23684  if (likely(__pyx_t_6)) {
23685  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
23686  __Pyx_INCREF(__pyx_t_6);
23687  __Pyx_INCREF(function);
23688  __Pyx_DECREF_SET(__pyx_t_8, function);
23689  __pyx_t_7 = 1;
23690  }
23691  }
23692  #if CYTHON_FAST_PYCALL
23693  if (PyFunction_Check(__pyx_t_8)) {
23694  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_float_2_};
23695  __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 884, __pyx_L1_error)
23696  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23697  __Pyx_GOTREF(__pyx_t_5);
23698  } else
23699  #endif
23700  #if CYTHON_FAST_PYCCALL
23701  if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
23702  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing, __pyx_float_2_};
23703  __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 884, __pyx_L1_error)
23704  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23705  __Pyx_GOTREF(__pyx_t_5);
23706  } else
23707  #endif
23708  {
23709  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 884, __pyx_L1_error)
23710  __Pyx_GOTREF(__pyx_t_9);
23711  if (__pyx_t_6) {
23712  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
23713  }
23714  __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23715  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23716  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_smoothing);
23717  __Pyx_INCREF(__pyx_float_2_);
23718  __Pyx_GIVEREF(__pyx_float_2_);
23719  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_float_2_);
23720  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 884, __pyx_L1_error)
23721  __Pyx_GOTREF(__pyx_t_5);
23722  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23723  }
23724  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23725  __pyx_t_8 = PyNumber_Subtract(__pyx_v_phi, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 884, __pyx_L1_error)
23726  __Pyx_GOTREF(__pyx_t_8);
23727  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23728  __pyx_t_5 = NULL;
23729  __pyx_t_7 = 0;
23730  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
23731  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
23732  if (likely(__pyx_t_5)) {
23733  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
23734  __Pyx_INCREF(__pyx_t_5);
23735  __Pyx_INCREF(function);
23736  __Pyx_DECREF_SET(__pyx_t_1, function);
23737  __pyx_t_7 = 1;
23738  }
23739  }
23740  #if CYTHON_FAST_PYCALL
23741  if (PyFunction_Check(__pyx_t_1)) {
23742  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
23743  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L1_error)
23744  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23745  __Pyx_GOTREF(__pyx_t_2);
23746  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23747  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23748  } else
23749  #endif
23750  #if CYTHON_FAST_PYCCALL
23751  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
23752  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_8};
23753  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L1_error)
23754  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23755  __Pyx_GOTREF(__pyx_t_2);
23756  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23757  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23758  } else
23759  #endif
23760  {
23761  __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 884, __pyx_L1_error)
23762  __Pyx_GOTREF(__pyx_t_9);
23763  if (__pyx_t_5) {
23764  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL;
23765  }
23766  __Pyx_GIVEREF(__pyx_t_4);
23767  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_t_4);
23768  __Pyx_GIVEREF(__pyx_t_8);
23769  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_t_8);
23770  __pyx_t_4 = 0;
23771  __pyx_t_8 = 0;
23772  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L1_error)
23773  __Pyx_GOTREF(__pyx_t_2);
23774  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23775  }
23776  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23777  __pyx_v_H = __pyx_t_2;
23778  __pyx_t_2 = 0;
23779 
23780  /* "mprans/BoundaryConditions.py":883
23781  * if phi <= 0.:
23782  * H = 0.0
23783  * elif 0 < phi <= smoothing: # <<<<<<<<<<<<<<
23784  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23785  * else:
23786  */
23787  goto __pyx_L3;
23788  }
23789 
23790  /* "mprans/BoundaryConditions.py":886
23791  * H = smoothedHeaviside(old_div(smoothing, 2.), phi - old_div(smoothing, 2.))
23792  * else:
23793  * H = 1.0 # <<<<<<<<<<<<<<
23794  * return H * Uwind[i] + (1 - H) * U[i]
23795  * return ux_dirichlet
23796  */
23797  /*else*/ {
23798  __Pyx_INCREF(__pyx_float_1_0);
23799  __pyx_v_H = __pyx_float_1_0;
23800  }
23801  __pyx_L3:;
23802 
23803  /* "mprans/BoundaryConditions.py":887
23804  * else:
23805  * H = 1.0
23806  * return H * Uwind[i] + (1 - H) * U[i] # <<<<<<<<<<<<<<
23807  * return ux_dirichlet
23808  *
23809  */
23810  __Pyx_XDECREF(__pyx_r);
23811  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_Uwind)) { __Pyx_RaiseClosureNameError("Uwind"); __PYX_ERR(0, 887, __pyx_L1_error) }
23812  if (unlikely(!__pyx_cur_scope->__pyx_v_i)) { __Pyx_RaiseClosureNameError("i"); __PYX_ERR(0, 887, __pyx_L1_error) }
23813  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_Uwind, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 887, __pyx_L1_error)
23814  __Pyx_GOTREF(__pyx_t_2);
23815  __pyx_t_1 = PyNumber_Multiply(__pyx_v_H, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 887, __pyx_L1_error)
23816  __Pyx_GOTREF(__pyx_t_1);
23817  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23818  __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_H, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 887, __pyx_L1_error)
23819  __Pyx_GOTREF(__pyx_t_2);
23820  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_U)) { __Pyx_RaiseClosureNameError("U"); __PYX_ERR(0, 887, __pyx_L1_error) }
23821  if (unlikely(!__pyx_cur_scope->__pyx_v_i)) { __Pyx_RaiseClosureNameError("i"); __PYX_ERR(0, 887, __pyx_L1_error) }
23822  __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_U, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 887, __pyx_L1_error)
23823  __Pyx_GOTREF(__pyx_t_9);
23824  __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 887, __pyx_L1_error)
23825  __Pyx_GOTREF(__pyx_t_8);
23826  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23827  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
23828  __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 887, __pyx_L1_error)
23829  __Pyx_GOTREF(__pyx_t_9);
23830  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23831  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23832  __pyx_r = __pyx_t_9;
23833  __pyx_t_9 = 0;
23834  goto __pyx_L0;
23835 
23836  /* "mprans/BoundaryConditions.py":879
23837  * if U is not None:
23838  * def get_inlet_ux_dirichlet(i):
23839  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
23840  * phi = x[vert_axis] - seaLevel
23841  * if phi <= 0.:
23842  */
23843 
23844  /* function exit code */
23845  __pyx_L1_error:;
23846  __Pyx_XDECREF(__pyx_t_1);
23847  __Pyx_XDECREF(__pyx_t_2);
23848  __Pyx_XDECREF(__pyx_t_4);
23849  __Pyx_XDECREF(__pyx_t_5);
23850  __Pyx_XDECREF(__pyx_t_6);
23851  __Pyx_XDECREF(__pyx_t_8);
23852  __Pyx_XDECREF(__pyx_t_9);
23853  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.get_inlet_ux_dirichlet.ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
23854  __pyx_r = NULL;
23855  __pyx_L0:;
23856  __Pyx_XDECREF(__pyx_v_phi);
23857  __Pyx_XDECREF(__pyx_v_H);
23858  __Pyx_XGIVEREF(__pyx_r);
23859  __Pyx_TraceReturn(__pyx_r, 0);
23860  __Pyx_RefNannyFinishContext();
23861  return __pyx_r;
23862 }
23863 
23864 /* "mprans/BoundaryConditions.py":878
23865  * self.dissipation_diffusive.setConstantBC(0.)
23866  * if U is not None:
23867  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
23868  * def ux_dirichlet(x, t, n=None):
23869  * phi = x[vert_axis] - seaLevel
23870  */
23871 
23872 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(PyObject *__pyx_self, PyObject *__pyx_v_i) {
23873  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *__pyx_cur_scope;
23874  PyObject *__pyx_v_ux_dirichlet = 0;
23875  PyObject *__pyx_r = NULL;
23876  __Pyx_TraceDeclarations
23877  __Pyx_RefNannyDeclarations
23878  PyObject *__pyx_t_1 = NULL;
23879  int __pyx_lineno = 0;
23880  const char *__pyx_filename = NULL;
23881  int __pyx_clineno = 0;
23882  __Pyx_RefNannySetupContext("get_inlet_ux_dirichlet", 0);
23883  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet, __pyx_empty_tuple, NULL);
23884  if (unlikely(!__pyx_cur_scope)) {
23885  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)Py_None);
23886  __Pyx_INCREF(Py_None);
23887  __PYX_ERR(0, 878, __pyx_L1_error)
23888  } else {
23889  __Pyx_GOTREF(__pyx_cur_scope);
23890  }
23891  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *) __Pyx_CyFunction_GetClosure(__pyx_self);
23892  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
23893  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
23894  __Pyx_TraceCall("get_inlet_ux_dirichlet", __pyx_f[0], 878, 0, __PYX_ERR(0, 878, __pyx_L1_error));
23895  __pyx_cur_scope->__pyx_v_i = __pyx_v_i;
23896  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_i);
23897  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_i);
23898 
23899  /* "mprans/BoundaryConditions.py":879
23900  * if U is not None:
23901  * def get_inlet_ux_dirichlet(i):
23902  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
23903  * phi = x[vert_axis] - seaLevel
23904  * if phi <= 0.:
23905  */
23906  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_22get_inlet_ux_dirichlet_1ux_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 879, __pyx_L1_error)
23907  __Pyx_GOTREF(__pyx_t_1);
23908  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__69);
23909  __pyx_v_ux_dirichlet = __pyx_t_1;
23910  __pyx_t_1 = 0;
23911 
23912  /* "mprans/BoundaryConditions.py":888
23913  * H = 1.0
23914  * return H * Uwind[i] + (1 - H) * U[i]
23915  * return ux_dirichlet # <<<<<<<<<<<<<<
23916  *
23917  * if Uwind is None:
23918  */
23919  __Pyx_XDECREF(__pyx_r);
23920  __Pyx_INCREF(__pyx_v_ux_dirichlet);
23921  __pyx_r = __pyx_v_ux_dirichlet;
23922  goto __pyx_L0;
23923 
23924  /* "mprans/BoundaryConditions.py":878
23925  * self.dissipation_diffusive.setConstantBC(0.)
23926  * if U is not None:
23927  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
23928  * def ux_dirichlet(x, t, n=None):
23929  * phi = x[vert_axis] - seaLevel
23930  */
23931 
23932  /* function exit code */
23933  __pyx_L1_error:;
23934  __Pyx_XDECREF(__pyx_t_1);
23935  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth.get_inlet_ux_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
23936  __pyx_r = NULL;
23937  __pyx_L0:;
23938  __Pyx_XDECREF(__pyx_v_ux_dirichlet);
23939  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
23940  __Pyx_XGIVEREF(__pyx_r);
23941  __Pyx_TraceReturn(__pyx_r, 0);
23942  __Pyx_RefNannyFinishContext();
23943  return __pyx_r;
23944 }
23945 
23946 /* "mprans/BoundaryConditions.py":774
23947  * self.dissipation_diffusive.resetBC()
23948  *
23949  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
23950  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
23951  * pRef=0.0, vert_axis=None,
23952  */
23953 
23954 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_seaLevel, PyObject *__pyx_v_rhoUp, PyObject *__pyx_v_rhoDown, PyObject *__pyx_v_g, PyObject *__pyx_v_refLevel, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_orientation, PyObject *__pyx_v_U, PyObject *__pyx_v_Uwind, PyObject *__pyx_v_pRef, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_air, PyObject *__pyx_v_water, PyObject *__pyx_v_kInflow, PyObject *__pyx_v_dissipationInflow, PyObject *__pyx_v_kInflowAir, PyObject *__pyx_v_dissipationInflowAir) {
23955  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_cur_scope;
23956  PyObject *__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet = 0;
23957  PyObject *__pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet = 0;
23958  PyObject *__pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet = 0;
23959  PyObject *__pyx_v_inlet_k_dirichlet = 0;
23960  PyObject *__pyx_v_inlet_dissipation_dirichlet = 0;
23961  PyObject *__pyx_v_b_or = NULL;
23962  PyObject *__pyx_v_get_inlet_ux_dirichlet = 0;
23963  PyObject *__pyx_r = NULL;
23964  __Pyx_TraceDeclarations
23965  __Pyx_RefNannyDeclarations
23966  PyObject *__pyx_t_1 = NULL;
23967  PyObject *__pyx_t_2 = NULL;
23968  PyObject *__pyx_t_3 = NULL;
23969  int __pyx_t_4;
23970  int __pyx_t_5;
23971  int __pyx_lineno = 0;
23972  const char *__pyx_filename = NULL;
23973  int __pyx_clineno = 0;
23974  __Pyx_TraceFrameInit(__pyx_codeobj__70)
23975  __Pyx_RefNannySetupContext("setHydrostaticPressureOutletWithDepth", 0);
23976  __pyx_cur_scope = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(__pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth, __pyx_empty_tuple, NULL);
23977  if (unlikely(!__pyx_cur_scope)) {
23978  __pyx_cur_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)Py_None);
23979  __Pyx_INCREF(Py_None);
23980  __PYX_ERR(0, 774, __pyx_L1_error)
23981  } else {
23982  __Pyx_GOTREF(__pyx_cur_scope);
23983  }
23984  __Pyx_TraceCall("setHydrostaticPressureOutletWithDepth", __pyx_f[0], 774, 0, __PYX_ERR(0, 774, __pyx_L1_error));
23985  __pyx_cur_scope->__pyx_v_seaLevel = __pyx_v_seaLevel;
23986  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_seaLevel);
23987  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_seaLevel);
23988  __pyx_cur_scope->__pyx_v_rhoUp = __pyx_v_rhoUp;
23989  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rhoUp);
23990  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rhoUp);
23991  __pyx_cur_scope->__pyx_v_rhoDown = __pyx_v_rhoDown;
23992  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rhoDown);
23993  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rhoDown);
23994  __pyx_cur_scope->__pyx_v_g = __pyx_v_g;
23995  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_g);
23996  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_g);
23997  __pyx_cur_scope->__pyx_v_refLevel = __pyx_v_refLevel;
23998  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_refLevel);
23999  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_refLevel);
24000  __pyx_cur_scope->__pyx_v_smoothing = __pyx_v_smoothing;
24001  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_smoothing);
24002  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_smoothing);
24003  __pyx_cur_scope->__pyx_v_U = __pyx_v_U;
24004  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_U);
24005  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_U);
24006  __pyx_cur_scope->__pyx_v_Uwind = __pyx_v_Uwind;
24007  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_Uwind);
24008  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_Uwind);
24009  __pyx_cur_scope->__pyx_v_pRef = __pyx_v_pRef;
24010  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_pRef);
24011  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pRef);
24012  __pyx_cur_scope->__pyx_v_vert_axis = __pyx_v_vert_axis;
24013  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_vert_axis);
24014  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_vert_axis);
24015  __pyx_cur_scope->__pyx_v_air = __pyx_v_air;
24016  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_air);
24017  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_air);
24018  __pyx_cur_scope->__pyx_v_water = __pyx_v_water;
24019  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_water);
24020  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_water);
24021  __pyx_cur_scope->__pyx_v_kInflow = __pyx_v_kInflow;
24022  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_kInflow);
24023  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kInflow);
24024  __pyx_cur_scope->__pyx_v_dissipationInflow = __pyx_v_dissipationInflow;
24025  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dissipationInflow);
24026  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dissipationInflow);
24027  __pyx_cur_scope->__pyx_v_kInflowAir = __pyx_v_kInflowAir;
24028  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_kInflowAir);
24029  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kInflowAir);
24030  __pyx_cur_scope->__pyx_v_dissipationInflowAir = __pyx_v_dissipationInflowAir;
24031  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dissipationInflowAir);
24032  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dissipationInflowAir);
24033 
24034  /* "mprans/BoundaryConditions.py":796
24035  * vert_axis: index of vertical in position vector, must always be aligned with gravity, by default set to 1.
24036  * """
24037  * self.reset() # <<<<<<<<<<<<<<
24038  *
24039  * if vert_axis is None:
24040  */
24041  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
24042  __Pyx_GOTREF(__pyx_t_2);
24043  __pyx_t_3 = NULL;
24044  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24045  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24046  if (likely(__pyx_t_3)) {
24047  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24048  __Pyx_INCREF(__pyx_t_3);
24049  __Pyx_INCREF(function);
24050  __Pyx_DECREF_SET(__pyx_t_2, function);
24051  }
24052  }
24053  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
24054  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24055  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error)
24056  __Pyx_GOTREF(__pyx_t_1);
24057  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24058  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24059 
24060  /* "mprans/BoundaryConditions.py":798
24061  * self.reset()
24062  *
24063  * if vert_axis is None: # <<<<<<<<<<<<<<
24064  * vert_axis = self.nd - 1
24065  *
24066  */
24067  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_vert_axis == Py_None);
24068  __pyx_t_5 = (__pyx_t_4 != 0);
24069  if (__pyx_t_5) {
24070 
24071  /* "mprans/BoundaryConditions.py":799
24072  *
24073  * if vert_axis is None:
24074  * vert_axis = self.nd - 1 # <<<<<<<<<<<<<<
24075  *
24076  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None):
24077  */
24078  __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_self->__pyx_base.nd - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error)
24079  __Pyx_GOTREF(__pyx_t_1);
24080  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vert_axis);
24081  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_vert_axis, __pyx_t_1);
24082  __Pyx_GIVEREF(__pyx_t_1);
24083  __pyx_t_1 = 0;
24084 
24085  /* "mprans/BoundaryConditions.py":798
24086  * self.reset()
24087  *
24088  * if vert_axis is None: # <<<<<<<<<<<<<<
24089  * vert_axis = self.nd - 1
24090  *
24091  */
24092  }
24093 
24094  /* "mprans/BoundaryConditions.py":801
24095  * vert_axis = self.nd - 1
24096  *
24097  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None): # <<<<<<<<<<<<<<
24098  * p_top = pRef
24099  * phi_top = refLevel - seaLevel
24100  */
24101  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_1hydrostaticPressureOutletWithDepth_p_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
24102  __Pyx_GOTREF(__pyx_t_1);
24103  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__73);
24104  __pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet = __pyx_t_1;
24105  __pyx_t_1 = 0;
24106 
24107  /* "mprans/BoundaryConditions.py":811
24108  * smoothedHeaviside_integral(smoothing, phi)))
24109  *
24110  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
24111  * phi = x[vert_axis] - seaLevel
24112  * return phi
24113  */
24114  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_3hydrostaticPressureOutletWithDepth_phi_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_3, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L1_error)
24115  __Pyx_GOTREF(__pyx_t_1);
24116  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__76);
24117  __pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet = __pyx_t_1;
24118  __pyx_t_1 = 0;
24119 
24120  /* "mprans/BoundaryConditions.py":815
24121  * return phi
24122  *
24123  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
24124  * phi = x[vert_axis] - seaLevel
24125  * if phi >= smoothing:
24126  */
24127  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_5hydrostaticPressureOutletWithDepth_vof_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_4, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
24128  __Pyx_GOTREF(__pyx_t_1);
24129  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__79);
24130  __pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet = __pyx_t_1;
24131  __pyx_t_1 = 0;
24132 
24133  /* "mprans/BoundaryConditions.py":825
24134  * return H * air + (1 - H) * water
24135  *
24136  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
24137  * phi = x[vert_axis] - seaLevel
24138  * if phi <= 0.:
24139  */
24140  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_7inlet_k_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_5, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
24141  __Pyx_GOTREF(__pyx_t_1);
24142  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__82);
24143  __pyx_v_inlet_k_dirichlet = __pyx_t_1;
24144  __pyx_t_1 = 0;
24145 
24146  /* "mprans/BoundaryConditions.py":835
24147  * return H * kInflowAir + (1 - H) * kInflow
24148  *
24149  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
24150  * phi = x[vert_axis] - seaLevel
24151  * if phi <= 0.:
24152  */
24153  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_9inlet_dissipation_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_6, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 835, __pyx_L1_error)
24154  __Pyx_GOTREF(__pyx_t_1);
24155  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__85);
24156  __pyx_v_inlet_dissipation_dirichlet = __pyx_t_1;
24157  __pyx_t_1 = 0;
24158 
24159  /* "mprans/BoundaryConditions.py":845
24160  * return H * dissipationInflowAir + (1 - H) * dissipationInflow
24161  *
24162  * if orientation is not None: # <<<<<<<<<<<<<<
24163  * b_or = orientation
24164  * else:
24165  */
24166  __pyx_t_5 = (__pyx_v_orientation != Py_None);
24167  __pyx_t_4 = (__pyx_t_5 != 0);
24168  if (__pyx_t_4) {
24169 
24170  /* "mprans/BoundaryConditions.py":846
24171  *
24172  * if orientation is not None:
24173  * b_or = orientation # <<<<<<<<<<<<<<
24174  * else:
24175  * b_or=self._b_or
24176  */
24177  __Pyx_INCREF(__pyx_v_orientation);
24178  __pyx_v_b_or = __pyx_v_orientation;
24179 
24180  /* "mprans/BoundaryConditions.py":845
24181  * return H * dissipationInflowAir + (1 - H) * dissipationInflow
24182  *
24183  * if orientation is not None: # <<<<<<<<<<<<<<
24184  * b_or = orientation
24185  * else:
24186  */
24187  goto __pyx_L4;
24188  }
24189 
24190  /* "mprans/BoundaryConditions.py":848
24191  * b_or = orientation
24192  * else:
24193  * b_or=self._b_or # <<<<<<<<<<<<<<
24194  * assert b_or is not None, "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined"
24195  * if b_or[0] == 1. or b_or[0] == -1.:
24196  */
24197  /*else*/ {
24198  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L1_error)
24199  __Pyx_GOTREF(__pyx_t_1);
24200  __pyx_v_b_or = __pyx_t_1;
24201  __pyx_t_1 = 0;
24202  }
24203  __pyx_L4:;
24204 
24205  /* "mprans/BoundaryConditions.py":849
24206  * else:
24207  * b_or=self._b_or
24208  * assert b_or is not None, "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined" # <<<<<<<<<<<<<<
24209  * if b_or[0] == 1. or b_or[0] == -1.:
24210  * self.v_dirichlet.setConstantBC(0.)
24211  */
24212  #ifndef CYTHON_WITHOUT_ASSERTIONS
24213  if (unlikely(!Py_OptimizeFlag)) {
24214  __pyx_t_4 = (__pyx_v_b_or != Py_None);
24215  if (unlikely(!(__pyx_t_4 != 0))) {
24216  PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_ERROR_Boundary_orientation_for_H);
24217  __PYX_ERR(0, 849, __pyx_L1_error)
24218  }
24219  }
24220  #endif
24221 
24222  /* "mprans/BoundaryConditions.py":850
24223  * b_or=self._b_or
24224  * assert b_or is not None, "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined"
24225  * if b_or[0] == 1. or b_or[0] == -1.: # <<<<<<<<<<<<<<
24226  * self.v_dirichlet.setConstantBC(0.)
24227  * self.w_dirichlet.setConstantBC(0.)
24228  */
24229  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L1_error)
24230  __Pyx_GOTREF(__pyx_t_1);
24231  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error)
24232  __Pyx_GOTREF(__pyx_t_2);
24233  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24234  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 850, __pyx_L1_error)
24235  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24236  if (!__pyx_t_5) {
24237  } else {
24238  __pyx_t_4 = __pyx_t_5;
24239  goto __pyx_L6_bool_binop_done;
24240  }
24241  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error)
24242  __Pyx_GOTREF(__pyx_t_2);
24243  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L1_error)
24244  __Pyx_GOTREF(__pyx_t_1);
24245  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24246  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 850, __pyx_L1_error)
24247  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24248  __pyx_t_4 = __pyx_t_5;
24249  __pyx_L6_bool_binop_done:;
24250  if (__pyx_t_4) {
24251 
24252  /* "mprans/BoundaryConditions.py":851
24253  * assert b_or is not None, "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined"
24254  * if b_or[0] == 1. or b_or[0] == -1.:
24255  * self.v_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24256  * self.w_dirichlet.setConstantBC(0.)
24257  * self.u_diffusive.setConstantBC(0.)
24258  */
24259  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 851, __pyx_L1_error)
24260  __Pyx_GOTREF(__pyx_t_2);
24261  __pyx_t_3 = NULL;
24262  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24263  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24264  if (likely(__pyx_t_3)) {
24265  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24266  __Pyx_INCREF(__pyx_t_3);
24267  __Pyx_INCREF(function);
24268  __Pyx_DECREF_SET(__pyx_t_2, function);
24269  }
24270  }
24271  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24272  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24273  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 851, __pyx_L1_error)
24274  __Pyx_GOTREF(__pyx_t_1);
24275  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24276  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24277 
24278  /* "mprans/BoundaryConditions.py":852
24279  * if b_or[0] == 1. or b_or[0] == -1.:
24280  * self.v_dirichlet.setConstantBC(0.)
24281  * self.w_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24282  * self.u_diffusive.setConstantBC(0.)
24283  * if b_or[1] == 1. or b_or[1] == -1.:
24284  */
24285  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error)
24286  __Pyx_GOTREF(__pyx_t_2);
24287  __pyx_t_3 = NULL;
24288  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24289  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24290  if (likely(__pyx_t_3)) {
24291  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24292  __Pyx_INCREF(__pyx_t_3);
24293  __Pyx_INCREF(function);
24294  __Pyx_DECREF_SET(__pyx_t_2, function);
24295  }
24296  }
24297  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24298  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24299  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error)
24300  __Pyx_GOTREF(__pyx_t_1);
24301  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24302  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24303 
24304  /* "mprans/BoundaryConditions.py":853
24305  * self.v_dirichlet.setConstantBC(0.)
24306  * self.w_dirichlet.setConstantBC(0.)
24307  * self.u_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24308  * if b_or[1] == 1. or b_or[1] == -1.:
24309  * self.u_dirichlet.setConstantBC(0.)
24310  */
24311  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
24312  __Pyx_GOTREF(__pyx_t_2);
24313  __pyx_t_3 = NULL;
24314  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24315  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24316  if (likely(__pyx_t_3)) {
24317  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24318  __Pyx_INCREF(__pyx_t_3);
24319  __Pyx_INCREF(function);
24320  __Pyx_DECREF_SET(__pyx_t_2, function);
24321  }
24322  }
24323  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24324  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24325  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error)
24326  __Pyx_GOTREF(__pyx_t_1);
24327  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24328  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24329 
24330  /* "mprans/BoundaryConditions.py":850
24331  * b_or=self._b_or
24332  * assert b_or is not None, "ERROR: Boundary orientation for Hydrostatic flow outlet is not defined"
24333  * if b_or[0] == 1. or b_or[0] == -1.: # <<<<<<<<<<<<<<
24334  * self.v_dirichlet.setConstantBC(0.)
24335  * self.w_dirichlet.setConstantBC(0.)
24336  */
24337  }
24338 
24339  /* "mprans/BoundaryConditions.py":854
24340  * self.w_dirichlet.setConstantBC(0.)
24341  * self.u_diffusive.setConstantBC(0.)
24342  * if b_or[1] == 1. or b_or[1] == -1.: # <<<<<<<<<<<<<<
24343  * self.u_dirichlet.setConstantBC(0.)
24344  * self.w_dirichlet.setConstantBC(0.)
24345  */
24346  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
24347  __Pyx_GOTREF(__pyx_t_1);
24348  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
24349  __Pyx_GOTREF(__pyx_t_2);
24350  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24351  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
24352  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24353  if (!__pyx_t_5) {
24354  } else {
24355  __pyx_t_4 = __pyx_t_5;
24356  goto __pyx_L9_bool_binop_done;
24357  }
24358  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
24359  __Pyx_GOTREF(__pyx_t_2);
24360  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
24361  __Pyx_GOTREF(__pyx_t_1);
24362  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24363  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
24364  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24365  __pyx_t_4 = __pyx_t_5;
24366  __pyx_L9_bool_binop_done:;
24367  if (__pyx_t_4) {
24368 
24369  /* "mprans/BoundaryConditions.py":855
24370  * self.u_diffusive.setConstantBC(0.)
24371  * if b_or[1] == 1. or b_or[1] == -1.:
24372  * self.u_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24373  * self.w_dirichlet.setConstantBC(0.)
24374  * self.v_diffusive.setConstantBC(0.)
24375  */
24376  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error)
24377  __Pyx_GOTREF(__pyx_t_2);
24378  __pyx_t_3 = NULL;
24379  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24380  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24381  if (likely(__pyx_t_3)) {
24382  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24383  __Pyx_INCREF(__pyx_t_3);
24384  __Pyx_INCREF(function);
24385  __Pyx_DECREF_SET(__pyx_t_2, function);
24386  }
24387  }
24388  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24389  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24390  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
24391  __Pyx_GOTREF(__pyx_t_1);
24392  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24393  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24394 
24395  /* "mprans/BoundaryConditions.py":856
24396  * if b_or[1] == 1. or b_or[1] == -1.:
24397  * self.u_dirichlet.setConstantBC(0.)
24398  * self.w_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24399  * self.v_diffusive.setConstantBC(0.)
24400  * if b_or[2] == 1. or b_or[2] == -1.:
24401  */
24402  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 856, __pyx_L1_error)
24403  __Pyx_GOTREF(__pyx_t_2);
24404  __pyx_t_3 = NULL;
24405  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24406  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24407  if (likely(__pyx_t_3)) {
24408  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24409  __Pyx_INCREF(__pyx_t_3);
24410  __Pyx_INCREF(function);
24411  __Pyx_DECREF_SET(__pyx_t_2, function);
24412  }
24413  }
24414  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24415  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24416  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L1_error)
24417  __Pyx_GOTREF(__pyx_t_1);
24418  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24419  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24420 
24421  /* "mprans/BoundaryConditions.py":857
24422  * self.u_dirichlet.setConstantBC(0.)
24423  * self.w_dirichlet.setConstantBC(0.)
24424  * self.v_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24425  * if b_or[2] == 1. or b_or[2] == -1.:
24426  * self.u_dirichlet.setConstantBC(0.)
24427  */
24428  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 857, __pyx_L1_error)
24429  __Pyx_GOTREF(__pyx_t_2);
24430  __pyx_t_3 = NULL;
24431  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24432  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24433  if (likely(__pyx_t_3)) {
24434  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24435  __Pyx_INCREF(__pyx_t_3);
24436  __Pyx_INCREF(function);
24437  __Pyx_DECREF_SET(__pyx_t_2, function);
24438  }
24439  }
24440  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24441  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24442  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 857, __pyx_L1_error)
24443  __Pyx_GOTREF(__pyx_t_1);
24444  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24445  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24446 
24447  /* "mprans/BoundaryConditions.py":854
24448  * self.w_dirichlet.setConstantBC(0.)
24449  * self.u_diffusive.setConstantBC(0.)
24450  * if b_or[1] == 1. or b_or[1] == -1.: # <<<<<<<<<<<<<<
24451  * self.u_dirichlet.setConstantBC(0.)
24452  * self.w_dirichlet.setConstantBC(0.)
24453  */
24454  }
24455 
24456  /* "mprans/BoundaryConditions.py":858
24457  * self.w_dirichlet.setConstantBC(0.)
24458  * self.v_diffusive.setConstantBC(0.)
24459  * if b_or[2] == 1. or b_or[2] == -1.: # <<<<<<<<<<<<<<
24460  * self.u_dirichlet.setConstantBC(0.)
24461  * self.v_dirichlet.setConstantBC(0.)
24462  */
24463  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L1_error)
24464  __Pyx_GOTREF(__pyx_t_1);
24465  __pyx_t_2 = __Pyx_PyFloat_EqObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error)
24466  __Pyx_GOTREF(__pyx_t_2);
24467  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24468  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 858, __pyx_L1_error)
24469  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24470  if (!__pyx_t_5) {
24471  } else {
24472  __pyx_t_4 = __pyx_t_5;
24473  goto __pyx_L12_bool_binop_done;
24474  }
24475  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_b_or, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error)
24476  __Pyx_GOTREF(__pyx_t_2);
24477  __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_t_2, __pyx_float_neg_1_, -1., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L1_error)
24478  __Pyx_GOTREF(__pyx_t_1);
24479  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24480  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 858, __pyx_L1_error)
24481  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24482  __pyx_t_4 = __pyx_t_5;
24483  __pyx_L12_bool_binop_done:;
24484  if (__pyx_t_4) {
24485 
24486  /* "mprans/BoundaryConditions.py":859
24487  * self.v_diffusive.setConstantBC(0.)
24488  * if b_or[2] == 1. or b_or[2] == -1.:
24489  * self.u_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24490  * self.v_dirichlet.setConstantBC(0.)
24491  * self.w_diffusive.setConstantBC(0.)
24492  */
24493  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->u_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 859, __pyx_L1_error)
24494  __Pyx_GOTREF(__pyx_t_2);
24495  __pyx_t_3 = NULL;
24496  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24497  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24498  if (likely(__pyx_t_3)) {
24499  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24500  __Pyx_INCREF(__pyx_t_3);
24501  __Pyx_INCREF(function);
24502  __Pyx_DECREF_SET(__pyx_t_2, function);
24503  }
24504  }
24505  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24506  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24507  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 859, __pyx_L1_error)
24508  __Pyx_GOTREF(__pyx_t_1);
24509  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24510  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24511 
24512  /* "mprans/BoundaryConditions.py":860
24513  * if b_or[2] == 1. or b_or[2] == -1.:
24514  * self.u_dirichlet.setConstantBC(0.)
24515  * self.v_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24516  * self.w_diffusive.setConstantBC(0.)
24517  * #sediment
24518  */
24519  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->v_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 860, __pyx_L1_error)
24520  __Pyx_GOTREF(__pyx_t_2);
24521  __pyx_t_3 = NULL;
24522  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24523  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24524  if (likely(__pyx_t_3)) {
24525  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24526  __Pyx_INCREF(__pyx_t_3);
24527  __Pyx_INCREF(function);
24528  __Pyx_DECREF_SET(__pyx_t_2, function);
24529  }
24530  }
24531  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24532  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24533  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error)
24534  __Pyx_GOTREF(__pyx_t_1);
24535  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24536  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24537 
24538  /* "mprans/BoundaryConditions.py":861
24539  * self.u_dirichlet.setConstantBC(0.)
24540  * self.v_dirichlet.setConstantBC(0.)
24541  * self.w_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24542  * #sediment
24543  * self.us_advective.setConstantBC(0.)
24544  */
24545  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->w_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 861, __pyx_L1_error)
24546  __Pyx_GOTREF(__pyx_t_2);
24547  __pyx_t_3 = NULL;
24548  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24549  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24550  if (likely(__pyx_t_3)) {
24551  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24552  __Pyx_INCREF(__pyx_t_3);
24553  __Pyx_INCREF(function);
24554  __Pyx_DECREF_SET(__pyx_t_2, function);
24555  }
24556  }
24557  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24558  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24559  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 861, __pyx_L1_error)
24560  __Pyx_GOTREF(__pyx_t_1);
24561  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24562  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24563 
24564  /* "mprans/BoundaryConditions.py":858
24565  * self.w_dirichlet.setConstantBC(0.)
24566  * self.v_diffusive.setConstantBC(0.)
24567  * if b_or[2] == 1. or b_or[2] == -1.: # <<<<<<<<<<<<<<
24568  * self.u_dirichlet.setConstantBC(0.)
24569  * self.v_dirichlet.setConstantBC(0.)
24570  */
24571  }
24572 
24573  /* "mprans/BoundaryConditions.py":863
24574  * self.w_diffusive.setConstantBC(0.)
24575  * #sediment
24576  * self.us_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
24577  * self.vs_advective.setConstantBC(0.)
24578  * self.ws_advective.setConstantBC(0.)
24579  */
24580  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 863, __pyx_L1_error)
24581  __Pyx_GOTREF(__pyx_t_2);
24582  __pyx_t_3 = NULL;
24583  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24584  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24585  if (likely(__pyx_t_3)) {
24586  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24587  __Pyx_INCREF(__pyx_t_3);
24588  __Pyx_INCREF(function);
24589  __Pyx_DECREF_SET(__pyx_t_2, function);
24590  }
24591  }
24592  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24593  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24594  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 863, __pyx_L1_error)
24595  __Pyx_GOTREF(__pyx_t_1);
24596  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24597  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24598 
24599  /* "mprans/BoundaryConditions.py":864
24600  * #sediment
24601  * self.us_advective.setConstantBC(0.)
24602  * self.vs_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
24603  * self.ws_advective.setConstantBC(0.)
24604  * self.vos_advective.setConstantBC(0.)
24605  */
24606  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 864, __pyx_L1_error)
24607  __Pyx_GOTREF(__pyx_t_2);
24608  __pyx_t_3 = NULL;
24609  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24610  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24611  if (likely(__pyx_t_3)) {
24612  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24613  __Pyx_INCREF(__pyx_t_3);
24614  __Pyx_INCREF(function);
24615  __Pyx_DECREF_SET(__pyx_t_2, function);
24616  }
24617  }
24618  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24619  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24620  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 864, __pyx_L1_error)
24621  __Pyx_GOTREF(__pyx_t_1);
24622  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24623  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24624 
24625  /* "mprans/BoundaryConditions.py":865
24626  * self.us_advective.setConstantBC(0.)
24627  * self.vs_advective.setConstantBC(0.)
24628  * self.ws_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
24629  * self.vos_advective.setConstantBC(0.)
24630  * self.us_diffusive.setConstantBC(0.)
24631  */
24632  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ws_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 865, __pyx_L1_error)
24633  __Pyx_GOTREF(__pyx_t_2);
24634  __pyx_t_3 = NULL;
24635  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24636  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24637  if (likely(__pyx_t_3)) {
24638  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24639  __Pyx_INCREF(__pyx_t_3);
24640  __Pyx_INCREF(function);
24641  __Pyx_DECREF_SET(__pyx_t_2, function);
24642  }
24643  }
24644  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24645  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24646  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 865, __pyx_L1_error)
24647  __Pyx_GOTREF(__pyx_t_1);
24648  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24649  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24650 
24651  /* "mprans/BoundaryConditions.py":866
24652  * self.vs_advective.setConstantBC(0.)
24653  * self.ws_advective.setConstantBC(0.)
24654  * self.vos_advective.setConstantBC(0.) # <<<<<<<<<<<<<<
24655  * self.us_diffusive.setConstantBC(0.)
24656  * self.vs_diffusive.setConstantBC(0.)
24657  */
24658  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vos_advective), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
24659  __Pyx_GOTREF(__pyx_t_2);
24660  __pyx_t_3 = NULL;
24661  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24662  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24663  if (likely(__pyx_t_3)) {
24664  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24665  __Pyx_INCREF(__pyx_t_3);
24666  __Pyx_INCREF(function);
24667  __Pyx_DECREF_SET(__pyx_t_2, function);
24668  }
24669  }
24670  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24671  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24672  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error)
24673  __Pyx_GOTREF(__pyx_t_1);
24674  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24675  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24676 
24677  /* "mprans/BoundaryConditions.py":867
24678  * self.ws_advective.setConstantBC(0.)
24679  * self.vos_advective.setConstantBC(0.)
24680  * self.us_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24681  * self.vs_diffusive.setConstantBC(0.)
24682  * #end sediment
24683  */
24684  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->us_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 867, __pyx_L1_error)
24685  __Pyx_GOTREF(__pyx_t_2);
24686  __pyx_t_3 = NULL;
24687  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24688  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24689  if (likely(__pyx_t_3)) {
24690  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24691  __Pyx_INCREF(__pyx_t_3);
24692  __Pyx_INCREF(function);
24693  __Pyx_DECREF_SET(__pyx_t_2, function);
24694  }
24695  }
24696  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24697  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24698  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 867, __pyx_L1_error)
24699  __Pyx_GOTREF(__pyx_t_1);
24700  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24701  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24702 
24703  /* "mprans/BoundaryConditions.py":868
24704  * self.vos_advective.setConstantBC(0.)
24705  * self.us_diffusive.setConstantBC(0.)
24706  * self.vs_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24707  * #end sediment
24708  * self.p_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24709  */
24710  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->vs_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
24711  __Pyx_GOTREF(__pyx_t_2);
24712  __pyx_t_3 = NULL;
24713  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24714  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24715  if (likely(__pyx_t_3)) {
24716  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24717  __Pyx_INCREF(__pyx_t_3);
24718  __Pyx_INCREF(function);
24719  __Pyx_DECREF_SET(__pyx_t_2, function);
24720  }
24721  }
24722  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24723  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24724  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
24725  __Pyx_GOTREF(__pyx_t_1);
24726  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24727  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24728 
24729  /* "mprans/BoundaryConditions.py":870
24730  * self.vs_diffusive.setConstantBC(0.)
24731  * #end sediment
24732  * self.p_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet # <<<<<<<<<<<<<<
24733  * self.pInit_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24734  * self.pInc_dirichlet.setConstantBC(0.)
24735  */
24736  __Pyx_INCREF(__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet);
24737  __Pyx_GIVEREF(__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet);
24738  __Pyx_GOTREF(__pyx_v_self->p_dirichlet->uOfXT);
24739  __Pyx_DECREF(__pyx_v_self->p_dirichlet->uOfXT);
24740  __pyx_v_self->p_dirichlet->uOfXT = __pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet;
24741 
24742  /* "mprans/BoundaryConditions.py":871
24743  * #end sediment
24744  * self.p_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24745  * self.pInit_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet # <<<<<<<<<<<<<<
24746  * self.pInc_dirichlet.setConstantBC(0.)
24747  * self.phi_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_phi_dirichlet
24748  */
24749  __Pyx_INCREF(__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet);
24750  __Pyx_GIVEREF(__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet);
24751  __Pyx_GOTREF(__pyx_v_self->pInit_dirichlet->uOfXT);
24752  __Pyx_DECREF(__pyx_v_self->pInit_dirichlet->uOfXT);
24753  __pyx_v_self->pInit_dirichlet->uOfXT = __pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet;
24754 
24755  /* "mprans/BoundaryConditions.py":872
24756  * self.p_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24757  * self.pInit_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24758  * self.pInc_dirichlet.setConstantBC(0.) # <<<<<<<<<<<<<<
24759  * self.phi_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_phi_dirichlet
24760  * self.vof_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_vof_dirichlet
24761  */
24762  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pInc_dirichlet), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
24763  __Pyx_GOTREF(__pyx_t_2);
24764  __pyx_t_3 = NULL;
24765  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24766  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24767  if (likely(__pyx_t_3)) {
24768  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24769  __Pyx_INCREF(__pyx_t_3);
24770  __Pyx_INCREF(function);
24771  __Pyx_DECREF_SET(__pyx_t_2, function);
24772  }
24773  }
24774  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24775  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24776  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L1_error)
24777  __Pyx_GOTREF(__pyx_t_1);
24778  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24779  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24780 
24781  /* "mprans/BoundaryConditions.py":873
24782  * self.pInit_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_p_dirichlet
24783  * self.pInc_dirichlet.setConstantBC(0.)
24784  * self.phi_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_phi_dirichlet # <<<<<<<<<<<<<<
24785  * self.vof_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_vof_dirichlet
24786  * self.k_diffusive.setConstantBC(0.)
24787  */
24788  __Pyx_INCREF(__pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet);
24789  __Pyx_GIVEREF(__pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet);
24790  __Pyx_GOTREF(__pyx_v_self->phi_dirichlet->uOfXT);
24791  __Pyx_DECREF(__pyx_v_self->phi_dirichlet->uOfXT);
24792  __pyx_v_self->phi_dirichlet->uOfXT = __pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet;
24793 
24794  /* "mprans/BoundaryConditions.py":874
24795  * self.pInc_dirichlet.setConstantBC(0.)
24796  * self.phi_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_phi_dirichlet
24797  * self.vof_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_vof_dirichlet # <<<<<<<<<<<<<<
24798  * self.k_diffusive.setConstantBC(0.)
24799  * self.dissipation_diffusive.setConstantBC(0.)
24800  */
24801  __Pyx_INCREF(__pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet);
24802  __Pyx_GIVEREF(__pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet);
24803  __Pyx_GOTREF(__pyx_v_self->vof_dirichlet->uOfXT);
24804  __Pyx_DECREF(__pyx_v_self->vof_dirichlet->uOfXT);
24805  __pyx_v_self->vof_dirichlet->uOfXT = __pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet;
24806 
24807  /* "mprans/BoundaryConditions.py":875
24808  * self.phi_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_phi_dirichlet
24809  * self.vof_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_vof_dirichlet
24810  * self.k_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24811  * self.dissipation_diffusive.setConstantBC(0.)
24812  * if U is not None:
24813  */
24814  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->k_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 875, __pyx_L1_error)
24815  __Pyx_GOTREF(__pyx_t_2);
24816  __pyx_t_3 = NULL;
24817  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24818  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24819  if (likely(__pyx_t_3)) {
24820  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24821  __Pyx_INCREF(__pyx_t_3);
24822  __Pyx_INCREF(function);
24823  __Pyx_DECREF_SET(__pyx_t_2, function);
24824  }
24825  }
24826  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24827  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24828  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 875, __pyx_L1_error)
24829  __Pyx_GOTREF(__pyx_t_1);
24830  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24831  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24832 
24833  /* "mprans/BoundaryConditions.py":876
24834  * self.vof_dirichlet.uOfXT = hydrostaticPressureOutletWithDepth_vof_dirichlet
24835  * self.k_diffusive.setConstantBC(0.)
24836  * self.dissipation_diffusive.setConstantBC(0.) # <<<<<<<<<<<<<<
24837  * if U is not None:
24838  * def get_inlet_ux_dirichlet(i):
24839  */
24840  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dissipation_diffusive), __pyx_n_s_setConstantBC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error)
24841  __Pyx_GOTREF(__pyx_t_2);
24842  __pyx_t_3 = NULL;
24843  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
24844  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24845  if (likely(__pyx_t_3)) {
24846  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24847  __Pyx_INCREF(__pyx_t_3);
24848  __Pyx_INCREF(function);
24849  __Pyx_DECREF_SET(__pyx_t_2, function);
24850  }
24851  }
24852  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_float_0_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_float_0_);
24853  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24854  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error)
24855  __Pyx_GOTREF(__pyx_t_1);
24856  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24857  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24858 
24859  /* "mprans/BoundaryConditions.py":877
24860  * self.k_diffusive.setConstantBC(0.)
24861  * self.dissipation_diffusive.setConstantBC(0.)
24862  * if U is not None: # <<<<<<<<<<<<<<
24863  * def get_inlet_ux_dirichlet(i):
24864  * def ux_dirichlet(x, t, n=None):
24865  */
24866  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_U != Py_None);
24867  __pyx_t_5 = (__pyx_t_4 != 0);
24868  if (__pyx_t_5) {
24869 
24870  /* "mprans/BoundaryConditions.py":878
24871  * self.dissipation_diffusive.setConstantBC(0.)
24872  * if U is not None:
24873  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
24874  * def ux_dirichlet(x, t, n=None):
24875  * phi = x[vert_axis] - seaLevel
24876  */
24877  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_11get_inlet_ux_dirichlet, 0, __pyx_n_s_setHydrostaticPressureOutletWith_7, ((PyObject*)__pyx_cur_scope), __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 878, __pyx_L1_error)
24878  __Pyx_GOTREF(__pyx_t_1);
24879  __pyx_v_get_inlet_ux_dirichlet = __pyx_t_1;
24880  __pyx_t_1 = 0;
24881 
24882  /* "mprans/BoundaryConditions.py":890
24883  * return ux_dirichlet
24884  *
24885  * if Uwind is None: # <<<<<<<<<<<<<<
24886  * Uwind = np.zeros(3)
24887  * U = np.array(U)
24888  */
24889  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_Uwind == Py_None);
24890  __pyx_t_4 = (__pyx_t_5 != 0);
24891  if (__pyx_t_4) {
24892 
24893  /* "mprans/BoundaryConditions.py":891
24894  *
24895  * if Uwind is None:
24896  * Uwind = np.zeros(3) # <<<<<<<<<<<<<<
24897  * U = np.array(U)
24898  * Uwind = np.array(Uwind)
24899  */
24900  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
24901  __Pyx_GOTREF(__pyx_t_2);
24902  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error)
24903  __Pyx_GOTREF(__pyx_t_3);
24904  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24905  __pyx_t_2 = NULL;
24906  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
24907  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
24908  if (likely(__pyx_t_2)) {
24909  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
24910  __Pyx_INCREF(__pyx_t_2);
24911  __Pyx_INCREF(function);
24912  __Pyx_DECREF_SET(__pyx_t_3, function);
24913  }
24914  }
24915  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_3);
24916  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
24917  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error)
24918  __Pyx_GOTREF(__pyx_t_1);
24919  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24920  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_Uwind);
24921  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_Uwind, __pyx_t_1);
24922  __Pyx_GIVEREF(__pyx_t_1);
24923  __pyx_t_1 = 0;
24924 
24925  /* "mprans/BoundaryConditions.py":890
24926  * return ux_dirichlet
24927  *
24928  * if Uwind is None: # <<<<<<<<<<<<<<
24929  * Uwind = np.zeros(3)
24930  * U = np.array(U)
24931  */
24932  }
24933 
24934  /* "mprans/BoundaryConditions.py":892
24935  * if Uwind is None:
24936  * Uwind = np.zeros(3)
24937  * U = np.array(U) # <<<<<<<<<<<<<<
24938  * Uwind = np.array(Uwind)
24939  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
24940  */
24941  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 892, __pyx_L1_error)
24942  __Pyx_GOTREF(__pyx_t_3);
24943  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error)
24944  __Pyx_GOTREF(__pyx_t_2);
24945  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24946  __pyx_t_3 = NULL;
24947  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
24948  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24949  if (likely(__pyx_t_3)) {
24950  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24951  __Pyx_INCREF(__pyx_t_3);
24952  __Pyx_INCREF(function);
24953  __Pyx_DECREF_SET(__pyx_t_2, function);
24954  }
24955  }
24956  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_U) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_U);
24957  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24958  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 892, __pyx_L1_error)
24959  __Pyx_GOTREF(__pyx_t_1);
24960  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24961  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_U);
24962  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_U, __pyx_t_1);
24963  __Pyx_GIVEREF(__pyx_t_1);
24964  __pyx_t_1 = 0;
24965 
24966  /* "mprans/BoundaryConditions.py":893
24967  * Uwind = np.zeros(3)
24968  * U = np.array(U)
24969  * Uwind = np.array(Uwind) # <<<<<<<<<<<<<<
24970  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
24971  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
24972  */
24973  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 893, __pyx_L1_error)
24974  __Pyx_GOTREF(__pyx_t_2);
24975  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 893, __pyx_L1_error)
24976  __Pyx_GOTREF(__pyx_t_3);
24977  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24978  __pyx_t_2 = NULL;
24979  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
24980  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
24981  if (likely(__pyx_t_2)) {
24982  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
24983  __Pyx_INCREF(__pyx_t_2);
24984  __Pyx_INCREF(function);
24985  __Pyx_DECREF_SET(__pyx_t_3, function);
24986  }
24987  }
24988  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_Uwind) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_Uwind);
24989  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
24990  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 893, __pyx_L1_error)
24991  __Pyx_GOTREF(__pyx_t_1);
24992  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24993  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_Uwind);
24994  __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_Uwind, __pyx_t_1);
24995  __Pyx_GIVEREF(__pyx_t_1);
24996  __pyx_t_1 = 0;
24997 
24998  /* "mprans/BoundaryConditions.py":894
24999  * U = np.array(U)
25000  * Uwind = np.array(Uwind)
25001  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0) # <<<<<<<<<<<<<<
25002  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
25003  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
25004  */
25005  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 894, __pyx_L1_error)
25006  __Pyx_GOTREF(__pyx_t_1);
25007  __Pyx_GIVEREF(__pyx_t_1);
25008  __Pyx_GOTREF(__pyx_v_self->u_dirichlet->uOfXT);
25009  __Pyx_DECREF(__pyx_v_self->u_dirichlet->uOfXT);
25010  __pyx_v_self->u_dirichlet->uOfXT = __pyx_t_1;
25011  __pyx_t_1 = 0;
25012 
25013  /* "mprans/BoundaryConditions.py":895
25014  * Uwind = np.array(Uwind)
25015  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
25016  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1) # <<<<<<<<<<<<<<
25017  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
25018  * self.u_diffusive.resetBC()
25019  */
25020  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 895, __pyx_L1_error)
25021  __Pyx_GOTREF(__pyx_t_1);
25022  __Pyx_GIVEREF(__pyx_t_1);
25023  __Pyx_GOTREF(__pyx_v_self->v_dirichlet->uOfXT);
25024  __Pyx_DECREF(__pyx_v_self->v_dirichlet->uOfXT);
25025  __pyx_v_self->v_dirichlet->uOfXT = __pyx_t_1;
25026  __pyx_t_1 = 0;
25027 
25028  /* "mprans/BoundaryConditions.py":896
25029  * self.u_dirichlet.uOfXT = get_inlet_ux_dirichlet(0)
25030  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
25031  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2) # <<<<<<<<<<<<<<
25032  * self.u_diffusive.resetBC()
25033  *
25034  */
25035  __pyx_t_1 = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_37setHydrostaticPressureOutletWithDepth_10get_inlet_ux_dirichlet(__pyx_v_get_inlet_ux_dirichlet, __pyx_int_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 896, __pyx_L1_error)
25036  __Pyx_GOTREF(__pyx_t_1);
25037  __Pyx_GIVEREF(__pyx_t_1);
25038  __Pyx_GOTREF(__pyx_v_self->w_dirichlet->uOfXT);
25039  __Pyx_DECREF(__pyx_v_self->w_dirichlet->uOfXT);
25040  __pyx_v_self->w_dirichlet->uOfXT = __pyx_t_1;
25041  __pyx_t_1 = 0;
25042 
25043  /* "mprans/BoundaryConditions.py":897
25044  * self.v_dirichlet.uOfXT = get_inlet_ux_dirichlet(1)
25045  * self.w_dirichlet.uOfXT = get_inlet_ux_dirichlet(2)
25046  * self.u_diffusive.resetBC() # <<<<<<<<<<<<<<
25047  *
25048  * if kInflow is not None:
25049  */
25050  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->u_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->u_diffusive, 0);
25051 
25052  /* "mprans/BoundaryConditions.py":877
25053  * self.k_diffusive.setConstantBC(0.)
25054  * self.dissipation_diffusive.setConstantBC(0.)
25055  * if U is not None: # <<<<<<<<<<<<<<
25056  * def get_inlet_ux_dirichlet(i):
25057  * def ux_dirichlet(x, t, n=None):
25058  */
25059  }
25060 
25061  /* "mprans/BoundaryConditions.py":899
25062  * self.u_diffusive.resetBC()
25063  *
25064  * if kInflow is not None: # <<<<<<<<<<<<<<
25065  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
25066  * self.k_advective.resetBC()
25067  */
25068  __pyx_t_4 = (__pyx_cur_scope->__pyx_v_kInflow != Py_None);
25069  __pyx_t_5 = (__pyx_t_4 != 0);
25070  if (__pyx_t_5) {
25071 
25072  /* "mprans/BoundaryConditions.py":900
25073  *
25074  * if kInflow is not None:
25075  * self.k_dirichlet.uOfXT = inlet_k_dirichlet # <<<<<<<<<<<<<<
25076  * self.k_advective.resetBC()
25077  * self.k_diffusive.resetBC()
25078  */
25079  __Pyx_INCREF(__pyx_v_inlet_k_dirichlet);
25080  __Pyx_GIVEREF(__pyx_v_inlet_k_dirichlet);
25081  __Pyx_GOTREF(__pyx_v_self->k_dirichlet->uOfXT);
25082  __Pyx_DECREF(__pyx_v_self->k_dirichlet->uOfXT);
25083  __pyx_v_self->k_dirichlet->uOfXT = __pyx_v_inlet_k_dirichlet;
25084 
25085  /* "mprans/BoundaryConditions.py":901
25086  * if kInflow is not None:
25087  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
25088  * self.k_advective.resetBC() # <<<<<<<<<<<<<<
25089  * self.k_diffusive.resetBC()
25090  * if dissipationInflow is not None:
25091  */
25092  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_advective->__pyx_vtab)->resetBC(__pyx_v_self->k_advective, 0);
25093 
25094  /* "mprans/BoundaryConditions.py":902
25095  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
25096  * self.k_advective.resetBC()
25097  * self.k_diffusive.resetBC() # <<<<<<<<<<<<<<
25098  * if dissipationInflow is not None:
25099  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
25100  */
25101  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->k_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->k_diffusive, 0);
25102 
25103  /* "mprans/BoundaryConditions.py":899
25104  * self.u_diffusive.resetBC()
25105  *
25106  * if kInflow is not None: # <<<<<<<<<<<<<<
25107  * self.k_dirichlet.uOfXT = inlet_k_dirichlet
25108  * self.k_advective.resetBC()
25109  */
25110  }
25111 
25112  /* "mprans/BoundaryConditions.py":903
25113  * self.k_advective.resetBC()
25114  * self.k_diffusive.resetBC()
25115  * if dissipationInflow is not None: # <<<<<<<<<<<<<<
25116  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
25117  * self.dissipation_advective.resetBC()
25118  */
25119  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_dissipationInflow != Py_None);
25120  __pyx_t_4 = (__pyx_t_5 != 0);
25121  if (__pyx_t_4) {
25122 
25123  /* "mprans/BoundaryConditions.py":904
25124  * self.k_diffusive.resetBC()
25125  * if dissipationInflow is not None:
25126  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet # <<<<<<<<<<<<<<
25127  * self.dissipation_advective.resetBC()
25128  * self.dissipation_diffusive.resetBC()
25129  */
25130  __Pyx_INCREF(__pyx_v_inlet_dissipation_dirichlet);
25131  __Pyx_GIVEREF(__pyx_v_inlet_dissipation_dirichlet);
25132  __Pyx_GOTREF(__pyx_v_self->dissipation_dirichlet->uOfXT);
25133  __Pyx_DECREF(__pyx_v_self->dissipation_dirichlet->uOfXT);
25134  __pyx_v_self->dissipation_dirichlet->uOfXT = __pyx_v_inlet_dissipation_dirichlet;
25135 
25136  /* "mprans/BoundaryConditions.py":905
25137  * if dissipationInflow is not None:
25138  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
25139  * self.dissipation_advective.resetBC() # <<<<<<<<<<<<<<
25140  * self.dissipation_diffusive.resetBC()
25141  *
25142  */
25143  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_advective->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_advective, 0);
25144 
25145  /* "mprans/BoundaryConditions.py":906
25146  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
25147  * self.dissipation_advective.resetBC()
25148  * self.dissipation_diffusive.resetBC() # <<<<<<<<<<<<<<
25149  *
25150  * # for regions
25151  */
25152  ((struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_v_self->dissipation_diffusive->__pyx_vtab)->resetBC(__pyx_v_self->dissipation_diffusive, 0);
25153 
25154  /* "mprans/BoundaryConditions.py":903
25155  * self.k_advective.resetBC()
25156  * self.k_diffusive.resetBC()
25157  * if dissipationInflow is not None: # <<<<<<<<<<<<<<
25158  * self.dissipation_dirichlet.uOfXT = inlet_dissipation_dirichlet
25159  * self.dissipation_advective.resetBC()
25160  */
25161  }
25162 
25163  /* "mprans/BoundaryConditions.py":774
25164  * self.dissipation_diffusive.resetBC()
25165  *
25166  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
25167  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
25168  * pRef=0.0, vert_axis=None,
25169  */
25170 
25171  /* function exit code */
25172  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25173  goto __pyx_L0;
25174  __pyx_L1_error:;
25175  __Pyx_XDECREF(__pyx_t_1);
25176  __Pyx_XDECREF(__pyx_t_2);
25177  __Pyx_XDECREF(__pyx_t_3);
25178  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.setHydrostaticPressureOutletWithDepth", __pyx_clineno, __pyx_lineno, __pyx_filename);
25179  __pyx_r = NULL;
25180  __pyx_L0:;
25181  __Pyx_XDECREF(__pyx_v_hydrostaticPressureOutletWithDepth_p_dirichlet);
25182  __Pyx_XDECREF(__pyx_v_hydrostaticPressureOutletWithDepth_phi_dirichlet);
25183  __Pyx_XDECREF(__pyx_v_hydrostaticPressureOutletWithDepth_vof_dirichlet);
25184  __Pyx_XDECREF(__pyx_v_inlet_k_dirichlet);
25185  __Pyx_XDECREF(__pyx_v_inlet_dissipation_dirichlet);
25186  __Pyx_XDECREF(__pyx_v_b_or);
25187  __Pyx_XDECREF(__pyx_v_get_inlet_ux_dirichlet);
25188  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
25189  __Pyx_XGIVEREF(__pyx_r);
25190  __Pyx_TraceReturn(__pyx_r, 0);
25191  __Pyx_RefNannyFinishContext();
25192  return __pyx_r;
25193 }
25194 
25195 /* "mprans/BoundaryConditions.pxd":27
25196  * cdef public:
25197  * # dirichlet
25198  * cdef BoundaryCondition p_dirichlet # <<<<<<<<<<<<<<
25199  * cdef BoundaryCondition u_dirichlet
25200  * cdef BoundaryCondition v_dirichlet
25201  */
25202 
25203 /* Python wrapper */
25204 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25205 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_1__get__(PyObject *__pyx_v_self) {
25206  PyObject *__pyx_r = 0;
25207  __Pyx_RefNannyDeclarations
25208  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25209  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25210 
25211  /* function exit code */
25212  __Pyx_RefNannyFinishContext();
25213  return __pyx_r;
25214 }
25215 
25216 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25217  PyObject *__pyx_r = NULL;
25218  __Pyx_TraceDeclarations
25219  __Pyx_RefNannyDeclarations
25220  int __pyx_lineno = 0;
25221  const char *__pyx_filename = NULL;
25222  int __pyx_clineno = 0;
25223  __Pyx_RefNannySetupContext("__get__", 0);
25224  __Pyx_TraceCall("__get__", __pyx_f[2], 27, 0, __PYX_ERR(2, 27, __pyx_L1_error));
25225  __Pyx_XDECREF(__pyx_r);
25226  __Pyx_INCREF(((PyObject *)__pyx_v_self->p_dirichlet));
25227  __pyx_r = ((PyObject *)__pyx_v_self->p_dirichlet);
25228  goto __pyx_L0;
25229 
25230  /* function exit code */
25231  __pyx_L1_error:;
25232  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25233  __pyx_r = NULL;
25234  __pyx_L0:;
25235  __Pyx_XGIVEREF(__pyx_r);
25236  __Pyx_TraceReturn(__pyx_r, 0);
25237  __Pyx_RefNannyFinishContext();
25238  return __pyx_r;
25239 }
25240 
25241 /* Python wrapper */
25242 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25243 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25244  int __pyx_r;
25245  __Pyx_RefNannyDeclarations
25246  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25247  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25248 
25249  /* function exit code */
25250  __Pyx_RefNannyFinishContext();
25251  return __pyx_r;
25252 }
25253 
25254 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25255  int __pyx_r;
25256  __Pyx_TraceDeclarations
25257  __Pyx_RefNannyDeclarations
25258  PyObject *__pyx_t_1 = NULL;
25259  int __pyx_lineno = 0;
25260  const char *__pyx_filename = NULL;
25261  int __pyx_clineno = 0;
25262  __Pyx_RefNannySetupContext("__set__", 0);
25263  __Pyx_TraceCall("__set__", __pyx_f[2], 27, 0, __PYX_ERR(2, 27, __pyx_L1_error));
25264  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 27, __pyx_L1_error)
25265  __pyx_t_1 = __pyx_v_value;
25266  __Pyx_INCREF(__pyx_t_1);
25267  __Pyx_GIVEREF(__pyx_t_1);
25268  __Pyx_GOTREF(__pyx_v_self->p_dirichlet);
25269  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_dirichlet));
25270  __pyx_v_self->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25271  __pyx_t_1 = 0;
25272 
25273  /* function exit code */
25274  __pyx_r = 0;
25275  goto __pyx_L0;
25276  __pyx_L1_error:;
25277  __Pyx_XDECREF(__pyx_t_1);
25278  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25279  __pyx_r = -1;
25280  __pyx_L0:;
25281  __Pyx_TraceReturn(Py_None, 0);
25282  __Pyx_RefNannyFinishContext();
25283  return __pyx_r;
25284 }
25285 
25286 /* Python wrapper */
25287 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25288 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_5__del__(PyObject *__pyx_v_self) {
25289  int __pyx_r;
25290  __Pyx_RefNannyDeclarations
25291  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25292  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25293 
25294  /* function exit code */
25295  __Pyx_RefNannyFinishContext();
25296  return __pyx_r;
25297 }
25298 
25299 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25300  int __pyx_r;
25301  __Pyx_TraceDeclarations
25302  __Pyx_RefNannyDeclarations
25303  int __pyx_lineno = 0;
25304  const char *__pyx_filename = NULL;
25305  int __pyx_clineno = 0;
25306  __Pyx_RefNannySetupContext("__del__", 0);
25307  __Pyx_TraceCall("__del__", __pyx_f[2], 27, 0, __PYX_ERR(2, 27, __pyx_L1_error));
25308  __Pyx_INCREF(Py_None);
25309  __Pyx_GIVEREF(Py_None);
25310  __Pyx_GOTREF(__pyx_v_self->p_dirichlet);
25311  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_dirichlet));
25312  __pyx_v_self->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25313 
25314  /* function exit code */
25315  __pyx_r = 0;
25316  goto __pyx_L0;
25317  __pyx_L1_error:;
25318  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25319  __pyx_r = -1;
25320  __pyx_L0:;
25321  __Pyx_TraceReturn(Py_None, 0);
25322  __Pyx_RefNannyFinishContext();
25323  return __pyx_r;
25324 }
25325 
25326 /* "mprans/BoundaryConditions.pxd":28
25327  * # dirichlet
25328  * cdef BoundaryCondition p_dirichlet
25329  * cdef BoundaryCondition u_dirichlet # <<<<<<<<<<<<<<
25330  * cdef BoundaryCondition v_dirichlet
25331  * cdef BoundaryCondition w_dirichlet
25332  */
25333 
25334 /* Python wrapper */
25335 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25336 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_1__get__(PyObject *__pyx_v_self) {
25337  PyObject *__pyx_r = 0;
25338  __Pyx_RefNannyDeclarations
25339  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25340  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25341 
25342  /* function exit code */
25343  __Pyx_RefNannyFinishContext();
25344  return __pyx_r;
25345 }
25346 
25347 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25348  PyObject *__pyx_r = NULL;
25349  __Pyx_TraceDeclarations
25350  __Pyx_RefNannyDeclarations
25351  int __pyx_lineno = 0;
25352  const char *__pyx_filename = NULL;
25353  int __pyx_clineno = 0;
25354  __Pyx_RefNannySetupContext("__get__", 0);
25355  __Pyx_TraceCall("__get__", __pyx_f[2], 28, 0, __PYX_ERR(2, 28, __pyx_L1_error));
25356  __Pyx_XDECREF(__pyx_r);
25357  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_dirichlet));
25358  __pyx_r = ((PyObject *)__pyx_v_self->u_dirichlet);
25359  goto __pyx_L0;
25360 
25361  /* function exit code */
25362  __pyx_L1_error:;
25363  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25364  __pyx_r = NULL;
25365  __pyx_L0:;
25366  __Pyx_XGIVEREF(__pyx_r);
25367  __Pyx_TraceReturn(__pyx_r, 0);
25368  __Pyx_RefNannyFinishContext();
25369  return __pyx_r;
25370 }
25371 
25372 /* Python wrapper */
25373 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25374 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25375  int __pyx_r;
25376  __Pyx_RefNannyDeclarations
25377  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25378  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25379 
25380  /* function exit code */
25381  __Pyx_RefNannyFinishContext();
25382  return __pyx_r;
25383 }
25384 
25385 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25386  int __pyx_r;
25387  __Pyx_TraceDeclarations
25388  __Pyx_RefNannyDeclarations
25389  PyObject *__pyx_t_1 = NULL;
25390  int __pyx_lineno = 0;
25391  const char *__pyx_filename = NULL;
25392  int __pyx_clineno = 0;
25393  __Pyx_RefNannySetupContext("__set__", 0);
25394  __Pyx_TraceCall("__set__", __pyx_f[2], 28, 0, __PYX_ERR(2, 28, __pyx_L1_error));
25395  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 28, __pyx_L1_error)
25396  __pyx_t_1 = __pyx_v_value;
25397  __Pyx_INCREF(__pyx_t_1);
25398  __Pyx_GIVEREF(__pyx_t_1);
25399  __Pyx_GOTREF(__pyx_v_self->u_dirichlet);
25400  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_dirichlet));
25401  __pyx_v_self->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25402  __pyx_t_1 = 0;
25403 
25404  /* function exit code */
25405  __pyx_r = 0;
25406  goto __pyx_L0;
25407  __pyx_L1_error:;
25408  __Pyx_XDECREF(__pyx_t_1);
25409  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25410  __pyx_r = -1;
25411  __pyx_L0:;
25412  __Pyx_TraceReturn(Py_None, 0);
25413  __Pyx_RefNannyFinishContext();
25414  return __pyx_r;
25415 }
25416 
25417 /* Python wrapper */
25418 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25419 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_5__del__(PyObject *__pyx_v_self) {
25420  int __pyx_r;
25421  __Pyx_RefNannyDeclarations
25422  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25423  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25424 
25425  /* function exit code */
25426  __Pyx_RefNannyFinishContext();
25427  return __pyx_r;
25428 }
25429 
25430 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25431  int __pyx_r;
25432  __Pyx_TraceDeclarations
25433  __Pyx_RefNannyDeclarations
25434  int __pyx_lineno = 0;
25435  const char *__pyx_filename = NULL;
25436  int __pyx_clineno = 0;
25437  __Pyx_RefNannySetupContext("__del__", 0);
25438  __Pyx_TraceCall("__del__", __pyx_f[2], 28, 0, __PYX_ERR(2, 28, __pyx_L1_error));
25439  __Pyx_INCREF(Py_None);
25440  __Pyx_GIVEREF(Py_None);
25441  __Pyx_GOTREF(__pyx_v_self->u_dirichlet);
25442  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_dirichlet));
25443  __pyx_v_self->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25444 
25445  /* function exit code */
25446  __pyx_r = 0;
25447  goto __pyx_L0;
25448  __pyx_L1_error:;
25449  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25450  __pyx_r = -1;
25451  __pyx_L0:;
25452  __Pyx_TraceReturn(Py_None, 0);
25453  __Pyx_RefNannyFinishContext();
25454  return __pyx_r;
25455 }
25456 
25457 /* "mprans/BoundaryConditions.pxd":29
25458  * cdef BoundaryCondition p_dirichlet
25459  * cdef BoundaryCondition u_dirichlet
25460  * cdef BoundaryCondition v_dirichlet # <<<<<<<<<<<<<<
25461  * cdef BoundaryCondition w_dirichlet
25462  * cdef BoundaryCondition phi_dirichlet
25463  */
25464 
25465 /* Python wrapper */
25466 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25467 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_1__get__(PyObject *__pyx_v_self) {
25468  PyObject *__pyx_r = 0;
25469  __Pyx_RefNannyDeclarations
25470  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25471  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25472 
25473  /* function exit code */
25474  __Pyx_RefNannyFinishContext();
25475  return __pyx_r;
25476 }
25477 
25478 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25479  PyObject *__pyx_r = NULL;
25480  __Pyx_TraceDeclarations
25481  __Pyx_RefNannyDeclarations
25482  int __pyx_lineno = 0;
25483  const char *__pyx_filename = NULL;
25484  int __pyx_clineno = 0;
25485  __Pyx_RefNannySetupContext("__get__", 0);
25486  __Pyx_TraceCall("__get__", __pyx_f[2], 29, 0, __PYX_ERR(2, 29, __pyx_L1_error));
25487  __Pyx_XDECREF(__pyx_r);
25488  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_dirichlet));
25489  __pyx_r = ((PyObject *)__pyx_v_self->v_dirichlet);
25490  goto __pyx_L0;
25491 
25492  /* function exit code */
25493  __pyx_L1_error:;
25494  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25495  __pyx_r = NULL;
25496  __pyx_L0:;
25497  __Pyx_XGIVEREF(__pyx_r);
25498  __Pyx_TraceReturn(__pyx_r, 0);
25499  __Pyx_RefNannyFinishContext();
25500  return __pyx_r;
25501 }
25502 
25503 /* Python wrapper */
25504 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25505 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25506  int __pyx_r;
25507  __Pyx_RefNannyDeclarations
25508  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25509  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25510 
25511  /* function exit code */
25512  __Pyx_RefNannyFinishContext();
25513  return __pyx_r;
25514 }
25515 
25516 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25517  int __pyx_r;
25518  __Pyx_TraceDeclarations
25519  __Pyx_RefNannyDeclarations
25520  PyObject *__pyx_t_1 = NULL;
25521  int __pyx_lineno = 0;
25522  const char *__pyx_filename = NULL;
25523  int __pyx_clineno = 0;
25524  __Pyx_RefNannySetupContext("__set__", 0);
25525  __Pyx_TraceCall("__set__", __pyx_f[2], 29, 0, __PYX_ERR(2, 29, __pyx_L1_error));
25526  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 29, __pyx_L1_error)
25527  __pyx_t_1 = __pyx_v_value;
25528  __Pyx_INCREF(__pyx_t_1);
25529  __Pyx_GIVEREF(__pyx_t_1);
25530  __Pyx_GOTREF(__pyx_v_self->v_dirichlet);
25531  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_dirichlet));
25532  __pyx_v_self->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25533  __pyx_t_1 = 0;
25534 
25535  /* function exit code */
25536  __pyx_r = 0;
25537  goto __pyx_L0;
25538  __pyx_L1_error:;
25539  __Pyx_XDECREF(__pyx_t_1);
25540  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25541  __pyx_r = -1;
25542  __pyx_L0:;
25543  __Pyx_TraceReturn(Py_None, 0);
25544  __Pyx_RefNannyFinishContext();
25545  return __pyx_r;
25546 }
25547 
25548 /* Python wrapper */
25549 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25550 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_5__del__(PyObject *__pyx_v_self) {
25551  int __pyx_r;
25552  __Pyx_RefNannyDeclarations
25553  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25554  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25555 
25556  /* function exit code */
25557  __Pyx_RefNannyFinishContext();
25558  return __pyx_r;
25559 }
25560 
25561 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25562  int __pyx_r;
25563  __Pyx_TraceDeclarations
25564  __Pyx_RefNannyDeclarations
25565  int __pyx_lineno = 0;
25566  const char *__pyx_filename = NULL;
25567  int __pyx_clineno = 0;
25568  __Pyx_RefNannySetupContext("__del__", 0);
25569  __Pyx_TraceCall("__del__", __pyx_f[2], 29, 0, __PYX_ERR(2, 29, __pyx_L1_error));
25570  __Pyx_INCREF(Py_None);
25571  __Pyx_GIVEREF(Py_None);
25572  __Pyx_GOTREF(__pyx_v_self->v_dirichlet);
25573  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_dirichlet));
25574  __pyx_v_self->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25575 
25576  /* function exit code */
25577  __pyx_r = 0;
25578  goto __pyx_L0;
25579  __pyx_L1_error:;
25580  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25581  __pyx_r = -1;
25582  __pyx_L0:;
25583  __Pyx_TraceReturn(Py_None, 0);
25584  __Pyx_RefNannyFinishContext();
25585  return __pyx_r;
25586 }
25587 
25588 /* "mprans/BoundaryConditions.pxd":30
25589  * cdef BoundaryCondition u_dirichlet
25590  * cdef BoundaryCondition v_dirichlet
25591  * cdef BoundaryCondition w_dirichlet # <<<<<<<<<<<<<<
25592  * cdef BoundaryCondition phi_dirichlet
25593  * cdef BoundaryCondition vof_dirichlet
25594  */
25595 
25596 /* Python wrapper */
25597 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25598 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_1__get__(PyObject *__pyx_v_self) {
25599  PyObject *__pyx_r = 0;
25600  __Pyx_RefNannyDeclarations
25601  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25602  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25603 
25604  /* function exit code */
25605  __Pyx_RefNannyFinishContext();
25606  return __pyx_r;
25607 }
25608 
25609 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25610  PyObject *__pyx_r = NULL;
25611  __Pyx_TraceDeclarations
25612  __Pyx_RefNannyDeclarations
25613  int __pyx_lineno = 0;
25614  const char *__pyx_filename = NULL;
25615  int __pyx_clineno = 0;
25616  __Pyx_RefNannySetupContext("__get__", 0);
25617  __Pyx_TraceCall("__get__", __pyx_f[2], 30, 0, __PYX_ERR(2, 30, __pyx_L1_error));
25618  __Pyx_XDECREF(__pyx_r);
25619  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_dirichlet));
25620  __pyx_r = ((PyObject *)__pyx_v_self->w_dirichlet);
25621  goto __pyx_L0;
25622 
25623  /* function exit code */
25624  __pyx_L1_error:;
25625  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25626  __pyx_r = NULL;
25627  __pyx_L0:;
25628  __Pyx_XGIVEREF(__pyx_r);
25629  __Pyx_TraceReturn(__pyx_r, 0);
25630  __Pyx_RefNannyFinishContext();
25631  return __pyx_r;
25632 }
25633 
25634 /* Python wrapper */
25635 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25636 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25637  int __pyx_r;
25638  __Pyx_RefNannyDeclarations
25639  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25640  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25641 
25642  /* function exit code */
25643  __Pyx_RefNannyFinishContext();
25644  return __pyx_r;
25645 }
25646 
25647 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25648  int __pyx_r;
25649  __Pyx_TraceDeclarations
25650  __Pyx_RefNannyDeclarations
25651  PyObject *__pyx_t_1 = NULL;
25652  int __pyx_lineno = 0;
25653  const char *__pyx_filename = NULL;
25654  int __pyx_clineno = 0;
25655  __Pyx_RefNannySetupContext("__set__", 0);
25656  __Pyx_TraceCall("__set__", __pyx_f[2], 30, 0, __PYX_ERR(2, 30, __pyx_L1_error));
25657  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 30, __pyx_L1_error)
25658  __pyx_t_1 = __pyx_v_value;
25659  __Pyx_INCREF(__pyx_t_1);
25660  __Pyx_GIVEREF(__pyx_t_1);
25661  __Pyx_GOTREF(__pyx_v_self->w_dirichlet);
25662  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_dirichlet));
25663  __pyx_v_self->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25664  __pyx_t_1 = 0;
25665 
25666  /* function exit code */
25667  __pyx_r = 0;
25668  goto __pyx_L0;
25669  __pyx_L1_error:;
25670  __Pyx_XDECREF(__pyx_t_1);
25671  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25672  __pyx_r = -1;
25673  __pyx_L0:;
25674  __Pyx_TraceReturn(Py_None, 0);
25675  __Pyx_RefNannyFinishContext();
25676  return __pyx_r;
25677 }
25678 
25679 /* Python wrapper */
25680 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25681 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_5__del__(PyObject *__pyx_v_self) {
25682  int __pyx_r;
25683  __Pyx_RefNannyDeclarations
25684  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25685  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25686 
25687  /* function exit code */
25688  __Pyx_RefNannyFinishContext();
25689  return __pyx_r;
25690 }
25691 
25692 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25693  int __pyx_r;
25694  __Pyx_TraceDeclarations
25695  __Pyx_RefNannyDeclarations
25696  int __pyx_lineno = 0;
25697  const char *__pyx_filename = NULL;
25698  int __pyx_clineno = 0;
25699  __Pyx_RefNannySetupContext("__del__", 0);
25700  __Pyx_TraceCall("__del__", __pyx_f[2], 30, 0, __PYX_ERR(2, 30, __pyx_L1_error));
25701  __Pyx_INCREF(Py_None);
25702  __Pyx_GIVEREF(Py_None);
25703  __Pyx_GOTREF(__pyx_v_self->w_dirichlet);
25704  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_dirichlet));
25705  __pyx_v_self->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25706 
25707  /* function exit code */
25708  __pyx_r = 0;
25709  goto __pyx_L0;
25710  __pyx_L1_error:;
25711  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25712  __pyx_r = -1;
25713  __pyx_L0:;
25714  __Pyx_TraceReturn(Py_None, 0);
25715  __Pyx_RefNannyFinishContext();
25716  return __pyx_r;
25717 }
25718 
25719 /* "mprans/BoundaryConditions.pxd":31
25720  * cdef BoundaryCondition v_dirichlet
25721  * cdef BoundaryCondition w_dirichlet
25722  * cdef BoundaryCondition phi_dirichlet # <<<<<<<<<<<<<<
25723  * cdef BoundaryCondition vof_dirichlet
25724  * cdef BoundaryCondition k_dirichlet
25725  */
25726 
25727 /* Python wrapper */
25728 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25729 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_1__get__(PyObject *__pyx_v_self) {
25730  PyObject *__pyx_r = 0;
25731  __Pyx_RefNannyDeclarations
25732  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25733  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25734 
25735  /* function exit code */
25736  __Pyx_RefNannyFinishContext();
25737  return __pyx_r;
25738 }
25739 
25740 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25741  PyObject *__pyx_r = NULL;
25742  __Pyx_TraceDeclarations
25743  __Pyx_RefNannyDeclarations
25744  int __pyx_lineno = 0;
25745  const char *__pyx_filename = NULL;
25746  int __pyx_clineno = 0;
25747  __Pyx_RefNannySetupContext("__get__", 0);
25748  __Pyx_TraceCall("__get__", __pyx_f[2], 31, 0, __PYX_ERR(2, 31, __pyx_L1_error));
25749  __Pyx_XDECREF(__pyx_r);
25750  __Pyx_INCREF(((PyObject *)__pyx_v_self->phi_dirichlet));
25751  __pyx_r = ((PyObject *)__pyx_v_self->phi_dirichlet);
25752  goto __pyx_L0;
25753 
25754  /* function exit code */
25755  __pyx_L1_error:;
25756  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.phi_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25757  __pyx_r = NULL;
25758  __pyx_L0:;
25759  __Pyx_XGIVEREF(__pyx_r);
25760  __Pyx_TraceReturn(__pyx_r, 0);
25761  __Pyx_RefNannyFinishContext();
25762  return __pyx_r;
25763 }
25764 
25765 /* Python wrapper */
25766 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25767 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25768  int __pyx_r;
25769  __Pyx_RefNannyDeclarations
25770  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25771  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25772 
25773  /* function exit code */
25774  __Pyx_RefNannyFinishContext();
25775  return __pyx_r;
25776 }
25777 
25778 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25779  int __pyx_r;
25780  __Pyx_TraceDeclarations
25781  __Pyx_RefNannyDeclarations
25782  PyObject *__pyx_t_1 = NULL;
25783  int __pyx_lineno = 0;
25784  const char *__pyx_filename = NULL;
25785  int __pyx_clineno = 0;
25786  __Pyx_RefNannySetupContext("__set__", 0);
25787  __Pyx_TraceCall("__set__", __pyx_f[2], 31, 0, __PYX_ERR(2, 31, __pyx_L1_error));
25788  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 31, __pyx_L1_error)
25789  __pyx_t_1 = __pyx_v_value;
25790  __Pyx_INCREF(__pyx_t_1);
25791  __Pyx_GIVEREF(__pyx_t_1);
25792  __Pyx_GOTREF(__pyx_v_self->phi_dirichlet);
25793  __Pyx_DECREF(((PyObject *)__pyx_v_self->phi_dirichlet));
25794  __pyx_v_self->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25795  __pyx_t_1 = 0;
25796 
25797  /* function exit code */
25798  __pyx_r = 0;
25799  goto __pyx_L0;
25800  __pyx_L1_error:;
25801  __Pyx_XDECREF(__pyx_t_1);
25802  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.phi_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25803  __pyx_r = -1;
25804  __pyx_L0:;
25805  __Pyx_TraceReturn(Py_None, 0);
25806  __Pyx_RefNannyFinishContext();
25807  return __pyx_r;
25808 }
25809 
25810 /* Python wrapper */
25811 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25812 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_5__del__(PyObject *__pyx_v_self) {
25813  int __pyx_r;
25814  __Pyx_RefNannyDeclarations
25815  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25816  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25817 
25818  /* function exit code */
25819  __Pyx_RefNannyFinishContext();
25820  return __pyx_r;
25821 }
25822 
25823 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25824  int __pyx_r;
25825  __Pyx_TraceDeclarations
25826  __Pyx_RefNannyDeclarations
25827  int __pyx_lineno = 0;
25828  const char *__pyx_filename = NULL;
25829  int __pyx_clineno = 0;
25830  __Pyx_RefNannySetupContext("__del__", 0);
25831  __Pyx_TraceCall("__del__", __pyx_f[2], 31, 0, __PYX_ERR(2, 31, __pyx_L1_error));
25832  __Pyx_INCREF(Py_None);
25833  __Pyx_GIVEREF(Py_None);
25834  __Pyx_GOTREF(__pyx_v_self->phi_dirichlet);
25835  __Pyx_DECREF(((PyObject *)__pyx_v_self->phi_dirichlet));
25836  __pyx_v_self->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25837 
25838  /* function exit code */
25839  __pyx_r = 0;
25840  goto __pyx_L0;
25841  __pyx_L1_error:;
25842  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.phi_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25843  __pyx_r = -1;
25844  __pyx_L0:;
25845  __Pyx_TraceReturn(Py_None, 0);
25846  __Pyx_RefNannyFinishContext();
25847  return __pyx_r;
25848 }
25849 
25850 /* "mprans/BoundaryConditions.pxd":32
25851  * cdef BoundaryCondition w_dirichlet
25852  * cdef BoundaryCondition phi_dirichlet
25853  * cdef BoundaryCondition vof_dirichlet # <<<<<<<<<<<<<<
25854  * cdef BoundaryCondition k_dirichlet
25855  * cdef BoundaryCondition dissipation_dirichlet
25856  */
25857 
25858 /* Python wrapper */
25859 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25860 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_1__get__(PyObject *__pyx_v_self) {
25861  PyObject *__pyx_r = 0;
25862  __Pyx_RefNannyDeclarations
25863  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25864  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25865 
25866  /* function exit code */
25867  __Pyx_RefNannyFinishContext();
25868  return __pyx_r;
25869 }
25870 
25871 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25872  PyObject *__pyx_r = NULL;
25873  __Pyx_TraceDeclarations
25874  __Pyx_RefNannyDeclarations
25875  int __pyx_lineno = 0;
25876  const char *__pyx_filename = NULL;
25877  int __pyx_clineno = 0;
25878  __Pyx_RefNannySetupContext("__get__", 0);
25879  __Pyx_TraceCall("__get__", __pyx_f[2], 32, 0, __PYX_ERR(2, 32, __pyx_L1_error));
25880  __Pyx_XDECREF(__pyx_r);
25881  __Pyx_INCREF(((PyObject *)__pyx_v_self->vof_dirichlet));
25882  __pyx_r = ((PyObject *)__pyx_v_self->vof_dirichlet);
25883  goto __pyx_L0;
25884 
25885  /* function exit code */
25886  __pyx_L1_error:;
25887  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25888  __pyx_r = NULL;
25889  __pyx_L0:;
25890  __Pyx_XGIVEREF(__pyx_r);
25891  __Pyx_TraceReturn(__pyx_r, 0);
25892  __Pyx_RefNannyFinishContext();
25893  return __pyx_r;
25894 }
25895 
25896 /* Python wrapper */
25897 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25898 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25899  int __pyx_r;
25900  __Pyx_RefNannyDeclarations
25901  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25902  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25903 
25904  /* function exit code */
25905  __Pyx_RefNannyFinishContext();
25906  return __pyx_r;
25907 }
25908 
25909 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
25910  int __pyx_r;
25911  __Pyx_TraceDeclarations
25912  __Pyx_RefNannyDeclarations
25913  PyObject *__pyx_t_1 = NULL;
25914  int __pyx_lineno = 0;
25915  const char *__pyx_filename = NULL;
25916  int __pyx_clineno = 0;
25917  __Pyx_RefNannySetupContext("__set__", 0);
25918  __Pyx_TraceCall("__set__", __pyx_f[2], 32, 0, __PYX_ERR(2, 32, __pyx_L1_error));
25919  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 32, __pyx_L1_error)
25920  __pyx_t_1 = __pyx_v_value;
25921  __Pyx_INCREF(__pyx_t_1);
25922  __Pyx_GIVEREF(__pyx_t_1);
25923  __Pyx_GOTREF(__pyx_v_self->vof_dirichlet);
25924  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_dirichlet));
25925  __pyx_v_self->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
25926  __pyx_t_1 = 0;
25927 
25928  /* function exit code */
25929  __pyx_r = 0;
25930  goto __pyx_L0;
25931  __pyx_L1_error:;
25932  __Pyx_XDECREF(__pyx_t_1);
25933  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25934  __pyx_r = -1;
25935  __pyx_L0:;
25936  __Pyx_TraceReturn(Py_None, 0);
25937  __Pyx_RefNannyFinishContext();
25938  return __pyx_r;
25939 }
25940 
25941 /* Python wrapper */
25942 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
25943 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_5__del__(PyObject *__pyx_v_self) {
25944  int __pyx_r;
25945  __Pyx_RefNannyDeclarations
25946  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25947  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25948 
25949  /* function exit code */
25950  __Pyx_RefNannyFinishContext();
25951  return __pyx_r;
25952 }
25953 
25954 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
25955  int __pyx_r;
25956  __Pyx_TraceDeclarations
25957  __Pyx_RefNannyDeclarations
25958  int __pyx_lineno = 0;
25959  const char *__pyx_filename = NULL;
25960  int __pyx_clineno = 0;
25961  __Pyx_RefNannySetupContext("__del__", 0);
25962  __Pyx_TraceCall("__del__", __pyx_f[2], 32, 0, __PYX_ERR(2, 32, __pyx_L1_error));
25963  __Pyx_INCREF(Py_None);
25964  __Pyx_GIVEREF(Py_None);
25965  __Pyx_GOTREF(__pyx_v_self->vof_dirichlet);
25966  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_dirichlet));
25967  __pyx_v_self->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
25968 
25969  /* function exit code */
25970  __pyx_r = 0;
25971  goto __pyx_L0;
25972  __pyx_L1_error:;
25973  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25974  __pyx_r = -1;
25975  __pyx_L0:;
25976  __Pyx_TraceReturn(Py_None, 0);
25977  __Pyx_RefNannyFinishContext();
25978  return __pyx_r;
25979 }
25980 
25981 /* "mprans/BoundaryConditions.pxd":33
25982  * cdef BoundaryCondition phi_dirichlet
25983  * cdef BoundaryCondition vof_dirichlet
25984  * cdef BoundaryCondition k_dirichlet # <<<<<<<<<<<<<<
25985  * cdef BoundaryCondition dissipation_dirichlet
25986  * cdef BoundaryCondition pAddedMass_dirichlet
25987  */
25988 
25989 /* Python wrapper */
25990 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
25991 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_1__get__(PyObject *__pyx_v_self) {
25992  PyObject *__pyx_r = 0;
25993  __Pyx_RefNannyDeclarations
25994  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25995  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
25996 
25997  /* function exit code */
25998  __Pyx_RefNannyFinishContext();
25999  return __pyx_r;
26000 }
26001 
26002 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26003  PyObject *__pyx_r = NULL;
26004  __Pyx_TraceDeclarations
26005  __Pyx_RefNannyDeclarations
26006  int __pyx_lineno = 0;
26007  const char *__pyx_filename = NULL;
26008  int __pyx_clineno = 0;
26009  __Pyx_RefNannySetupContext("__get__", 0);
26010  __Pyx_TraceCall("__get__", __pyx_f[2], 33, 0, __PYX_ERR(2, 33, __pyx_L1_error));
26011  __Pyx_XDECREF(__pyx_r);
26012  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_dirichlet));
26013  __pyx_r = ((PyObject *)__pyx_v_self->k_dirichlet);
26014  goto __pyx_L0;
26015 
26016  /* function exit code */
26017  __pyx_L1_error:;
26018  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26019  __pyx_r = NULL;
26020  __pyx_L0:;
26021  __Pyx_XGIVEREF(__pyx_r);
26022  __Pyx_TraceReturn(__pyx_r, 0);
26023  __Pyx_RefNannyFinishContext();
26024  return __pyx_r;
26025 }
26026 
26027 /* Python wrapper */
26028 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26029 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26030  int __pyx_r;
26031  __Pyx_RefNannyDeclarations
26032  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26033  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26034 
26035  /* function exit code */
26036  __Pyx_RefNannyFinishContext();
26037  return __pyx_r;
26038 }
26039 
26040 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26041  int __pyx_r;
26042  __Pyx_TraceDeclarations
26043  __Pyx_RefNannyDeclarations
26044  PyObject *__pyx_t_1 = NULL;
26045  int __pyx_lineno = 0;
26046  const char *__pyx_filename = NULL;
26047  int __pyx_clineno = 0;
26048  __Pyx_RefNannySetupContext("__set__", 0);
26049  __Pyx_TraceCall("__set__", __pyx_f[2], 33, 0, __PYX_ERR(2, 33, __pyx_L1_error));
26050  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 33, __pyx_L1_error)
26051  __pyx_t_1 = __pyx_v_value;
26052  __Pyx_INCREF(__pyx_t_1);
26053  __Pyx_GIVEREF(__pyx_t_1);
26054  __Pyx_GOTREF(__pyx_v_self->k_dirichlet);
26055  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_dirichlet));
26056  __pyx_v_self->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26057  __pyx_t_1 = 0;
26058 
26059  /* function exit code */
26060  __pyx_r = 0;
26061  goto __pyx_L0;
26062  __pyx_L1_error:;
26063  __Pyx_XDECREF(__pyx_t_1);
26064  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26065  __pyx_r = -1;
26066  __pyx_L0:;
26067  __Pyx_TraceReturn(Py_None, 0);
26068  __Pyx_RefNannyFinishContext();
26069  return __pyx_r;
26070 }
26071 
26072 /* Python wrapper */
26073 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
26074 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_5__del__(PyObject *__pyx_v_self) {
26075  int __pyx_r;
26076  __Pyx_RefNannyDeclarations
26077  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26078  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26079 
26080  /* function exit code */
26081  __Pyx_RefNannyFinishContext();
26082  return __pyx_r;
26083 }
26084 
26085 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26086  int __pyx_r;
26087  __Pyx_TraceDeclarations
26088  __Pyx_RefNannyDeclarations
26089  int __pyx_lineno = 0;
26090  const char *__pyx_filename = NULL;
26091  int __pyx_clineno = 0;
26092  __Pyx_RefNannySetupContext("__del__", 0);
26093  __Pyx_TraceCall("__del__", __pyx_f[2], 33, 0, __PYX_ERR(2, 33, __pyx_L1_error));
26094  __Pyx_INCREF(Py_None);
26095  __Pyx_GIVEREF(Py_None);
26096  __Pyx_GOTREF(__pyx_v_self->k_dirichlet);
26097  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_dirichlet));
26098  __pyx_v_self->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26099 
26100  /* function exit code */
26101  __pyx_r = 0;
26102  goto __pyx_L0;
26103  __pyx_L1_error:;
26104  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26105  __pyx_r = -1;
26106  __pyx_L0:;
26107  __Pyx_TraceReturn(Py_None, 0);
26108  __Pyx_RefNannyFinishContext();
26109  return __pyx_r;
26110 }
26111 
26112 /* "mprans/BoundaryConditions.pxd":34
26113  * cdef BoundaryCondition vof_dirichlet
26114  * cdef BoundaryCondition k_dirichlet
26115  * cdef BoundaryCondition dissipation_dirichlet # <<<<<<<<<<<<<<
26116  * cdef BoundaryCondition pAddedMass_dirichlet
26117  * # advective
26118  */
26119 
26120 /* Python wrapper */
26121 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
26122 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_1__get__(PyObject *__pyx_v_self) {
26123  PyObject *__pyx_r = 0;
26124  __Pyx_RefNannyDeclarations
26125  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26126  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26127 
26128  /* function exit code */
26129  __Pyx_RefNannyFinishContext();
26130  return __pyx_r;
26131 }
26132 
26133 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26134  PyObject *__pyx_r = NULL;
26135  __Pyx_TraceDeclarations
26136  __Pyx_RefNannyDeclarations
26137  int __pyx_lineno = 0;
26138  const char *__pyx_filename = NULL;
26139  int __pyx_clineno = 0;
26140  __Pyx_RefNannySetupContext("__get__", 0);
26141  __Pyx_TraceCall("__get__", __pyx_f[2], 34, 0, __PYX_ERR(2, 34, __pyx_L1_error));
26142  __Pyx_XDECREF(__pyx_r);
26143  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
26144  __pyx_r = ((PyObject *)__pyx_v_self->dissipation_dirichlet);
26145  goto __pyx_L0;
26146 
26147  /* function exit code */
26148  __pyx_L1_error:;
26149  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26150  __pyx_r = NULL;
26151  __pyx_L0:;
26152  __Pyx_XGIVEREF(__pyx_r);
26153  __Pyx_TraceReturn(__pyx_r, 0);
26154  __Pyx_RefNannyFinishContext();
26155  return __pyx_r;
26156 }
26157 
26158 /* Python wrapper */
26159 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26160 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26161  int __pyx_r;
26162  __Pyx_RefNannyDeclarations
26163  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26164  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26165 
26166  /* function exit code */
26167  __Pyx_RefNannyFinishContext();
26168  return __pyx_r;
26169 }
26170 
26171 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26172  int __pyx_r;
26173  __Pyx_TraceDeclarations
26174  __Pyx_RefNannyDeclarations
26175  PyObject *__pyx_t_1 = NULL;
26176  int __pyx_lineno = 0;
26177  const char *__pyx_filename = NULL;
26178  int __pyx_clineno = 0;
26179  __Pyx_RefNannySetupContext("__set__", 0);
26180  __Pyx_TraceCall("__set__", __pyx_f[2], 34, 0, __PYX_ERR(2, 34, __pyx_L1_error));
26181  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 34, __pyx_L1_error)
26182  __pyx_t_1 = __pyx_v_value;
26183  __Pyx_INCREF(__pyx_t_1);
26184  __Pyx_GIVEREF(__pyx_t_1);
26185  __Pyx_GOTREF(__pyx_v_self->dissipation_dirichlet);
26186  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
26187  __pyx_v_self->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26188  __pyx_t_1 = 0;
26189 
26190  /* function exit code */
26191  __pyx_r = 0;
26192  goto __pyx_L0;
26193  __pyx_L1_error:;
26194  __Pyx_XDECREF(__pyx_t_1);
26195  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26196  __pyx_r = -1;
26197  __pyx_L0:;
26198  __Pyx_TraceReturn(Py_None, 0);
26199  __Pyx_RefNannyFinishContext();
26200  return __pyx_r;
26201 }
26202 
26203 /* Python wrapper */
26204 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
26205 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_5__del__(PyObject *__pyx_v_self) {
26206  int __pyx_r;
26207  __Pyx_RefNannyDeclarations
26208  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26209  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26210 
26211  /* function exit code */
26212  __Pyx_RefNannyFinishContext();
26213  return __pyx_r;
26214 }
26215 
26216 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26217  int __pyx_r;
26218  __Pyx_TraceDeclarations
26219  __Pyx_RefNannyDeclarations
26220  int __pyx_lineno = 0;
26221  const char *__pyx_filename = NULL;
26222  int __pyx_clineno = 0;
26223  __Pyx_RefNannySetupContext("__del__", 0);
26224  __Pyx_TraceCall("__del__", __pyx_f[2], 34, 0, __PYX_ERR(2, 34, __pyx_L1_error));
26225  __Pyx_INCREF(Py_None);
26226  __Pyx_GIVEREF(Py_None);
26227  __Pyx_GOTREF(__pyx_v_self->dissipation_dirichlet);
26228  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
26229  __pyx_v_self->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26230 
26231  /* function exit code */
26232  __pyx_r = 0;
26233  goto __pyx_L0;
26234  __pyx_L1_error:;
26235  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26236  __pyx_r = -1;
26237  __pyx_L0:;
26238  __Pyx_TraceReturn(Py_None, 0);
26239  __Pyx_RefNannyFinishContext();
26240  return __pyx_r;
26241 }
26242 
26243 /* "mprans/BoundaryConditions.pxd":35
26244  * cdef BoundaryCondition k_dirichlet
26245  * cdef BoundaryCondition dissipation_dirichlet
26246  * cdef BoundaryCondition pAddedMass_dirichlet # <<<<<<<<<<<<<<
26247  * # advective
26248  * cdef BoundaryCondition p_advective
26249  */
26250 
26251 /* Python wrapper */
26252 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
26253 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_1__get__(PyObject *__pyx_v_self) {
26254  PyObject *__pyx_r = 0;
26255  __Pyx_RefNannyDeclarations
26256  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26257  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26258 
26259  /* function exit code */
26260  __Pyx_RefNannyFinishContext();
26261  return __pyx_r;
26262 }
26263 
26264 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26265  PyObject *__pyx_r = NULL;
26266  __Pyx_TraceDeclarations
26267  __Pyx_RefNannyDeclarations
26268  int __pyx_lineno = 0;
26269  const char *__pyx_filename = NULL;
26270  int __pyx_clineno = 0;
26271  __Pyx_RefNannySetupContext("__get__", 0);
26272  __Pyx_TraceCall("__get__", __pyx_f[2], 35, 0, __PYX_ERR(2, 35, __pyx_L1_error));
26273  __Pyx_XDECREF(__pyx_r);
26274  __Pyx_INCREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
26275  __pyx_r = ((PyObject *)__pyx_v_self->pAddedMass_dirichlet);
26276  goto __pyx_L0;
26277 
26278  /* function exit code */
26279  __pyx_L1_error:;
26280  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pAddedMass_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26281  __pyx_r = NULL;
26282  __pyx_L0:;
26283  __Pyx_XGIVEREF(__pyx_r);
26284  __Pyx_TraceReturn(__pyx_r, 0);
26285  __Pyx_RefNannyFinishContext();
26286  return __pyx_r;
26287 }
26288 
26289 /* Python wrapper */
26290 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26291 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26292  int __pyx_r;
26293  __Pyx_RefNannyDeclarations
26294  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26295  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26296 
26297  /* function exit code */
26298  __Pyx_RefNannyFinishContext();
26299  return __pyx_r;
26300 }
26301 
26302 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26303  int __pyx_r;
26304  __Pyx_TraceDeclarations
26305  __Pyx_RefNannyDeclarations
26306  PyObject *__pyx_t_1 = NULL;
26307  int __pyx_lineno = 0;
26308  const char *__pyx_filename = NULL;
26309  int __pyx_clineno = 0;
26310  __Pyx_RefNannySetupContext("__set__", 0);
26311  __Pyx_TraceCall("__set__", __pyx_f[2], 35, 0, __PYX_ERR(2, 35, __pyx_L1_error));
26312  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 35, __pyx_L1_error)
26313  __pyx_t_1 = __pyx_v_value;
26314  __Pyx_INCREF(__pyx_t_1);
26315  __Pyx_GIVEREF(__pyx_t_1);
26316  __Pyx_GOTREF(__pyx_v_self->pAddedMass_dirichlet);
26317  __Pyx_DECREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
26318  __pyx_v_self->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26319  __pyx_t_1 = 0;
26320 
26321  /* function exit code */
26322  __pyx_r = 0;
26323  goto __pyx_L0;
26324  __pyx_L1_error:;
26325  __Pyx_XDECREF(__pyx_t_1);
26326  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pAddedMass_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26327  __pyx_r = -1;
26328  __pyx_L0:;
26329  __Pyx_TraceReturn(Py_None, 0);
26330  __Pyx_RefNannyFinishContext();
26331  return __pyx_r;
26332 }
26333 
26334 /* Python wrapper */
26335 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
26336 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_5__del__(PyObject *__pyx_v_self) {
26337  int __pyx_r;
26338  __Pyx_RefNannyDeclarations
26339  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26340  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26341 
26342  /* function exit code */
26343  __Pyx_RefNannyFinishContext();
26344  return __pyx_r;
26345 }
26346 
26347 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26348  int __pyx_r;
26349  __Pyx_TraceDeclarations
26350  __Pyx_RefNannyDeclarations
26351  int __pyx_lineno = 0;
26352  const char *__pyx_filename = NULL;
26353  int __pyx_clineno = 0;
26354  __Pyx_RefNannySetupContext("__del__", 0);
26355  __Pyx_TraceCall("__del__", __pyx_f[2], 35, 0, __PYX_ERR(2, 35, __pyx_L1_error));
26356  __Pyx_INCREF(Py_None);
26357  __Pyx_GIVEREF(Py_None);
26358  __Pyx_GOTREF(__pyx_v_self->pAddedMass_dirichlet);
26359  __Pyx_DECREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
26360  __pyx_v_self->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26361 
26362  /* function exit code */
26363  __pyx_r = 0;
26364  goto __pyx_L0;
26365  __pyx_L1_error:;
26366  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pAddedMass_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26367  __pyx_r = -1;
26368  __pyx_L0:;
26369  __Pyx_TraceReturn(Py_None, 0);
26370  __Pyx_RefNannyFinishContext();
26371  return __pyx_r;
26372 }
26373 
26374 /* "mprans/BoundaryConditions.pxd":37
26375  * cdef BoundaryCondition pAddedMass_dirichlet
26376  * # advective
26377  * cdef BoundaryCondition p_advective # <<<<<<<<<<<<<<
26378  * cdef BoundaryCondition u_advective
26379  * cdef BoundaryCondition v_advective
26380  */
26381 
26382 /* Python wrapper */
26383 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
26384 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_1__get__(PyObject *__pyx_v_self) {
26385  PyObject *__pyx_r = 0;
26386  __Pyx_RefNannyDeclarations
26387  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26388  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26389 
26390  /* function exit code */
26391  __Pyx_RefNannyFinishContext();
26392  return __pyx_r;
26393 }
26394 
26395 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26396  PyObject *__pyx_r = NULL;
26397  __Pyx_TraceDeclarations
26398  __Pyx_RefNannyDeclarations
26399  int __pyx_lineno = 0;
26400  const char *__pyx_filename = NULL;
26401  int __pyx_clineno = 0;
26402  __Pyx_RefNannySetupContext("__get__", 0);
26403  __Pyx_TraceCall("__get__", __pyx_f[2], 37, 0, __PYX_ERR(2, 37, __pyx_L1_error));
26404  __Pyx_XDECREF(__pyx_r);
26405  __Pyx_INCREF(((PyObject *)__pyx_v_self->p_advective));
26406  __pyx_r = ((PyObject *)__pyx_v_self->p_advective);
26407  goto __pyx_L0;
26408 
26409  /* function exit code */
26410  __pyx_L1_error:;
26411  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26412  __pyx_r = NULL;
26413  __pyx_L0:;
26414  __Pyx_XGIVEREF(__pyx_r);
26415  __Pyx_TraceReturn(__pyx_r, 0);
26416  __Pyx_RefNannyFinishContext();
26417  return __pyx_r;
26418 }
26419 
26420 /* Python wrapper */
26421 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26422 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26423  int __pyx_r;
26424  __Pyx_RefNannyDeclarations
26425  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26426  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26427 
26428  /* function exit code */
26429  __Pyx_RefNannyFinishContext();
26430  return __pyx_r;
26431 }
26432 
26433 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26434  int __pyx_r;
26435  __Pyx_TraceDeclarations
26436  __Pyx_RefNannyDeclarations
26437  PyObject *__pyx_t_1 = NULL;
26438  int __pyx_lineno = 0;
26439  const char *__pyx_filename = NULL;
26440  int __pyx_clineno = 0;
26441  __Pyx_RefNannySetupContext("__set__", 0);
26442  __Pyx_TraceCall("__set__", __pyx_f[2], 37, 0, __PYX_ERR(2, 37, __pyx_L1_error));
26443  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 37, __pyx_L1_error)
26444  __pyx_t_1 = __pyx_v_value;
26445  __Pyx_INCREF(__pyx_t_1);
26446  __Pyx_GIVEREF(__pyx_t_1);
26447  __Pyx_GOTREF(__pyx_v_self->p_advective);
26448  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_advective));
26449  __pyx_v_self->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26450  __pyx_t_1 = 0;
26451 
26452  /* function exit code */
26453  __pyx_r = 0;
26454  goto __pyx_L0;
26455  __pyx_L1_error:;
26456  __Pyx_XDECREF(__pyx_t_1);
26457  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26458  __pyx_r = -1;
26459  __pyx_L0:;
26460  __Pyx_TraceReturn(Py_None, 0);
26461  __Pyx_RefNannyFinishContext();
26462  return __pyx_r;
26463 }
26464 
26465 /* Python wrapper */
26466 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
26467 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_5__del__(PyObject *__pyx_v_self) {
26468  int __pyx_r;
26469  __Pyx_RefNannyDeclarations
26470  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26471  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26472 
26473  /* function exit code */
26474  __Pyx_RefNannyFinishContext();
26475  return __pyx_r;
26476 }
26477 
26478 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26479  int __pyx_r;
26480  __Pyx_TraceDeclarations
26481  __Pyx_RefNannyDeclarations
26482  int __pyx_lineno = 0;
26483  const char *__pyx_filename = NULL;
26484  int __pyx_clineno = 0;
26485  __Pyx_RefNannySetupContext("__del__", 0);
26486  __Pyx_TraceCall("__del__", __pyx_f[2], 37, 0, __PYX_ERR(2, 37, __pyx_L1_error));
26487  __Pyx_INCREF(Py_None);
26488  __Pyx_GIVEREF(Py_None);
26489  __Pyx_GOTREF(__pyx_v_self->p_advective);
26490  __Pyx_DECREF(((PyObject *)__pyx_v_self->p_advective));
26491  __pyx_v_self->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26492 
26493  /* function exit code */
26494  __pyx_r = 0;
26495  goto __pyx_L0;
26496  __pyx_L1_error:;
26497  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.p_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26498  __pyx_r = -1;
26499  __pyx_L0:;
26500  __Pyx_TraceReturn(Py_None, 0);
26501  __Pyx_RefNannyFinishContext();
26502  return __pyx_r;
26503 }
26504 
26505 /* "mprans/BoundaryConditions.pxd":38
26506  * # advective
26507  * cdef BoundaryCondition p_advective
26508  * cdef BoundaryCondition u_advective # <<<<<<<<<<<<<<
26509  * cdef BoundaryCondition v_advective
26510  * cdef BoundaryCondition w_advective
26511  */
26512 
26513 /* Python wrapper */
26514 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
26515 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_1__get__(PyObject *__pyx_v_self) {
26516  PyObject *__pyx_r = 0;
26517  __Pyx_RefNannyDeclarations
26518  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26519  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26520 
26521  /* function exit code */
26522  __Pyx_RefNannyFinishContext();
26523  return __pyx_r;
26524 }
26525 
26526 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26527  PyObject *__pyx_r = NULL;
26528  __Pyx_TraceDeclarations
26529  __Pyx_RefNannyDeclarations
26530  int __pyx_lineno = 0;
26531  const char *__pyx_filename = NULL;
26532  int __pyx_clineno = 0;
26533  __Pyx_RefNannySetupContext("__get__", 0);
26534  __Pyx_TraceCall("__get__", __pyx_f[2], 38, 0, __PYX_ERR(2, 38, __pyx_L1_error));
26535  __Pyx_XDECREF(__pyx_r);
26536  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_advective));
26537  __pyx_r = ((PyObject *)__pyx_v_self->u_advective);
26538  goto __pyx_L0;
26539 
26540  /* function exit code */
26541  __pyx_L1_error:;
26542  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26543  __pyx_r = NULL;
26544  __pyx_L0:;
26545  __Pyx_XGIVEREF(__pyx_r);
26546  __Pyx_TraceReturn(__pyx_r, 0);
26547  __Pyx_RefNannyFinishContext();
26548  return __pyx_r;
26549 }
26550 
26551 /* Python wrapper */
26552 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26553 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26554  int __pyx_r;
26555  __Pyx_RefNannyDeclarations
26556  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26557  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26558 
26559  /* function exit code */
26560  __Pyx_RefNannyFinishContext();
26561  return __pyx_r;
26562 }
26563 
26564 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26565  int __pyx_r;
26566  __Pyx_TraceDeclarations
26567  __Pyx_RefNannyDeclarations
26568  PyObject *__pyx_t_1 = NULL;
26569  int __pyx_lineno = 0;
26570  const char *__pyx_filename = NULL;
26571  int __pyx_clineno = 0;
26572  __Pyx_RefNannySetupContext("__set__", 0);
26573  __Pyx_TraceCall("__set__", __pyx_f[2], 38, 0, __PYX_ERR(2, 38, __pyx_L1_error));
26574  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 38, __pyx_L1_error)
26575  __pyx_t_1 = __pyx_v_value;
26576  __Pyx_INCREF(__pyx_t_1);
26577  __Pyx_GIVEREF(__pyx_t_1);
26578  __Pyx_GOTREF(__pyx_v_self->u_advective);
26579  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_advective));
26580  __pyx_v_self->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26581  __pyx_t_1 = 0;
26582 
26583  /* function exit code */
26584  __pyx_r = 0;
26585  goto __pyx_L0;
26586  __pyx_L1_error:;
26587  __Pyx_XDECREF(__pyx_t_1);
26588  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26589  __pyx_r = -1;
26590  __pyx_L0:;
26591  __Pyx_TraceReturn(Py_None, 0);
26592  __Pyx_RefNannyFinishContext();
26593  return __pyx_r;
26594 }
26595 
26596 /* Python wrapper */
26597 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
26598 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_5__del__(PyObject *__pyx_v_self) {
26599  int __pyx_r;
26600  __Pyx_RefNannyDeclarations
26601  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26602  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26603 
26604  /* function exit code */
26605  __Pyx_RefNannyFinishContext();
26606  return __pyx_r;
26607 }
26608 
26609 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26610  int __pyx_r;
26611  __Pyx_TraceDeclarations
26612  __Pyx_RefNannyDeclarations
26613  int __pyx_lineno = 0;
26614  const char *__pyx_filename = NULL;
26615  int __pyx_clineno = 0;
26616  __Pyx_RefNannySetupContext("__del__", 0);
26617  __Pyx_TraceCall("__del__", __pyx_f[2], 38, 0, __PYX_ERR(2, 38, __pyx_L1_error));
26618  __Pyx_INCREF(Py_None);
26619  __Pyx_GIVEREF(Py_None);
26620  __Pyx_GOTREF(__pyx_v_self->u_advective);
26621  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_advective));
26622  __pyx_v_self->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26623 
26624  /* function exit code */
26625  __pyx_r = 0;
26626  goto __pyx_L0;
26627  __pyx_L1_error:;
26628  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26629  __pyx_r = -1;
26630  __pyx_L0:;
26631  __Pyx_TraceReturn(Py_None, 0);
26632  __Pyx_RefNannyFinishContext();
26633  return __pyx_r;
26634 }
26635 
26636 /* "mprans/BoundaryConditions.pxd":39
26637  * cdef BoundaryCondition p_advective
26638  * cdef BoundaryCondition u_advective
26639  * cdef BoundaryCondition v_advective # <<<<<<<<<<<<<<
26640  * cdef BoundaryCondition w_advective
26641  * cdef BoundaryCondition vof_advective
26642  */
26643 
26644 /* Python wrapper */
26645 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
26646 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_1__get__(PyObject *__pyx_v_self) {
26647  PyObject *__pyx_r = 0;
26648  __Pyx_RefNannyDeclarations
26649  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26650  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26651 
26652  /* function exit code */
26653  __Pyx_RefNannyFinishContext();
26654  return __pyx_r;
26655 }
26656 
26657 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26658  PyObject *__pyx_r = NULL;
26659  __Pyx_TraceDeclarations
26660  __Pyx_RefNannyDeclarations
26661  int __pyx_lineno = 0;
26662  const char *__pyx_filename = NULL;
26663  int __pyx_clineno = 0;
26664  __Pyx_RefNannySetupContext("__get__", 0);
26665  __Pyx_TraceCall("__get__", __pyx_f[2], 39, 0, __PYX_ERR(2, 39, __pyx_L1_error));
26666  __Pyx_XDECREF(__pyx_r);
26667  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_advective));
26668  __pyx_r = ((PyObject *)__pyx_v_self->v_advective);
26669  goto __pyx_L0;
26670 
26671  /* function exit code */
26672  __pyx_L1_error:;
26673  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26674  __pyx_r = NULL;
26675  __pyx_L0:;
26676  __Pyx_XGIVEREF(__pyx_r);
26677  __Pyx_TraceReturn(__pyx_r, 0);
26678  __Pyx_RefNannyFinishContext();
26679  return __pyx_r;
26680 }
26681 
26682 /* Python wrapper */
26683 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26684 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26685  int __pyx_r;
26686  __Pyx_RefNannyDeclarations
26687  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26688  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26689 
26690  /* function exit code */
26691  __Pyx_RefNannyFinishContext();
26692  return __pyx_r;
26693 }
26694 
26695 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26696  int __pyx_r;
26697  __Pyx_TraceDeclarations
26698  __Pyx_RefNannyDeclarations
26699  PyObject *__pyx_t_1 = NULL;
26700  int __pyx_lineno = 0;
26701  const char *__pyx_filename = NULL;
26702  int __pyx_clineno = 0;
26703  __Pyx_RefNannySetupContext("__set__", 0);
26704  __Pyx_TraceCall("__set__", __pyx_f[2], 39, 0, __PYX_ERR(2, 39, __pyx_L1_error));
26705  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 39, __pyx_L1_error)
26706  __pyx_t_1 = __pyx_v_value;
26707  __Pyx_INCREF(__pyx_t_1);
26708  __Pyx_GIVEREF(__pyx_t_1);
26709  __Pyx_GOTREF(__pyx_v_self->v_advective);
26710  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_advective));
26711  __pyx_v_self->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26712  __pyx_t_1 = 0;
26713 
26714  /* function exit code */
26715  __pyx_r = 0;
26716  goto __pyx_L0;
26717  __pyx_L1_error:;
26718  __Pyx_XDECREF(__pyx_t_1);
26719  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26720  __pyx_r = -1;
26721  __pyx_L0:;
26722  __Pyx_TraceReturn(Py_None, 0);
26723  __Pyx_RefNannyFinishContext();
26724  return __pyx_r;
26725 }
26726 
26727 /* Python wrapper */
26728 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
26729 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_5__del__(PyObject *__pyx_v_self) {
26730  int __pyx_r;
26731  __Pyx_RefNannyDeclarations
26732  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26733  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26734 
26735  /* function exit code */
26736  __Pyx_RefNannyFinishContext();
26737  return __pyx_r;
26738 }
26739 
26740 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26741  int __pyx_r;
26742  __Pyx_TraceDeclarations
26743  __Pyx_RefNannyDeclarations
26744  int __pyx_lineno = 0;
26745  const char *__pyx_filename = NULL;
26746  int __pyx_clineno = 0;
26747  __Pyx_RefNannySetupContext("__del__", 0);
26748  __Pyx_TraceCall("__del__", __pyx_f[2], 39, 0, __PYX_ERR(2, 39, __pyx_L1_error));
26749  __Pyx_INCREF(Py_None);
26750  __Pyx_GIVEREF(Py_None);
26751  __Pyx_GOTREF(__pyx_v_self->v_advective);
26752  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_advective));
26753  __pyx_v_self->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26754 
26755  /* function exit code */
26756  __pyx_r = 0;
26757  goto __pyx_L0;
26758  __pyx_L1_error:;
26759  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26760  __pyx_r = -1;
26761  __pyx_L0:;
26762  __Pyx_TraceReturn(Py_None, 0);
26763  __Pyx_RefNannyFinishContext();
26764  return __pyx_r;
26765 }
26766 
26767 /* "mprans/BoundaryConditions.pxd":40
26768  * cdef BoundaryCondition u_advective
26769  * cdef BoundaryCondition v_advective
26770  * cdef BoundaryCondition w_advective # <<<<<<<<<<<<<<
26771  * cdef BoundaryCondition vof_advective
26772  * cdef BoundaryCondition k_advective
26773  */
26774 
26775 /* Python wrapper */
26776 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
26777 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_1__get__(PyObject *__pyx_v_self) {
26778  PyObject *__pyx_r = 0;
26779  __Pyx_RefNannyDeclarations
26780  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26781  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26782 
26783  /* function exit code */
26784  __Pyx_RefNannyFinishContext();
26785  return __pyx_r;
26786 }
26787 
26788 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26789  PyObject *__pyx_r = NULL;
26790  __Pyx_TraceDeclarations
26791  __Pyx_RefNannyDeclarations
26792  int __pyx_lineno = 0;
26793  const char *__pyx_filename = NULL;
26794  int __pyx_clineno = 0;
26795  __Pyx_RefNannySetupContext("__get__", 0);
26796  __Pyx_TraceCall("__get__", __pyx_f[2], 40, 0, __PYX_ERR(2, 40, __pyx_L1_error));
26797  __Pyx_XDECREF(__pyx_r);
26798  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_advective));
26799  __pyx_r = ((PyObject *)__pyx_v_self->w_advective);
26800  goto __pyx_L0;
26801 
26802  /* function exit code */
26803  __pyx_L1_error:;
26804  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26805  __pyx_r = NULL;
26806  __pyx_L0:;
26807  __Pyx_XGIVEREF(__pyx_r);
26808  __Pyx_TraceReturn(__pyx_r, 0);
26809  __Pyx_RefNannyFinishContext();
26810  return __pyx_r;
26811 }
26812 
26813 /* Python wrapper */
26814 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26815 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26816  int __pyx_r;
26817  __Pyx_RefNannyDeclarations
26818  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26819  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26820 
26821  /* function exit code */
26822  __Pyx_RefNannyFinishContext();
26823  return __pyx_r;
26824 }
26825 
26826 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26827  int __pyx_r;
26828  __Pyx_TraceDeclarations
26829  __Pyx_RefNannyDeclarations
26830  PyObject *__pyx_t_1 = NULL;
26831  int __pyx_lineno = 0;
26832  const char *__pyx_filename = NULL;
26833  int __pyx_clineno = 0;
26834  __Pyx_RefNannySetupContext("__set__", 0);
26835  __Pyx_TraceCall("__set__", __pyx_f[2], 40, 0, __PYX_ERR(2, 40, __pyx_L1_error));
26836  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 40, __pyx_L1_error)
26837  __pyx_t_1 = __pyx_v_value;
26838  __Pyx_INCREF(__pyx_t_1);
26839  __Pyx_GIVEREF(__pyx_t_1);
26840  __Pyx_GOTREF(__pyx_v_self->w_advective);
26841  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_advective));
26842  __pyx_v_self->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26843  __pyx_t_1 = 0;
26844 
26845  /* function exit code */
26846  __pyx_r = 0;
26847  goto __pyx_L0;
26848  __pyx_L1_error:;
26849  __Pyx_XDECREF(__pyx_t_1);
26850  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26851  __pyx_r = -1;
26852  __pyx_L0:;
26853  __Pyx_TraceReturn(Py_None, 0);
26854  __Pyx_RefNannyFinishContext();
26855  return __pyx_r;
26856 }
26857 
26858 /* Python wrapper */
26859 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
26860 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_5__del__(PyObject *__pyx_v_self) {
26861  int __pyx_r;
26862  __Pyx_RefNannyDeclarations
26863  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26864  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26865 
26866  /* function exit code */
26867  __Pyx_RefNannyFinishContext();
26868  return __pyx_r;
26869 }
26870 
26871 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26872  int __pyx_r;
26873  __Pyx_TraceDeclarations
26874  __Pyx_RefNannyDeclarations
26875  int __pyx_lineno = 0;
26876  const char *__pyx_filename = NULL;
26877  int __pyx_clineno = 0;
26878  __Pyx_RefNannySetupContext("__del__", 0);
26879  __Pyx_TraceCall("__del__", __pyx_f[2], 40, 0, __PYX_ERR(2, 40, __pyx_L1_error));
26880  __Pyx_INCREF(Py_None);
26881  __Pyx_GIVEREF(Py_None);
26882  __Pyx_GOTREF(__pyx_v_self->w_advective);
26883  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_advective));
26884  __pyx_v_self->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
26885 
26886  /* function exit code */
26887  __pyx_r = 0;
26888  goto __pyx_L0;
26889  __pyx_L1_error:;
26890  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26891  __pyx_r = -1;
26892  __pyx_L0:;
26893  __Pyx_TraceReturn(Py_None, 0);
26894  __Pyx_RefNannyFinishContext();
26895  return __pyx_r;
26896 }
26897 
26898 /* "mprans/BoundaryConditions.pxd":41
26899  * cdef BoundaryCondition v_advective
26900  * cdef BoundaryCondition w_advective
26901  * cdef BoundaryCondition vof_advective # <<<<<<<<<<<<<<
26902  * cdef BoundaryCondition k_advective
26903  * cdef BoundaryCondition dissipation_advective
26904  */
26905 
26906 /* Python wrapper */
26907 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
26908 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_1__get__(PyObject *__pyx_v_self) {
26909  PyObject *__pyx_r = 0;
26910  __Pyx_RefNannyDeclarations
26911  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26912  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26913 
26914  /* function exit code */
26915  __Pyx_RefNannyFinishContext();
26916  return __pyx_r;
26917 }
26918 
26919 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
26920  PyObject *__pyx_r = NULL;
26921  __Pyx_TraceDeclarations
26922  __Pyx_RefNannyDeclarations
26923  int __pyx_lineno = 0;
26924  const char *__pyx_filename = NULL;
26925  int __pyx_clineno = 0;
26926  __Pyx_RefNannySetupContext("__get__", 0);
26927  __Pyx_TraceCall("__get__", __pyx_f[2], 41, 0, __PYX_ERR(2, 41, __pyx_L1_error));
26928  __Pyx_XDECREF(__pyx_r);
26929  __Pyx_INCREF(((PyObject *)__pyx_v_self->vof_advective));
26930  __pyx_r = ((PyObject *)__pyx_v_self->vof_advective);
26931  goto __pyx_L0;
26932 
26933  /* function exit code */
26934  __pyx_L1_error:;
26935  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26936  __pyx_r = NULL;
26937  __pyx_L0:;
26938  __Pyx_XGIVEREF(__pyx_r);
26939  __Pyx_TraceReturn(__pyx_r, 0);
26940  __Pyx_RefNannyFinishContext();
26941  return __pyx_r;
26942 }
26943 
26944 /* Python wrapper */
26945 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26946 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26947  int __pyx_r;
26948  __Pyx_RefNannyDeclarations
26949  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26950  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26951 
26952  /* function exit code */
26953  __Pyx_RefNannyFinishContext();
26954  return __pyx_r;
26955 }
26956 
26957 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
26958  int __pyx_r;
26959  __Pyx_TraceDeclarations
26960  __Pyx_RefNannyDeclarations
26961  PyObject *__pyx_t_1 = NULL;
26962  int __pyx_lineno = 0;
26963  const char *__pyx_filename = NULL;
26964  int __pyx_clineno = 0;
26965  __Pyx_RefNannySetupContext("__set__", 0);
26966  __Pyx_TraceCall("__set__", __pyx_f[2], 41, 0, __PYX_ERR(2, 41, __pyx_L1_error));
26967  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 41, __pyx_L1_error)
26968  __pyx_t_1 = __pyx_v_value;
26969  __Pyx_INCREF(__pyx_t_1);
26970  __Pyx_GIVEREF(__pyx_t_1);
26971  __Pyx_GOTREF(__pyx_v_self->vof_advective);
26972  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_advective));
26973  __pyx_v_self->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
26974  __pyx_t_1 = 0;
26975 
26976  /* function exit code */
26977  __pyx_r = 0;
26978  goto __pyx_L0;
26979  __pyx_L1_error:;
26980  __Pyx_XDECREF(__pyx_t_1);
26981  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26982  __pyx_r = -1;
26983  __pyx_L0:;
26984  __Pyx_TraceReturn(Py_None, 0);
26985  __Pyx_RefNannyFinishContext();
26986  return __pyx_r;
26987 }
26988 
26989 /* Python wrapper */
26990 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
26991 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_5__del__(PyObject *__pyx_v_self) {
26992  int __pyx_r;
26993  __Pyx_RefNannyDeclarations
26994  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26995  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
26996 
26997  /* function exit code */
26998  __Pyx_RefNannyFinishContext();
26999  return __pyx_r;
27000 }
27001 
27002 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27003  int __pyx_r;
27004  __Pyx_TraceDeclarations
27005  __Pyx_RefNannyDeclarations
27006  int __pyx_lineno = 0;
27007  const char *__pyx_filename = NULL;
27008  int __pyx_clineno = 0;
27009  __Pyx_RefNannySetupContext("__del__", 0);
27010  __Pyx_TraceCall("__del__", __pyx_f[2], 41, 0, __PYX_ERR(2, 41, __pyx_L1_error));
27011  __Pyx_INCREF(Py_None);
27012  __Pyx_GIVEREF(Py_None);
27013  __Pyx_GOTREF(__pyx_v_self->vof_advective);
27014  __Pyx_DECREF(((PyObject *)__pyx_v_self->vof_advective));
27015  __pyx_v_self->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27016 
27017  /* function exit code */
27018  __pyx_r = 0;
27019  goto __pyx_L0;
27020  __pyx_L1_error:;
27021  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vof_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27022  __pyx_r = -1;
27023  __pyx_L0:;
27024  __Pyx_TraceReturn(Py_None, 0);
27025  __Pyx_RefNannyFinishContext();
27026  return __pyx_r;
27027 }
27028 
27029 /* "mprans/BoundaryConditions.pxd":42
27030  * cdef BoundaryCondition w_advective
27031  * cdef BoundaryCondition vof_advective
27032  * cdef BoundaryCondition k_advective # <<<<<<<<<<<<<<
27033  * cdef BoundaryCondition dissipation_advective
27034  * #diffusive
27035  */
27036 
27037 /* Python wrapper */
27038 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
27039 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_1__get__(PyObject *__pyx_v_self) {
27040  PyObject *__pyx_r = 0;
27041  __Pyx_RefNannyDeclarations
27042  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27043  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27044 
27045  /* function exit code */
27046  __Pyx_RefNannyFinishContext();
27047  return __pyx_r;
27048 }
27049 
27050 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27051  PyObject *__pyx_r = NULL;
27052  __Pyx_TraceDeclarations
27053  __Pyx_RefNannyDeclarations
27054  int __pyx_lineno = 0;
27055  const char *__pyx_filename = NULL;
27056  int __pyx_clineno = 0;
27057  __Pyx_RefNannySetupContext("__get__", 0);
27058  __Pyx_TraceCall("__get__", __pyx_f[2], 42, 0, __PYX_ERR(2, 42, __pyx_L1_error));
27059  __Pyx_XDECREF(__pyx_r);
27060  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_advective));
27061  __pyx_r = ((PyObject *)__pyx_v_self->k_advective);
27062  goto __pyx_L0;
27063 
27064  /* function exit code */
27065  __pyx_L1_error:;
27066  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27067  __pyx_r = NULL;
27068  __pyx_L0:;
27069  __Pyx_XGIVEREF(__pyx_r);
27070  __Pyx_TraceReturn(__pyx_r, 0);
27071  __Pyx_RefNannyFinishContext();
27072  return __pyx_r;
27073 }
27074 
27075 /* Python wrapper */
27076 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27077 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27078  int __pyx_r;
27079  __Pyx_RefNannyDeclarations
27080  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27081  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27082 
27083  /* function exit code */
27084  __Pyx_RefNannyFinishContext();
27085  return __pyx_r;
27086 }
27087 
27088 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27089  int __pyx_r;
27090  __Pyx_TraceDeclarations
27091  __Pyx_RefNannyDeclarations
27092  PyObject *__pyx_t_1 = NULL;
27093  int __pyx_lineno = 0;
27094  const char *__pyx_filename = NULL;
27095  int __pyx_clineno = 0;
27096  __Pyx_RefNannySetupContext("__set__", 0);
27097  __Pyx_TraceCall("__set__", __pyx_f[2], 42, 0, __PYX_ERR(2, 42, __pyx_L1_error));
27098  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 42, __pyx_L1_error)
27099  __pyx_t_1 = __pyx_v_value;
27100  __Pyx_INCREF(__pyx_t_1);
27101  __Pyx_GIVEREF(__pyx_t_1);
27102  __Pyx_GOTREF(__pyx_v_self->k_advective);
27103  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_advective));
27104  __pyx_v_self->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27105  __pyx_t_1 = 0;
27106 
27107  /* function exit code */
27108  __pyx_r = 0;
27109  goto __pyx_L0;
27110  __pyx_L1_error:;
27111  __Pyx_XDECREF(__pyx_t_1);
27112  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27113  __pyx_r = -1;
27114  __pyx_L0:;
27115  __Pyx_TraceReturn(Py_None, 0);
27116  __Pyx_RefNannyFinishContext();
27117  return __pyx_r;
27118 }
27119 
27120 /* Python wrapper */
27121 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
27122 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_5__del__(PyObject *__pyx_v_self) {
27123  int __pyx_r;
27124  __Pyx_RefNannyDeclarations
27125  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27126  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27127 
27128  /* function exit code */
27129  __Pyx_RefNannyFinishContext();
27130  return __pyx_r;
27131 }
27132 
27133 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27134  int __pyx_r;
27135  __Pyx_TraceDeclarations
27136  __Pyx_RefNannyDeclarations
27137  int __pyx_lineno = 0;
27138  const char *__pyx_filename = NULL;
27139  int __pyx_clineno = 0;
27140  __Pyx_RefNannySetupContext("__del__", 0);
27141  __Pyx_TraceCall("__del__", __pyx_f[2], 42, 0, __PYX_ERR(2, 42, __pyx_L1_error));
27142  __Pyx_INCREF(Py_None);
27143  __Pyx_GIVEREF(Py_None);
27144  __Pyx_GOTREF(__pyx_v_self->k_advective);
27145  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_advective));
27146  __pyx_v_self->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27147 
27148  /* function exit code */
27149  __pyx_r = 0;
27150  goto __pyx_L0;
27151  __pyx_L1_error:;
27152  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27153  __pyx_r = -1;
27154  __pyx_L0:;
27155  __Pyx_TraceReturn(Py_None, 0);
27156  __Pyx_RefNannyFinishContext();
27157  return __pyx_r;
27158 }
27159 
27160 /* "mprans/BoundaryConditions.pxd":43
27161  * cdef BoundaryCondition vof_advective
27162  * cdef BoundaryCondition k_advective
27163  * cdef BoundaryCondition dissipation_advective # <<<<<<<<<<<<<<
27164  * #diffusive
27165  * cdef BoundaryCondition u_diffusive
27166  */
27167 
27168 /* Python wrapper */
27169 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
27170 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_1__get__(PyObject *__pyx_v_self) {
27171  PyObject *__pyx_r = 0;
27172  __Pyx_RefNannyDeclarations
27173  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27174  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27175 
27176  /* function exit code */
27177  __Pyx_RefNannyFinishContext();
27178  return __pyx_r;
27179 }
27180 
27181 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27182  PyObject *__pyx_r = NULL;
27183  __Pyx_TraceDeclarations
27184  __Pyx_RefNannyDeclarations
27185  int __pyx_lineno = 0;
27186  const char *__pyx_filename = NULL;
27187  int __pyx_clineno = 0;
27188  __Pyx_RefNannySetupContext("__get__", 0);
27189  __Pyx_TraceCall("__get__", __pyx_f[2], 43, 0, __PYX_ERR(2, 43, __pyx_L1_error));
27190  __Pyx_XDECREF(__pyx_r);
27191  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_advective));
27192  __pyx_r = ((PyObject *)__pyx_v_self->dissipation_advective);
27193  goto __pyx_L0;
27194 
27195  /* function exit code */
27196  __pyx_L1_error:;
27197  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27198  __pyx_r = NULL;
27199  __pyx_L0:;
27200  __Pyx_XGIVEREF(__pyx_r);
27201  __Pyx_TraceReturn(__pyx_r, 0);
27202  __Pyx_RefNannyFinishContext();
27203  return __pyx_r;
27204 }
27205 
27206 /* Python wrapper */
27207 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27208 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27209  int __pyx_r;
27210  __Pyx_RefNannyDeclarations
27211  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27212  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27213 
27214  /* function exit code */
27215  __Pyx_RefNannyFinishContext();
27216  return __pyx_r;
27217 }
27218 
27219 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27220  int __pyx_r;
27221  __Pyx_TraceDeclarations
27222  __Pyx_RefNannyDeclarations
27223  PyObject *__pyx_t_1 = NULL;
27224  int __pyx_lineno = 0;
27225  const char *__pyx_filename = NULL;
27226  int __pyx_clineno = 0;
27227  __Pyx_RefNannySetupContext("__set__", 0);
27228  __Pyx_TraceCall("__set__", __pyx_f[2], 43, 0, __PYX_ERR(2, 43, __pyx_L1_error));
27229  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 43, __pyx_L1_error)
27230  __pyx_t_1 = __pyx_v_value;
27231  __Pyx_INCREF(__pyx_t_1);
27232  __Pyx_GIVEREF(__pyx_t_1);
27233  __Pyx_GOTREF(__pyx_v_self->dissipation_advective);
27234  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_advective));
27235  __pyx_v_self->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27236  __pyx_t_1 = 0;
27237 
27238  /* function exit code */
27239  __pyx_r = 0;
27240  goto __pyx_L0;
27241  __pyx_L1_error:;
27242  __Pyx_XDECREF(__pyx_t_1);
27243  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27244  __pyx_r = -1;
27245  __pyx_L0:;
27246  __Pyx_TraceReturn(Py_None, 0);
27247  __Pyx_RefNannyFinishContext();
27248  return __pyx_r;
27249 }
27250 
27251 /* Python wrapper */
27252 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
27253 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_5__del__(PyObject *__pyx_v_self) {
27254  int __pyx_r;
27255  __Pyx_RefNannyDeclarations
27256  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27257  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27258 
27259  /* function exit code */
27260  __Pyx_RefNannyFinishContext();
27261  return __pyx_r;
27262 }
27263 
27264 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27265  int __pyx_r;
27266  __Pyx_TraceDeclarations
27267  __Pyx_RefNannyDeclarations
27268  int __pyx_lineno = 0;
27269  const char *__pyx_filename = NULL;
27270  int __pyx_clineno = 0;
27271  __Pyx_RefNannySetupContext("__del__", 0);
27272  __Pyx_TraceCall("__del__", __pyx_f[2], 43, 0, __PYX_ERR(2, 43, __pyx_L1_error));
27273  __Pyx_INCREF(Py_None);
27274  __Pyx_GIVEREF(Py_None);
27275  __Pyx_GOTREF(__pyx_v_self->dissipation_advective);
27276  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_advective));
27277  __pyx_v_self->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27278 
27279  /* function exit code */
27280  __pyx_r = 0;
27281  goto __pyx_L0;
27282  __pyx_L1_error:;
27283  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27284  __pyx_r = -1;
27285  __pyx_L0:;
27286  __Pyx_TraceReturn(Py_None, 0);
27287  __Pyx_RefNannyFinishContext();
27288  return __pyx_r;
27289 }
27290 
27291 /* "mprans/BoundaryConditions.pxd":45
27292  * cdef BoundaryCondition dissipation_advective
27293  * #diffusive
27294  * cdef BoundaryCondition u_diffusive # <<<<<<<<<<<<<<
27295  * cdef BoundaryCondition v_diffusive
27296  * cdef BoundaryCondition w_diffusive
27297  */
27298 
27299 /* Python wrapper */
27300 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
27301 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_1__get__(PyObject *__pyx_v_self) {
27302  PyObject *__pyx_r = 0;
27303  __Pyx_RefNannyDeclarations
27304  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27305  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27306 
27307  /* function exit code */
27308  __Pyx_RefNannyFinishContext();
27309  return __pyx_r;
27310 }
27311 
27312 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27313  PyObject *__pyx_r = NULL;
27314  __Pyx_TraceDeclarations
27315  __Pyx_RefNannyDeclarations
27316  int __pyx_lineno = 0;
27317  const char *__pyx_filename = NULL;
27318  int __pyx_clineno = 0;
27319  __Pyx_RefNannySetupContext("__get__", 0);
27320  __Pyx_TraceCall("__get__", __pyx_f[2], 45, 0, __PYX_ERR(2, 45, __pyx_L1_error));
27321  __Pyx_XDECREF(__pyx_r);
27322  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_diffusive));
27323  __pyx_r = ((PyObject *)__pyx_v_self->u_diffusive);
27324  goto __pyx_L0;
27325 
27326  /* function exit code */
27327  __pyx_L1_error:;
27328  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27329  __pyx_r = NULL;
27330  __pyx_L0:;
27331  __Pyx_XGIVEREF(__pyx_r);
27332  __Pyx_TraceReturn(__pyx_r, 0);
27333  __Pyx_RefNannyFinishContext();
27334  return __pyx_r;
27335 }
27336 
27337 /* Python wrapper */
27338 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27339 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27340  int __pyx_r;
27341  __Pyx_RefNannyDeclarations
27342  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27343  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27344 
27345  /* function exit code */
27346  __Pyx_RefNannyFinishContext();
27347  return __pyx_r;
27348 }
27349 
27350 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27351  int __pyx_r;
27352  __Pyx_TraceDeclarations
27353  __Pyx_RefNannyDeclarations
27354  PyObject *__pyx_t_1 = NULL;
27355  int __pyx_lineno = 0;
27356  const char *__pyx_filename = NULL;
27357  int __pyx_clineno = 0;
27358  __Pyx_RefNannySetupContext("__set__", 0);
27359  __Pyx_TraceCall("__set__", __pyx_f[2], 45, 0, __PYX_ERR(2, 45, __pyx_L1_error));
27360  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 45, __pyx_L1_error)
27361  __pyx_t_1 = __pyx_v_value;
27362  __Pyx_INCREF(__pyx_t_1);
27363  __Pyx_GIVEREF(__pyx_t_1);
27364  __Pyx_GOTREF(__pyx_v_self->u_diffusive);
27365  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_diffusive));
27366  __pyx_v_self->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27367  __pyx_t_1 = 0;
27368 
27369  /* function exit code */
27370  __pyx_r = 0;
27371  goto __pyx_L0;
27372  __pyx_L1_error:;
27373  __Pyx_XDECREF(__pyx_t_1);
27374  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27375  __pyx_r = -1;
27376  __pyx_L0:;
27377  __Pyx_TraceReturn(Py_None, 0);
27378  __Pyx_RefNannyFinishContext();
27379  return __pyx_r;
27380 }
27381 
27382 /* Python wrapper */
27383 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
27384 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_5__del__(PyObject *__pyx_v_self) {
27385  int __pyx_r;
27386  __Pyx_RefNannyDeclarations
27387  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27388  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27389 
27390  /* function exit code */
27391  __Pyx_RefNannyFinishContext();
27392  return __pyx_r;
27393 }
27394 
27395 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27396  int __pyx_r;
27397  __Pyx_TraceDeclarations
27398  __Pyx_RefNannyDeclarations
27399  int __pyx_lineno = 0;
27400  const char *__pyx_filename = NULL;
27401  int __pyx_clineno = 0;
27402  __Pyx_RefNannySetupContext("__del__", 0);
27403  __Pyx_TraceCall("__del__", __pyx_f[2], 45, 0, __PYX_ERR(2, 45, __pyx_L1_error));
27404  __Pyx_INCREF(Py_None);
27405  __Pyx_GIVEREF(Py_None);
27406  __Pyx_GOTREF(__pyx_v_self->u_diffusive);
27407  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_diffusive));
27408  __pyx_v_self->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27409 
27410  /* function exit code */
27411  __pyx_r = 0;
27412  goto __pyx_L0;
27413  __pyx_L1_error:;
27414  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27415  __pyx_r = -1;
27416  __pyx_L0:;
27417  __Pyx_TraceReturn(Py_None, 0);
27418  __Pyx_RefNannyFinishContext();
27419  return __pyx_r;
27420 }
27421 
27422 /* "mprans/BoundaryConditions.pxd":46
27423  * #diffusive
27424  * cdef BoundaryCondition u_diffusive
27425  * cdef BoundaryCondition v_diffusive # <<<<<<<<<<<<<<
27426  * cdef BoundaryCondition w_diffusive
27427  * cdef BoundaryCondition k_diffusive
27428  */
27429 
27430 /* Python wrapper */
27431 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
27432 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_1__get__(PyObject *__pyx_v_self) {
27433  PyObject *__pyx_r = 0;
27434  __Pyx_RefNannyDeclarations
27435  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27436  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27437 
27438  /* function exit code */
27439  __Pyx_RefNannyFinishContext();
27440  return __pyx_r;
27441 }
27442 
27443 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27444  PyObject *__pyx_r = NULL;
27445  __Pyx_TraceDeclarations
27446  __Pyx_RefNannyDeclarations
27447  int __pyx_lineno = 0;
27448  const char *__pyx_filename = NULL;
27449  int __pyx_clineno = 0;
27450  __Pyx_RefNannySetupContext("__get__", 0);
27451  __Pyx_TraceCall("__get__", __pyx_f[2], 46, 0, __PYX_ERR(2, 46, __pyx_L1_error));
27452  __Pyx_XDECREF(__pyx_r);
27453  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_diffusive));
27454  __pyx_r = ((PyObject *)__pyx_v_self->v_diffusive);
27455  goto __pyx_L0;
27456 
27457  /* function exit code */
27458  __pyx_L1_error:;
27459  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27460  __pyx_r = NULL;
27461  __pyx_L0:;
27462  __Pyx_XGIVEREF(__pyx_r);
27463  __Pyx_TraceReturn(__pyx_r, 0);
27464  __Pyx_RefNannyFinishContext();
27465  return __pyx_r;
27466 }
27467 
27468 /* Python wrapper */
27469 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27470 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27471  int __pyx_r;
27472  __Pyx_RefNannyDeclarations
27473  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27474  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27475 
27476  /* function exit code */
27477  __Pyx_RefNannyFinishContext();
27478  return __pyx_r;
27479 }
27480 
27481 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27482  int __pyx_r;
27483  __Pyx_TraceDeclarations
27484  __Pyx_RefNannyDeclarations
27485  PyObject *__pyx_t_1 = NULL;
27486  int __pyx_lineno = 0;
27487  const char *__pyx_filename = NULL;
27488  int __pyx_clineno = 0;
27489  __Pyx_RefNannySetupContext("__set__", 0);
27490  __Pyx_TraceCall("__set__", __pyx_f[2], 46, 0, __PYX_ERR(2, 46, __pyx_L1_error));
27491  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 46, __pyx_L1_error)
27492  __pyx_t_1 = __pyx_v_value;
27493  __Pyx_INCREF(__pyx_t_1);
27494  __Pyx_GIVEREF(__pyx_t_1);
27495  __Pyx_GOTREF(__pyx_v_self->v_diffusive);
27496  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_diffusive));
27497  __pyx_v_self->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27498  __pyx_t_1 = 0;
27499 
27500  /* function exit code */
27501  __pyx_r = 0;
27502  goto __pyx_L0;
27503  __pyx_L1_error:;
27504  __Pyx_XDECREF(__pyx_t_1);
27505  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27506  __pyx_r = -1;
27507  __pyx_L0:;
27508  __Pyx_TraceReturn(Py_None, 0);
27509  __Pyx_RefNannyFinishContext();
27510  return __pyx_r;
27511 }
27512 
27513 /* Python wrapper */
27514 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
27515 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_5__del__(PyObject *__pyx_v_self) {
27516  int __pyx_r;
27517  __Pyx_RefNannyDeclarations
27518  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27519  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27520 
27521  /* function exit code */
27522  __Pyx_RefNannyFinishContext();
27523  return __pyx_r;
27524 }
27525 
27526 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27527  int __pyx_r;
27528  __Pyx_TraceDeclarations
27529  __Pyx_RefNannyDeclarations
27530  int __pyx_lineno = 0;
27531  const char *__pyx_filename = NULL;
27532  int __pyx_clineno = 0;
27533  __Pyx_RefNannySetupContext("__del__", 0);
27534  __Pyx_TraceCall("__del__", __pyx_f[2], 46, 0, __PYX_ERR(2, 46, __pyx_L1_error));
27535  __Pyx_INCREF(Py_None);
27536  __Pyx_GIVEREF(Py_None);
27537  __Pyx_GOTREF(__pyx_v_self->v_diffusive);
27538  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_diffusive));
27539  __pyx_v_self->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27540 
27541  /* function exit code */
27542  __pyx_r = 0;
27543  goto __pyx_L0;
27544  __pyx_L1_error:;
27545  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27546  __pyx_r = -1;
27547  __pyx_L0:;
27548  __Pyx_TraceReturn(Py_None, 0);
27549  __Pyx_RefNannyFinishContext();
27550  return __pyx_r;
27551 }
27552 
27553 /* "mprans/BoundaryConditions.pxd":47
27554  * cdef BoundaryCondition u_diffusive
27555  * cdef BoundaryCondition v_diffusive
27556  * cdef BoundaryCondition w_diffusive # <<<<<<<<<<<<<<
27557  * cdef BoundaryCondition k_diffusive
27558  * cdef BoundaryCondition dissipation_diffusive
27559  */
27560 
27561 /* Python wrapper */
27562 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
27563 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_1__get__(PyObject *__pyx_v_self) {
27564  PyObject *__pyx_r = 0;
27565  __Pyx_RefNannyDeclarations
27566  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27567  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27568 
27569  /* function exit code */
27570  __Pyx_RefNannyFinishContext();
27571  return __pyx_r;
27572 }
27573 
27574 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27575  PyObject *__pyx_r = NULL;
27576  __Pyx_TraceDeclarations
27577  __Pyx_RefNannyDeclarations
27578  int __pyx_lineno = 0;
27579  const char *__pyx_filename = NULL;
27580  int __pyx_clineno = 0;
27581  __Pyx_RefNannySetupContext("__get__", 0);
27582  __Pyx_TraceCall("__get__", __pyx_f[2], 47, 0, __PYX_ERR(2, 47, __pyx_L1_error));
27583  __Pyx_XDECREF(__pyx_r);
27584  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_diffusive));
27585  __pyx_r = ((PyObject *)__pyx_v_self->w_diffusive);
27586  goto __pyx_L0;
27587 
27588  /* function exit code */
27589  __pyx_L1_error:;
27590  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27591  __pyx_r = NULL;
27592  __pyx_L0:;
27593  __Pyx_XGIVEREF(__pyx_r);
27594  __Pyx_TraceReturn(__pyx_r, 0);
27595  __Pyx_RefNannyFinishContext();
27596  return __pyx_r;
27597 }
27598 
27599 /* Python wrapper */
27600 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27601 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27602  int __pyx_r;
27603  __Pyx_RefNannyDeclarations
27604  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27605  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27606 
27607  /* function exit code */
27608  __Pyx_RefNannyFinishContext();
27609  return __pyx_r;
27610 }
27611 
27612 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27613  int __pyx_r;
27614  __Pyx_TraceDeclarations
27615  __Pyx_RefNannyDeclarations
27616  PyObject *__pyx_t_1 = NULL;
27617  int __pyx_lineno = 0;
27618  const char *__pyx_filename = NULL;
27619  int __pyx_clineno = 0;
27620  __Pyx_RefNannySetupContext("__set__", 0);
27621  __Pyx_TraceCall("__set__", __pyx_f[2], 47, 0, __PYX_ERR(2, 47, __pyx_L1_error));
27622  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 47, __pyx_L1_error)
27623  __pyx_t_1 = __pyx_v_value;
27624  __Pyx_INCREF(__pyx_t_1);
27625  __Pyx_GIVEREF(__pyx_t_1);
27626  __Pyx_GOTREF(__pyx_v_self->w_diffusive);
27627  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_diffusive));
27628  __pyx_v_self->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27629  __pyx_t_1 = 0;
27630 
27631  /* function exit code */
27632  __pyx_r = 0;
27633  goto __pyx_L0;
27634  __pyx_L1_error:;
27635  __Pyx_XDECREF(__pyx_t_1);
27636  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27637  __pyx_r = -1;
27638  __pyx_L0:;
27639  __Pyx_TraceReturn(Py_None, 0);
27640  __Pyx_RefNannyFinishContext();
27641  return __pyx_r;
27642 }
27643 
27644 /* Python wrapper */
27645 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
27646 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_5__del__(PyObject *__pyx_v_self) {
27647  int __pyx_r;
27648  __Pyx_RefNannyDeclarations
27649  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27650  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27651 
27652  /* function exit code */
27653  __Pyx_RefNannyFinishContext();
27654  return __pyx_r;
27655 }
27656 
27657 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27658  int __pyx_r;
27659  __Pyx_TraceDeclarations
27660  __Pyx_RefNannyDeclarations
27661  int __pyx_lineno = 0;
27662  const char *__pyx_filename = NULL;
27663  int __pyx_clineno = 0;
27664  __Pyx_RefNannySetupContext("__del__", 0);
27665  __Pyx_TraceCall("__del__", __pyx_f[2], 47, 0, __PYX_ERR(2, 47, __pyx_L1_error));
27666  __Pyx_INCREF(Py_None);
27667  __Pyx_GIVEREF(Py_None);
27668  __Pyx_GOTREF(__pyx_v_self->w_diffusive);
27669  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_diffusive));
27670  __pyx_v_self->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27671 
27672  /* function exit code */
27673  __pyx_r = 0;
27674  goto __pyx_L0;
27675  __pyx_L1_error:;
27676  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27677  __pyx_r = -1;
27678  __pyx_L0:;
27679  __Pyx_TraceReturn(Py_None, 0);
27680  __Pyx_RefNannyFinishContext();
27681  return __pyx_r;
27682 }
27683 
27684 /* "mprans/BoundaryConditions.pxd":48
27685  * cdef BoundaryCondition v_diffusive
27686  * cdef BoundaryCondition w_diffusive
27687  * cdef BoundaryCondition k_diffusive # <<<<<<<<<<<<<<
27688  * cdef BoundaryCondition dissipation_diffusive
27689  * # mesh
27690  */
27691 
27692 /* Python wrapper */
27693 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
27694 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_1__get__(PyObject *__pyx_v_self) {
27695  PyObject *__pyx_r = 0;
27696  __Pyx_RefNannyDeclarations
27697  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27698  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27699 
27700  /* function exit code */
27701  __Pyx_RefNannyFinishContext();
27702  return __pyx_r;
27703 }
27704 
27705 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27706  PyObject *__pyx_r = NULL;
27707  __Pyx_TraceDeclarations
27708  __Pyx_RefNannyDeclarations
27709  int __pyx_lineno = 0;
27710  const char *__pyx_filename = NULL;
27711  int __pyx_clineno = 0;
27712  __Pyx_RefNannySetupContext("__get__", 0);
27713  __Pyx_TraceCall("__get__", __pyx_f[2], 48, 0, __PYX_ERR(2, 48, __pyx_L1_error));
27714  __Pyx_XDECREF(__pyx_r);
27715  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_diffusive));
27716  __pyx_r = ((PyObject *)__pyx_v_self->k_diffusive);
27717  goto __pyx_L0;
27718 
27719  /* function exit code */
27720  __pyx_L1_error:;
27721  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27722  __pyx_r = NULL;
27723  __pyx_L0:;
27724  __Pyx_XGIVEREF(__pyx_r);
27725  __Pyx_TraceReturn(__pyx_r, 0);
27726  __Pyx_RefNannyFinishContext();
27727  return __pyx_r;
27728 }
27729 
27730 /* Python wrapper */
27731 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27732 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27733  int __pyx_r;
27734  __Pyx_RefNannyDeclarations
27735  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27736  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27737 
27738  /* function exit code */
27739  __Pyx_RefNannyFinishContext();
27740  return __pyx_r;
27741 }
27742 
27743 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27744  int __pyx_r;
27745  __Pyx_TraceDeclarations
27746  __Pyx_RefNannyDeclarations
27747  PyObject *__pyx_t_1 = NULL;
27748  int __pyx_lineno = 0;
27749  const char *__pyx_filename = NULL;
27750  int __pyx_clineno = 0;
27751  __Pyx_RefNannySetupContext("__set__", 0);
27752  __Pyx_TraceCall("__set__", __pyx_f[2], 48, 0, __PYX_ERR(2, 48, __pyx_L1_error));
27753  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 48, __pyx_L1_error)
27754  __pyx_t_1 = __pyx_v_value;
27755  __Pyx_INCREF(__pyx_t_1);
27756  __Pyx_GIVEREF(__pyx_t_1);
27757  __Pyx_GOTREF(__pyx_v_self->k_diffusive);
27758  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_diffusive));
27759  __pyx_v_self->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27760  __pyx_t_1 = 0;
27761 
27762  /* function exit code */
27763  __pyx_r = 0;
27764  goto __pyx_L0;
27765  __pyx_L1_error:;
27766  __Pyx_XDECREF(__pyx_t_1);
27767  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27768  __pyx_r = -1;
27769  __pyx_L0:;
27770  __Pyx_TraceReturn(Py_None, 0);
27771  __Pyx_RefNannyFinishContext();
27772  return __pyx_r;
27773 }
27774 
27775 /* Python wrapper */
27776 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
27777 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_5__del__(PyObject *__pyx_v_self) {
27778  int __pyx_r;
27779  __Pyx_RefNannyDeclarations
27780  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27781  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27782 
27783  /* function exit code */
27784  __Pyx_RefNannyFinishContext();
27785  return __pyx_r;
27786 }
27787 
27788 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27789  int __pyx_r;
27790  __Pyx_TraceDeclarations
27791  __Pyx_RefNannyDeclarations
27792  int __pyx_lineno = 0;
27793  const char *__pyx_filename = NULL;
27794  int __pyx_clineno = 0;
27795  __Pyx_RefNannySetupContext("__del__", 0);
27796  __Pyx_TraceCall("__del__", __pyx_f[2], 48, 0, __PYX_ERR(2, 48, __pyx_L1_error));
27797  __Pyx_INCREF(Py_None);
27798  __Pyx_GIVEREF(Py_None);
27799  __Pyx_GOTREF(__pyx_v_self->k_diffusive);
27800  __Pyx_DECREF(((PyObject *)__pyx_v_self->k_diffusive));
27801  __pyx_v_self->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27802 
27803  /* function exit code */
27804  __pyx_r = 0;
27805  goto __pyx_L0;
27806  __pyx_L1_error:;
27807  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.k_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27808  __pyx_r = -1;
27809  __pyx_L0:;
27810  __Pyx_TraceReturn(Py_None, 0);
27811  __Pyx_RefNannyFinishContext();
27812  return __pyx_r;
27813 }
27814 
27815 /* "mprans/BoundaryConditions.pxd":49
27816  * cdef BoundaryCondition w_diffusive
27817  * cdef BoundaryCondition k_diffusive
27818  * cdef BoundaryCondition dissipation_diffusive # <<<<<<<<<<<<<<
27819  * # mesh
27820  * cdef BoundaryCondition hx_dirichlet
27821  */
27822 
27823 /* Python wrapper */
27824 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
27825 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_1__get__(PyObject *__pyx_v_self) {
27826  PyObject *__pyx_r = 0;
27827  __Pyx_RefNannyDeclarations
27828  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27829  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27830 
27831  /* function exit code */
27832  __Pyx_RefNannyFinishContext();
27833  return __pyx_r;
27834 }
27835 
27836 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27837  PyObject *__pyx_r = NULL;
27838  __Pyx_TraceDeclarations
27839  __Pyx_RefNannyDeclarations
27840  int __pyx_lineno = 0;
27841  const char *__pyx_filename = NULL;
27842  int __pyx_clineno = 0;
27843  __Pyx_RefNannySetupContext("__get__", 0);
27844  __Pyx_TraceCall("__get__", __pyx_f[2], 49, 0, __PYX_ERR(2, 49, __pyx_L1_error));
27845  __Pyx_XDECREF(__pyx_r);
27846  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
27847  __pyx_r = ((PyObject *)__pyx_v_self->dissipation_diffusive);
27848  goto __pyx_L0;
27849 
27850  /* function exit code */
27851  __pyx_L1_error:;
27852  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27853  __pyx_r = NULL;
27854  __pyx_L0:;
27855  __Pyx_XGIVEREF(__pyx_r);
27856  __Pyx_TraceReturn(__pyx_r, 0);
27857  __Pyx_RefNannyFinishContext();
27858  return __pyx_r;
27859 }
27860 
27861 /* Python wrapper */
27862 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27863 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27864  int __pyx_r;
27865  __Pyx_RefNannyDeclarations
27866  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27867  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27868 
27869  /* function exit code */
27870  __Pyx_RefNannyFinishContext();
27871  return __pyx_r;
27872 }
27873 
27874 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
27875  int __pyx_r;
27876  __Pyx_TraceDeclarations
27877  __Pyx_RefNannyDeclarations
27878  PyObject *__pyx_t_1 = NULL;
27879  int __pyx_lineno = 0;
27880  const char *__pyx_filename = NULL;
27881  int __pyx_clineno = 0;
27882  __Pyx_RefNannySetupContext("__set__", 0);
27883  __Pyx_TraceCall("__set__", __pyx_f[2], 49, 0, __PYX_ERR(2, 49, __pyx_L1_error));
27884  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 49, __pyx_L1_error)
27885  __pyx_t_1 = __pyx_v_value;
27886  __Pyx_INCREF(__pyx_t_1);
27887  __Pyx_GIVEREF(__pyx_t_1);
27888  __Pyx_GOTREF(__pyx_v_self->dissipation_diffusive);
27889  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
27890  __pyx_v_self->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
27891  __pyx_t_1 = 0;
27892 
27893  /* function exit code */
27894  __pyx_r = 0;
27895  goto __pyx_L0;
27896  __pyx_L1_error:;
27897  __Pyx_XDECREF(__pyx_t_1);
27898  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27899  __pyx_r = -1;
27900  __pyx_L0:;
27901  __Pyx_TraceReturn(Py_None, 0);
27902  __Pyx_RefNannyFinishContext();
27903  return __pyx_r;
27904 }
27905 
27906 /* Python wrapper */
27907 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
27908 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_5__del__(PyObject *__pyx_v_self) {
27909  int __pyx_r;
27910  __Pyx_RefNannyDeclarations
27911  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27912  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27913 
27914  /* function exit code */
27915  __Pyx_RefNannyFinishContext();
27916  return __pyx_r;
27917 }
27918 
27919 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27920  int __pyx_r;
27921  __Pyx_TraceDeclarations
27922  __Pyx_RefNannyDeclarations
27923  int __pyx_lineno = 0;
27924  const char *__pyx_filename = NULL;
27925  int __pyx_clineno = 0;
27926  __Pyx_RefNannySetupContext("__del__", 0);
27927  __Pyx_TraceCall("__del__", __pyx_f[2], 49, 0, __PYX_ERR(2, 49, __pyx_L1_error));
27928  __Pyx_INCREF(Py_None);
27929  __Pyx_GIVEREF(Py_None);
27930  __Pyx_GOTREF(__pyx_v_self->dissipation_diffusive);
27931  __Pyx_DECREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
27932  __pyx_v_self->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
27933 
27934  /* function exit code */
27935  __pyx_r = 0;
27936  goto __pyx_L0;
27937  __pyx_L1_error:;
27938  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.dissipation_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27939  __pyx_r = -1;
27940  __pyx_L0:;
27941  __Pyx_TraceReturn(Py_None, 0);
27942  __Pyx_RefNannyFinishContext();
27943  return __pyx_r;
27944 }
27945 
27946 /* "mprans/BoundaryConditions.pxd":51
27947  * cdef BoundaryCondition dissipation_diffusive
27948  * # mesh
27949  * cdef BoundaryCondition hx_dirichlet # <<<<<<<<<<<<<<
27950  * cdef BoundaryCondition hy_dirichlet
27951  * cdef BoundaryCondition hz_dirichlet
27952  */
27953 
27954 /* Python wrapper */
27955 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
27956 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_1__get__(PyObject *__pyx_v_self) {
27957  PyObject *__pyx_r = 0;
27958  __Pyx_RefNannyDeclarations
27959  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27960  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
27961 
27962  /* function exit code */
27963  __Pyx_RefNannyFinishContext();
27964  return __pyx_r;
27965 }
27966 
27967 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
27968  PyObject *__pyx_r = NULL;
27969  __Pyx_TraceDeclarations
27970  __Pyx_RefNannyDeclarations
27971  int __pyx_lineno = 0;
27972  const char *__pyx_filename = NULL;
27973  int __pyx_clineno = 0;
27974  __Pyx_RefNannySetupContext("__get__", 0);
27975  __Pyx_TraceCall("__get__", __pyx_f[2], 51, 0, __PYX_ERR(2, 51, __pyx_L1_error));
27976  __Pyx_XDECREF(__pyx_r);
27977  __Pyx_INCREF(((PyObject *)__pyx_v_self->hx_dirichlet));
27978  __pyx_r = ((PyObject *)__pyx_v_self->hx_dirichlet);
27979  goto __pyx_L0;
27980 
27981  /* function exit code */
27982  __pyx_L1_error:;
27983  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hx_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27984  __pyx_r = NULL;
27985  __pyx_L0:;
27986  __Pyx_XGIVEREF(__pyx_r);
27987  __Pyx_TraceReturn(__pyx_r, 0);
27988  __Pyx_RefNannyFinishContext();
27989  return __pyx_r;
27990 }
27991 
27992 /* Python wrapper */
27993 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27994 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27995  int __pyx_r;
27996  __Pyx_RefNannyDeclarations
27997  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27998  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27999 
28000  /* function exit code */
28001  __Pyx_RefNannyFinishContext();
28002  return __pyx_r;
28003 }
28004 
28005 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28006  int __pyx_r;
28007  __Pyx_TraceDeclarations
28008  __Pyx_RefNannyDeclarations
28009  PyObject *__pyx_t_1 = NULL;
28010  int __pyx_lineno = 0;
28011  const char *__pyx_filename = NULL;
28012  int __pyx_clineno = 0;
28013  __Pyx_RefNannySetupContext("__set__", 0);
28014  __Pyx_TraceCall("__set__", __pyx_f[2], 51, 0, __PYX_ERR(2, 51, __pyx_L1_error));
28015  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 51, __pyx_L1_error)
28016  __pyx_t_1 = __pyx_v_value;
28017  __Pyx_INCREF(__pyx_t_1);
28018  __Pyx_GIVEREF(__pyx_t_1);
28019  __Pyx_GOTREF(__pyx_v_self->hx_dirichlet);
28020  __Pyx_DECREF(((PyObject *)__pyx_v_self->hx_dirichlet));
28021  __pyx_v_self->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28022  __pyx_t_1 = 0;
28023 
28024  /* function exit code */
28025  __pyx_r = 0;
28026  goto __pyx_L0;
28027  __pyx_L1_error:;
28028  __Pyx_XDECREF(__pyx_t_1);
28029  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hx_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28030  __pyx_r = -1;
28031  __pyx_L0:;
28032  __Pyx_TraceReturn(Py_None, 0);
28033  __Pyx_RefNannyFinishContext();
28034  return __pyx_r;
28035 }
28036 
28037 /* Python wrapper */
28038 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
28039 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_5__del__(PyObject *__pyx_v_self) {
28040  int __pyx_r;
28041  __Pyx_RefNannyDeclarations
28042  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28043  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28044 
28045  /* function exit code */
28046  __Pyx_RefNannyFinishContext();
28047  return __pyx_r;
28048 }
28049 
28050 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28051  int __pyx_r;
28052  __Pyx_TraceDeclarations
28053  __Pyx_RefNannyDeclarations
28054  int __pyx_lineno = 0;
28055  const char *__pyx_filename = NULL;
28056  int __pyx_clineno = 0;
28057  __Pyx_RefNannySetupContext("__del__", 0);
28058  __Pyx_TraceCall("__del__", __pyx_f[2], 51, 0, __PYX_ERR(2, 51, __pyx_L1_error));
28059  __Pyx_INCREF(Py_None);
28060  __Pyx_GIVEREF(Py_None);
28061  __Pyx_GOTREF(__pyx_v_self->hx_dirichlet);
28062  __Pyx_DECREF(((PyObject *)__pyx_v_self->hx_dirichlet));
28063  __pyx_v_self->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28064 
28065  /* function exit code */
28066  __pyx_r = 0;
28067  goto __pyx_L0;
28068  __pyx_L1_error:;
28069  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hx_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28070  __pyx_r = -1;
28071  __pyx_L0:;
28072  __Pyx_TraceReturn(Py_None, 0);
28073  __Pyx_RefNannyFinishContext();
28074  return __pyx_r;
28075 }
28076 
28077 /* "mprans/BoundaryConditions.pxd":52
28078  * # mesh
28079  * cdef BoundaryCondition hx_dirichlet
28080  * cdef BoundaryCondition hy_dirichlet # <<<<<<<<<<<<<<
28081  * cdef BoundaryCondition hz_dirichlet
28082  * cdef BoundaryCondition u_stress
28083  */
28084 
28085 /* Python wrapper */
28086 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
28087 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_1__get__(PyObject *__pyx_v_self) {
28088  PyObject *__pyx_r = 0;
28089  __Pyx_RefNannyDeclarations
28090  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28091  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28092 
28093  /* function exit code */
28094  __Pyx_RefNannyFinishContext();
28095  return __pyx_r;
28096 }
28097 
28098 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28099  PyObject *__pyx_r = NULL;
28100  __Pyx_TraceDeclarations
28101  __Pyx_RefNannyDeclarations
28102  int __pyx_lineno = 0;
28103  const char *__pyx_filename = NULL;
28104  int __pyx_clineno = 0;
28105  __Pyx_RefNannySetupContext("__get__", 0);
28106  __Pyx_TraceCall("__get__", __pyx_f[2], 52, 0, __PYX_ERR(2, 52, __pyx_L1_error));
28107  __Pyx_XDECREF(__pyx_r);
28108  __Pyx_INCREF(((PyObject *)__pyx_v_self->hy_dirichlet));
28109  __pyx_r = ((PyObject *)__pyx_v_self->hy_dirichlet);
28110  goto __pyx_L0;
28111 
28112  /* function exit code */
28113  __pyx_L1_error:;
28114  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hy_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28115  __pyx_r = NULL;
28116  __pyx_L0:;
28117  __Pyx_XGIVEREF(__pyx_r);
28118  __Pyx_TraceReturn(__pyx_r, 0);
28119  __Pyx_RefNannyFinishContext();
28120  return __pyx_r;
28121 }
28122 
28123 /* Python wrapper */
28124 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28125 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28126  int __pyx_r;
28127  __Pyx_RefNannyDeclarations
28128  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28129  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28130 
28131  /* function exit code */
28132  __Pyx_RefNannyFinishContext();
28133  return __pyx_r;
28134 }
28135 
28136 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28137  int __pyx_r;
28138  __Pyx_TraceDeclarations
28139  __Pyx_RefNannyDeclarations
28140  PyObject *__pyx_t_1 = NULL;
28141  int __pyx_lineno = 0;
28142  const char *__pyx_filename = NULL;
28143  int __pyx_clineno = 0;
28144  __Pyx_RefNannySetupContext("__set__", 0);
28145  __Pyx_TraceCall("__set__", __pyx_f[2], 52, 0, __PYX_ERR(2, 52, __pyx_L1_error));
28146  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 52, __pyx_L1_error)
28147  __pyx_t_1 = __pyx_v_value;
28148  __Pyx_INCREF(__pyx_t_1);
28149  __Pyx_GIVEREF(__pyx_t_1);
28150  __Pyx_GOTREF(__pyx_v_self->hy_dirichlet);
28151  __Pyx_DECREF(((PyObject *)__pyx_v_self->hy_dirichlet));
28152  __pyx_v_self->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28153  __pyx_t_1 = 0;
28154 
28155  /* function exit code */
28156  __pyx_r = 0;
28157  goto __pyx_L0;
28158  __pyx_L1_error:;
28159  __Pyx_XDECREF(__pyx_t_1);
28160  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hy_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28161  __pyx_r = -1;
28162  __pyx_L0:;
28163  __Pyx_TraceReturn(Py_None, 0);
28164  __Pyx_RefNannyFinishContext();
28165  return __pyx_r;
28166 }
28167 
28168 /* Python wrapper */
28169 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
28170 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_5__del__(PyObject *__pyx_v_self) {
28171  int __pyx_r;
28172  __Pyx_RefNannyDeclarations
28173  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28174  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28175 
28176  /* function exit code */
28177  __Pyx_RefNannyFinishContext();
28178  return __pyx_r;
28179 }
28180 
28181 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28182  int __pyx_r;
28183  __Pyx_TraceDeclarations
28184  __Pyx_RefNannyDeclarations
28185  int __pyx_lineno = 0;
28186  const char *__pyx_filename = NULL;
28187  int __pyx_clineno = 0;
28188  __Pyx_RefNannySetupContext("__del__", 0);
28189  __Pyx_TraceCall("__del__", __pyx_f[2], 52, 0, __PYX_ERR(2, 52, __pyx_L1_error));
28190  __Pyx_INCREF(Py_None);
28191  __Pyx_GIVEREF(Py_None);
28192  __Pyx_GOTREF(__pyx_v_self->hy_dirichlet);
28193  __Pyx_DECREF(((PyObject *)__pyx_v_self->hy_dirichlet));
28194  __pyx_v_self->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28195 
28196  /* function exit code */
28197  __pyx_r = 0;
28198  goto __pyx_L0;
28199  __pyx_L1_error:;
28200  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hy_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28201  __pyx_r = -1;
28202  __pyx_L0:;
28203  __Pyx_TraceReturn(Py_None, 0);
28204  __Pyx_RefNannyFinishContext();
28205  return __pyx_r;
28206 }
28207 
28208 /* "mprans/BoundaryConditions.pxd":53
28209  * cdef BoundaryCondition hx_dirichlet
28210  * cdef BoundaryCondition hy_dirichlet
28211  * cdef BoundaryCondition hz_dirichlet # <<<<<<<<<<<<<<
28212  * cdef BoundaryCondition u_stress
28213  * cdef BoundaryCondition v_stress
28214  */
28215 
28216 /* Python wrapper */
28217 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
28218 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_1__get__(PyObject *__pyx_v_self) {
28219  PyObject *__pyx_r = 0;
28220  __Pyx_RefNannyDeclarations
28221  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28222  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28223 
28224  /* function exit code */
28225  __Pyx_RefNannyFinishContext();
28226  return __pyx_r;
28227 }
28228 
28229 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28230  PyObject *__pyx_r = NULL;
28231  __Pyx_TraceDeclarations
28232  __Pyx_RefNannyDeclarations
28233  int __pyx_lineno = 0;
28234  const char *__pyx_filename = NULL;
28235  int __pyx_clineno = 0;
28236  __Pyx_RefNannySetupContext("__get__", 0);
28237  __Pyx_TraceCall("__get__", __pyx_f[2], 53, 0, __PYX_ERR(2, 53, __pyx_L1_error));
28238  __Pyx_XDECREF(__pyx_r);
28239  __Pyx_INCREF(((PyObject *)__pyx_v_self->hz_dirichlet));
28240  __pyx_r = ((PyObject *)__pyx_v_self->hz_dirichlet);
28241  goto __pyx_L0;
28242 
28243  /* function exit code */
28244  __pyx_L1_error:;
28245  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hz_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28246  __pyx_r = NULL;
28247  __pyx_L0:;
28248  __Pyx_XGIVEREF(__pyx_r);
28249  __Pyx_TraceReturn(__pyx_r, 0);
28250  __Pyx_RefNannyFinishContext();
28251  return __pyx_r;
28252 }
28253 
28254 /* Python wrapper */
28255 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28256 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28257  int __pyx_r;
28258  __Pyx_RefNannyDeclarations
28259  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28260  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28261 
28262  /* function exit code */
28263  __Pyx_RefNannyFinishContext();
28264  return __pyx_r;
28265 }
28266 
28267 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28268  int __pyx_r;
28269  __Pyx_TraceDeclarations
28270  __Pyx_RefNannyDeclarations
28271  PyObject *__pyx_t_1 = NULL;
28272  int __pyx_lineno = 0;
28273  const char *__pyx_filename = NULL;
28274  int __pyx_clineno = 0;
28275  __Pyx_RefNannySetupContext("__set__", 0);
28276  __Pyx_TraceCall("__set__", __pyx_f[2], 53, 0, __PYX_ERR(2, 53, __pyx_L1_error));
28277  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 53, __pyx_L1_error)
28278  __pyx_t_1 = __pyx_v_value;
28279  __Pyx_INCREF(__pyx_t_1);
28280  __Pyx_GIVEREF(__pyx_t_1);
28281  __Pyx_GOTREF(__pyx_v_self->hz_dirichlet);
28282  __Pyx_DECREF(((PyObject *)__pyx_v_self->hz_dirichlet));
28283  __pyx_v_self->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28284  __pyx_t_1 = 0;
28285 
28286  /* function exit code */
28287  __pyx_r = 0;
28288  goto __pyx_L0;
28289  __pyx_L1_error:;
28290  __Pyx_XDECREF(__pyx_t_1);
28291  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hz_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28292  __pyx_r = -1;
28293  __pyx_L0:;
28294  __Pyx_TraceReturn(Py_None, 0);
28295  __Pyx_RefNannyFinishContext();
28296  return __pyx_r;
28297 }
28298 
28299 /* Python wrapper */
28300 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
28301 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_5__del__(PyObject *__pyx_v_self) {
28302  int __pyx_r;
28303  __Pyx_RefNannyDeclarations
28304  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28305  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28306 
28307  /* function exit code */
28308  __Pyx_RefNannyFinishContext();
28309  return __pyx_r;
28310 }
28311 
28312 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28313  int __pyx_r;
28314  __Pyx_TraceDeclarations
28315  __Pyx_RefNannyDeclarations
28316  int __pyx_lineno = 0;
28317  const char *__pyx_filename = NULL;
28318  int __pyx_clineno = 0;
28319  __Pyx_RefNannySetupContext("__del__", 0);
28320  __Pyx_TraceCall("__del__", __pyx_f[2], 53, 0, __PYX_ERR(2, 53, __pyx_L1_error));
28321  __Pyx_INCREF(Py_None);
28322  __Pyx_GIVEREF(Py_None);
28323  __Pyx_GOTREF(__pyx_v_self->hz_dirichlet);
28324  __Pyx_DECREF(((PyObject *)__pyx_v_self->hz_dirichlet));
28325  __pyx_v_self->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28326 
28327  /* function exit code */
28328  __pyx_r = 0;
28329  goto __pyx_L0;
28330  __pyx_L1_error:;
28331  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.hz_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28332  __pyx_r = -1;
28333  __pyx_L0:;
28334  __Pyx_TraceReturn(Py_None, 0);
28335  __Pyx_RefNannyFinishContext();
28336  return __pyx_r;
28337 }
28338 
28339 /* "mprans/BoundaryConditions.pxd":54
28340  * cdef BoundaryCondition hy_dirichlet
28341  * cdef BoundaryCondition hz_dirichlet
28342  * cdef BoundaryCondition u_stress # <<<<<<<<<<<<<<
28343  * cdef BoundaryCondition v_stress
28344  * cdef BoundaryCondition w_stress
28345  */
28346 
28347 /* Python wrapper */
28348 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_1__get__(PyObject *__pyx_v_self); /*proto*/
28349 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_1__get__(PyObject *__pyx_v_self) {
28350  PyObject *__pyx_r = 0;
28351  __Pyx_RefNannyDeclarations
28352  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28353  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28354 
28355  /* function exit code */
28356  __Pyx_RefNannyFinishContext();
28357  return __pyx_r;
28358 }
28359 
28360 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28361  PyObject *__pyx_r = NULL;
28362  __Pyx_TraceDeclarations
28363  __Pyx_RefNannyDeclarations
28364  int __pyx_lineno = 0;
28365  const char *__pyx_filename = NULL;
28366  int __pyx_clineno = 0;
28367  __Pyx_RefNannySetupContext("__get__", 0);
28368  __Pyx_TraceCall("__get__", __pyx_f[2], 54, 0, __PYX_ERR(2, 54, __pyx_L1_error));
28369  __Pyx_XDECREF(__pyx_r);
28370  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_stress));
28371  __pyx_r = ((PyObject *)__pyx_v_self->u_stress);
28372  goto __pyx_L0;
28373 
28374  /* function exit code */
28375  __pyx_L1_error:;
28376  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_stress.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28377  __pyx_r = NULL;
28378  __pyx_L0:;
28379  __Pyx_XGIVEREF(__pyx_r);
28380  __Pyx_TraceReturn(__pyx_r, 0);
28381  __Pyx_RefNannyFinishContext();
28382  return __pyx_r;
28383 }
28384 
28385 /* Python wrapper */
28386 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28387 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28388  int __pyx_r;
28389  __Pyx_RefNannyDeclarations
28390  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28391  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28392 
28393  /* function exit code */
28394  __Pyx_RefNannyFinishContext();
28395  return __pyx_r;
28396 }
28397 
28398 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28399  int __pyx_r;
28400  __Pyx_TraceDeclarations
28401  __Pyx_RefNannyDeclarations
28402  PyObject *__pyx_t_1 = NULL;
28403  int __pyx_lineno = 0;
28404  const char *__pyx_filename = NULL;
28405  int __pyx_clineno = 0;
28406  __Pyx_RefNannySetupContext("__set__", 0);
28407  __Pyx_TraceCall("__set__", __pyx_f[2], 54, 0, __PYX_ERR(2, 54, __pyx_L1_error));
28408  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 54, __pyx_L1_error)
28409  __pyx_t_1 = __pyx_v_value;
28410  __Pyx_INCREF(__pyx_t_1);
28411  __Pyx_GIVEREF(__pyx_t_1);
28412  __Pyx_GOTREF(__pyx_v_self->u_stress);
28413  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_stress));
28414  __pyx_v_self->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28415  __pyx_t_1 = 0;
28416 
28417  /* function exit code */
28418  __pyx_r = 0;
28419  goto __pyx_L0;
28420  __pyx_L1_error:;
28421  __Pyx_XDECREF(__pyx_t_1);
28422  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_stress.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28423  __pyx_r = -1;
28424  __pyx_L0:;
28425  __Pyx_TraceReturn(Py_None, 0);
28426  __Pyx_RefNannyFinishContext();
28427  return __pyx_r;
28428 }
28429 
28430 /* Python wrapper */
28431 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_5__del__(PyObject *__pyx_v_self); /*proto*/
28432 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_5__del__(PyObject *__pyx_v_self) {
28433  int __pyx_r;
28434  __Pyx_RefNannyDeclarations
28435  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28436  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28437 
28438  /* function exit code */
28439  __Pyx_RefNannyFinishContext();
28440  return __pyx_r;
28441 }
28442 
28443 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28444  int __pyx_r;
28445  __Pyx_TraceDeclarations
28446  __Pyx_RefNannyDeclarations
28447  int __pyx_lineno = 0;
28448  const char *__pyx_filename = NULL;
28449  int __pyx_clineno = 0;
28450  __Pyx_RefNannySetupContext("__del__", 0);
28451  __Pyx_TraceCall("__del__", __pyx_f[2], 54, 0, __PYX_ERR(2, 54, __pyx_L1_error));
28452  __Pyx_INCREF(Py_None);
28453  __Pyx_GIVEREF(Py_None);
28454  __Pyx_GOTREF(__pyx_v_self->u_stress);
28455  __Pyx_DECREF(((PyObject *)__pyx_v_self->u_stress));
28456  __pyx_v_self->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28457 
28458  /* function exit code */
28459  __pyx_r = 0;
28460  goto __pyx_L0;
28461  __pyx_L1_error:;
28462  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.u_stress.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28463  __pyx_r = -1;
28464  __pyx_L0:;
28465  __Pyx_TraceReturn(Py_None, 0);
28466  __Pyx_RefNannyFinishContext();
28467  return __pyx_r;
28468 }
28469 
28470 /* "mprans/BoundaryConditions.pxd":55
28471  * cdef BoundaryCondition hz_dirichlet
28472  * cdef BoundaryCondition u_stress
28473  * cdef BoundaryCondition v_stress # <<<<<<<<<<<<<<
28474  * cdef BoundaryCondition w_stress
28475  * # sediment solver
28476  */
28477 
28478 /* Python wrapper */
28479 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_1__get__(PyObject *__pyx_v_self); /*proto*/
28480 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_1__get__(PyObject *__pyx_v_self) {
28481  PyObject *__pyx_r = 0;
28482  __Pyx_RefNannyDeclarations
28483  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28484  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28485 
28486  /* function exit code */
28487  __Pyx_RefNannyFinishContext();
28488  return __pyx_r;
28489 }
28490 
28491 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28492  PyObject *__pyx_r = NULL;
28493  __Pyx_TraceDeclarations
28494  __Pyx_RefNannyDeclarations
28495  int __pyx_lineno = 0;
28496  const char *__pyx_filename = NULL;
28497  int __pyx_clineno = 0;
28498  __Pyx_RefNannySetupContext("__get__", 0);
28499  __Pyx_TraceCall("__get__", __pyx_f[2], 55, 0, __PYX_ERR(2, 55, __pyx_L1_error));
28500  __Pyx_XDECREF(__pyx_r);
28501  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_stress));
28502  __pyx_r = ((PyObject *)__pyx_v_self->v_stress);
28503  goto __pyx_L0;
28504 
28505  /* function exit code */
28506  __pyx_L1_error:;
28507  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_stress.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28508  __pyx_r = NULL;
28509  __pyx_L0:;
28510  __Pyx_XGIVEREF(__pyx_r);
28511  __Pyx_TraceReturn(__pyx_r, 0);
28512  __Pyx_RefNannyFinishContext();
28513  return __pyx_r;
28514 }
28515 
28516 /* Python wrapper */
28517 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28518 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28519  int __pyx_r;
28520  __Pyx_RefNannyDeclarations
28521  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28522  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28523 
28524  /* function exit code */
28525  __Pyx_RefNannyFinishContext();
28526  return __pyx_r;
28527 }
28528 
28529 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28530  int __pyx_r;
28531  __Pyx_TraceDeclarations
28532  __Pyx_RefNannyDeclarations
28533  PyObject *__pyx_t_1 = NULL;
28534  int __pyx_lineno = 0;
28535  const char *__pyx_filename = NULL;
28536  int __pyx_clineno = 0;
28537  __Pyx_RefNannySetupContext("__set__", 0);
28538  __Pyx_TraceCall("__set__", __pyx_f[2], 55, 0, __PYX_ERR(2, 55, __pyx_L1_error));
28539  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 55, __pyx_L1_error)
28540  __pyx_t_1 = __pyx_v_value;
28541  __Pyx_INCREF(__pyx_t_1);
28542  __Pyx_GIVEREF(__pyx_t_1);
28543  __Pyx_GOTREF(__pyx_v_self->v_stress);
28544  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_stress));
28545  __pyx_v_self->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28546  __pyx_t_1 = 0;
28547 
28548  /* function exit code */
28549  __pyx_r = 0;
28550  goto __pyx_L0;
28551  __pyx_L1_error:;
28552  __Pyx_XDECREF(__pyx_t_1);
28553  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_stress.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28554  __pyx_r = -1;
28555  __pyx_L0:;
28556  __Pyx_TraceReturn(Py_None, 0);
28557  __Pyx_RefNannyFinishContext();
28558  return __pyx_r;
28559 }
28560 
28561 /* Python wrapper */
28562 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_5__del__(PyObject *__pyx_v_self); /*proto*/
28563 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_5__del__(PyObject *__pyx_v_self) {
28564  int __pyx_r;
28565  __Pyx_RefNannyDeclarations
28566  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28567  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28568 
28569  /* function exit code */
28570  __Pyx_RefNannyFinishContext();
28571  return __pyx_r;
28572 }
28573 
28574 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28575  int __pyx_r;
28576  __Pyx_TraceDeclarations
28577  __Pyx_RefNannyDeclarations
28578  int __pyx_lineno = 0;
28579  const char *__pyx_filename = NULL;
28580  int __pyx_clineno = 0;
28581  __Pyx_RefNannySetupContext("__del__", 0);
28582  __Pyx_TraceCall("__del__", __pyx_f[2], 55, 0, __PYX_ERR(2, 55, __pyx_L1_error));
28583  __Pyx_INCREF(Py_None);
28584  __Pyx_GIVEREF(Py_None);
28585  __Pyx_GOTREF(__pyx_v_self->v_stress);
28586  __Pyx_DECREF(((PyObject *)__pyx_v_self->v_stress));
28587  __pyx_v_self->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28588 
28589  /* function exit code */
28590  __pyx_r = 0;
28591  goto __pyx_L0;
28592  __pyx_L1_error:;
28593  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.v_stress.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28594  __pyx_r = -1;
28595  __pyx_L0:;
28596  __Pyx_TraceReturn(Py_None, 0);
28597  __Pyx_RefNannyFinishContext();
28598  return __pyx_r;
28599 }
28600 
28601 /* "mprans/BoundaryConditions.pxd":56
28602  * cdef BoundaryCondition u_stress
28603  * cdef BoundaryCondition v_stress
28604  * cdef BoundaryCondition w_stress # <<<<<<<<<<<<<<
28605  * # sediment solver
28606  * cdef BoundaryCondition us_dirichlet
28607  */
28608 
28609 /* Python wrapper */
28610 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_1__get__(PyObject *__pyx_v_self); /*proto*/
28611 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_1__get__(PyObject *__pyx_v_self) {
28612  PyObject *__pyx_r = 0;
28613  __Pyx_RefNannyDeclarations
28614  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28615  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28616 
28617  /* function exit code */
28618  __Pyx_RefNannyFinishContext();
28619  return __pyx_r;
28620 }
28621 
28622 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28623  PyObject *__pyx_r = NULL;
28624  __Pyx_TraceDeclarations
28625  __Pyx_RefNannyDeclarations
28626  int __pyx_lineno = 0;
28627  const char *__pyx_filename = NULL;
28628  int __pyx_clineno = 0;
28629  __Pyx_RefNannySetupContext("__get__", 0);
28630  __Pyx_TraceCall("__get__", __pyx_f[2], 56, 0, __PYX_ERR(2, 56, __pyx_L1_error));
28631  __Pyx_XDECREF(__pyx_r);
28632  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_stress));
28633  __pyx_r = ((PyObject *)__pyx_v_self->w_stress);
28634  goto __pyx_L0;
28635 
28636  /* function exit code */
28637  __pyx_L1_error:;
28638  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_stress.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28639  __pyx_r = NULL;
28640  __pyx_L0:;
28641  __Pyx_XGIVEREF(__pyx_r);
28642  __Pyx_TraceReturn(__pyx_r, 0);
28643  __Pyx_RefNannyFinishContext();
28644  return __pyx_r;
28645 }
28646 
28647 /* Python wrapper */
28648 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28649 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28650  int __pyx_r;
28651  __Pyx_RefNannyDeclarations
28652  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28653  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28654 
28655  /* function exit code */
28656  __Pyx_RefNannyFinishContext();
28657  return __pyx_r;
28658 }
28659 
28660 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28661  int __pyx_r;
28662  __Pyx_TraceDeclarations
28663  __Pyx_RefNannyDeclarations
28664  PyObject *__pyx_t_1 = NULL;
28665  int __pyx_lineno = 0;
28666  const char *__pyx_filename = NULL;
28667  int __pyx_clineno = 0;
28668  __Pyx_RefNannySetupContext("__set__", 0);
28669  __Pyx_TraceCall("__set__", __pyx_f[2], 56, 0, __PYX_ERR(2, 56, __pyx_L1_error));
28670  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 56, __pyx_L1_error)
28671  __pyx_t_1 = __pyx_v_value;
28672  __Pyx_INCREF(__pyx_t_1);
28673  __Pyx_GIVEREF(__pyx_t_1);
28674  __Pyx_GOTREF(__pyx_v_self->w_stress);
28675  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_stress));
28676  __pyx_v_self->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28677  __pyx_t_1 = 0;
28678 
28679  /* function exit code */
28680  __pyx_r = 0;
28681  goto __pyx_L0;
28682  __pyx_L1_error:;
28683  __Pyx_XDECREF(__pyx_t_1);
28684  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_stress.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28685  __pyx_r = -1;
28686  __pyx_L0:;
28687  __Pyx_TraceReturn(Py_None, 0);
28688  __Pyx_RefNannyFinishContext();
28689  return __pyx_r;
28690 }
28691 
28692 /* Python wrapper */
28693 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_5__del__(PyObject *__pyx_v_self); /*proto*/
28694 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_5__del__(PyObject *__pyx_v_self) {
28695  int __pyx_r;
28696  __Pyx_RefNannyDeclarations
28697  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28698  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28699 
28700  /* function exit code */
28701  __Pyx_RefNannyFinishContext();
28702  return __pyx_r;
28703 }
28704 
28705 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28706  int __pyx_r;
28707  __Pyx_TraceDeclarations
28708  __Pyx_RefNannyDeclarations
28709  int __pyx_lineno = 0;
28710  const char *__pyx_filename = NULL;
28711  int __pyx_clineno = 0;
28712  __Pyx_RefNannySetupContext("__del__", 0);
28713  __Pyx_TraceCall("__del__", __pyx_f[2], 56, 0, __PYX_ERR(2, 56, __pyx_L1_error));
28714  __Pyx_INCREF(Py_None);
28715  __Pyx_GIVEREF(Py_None);
28716  __Pyx_GOTREF(__pyx_v_self->w_stress);
28717  __Pyx_DECREF(((PyObject *)__pyx_v_self->w_stress));
28718  __pyx_v_self->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28719 
28720  /* function exit code */
28721  __pyx_r = 0;
28722  goto __pyx_L0;
28723  __pyx_L1_error:;
28724  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.w_stress.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28725  __pyx_r = -1;
28726  __pyx_L0:;
28727  __Pyx_TraceReturn(Py_None, 0);
28728  __Pyx_RefNannyFinishContext();
28729  return __pyx_r;
28730 }
28731 
28732 /* "mprans/BoundaryConditions.pxd":58
28733  * cdef BoundaryCondition w_stress
28734  * # sediment solver
28735  * cdef BoundaryCondition us_dirichlet # <<<<<<<<<<<<<<
28736  * cdef BoundaryCondition vs_dirichlet
28737  * cdef BoundaryCondition ws_dirichlet
28738  */
28739 
28740 /* Python wrapper */
28741 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
28742 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_1__get__(PyObject *__pyx_v_self) {
28743  PyObject *__pyx_r = 0;
28744  __Pyx_RefNannyDeclarations
28745  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28746  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28747 
28748  /* function exit code */
28749  __Pyx_RefNannyFinishContext();
28750  return __pyx_r;
28751 }
28752 
28753 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28754  PyObject *__pyx_r = NULL;
28755  __Pyx_TraceDeclarations
28756  __Pyx_RefNannyDeclarations
28757  int __pyx_lineno = 0;
28758  const char *__pyx_filename = NULL;
28759  int __pyx_clineno = 0;
28760  __Pyx_RefNannySetupContext("__get__", 0);
28761  __Pyx_TraceCall("__get__", __pyx_f[2], 58, 0, __PYX_ERR(2, 58, __pyx_L1_error));
28762  __Pyx_XDECREF(__pyx_r);
28763  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_dirichlet));
28764  __pyx_r = ((PyObject *)__pyx_v_self->us_dirichlet);
28765  goto __pyx_L0;
28766 
28767  /* function exit code */
28768  __pyx_L1_error:;
28769  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28770  __pyx_r = NULL;
28771  __pyx_L0:;
28772  __Pyx_XGIVEREF(__pyx_r);
28773  __Pyx_TraceReturn(__pyx_r, 0);
28774  __Pyx_RefNannyFinishContext();
28775  return __pyx_r;
28776 }
28777 
28778 /* Python wrapper */
28779 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28780 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28781  int __pyx_r;
28782  __Pyx_RefNannyDeclarations
28783  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28784  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28785 
28786  /* function exit code */
28787  __Pyx_RefNannyFinishContext();
28788  return __pyx_r;
28789 }
28790 
28791 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28792  int __pyx_r;
28793  __Pyx_TraceDeclarations
28794  __Pyx_RefNannyDeclarations
28795  PyObject *__pyx_t_1 = NULL;
28796  int __pyx_lineno = 0;
28797  const char *__pyx_filename = NULL;
28798  int __pyx_clineno = 0;
28799  __Pyx_RefNannySetupContext("__set__", 0);
28800  __Pyx_TraceCall("__set__", __pyx_f[2], 58, 0, __PYX_ERR(2, 58, __pyx_L1_error));
28801  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 58, __pyx_L1_error)
28802  __pyx_t_1 = __pyx_v_value;
28803  __Pyx_INCREF(__pyx_t_1);
28804  __Pyx_GIVEREF(__pyx_t_1);
28805  __Pyx_GOTREF(__pyx_v_self->us_dirichlet);
28806  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_dirichlet));
28807  __pyx_v_self->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28808  __pyx_t_1 = 0;
28809 
28810  /* function exit code */
28811  __pyx_r = 0;
28812  goto __pyx_L0;
28813  __pyx_L1_error:;
28814  __Pyx_XDECREF(__pyx_t_1);
28815  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28816  __pyx_r = -1;
28817  __pyx_L0:;
28818  __Pyx_TraceReturn(Py_None, 0);
28819  __Pyx_RefNannyFinishContext();
28820  return __pyx_r;
28821 }
28822 
28823 /* Python wrapper */
28824 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
28825 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_5__del__(PyObject *__pyx_v_self) {
28826  int __pyx_r;
28827  __Pyx_RefNannyDeclarations
28828  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28829  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28830 
28831  /* function exit code */
28832  __Pyx_RefNannyFinishContext();
28833  return __pyx_r;
28834 }
28835 
28836 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28837  int __pyx_r;
28838  __Pyx_TraceDeclarations
28839  __Pyx_RefNannyDeclarations
28840  int __pyx_lineno = 0;
28841  const char *__pyx_filename = NULL;
28842  int __pyx_clineno = 0;
28843  __Pyx_RefNannySetupContext("__del__", 0);
28844  __Pyx_TraceCall("__del__", __pyx_f[2], 58, 0, __PYX_ERR(2, 58, __pyx_L1_error));
28845  __Pyx_INCREF(Py_None);
28846  __Pyx_GIVEREF(Py_None);
28847  __Pyx_GOTREF(__pyx_v_self->us_dirichlet);
28848  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_dirichlet));
28849  __pyx_v_self->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28850 
28851  /* function exit code */
28852  __pyx_r = 0;
28853  goto __pyx_L0;
28854  __pyx_L1_error:;
28855  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28856  __pyx_r = -1;
28857  __pyx_L0:;
28858  __Pyx_TraceReturn(Py_None, 0);
28859  __Pyx_RefNannyFinishContext();
28860  return __pyx_r;
28861 }
28862 
28863 /* "mprans/BoundaryConditions.pxd":59
28864  * # sediment solver
28865  * cdef BoundaryCondition us_dirichlet
28866  * cdef BoundaryCondition vs_dirichlet # <<<<<<<<<<<<<<
28867  * cdef BoundaryCondition ws_dirichlet
28868  * cdef BoundaryCondition vos_dirichlet
28869  */
28870 
28871 /* Python wrapper */
28872 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
28873 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_1__get__(PyObject *__pyx_v_self) {
28874  PyObject *__pyx_r = 0;
28875  __Pyx_RefNannyDeclarations
28876  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
28877  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28878 
28879  /* function exit code */
28880  __Pyx_RefNannyFinishContext();
28881  return __pyx_r;
28882 }
28883 
28884 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28885  PyObject *__pyx_r = NULL;
28886  __Pyx_TraceDeclarations
28887  __Pyx_RefNannyDeclarations
28888  int __pyx_lineno = 0;
28889  const char *__pyx_filename = NULL;
28890  int __pyx_clineno = 0;
28891  __Pyx_RefNannySetupContext("__get__", 0);
28892  __Pyx_TraceCall("__get__", __pyx_f[2], 59, 0, __PYX_ERR(2, 59, __pyx_L1_error));
28893  __Pyx_XDECREF(__pyx_r);
28894  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_dirichlet));
28895  __pyx_r = ((PyObject *)__pyx_v_self->vs_dirichlet);
28896  goto __pyx_L0;
28897 
28898  /* function exit code */
28899  __pyx_L1_error:;
28900  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28901  __pyx_r = NULL;
28902  __pyx_L0:;
28903  __Pyx_XGIVEREF(__pyx_r);
28904  __Pyx_TraceReturn(__pyx_r, 0);
28905  __Pyx_RefNannyFinishContext();
28906  return __pyx_r;
28907 }
28908 
28909 /* Python wrapper */
28910 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
28911 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
28912  int __pyx_r;
28913  __Pyx_RefNannyDeclarations
28914  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
28915  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
28916 
28917  /* function exit code */
28918  __Pyx_RefNannyFinishContext();
28919  return __pyx_r;
28920 }
28921 
28922 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
28923  int __pyx_r;
28924  __Pyx_TraceDeclarations
28925  __Pyx_RefNannyDeclarations
28926  PyObject *__pyx_t_1 = NULL;
28927  int __pyx_lineno = 0;
28928  const char *__pyx_filename = NULL;
28929  int __pyx_clineno = 0;
28930  __Pyx_RefNannySetupContext("__set__", 0);
28931  __Pyx_TraceCall("__set__", __pyx_f[2], 59, 0, __PYX_ERR(2, 59, __pyx_L1_error));
28932  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 59, __pyx_L1_error)
28933  __pyx_t_1 = __pyx_v_value;
28934  __Pyx_INCREF(__pyx_t_1);
28935  __Pyx_GIVEREF(__pyx_t_1);
28936  __Pyx_GOTREF(__pyx_v_self->vs_dirichlet);
28937  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_dirichlet));
28938  __pyx_v_self->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
28939  __pyx_t_1 = 0;
28940 
28941  /* function exit code */
28942  __pyx_r = 0;
28943  goto __pyx_L0;
28944  __pyx_L1_error:;
28945  __Pyx_XDECREF(__pyx_t_1);
28946  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28947  __pyx_r = -1;
28948  __pyx_L0:;
28949  __Pyx_TraceReturn(Py_None, 0);
28950  __Pyx_RefNannyFinishContext();
28951  return __pyx_r;
28952 }
28953 
28954 /* Python wrapper */
28955 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
28956 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_5__del__(PyObject *__pyx_v_self) {
28957  int __pyx_r;
28958  __Pyx_RefNannyDeclarations
28959  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
28960  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
28961 
28962  /* function exit code */
28963  __Pyx_RefNannyFinishContext();
28964  return __pyx_r;
28965 }
28966 
28967 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
28968  int __pyx_r;
28969  __Pyx_TraceDeclarations
28970  __Pyx_RefNannyDeclarations
28971  int __pyx_lineno = 0;
28972  const char *__pyx_filename = NULL;
28973  int __pyx_clineno = 0;
28974  __Pyx_RefNannySetupContext("__del__", 0);
28975  __Pyx_TraceCall("__del__", __pyx_f[2], 59, 0, __PYX_ERR(2, 59, __pyx_L1_error));
28976  __Pyx_INCREF(Py_None);
28977  __Pyx_GIVEREF(Py_None);
28978  __Pyx_GOTREF(__pyx_v_self->vs_dirichlet);
28979  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_dirichlet));
28980  __pyx_v_self->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
28981 
28982  /* function exit code */
28983  __pyx_r = 0;
28984  goto __pyx_L0;
28985  __pyx_L1_error:;
28986  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28987  __pyx_r = -1;
28988  __pyx_L0:;
28989  __Pyx_TraceReturn(Py_None, 0);
28990  __Pyx_RefNannyFinishContext();
28991  return __pyx_r;
28992 }
28993 
28994 /* "mprans/BoundaryConditions.pxd":60
28995  * cdef BoundaryCondition us_dirichlet
28996  * cdef BoundaryCondition vs_dirichlet
28997  * cdef BoundaryCondition ws_dirichlet # <<<<<<<<<<<<<<
28998  * cdef BoundaryCondition vos_dirichlet
28999  * cdef BoundaryCondition us_advective
29000  */
29001 
29002 /* Python wrapper */
29003 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
29004 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_1__get__(PyObject *__pyx_v_self) {
29005  PyObject *__pyx_r = 0;
29006  __Pyx_RefNannyDeclarations
29007  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29008  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29009 
29010  /* function exit code */
29011  __Pyx_RefNannyFinishContext();
29012  return __pyx_r;
29013 }
29014 
29015 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29016  PyObject *__pyx_r = NULL;
29017  __Pyx_TraceDeclarations
29018  __Pyx_RefNannyDeclarations
29019  int __pyx_lineno = 0;
29020  const char *__pyx_filename = NULL;
29021  int __pyx_clineno = 0;
29022  __Pyx_RefNannySetupContext("__get__", 0);
29023  __Pyx_TraceCall("__get__", __pyx_f[2], 60, 0, __PYX_ERR(2, 60, __pyx_L1_error));
29024  __Pyx_XDECREF(__pyx_r);
29025  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_dirichlet));
29026  __pyx_r = ((PyObject *)__pyx_v_self->ws_dirichlet);
29027  goto __pyx_L0;
29028 
29029  /* function exit code */
29030  __pyx_L1_error:;
29031  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29032  __pyx_r = NULL;
29033  __pyx_L0:;
29034  __Pyx_XGIVEREF(__pyx_r);
29035  __Pyx_TraceReturn(__pyx_r, 0);
29036  __Pyx_RefNannyFinishContext();
29037  return __pyx_r;
29038 }
29039 
29040 /* Python wrapper */
29041 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29042 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29043  int __pyx_r;
29044  __Pyx_RefNannyDeclarations
29045  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29046  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29047 
29048  /* function exit code */
29049  __Pyx_RefNannyFinishContext();
29050  return __pyx_r;
29051 }
29052 
29053 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29054  int __pyx_r;
29055  __Pyx_TraceDeclarations
29056  __Pyx_RefNannyDeclarations
29057  PyObject *__pyx_t_1 = NULL;
29058  int __pyx_lineno = 0;
29059  const char *__pyx_filename = NULL;
29060  int __pyx_clineno = 0;
29061  __Pyx_RefNannySetupContext("__set__", 0);
29062  __Pyx_TraceCall("__set__", __pyx_f[2], 60, 0, __PYX_ERR(2, 60, __pyx_L1_error));
29063  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 60, __pyx_L1_error)
29064  __pyx_t_1 = __pyx_v_value;
29065  __Pyx_INCREF(__pyx_t_1);
29066  __Pyx_GIVEREF(__pyx_t_1);
29067  __Pyx_GOTREF(__pyx_v_self->ws_dirichlet);
29068  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_dirichlet));
29069  __pyx_v_self->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29070  __pyx_t_1 = 0;
29071 
29072  /* function exit code */
29073  __pyx_r = 0;
29074  goto __pyx_L0;
29075  __pyx_L1_error:;
29076  __Pyx_XDECREF(__pyx_t_1);
29077  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29078  __pyx_r = -1;
29079  __pyx_L0:;
29080  __Pyx_TraceReturn(Py_None, 0);
29081  __Pyx_RefNannyFinishContext();
29082  return __pyx_r;
29083 }
29084 
29085 /* Python wrapper */
29086 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
29087 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_5__del__(PyObject *__pyx_v_self) {
29088  int __pyx_r;
29089  __Pyx_RefNannyDeclarations
29090  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29091  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29092 
29093  /* function exit code */
29094  __Pyx_RefNannyFinishContext();
29095  return __pyx_r;
29096 }
29097 
29098 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29099  int __pyx_r;
29100  __Pyx_TraceDeclarations
29101  __Pyx_RefNannyDeclarations
29102  int __pyx_lineno = 0;
29103  const char *__pyx_filename = NULL;
29104  int __pyx_clineno = 0;
29105  __Pyx_RefNannySetupContext("__del__", 0);
29106  __Pyx_TraceCall("__del__", __pyx_f[2], 60, 0, __PYX_ERR(2, 60, __pyx_L1_error));
29107  __Pyx_INCREF(Py_None);
29108  __Pyx_GIVEREF(Py_None);
29109  __Pyx_GOTREF(__pyx_v_self->ws_dirichlet);
29110  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_dirichlet));
29111  __pyx_v_self->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29112 
29113  /* function exit code */
29114  __pyx_r = 0;
29115  goto __pyx_L0;
29116  __pyx_L1_error:;
29117  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29118  __pyx_r = -1;
29119  __pyx_L0:;
29120  __Pyx_TraceReturn(Py_None, 0);
29121  __Pyx_RefNannyFinishContext();
29122  return __pyx_r;
29123 }
29124 
29125 /* "mprans/BoundaryConditions.pxd":61
29126  * cdef BoundaryCondition vs_dirichlet
29127  * cdef BoundaryCondition ws_dirichlet
29128  * cdef BoundaryCondition vos_dirichlet # <<<<<<<<<<<<<<
29129  * cdef BoundaryCondition us_advective
29130  * cdef BoundaryCondition vs_advective
29131  */
29132 
29133 /* Python wrapper */
29134 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
29135 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_1__get__(PyObject *__pyx_v_self) {
29136  PyObject *__pyx_r = 0;
29137  __Pyx_RefNannyDeclarations
29138  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29139  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29140 
29141  /* function exit code */
29142  __Pyx_RefNannyFinishContext();
29143  return __pyx_r;
29144 }
29145 
29146 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29147  PyObject *__pyx_r = NULL;
29148  __Pyx_TraceDeclarations
29149  __Pyx_RefNannyDeclarations
29150  int __pyx_lineno = 0;
29151  const char *__pyx_filename = NULL;
29152  int __pyx_clineno = 0;
29153  __Pyx_RefNannySetupContext("__get__", 0);
29154  __Pyx_TraceCall("__get__", __pyx_f[2], 61, 0, __PYX_ERR(2, 61, __pyx_L1_error));
29155  __Pyx_XDECREF(__pyx_r);
29156  __Pyx_INCREF(((PyObject *)__pyx_v_self->vos_dirichlet));
29157  __pyx_r = ((PyObject *)__pyx_v_self->vos_dirichlet);
29158  goto __pyx_L0;
29159 
29160  /* function exit code */
29161  __pyx_L1_error:;
29162  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29163  __pyx_r = NULL;
29164  __pyx_L0:;
29165  __Pyx_XGIVEREF(__pyx_r);
29166  __Pyx_TraceReturn(__pyx_r, 0);
29167  __Pyx_RefNannyFinishContext();
29168  return __pyx_r;
29169 }
29170 
29171 /* Python wrapper */
29172 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29173 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29174  int __pyx_r;
29175  __Pyx_RefNannyDeclarations
29176  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29177  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29178 
29179  /* function exit code */
29180  __Pyx_RefNannyFinishContext();
29181  return __pyx_r;
29182 }
29183 
29184 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29185  int __pyx_r;
29186  __Pyx_TraceDeclarations
29187  __Pyx_RefNannyDeclarations
29188  PyObject *__pyx_t_1 = NULL;
29189  int __pyx_lineno = 0;
29190  const char *__pyx_filename = NULL;
29191  int __pyx_clineno = 0;
29192  __Pyx_RefNannySetupContext("__set__", 0);
29193  __Pyx_TraceCall("__set__", __pyx_f[2], 61, 0, __PYX_ERR(2, 61, __pyx_L1_error));
29194  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 61, __pyx_L1_error)
29195  __pyx_t_1 = __pyx_v_value;
29196  __Pyx_INCREF(__pyx_t_1);
29197  __Pyx_GIVEREF(__pyx_t_1);
29198  __Pyx_GOTREF(__pyx_v_self->vos_dirichlet);
29199  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_dirichlet));
29200  __pyx_v_self->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29201  __pyx_t_1 = 0;
29202 
29203  /* function exit code */
29204  __pyx_r = 0;
29205  goto __pyx_L0;
29206  __pyx_L1_error:;
29207  __Pyx_XDECREF(__pyx_t_1);
29208  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29209  __pyx_r = -1;
29210  __pyx_L0:;
29211  __Pyx_TraceReturn(Py_None, 0);
29212  __Pyx_RefNannyFinishContext();
29213  return __pyx_r;
29214 }
29215 
29216 /* Python wrapper */
29217 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
29218 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_5__del__(PyObject *__pyx_v_self) {
29219  int __pyx_r;
29220  __Pyx_RefNannyDeclarations
29221  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29222  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29223 
29224  /* function exit code */
29225  __Pyx_RefNannyFinishContext();
29226  return __pyx_r;
29227 }
29228 
29229 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29230  int __pyx_r;
29231  __Pyx_TraceDeclarations
29232  __Pyx_RefNannyDeclarations
29233  int __pyx_lineno = 0;
29234  const char *__pyx_filename = NULL;
29235  int __pyx_clineno = 0;
29236  __Pyx_RefNannySetupContext("__del__", 0);
29237  __Pyx_TraceCall("__del__", __pyx_f[2], 61, 0, __PYX_ERR(2, 61, __pyx_L1_error));
29238  __Pyx_INCREF(Py_None);
29239  __Pyx_GIVEREF(Py_None);
29240  __Pyx_GOTREF(__pyx_v_self->vos_dirichlet);
29241  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_dirichlet));
29242  __pyx_v_self->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29243 
29244  /* function exit code */
29245  __pyx_r = 0;
29246  goto __pyx_L0;
29247  __pyx_L1_error:;
29248  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29249  __pyx_r = -1;
29250  __pyx_L0:;
29251  __Pyx_TraceReturn(Py_None, 0);
29252  __Pyx_RefNannyFinishContext();
29253  return __pyx_r;
29254 }
29255 
29256 /* "mprans/BoundaryConditions.pxd":62
29257  * cdef BoundaryCondition ws_dirichlet
29258  * cdef BoundaryCondition vos_dirichlet
29259  * cdef BoundaryCondition us_advective # <<<<<<<<<<<<<<
29260  * cdef BoundaryCondition vs_advective
29261  * cdef BoundaryCondition ws_advective
29262  */
29263 
29264 /* Python wrapper */
29265 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
29266 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_1__get__(PyObject *__pyx_v_self) {
29267  PyObject *__pyx_r = 0;
29268  __Pyx_RefNannyDeclarations
29269  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29270  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29271 
29272  /* function exit code */
29273  __Pyx_RefNannyFinishContext();
29274  return __pyx_r;
29275 }
29276 
29277 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29278  PyObject *__pyx_r = NULL;
29279  __Pyx_TraceDeclarations
29280  __Pyx_RefNannyDeclarations
29281  int __pyx_lineno = 0;
29282  const char *__pyx_filename = NULL;
29283  int __pyx_clineno = 0;
29284  __Pyx_RefNannySetupContext("__get__", 0);
29285  __Pyx_TraceCall("__get__", __pyx_f[2], 62, 0, __PYX_ERR(2, 62, __pyx_L1_error));
29286  __Pyx_XDECREF(__pyx_r);
29287  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_advective));
29288  __pyx_r = ((PyObject *)__pyx_v_self->us_advective);
29289  goto __pyx_L0;
29290 
29291  /* function exit code */
29292  __pyx_L1_error:;
29293  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29294  __pyx_r = NULL;
29295  __pyx_L0:;
29296  __Pyx_XGIVEREF(__pyx_r);
29297  __Pyx_TraceReturn(__pyx_r, 0);
29298  __Pyx_RefNannyFinishContext();
29299  return __pyx_r;
29300 }
29301 
29302 /* Python wrapper */
29303 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29304 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29305  int __pyx_r;
29306  __Pyx_RefNannyDeclarations
29307  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29308  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29309 
29310  /* function exit code */
29311  __Pyx_RefNannyFinishContext();
29312  return __pyx_r;
29313 }
29314 
29315 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29316  int __pyx_r;
29317  __Pyx_TraceDeclarations
29318  __Pyx_RefNannyDeclarations
29319  PyObject *__pyx_t_1 = NULL;
29320  int __pyx_lineno = 0;
29321  const char *__pyx_filename = NULL;
29322  int __pyx_clineno = 0;
29323  __Pyx_RefNannySetupContext("__set__", 0);
29324  __Pyx_TraceCall("__set__", __pyx_f[2], 62, 0, __PYX_ERR(2, 62, __pyx_L1_error));
29325  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 62, __pyx_L1_error)
29326  __pyx_t_1 = __pyx_v_value;
29327  __Pyx_INCREF(__pyx_t_1);
29328  __Pyx_GIVEREF(__pyx_t_1);
29329  __Pyx_GOTREF(__pyx_v_self->us_advective);
29330  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_advective));
29331  __pyx_v_self->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29332  __pyx_t_1 = 0;
29333 
29334  /* function exit code */
29335  __pyx_r = 0;
29336  goto __pyx_L0;
29337  __pyx_L1_error:;
29338  __Pyx_XDECREF(__pyx_t_1);
29339  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29340  __pyx_r = -1;
29341  __pyx_L0:;
29342  __Pyx_TraceReturn(Py_None, 0);
29343  __Pyx_RefNannyFinishContext();
29344  return __pyx_r;
29345 }
29346 
29347 /* Python wrapper */
29348 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
29349 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_5__del__(PyObject *__pyx_v_self) {
29350  int __pyx_r;
29351  __Pyx_RefNannyDeclarations
29352  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29353  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29354 
29355  /* function exit code */
29356  __Pyx_RefNannyFinishContext();
29357  return __pyx_r;
29358 }
29359 
29360 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29361  int __pyx_r;
29362  __Pyx_TraceDeclarations
29363  __Pyx_RefNannyDeclarations
29364  int __pyx_lineno = 0;
29365  const char *__pyx_filename = NULL;
29366  int __pyx_clineno = 0;
29367  __Pyx_RefNannySetupContext("__del__", 0);
29368  __Pyx_TraceCall("__del__", __pyx_f[2], 62, 0, __PYX_ERR(2, 62, __pyx_L1_error));
29369  __Pyx_INCREF(Py_None);
29370  __Pyx_GIVEREF(Py_None);
29371  __Pyx_GOTREF(__pyx_v_self->us_advective);
29372  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_advective));
29373  __pyx_v_self->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29374 
29375  /* function exit code */
29376  __pyx_r = 0;
29377  goto __pyx_L0;
29378  __pyx_L1_error:;
29379  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29380  __pyx_r = -1;
29381  __pyx_L0:;
29382  __Pyx_TraceReturn(Py_None, 0);
29383  __Pyx_RefNannyFinishContext();
29384  return __pyx_r;
29385 }
29386 
29387 /* "mprans/BoundaryConditions.pxd":63
29388  * cdef BoundaryCondition vos_dirichlet
29389  * cdef BoundaryCondition us_advective
29390  * cdef BoundaryCondition vs_advective # <<<<<<<<<<<<<<
29391  * cdef BoundaryCondition ws_advective
29392  * cdef BoundaryCondition vos_advective
29393  */
29394 
29395 /* Python wrapper */
29396 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
29397 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_1__get__(PyObject *__pyx_v_self) {
29398  PyObject *__pyx_r = 0;
29399  __Pyx_RefNannyDeclarations
29400  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29401  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29402 
29403  /* function exit code */
29404  __Pyx_RefNannyFinishContext();
29405  return __pyx_r;
29406 }
29407 
29408 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29409  PyObject *__pyx_r = NULL;
29410  __Pyx_TraceDeclarations
29411  __Pyx_RefNannyDeclarations
29412  int __pyx_lineno = 0;
29413  const char *__pyx_filename = NULL;
29414  int __pyx_clineno = 0;
29415  __Pyx_RefNannySetupContext("__get__", 0);
29416  __Pyx_TraceCall("__get__", __pyx_f[2], 63, 0, __PYX_ERR(2, 63, __pyx_L1_error));
29417  __Pyx_XDECREF(__pyx_r);
29418  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_advective));
29419  __pyx_r = ((PyObject *)__pyx_v_self->vs_advective);
29420  goto __pyx_L0;
29421 
29422  /* function exit code */
29423  __pyx_L1_error:;
29424  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29425  __pyx_r = NULL;
29426  __pyx_L0:;
29427  __Pyx_XGIVEREF(__pyx_r);
29428  __Pyx_TraceReturn(__pyx_r, 0);
29429  __Pyx_RefNannyFinishContext();
29430  return __pyx_r;
29431 }
29432 
29433 /* Python wrapper */
29434 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29435 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29436  int __pyx_r;
29437  __Pyx_RefNannyDeclarations
29438  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29439  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29440 
29441  /* function exit code */
29442  __Pyx_RefNannyFinishContext();
29443  return __pyx_r;
29444 }
29445 
29446 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29447  int __pyx_r;
29448  __Pyx_TraceDeclarations
29449  __Pyx_RefNannyDeclarations
29450  PyObject *__pyx_t_1 = NULL;
29451  int __pyx_lineno = 0;
29452  const char *__pyx_filename = NULL;
29453  int __pyx_clineno = 0;
29454  __Pyx_RefNannySetupContext("__set__", 0);
29455  __Pyx_TraceCall("__set__", __pyx_f[2], 63, 0, __PYX_ERR(2, 63, __pyx_L1_error));
29456  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 63, __pyx_L1_error)
29457  __pyx_t_1 = __pyx_v_value;
29458  __Pyx_INCREF(__pyx_t_1);
29459  __Pyx_GIVEREF(__pyx_t_1);
29460  __Pyx_GOTREF(__pyx_v_self->vs_advective);
29461  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_advective));
29462  __pyx_v_self->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29463  __pyx_t_1 = 0;
29464 
29465  /* function exit code */
29466  __pyx_r = 0;
29467  goto __pyx_L0;
29468  __pyx_L1_error:;
29469  __Pyx_XDECREF(__pyx_t_1);
29470  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29471  __pyx_r = -1;
29472  __pyx_L0:;
29473  __Pyx_TraceReturn(Py_None, 0);
29474  __Pyx_RefNannyFinishContext();
29475  return __pyx_r;
29476 }
29477 
29478 /* Python wrapper */
29479 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
29480 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_5__del__(PyObject *__pyx_v_self) {
29481  int __pyx_r;
29482  __Pyx_RefNannyDeclarations
29483  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29484  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29485 
29486  /* function exit code */
29487  __Pyx_RefNannyFinishContext();
29488  return __pyx_r;
29489 }
29490 
29491 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29492  int __pyx_r;
29493  __Pyx_TraceDeclarations
29494  __Pyx_RefNannyDeclarations
29495  int __pyx_lineno = 0;
29496  const char *__pyx_filename = NULL;
29497  int __pyx_clineno = 0;
29498  __Pyx_RefNannySetupContext("__del__", 0);
29499  __Pyx_TraceCall("__del__", __pyx_f[2], 63, 0, __PYX_ERR(2, 63, __pyx_L1_error));
29500  __Pyx_INCREF(Py_None);
29501  __Pyx_GIVEREF(Py_None);
29502  __Pyx_GOTREF(__pyx_v_self->vs_advective);
29503  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_advective));
29504  __pyx_v_self->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29505 
29506  /* function exit code */
29507  __pyx_r = 0;
29508  goto __pyx_L0;
29509  __pyx_L1_error:;
29510  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29511  __pyx_r = -1;
29512  __pyx_L0:;
29513  __Pyx_TraceReturn(Py_None, 0);
29514  __Pyx_RefNannyFinishContext();
29515  return __pyx_r;
29516 }
29517 
29518 /* "mprans/BoundaryConditions.pxd":64
29519  * cdef BoundaryCondition us_advective
29520  * cdef BoundaryCondition vs_advective
29521  * cdef BoundaryCondition ws_advective # <<<<<<<<<<<<<<
29522  * cdef BoundaryCondition vos_advective
29523  * cdef BoundaryCondition us_diffusive
29524  */
29525 
29526 /* Python wrapper */
29527 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
29528 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_1__get__(PyObject *__pyx_v_self) {
29529  PyObject *__pyx_r = 0;
29530  __Pyx_RefNannyDeclarations
29531  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29532  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29533 
29534  /* function exit code */
29535  __Pyx_RefNannyFinishContext();
29536  return __pyx_r;
29537 }
29538 
29539 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29540  PyObject *__pyx_r = NULL;
29541  __Pyx_TraceDeclarations
29542  __Pyx_RefNannyDeclarations
29543  int __pyx_lineno = 0;
29544  const char *__pyx_filename = NULL;
29545  int __pyx_clineno = 0;
29546  __Pyx_RefNannySetupContext("__get__", 0);
29547  __Pyx_TraceCall("__get__", __pyx_f[2], 64, 0, __PYX_ERR(2, 64, __pyx_L1_error));
29548  __Pyx_XDECREF(__pyx_r);
29549  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_advective));
29550  __pyx_r = ((PyObject *)__pyx_v_self->ws_advective);
29551  goto __pyx_L0;
29552 
29553  /* function exit code */
29554  __pyx_L1_error:;
29555  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29556  __pyx_r = NULL;
29557  __pyx_L0:;
29558  __Pyx_XGIVEREF(__pyx_r);
29559  __Pyx_TraceReturn(__pyx_r, 0);
29560  __Pyx_RefNannyFinishContext();
29561  return __pyx_r;
29562 }
29563 
29564 /* Python wrapper */
29565 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29566 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29567  int __pyx_r;
29568  __Pyx_RefNannyDeclarations
29569  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29570  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29571 
29572  /* function exit code */
29573  __Pyx_RefNannyFinishContext();
29574  return __pyx_r;
29575 }
29576 
29577 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29578  int __pyx_r;
29579  __Pyx_TraceDeclarations
29580  __Pyx_RefNannyDeclarations
29581  PyObject *__pyx_t_1 = NULL;
29582  int __pyx_lineno = 0;
29583  const char *__pyx_filename = NULL;
29584  int __pyx_clineno = 0;
29585  __Pyx_RefNannySetupContext("__set__", 0);
29586  __Pyx_TraceCall("__set__", __pyx_f[2], 64, 0, __PYX_ERR(2, 64, __pyx_L1_error));
29587  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 64, __pyx_L1_error)
29588  __pyx_t_1 = __pyx_v_value;
29589  __Pyx_INCREF(__pyx_t_1);
29590  __Pyx_GIVEREF(__pyx_t_1);
29591  __Pyx_GOTREF(__pyx_v_self->ws_advective);
29592  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_advective));
29593  __pyx_v_self->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29594  __pyx_t_1 = 0;
29595 
29596  /* function exit code */
29597  __pyx_r = 0;
29598  goto __pyx_L0;
29599  __pyx_L1_error:;
29600  __Pyx_XDECREF(__pyx_t_1);
29601  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29602  __pyx_r = -1;
29603  __pyx_L0:;
29604  __Pyx_TraceReturn(Py_None, 0);
29605  __Pyx_RefNannyFinishContext();
29606  return __pyx_r;
29607 }
29608 
29609 /* Python wrapper */
29610 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
29611 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_5__del__(PyObject *__pyx_v_self) {
29612  int __pyx_r;
29613  __Pyx_RefNannyDeclarations
29614  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29615  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29616 
29617  /* function exit code */
29618  __Pyx_RefNannyFinishContext();
29619  return __pyx_r;
29620 }
29621 
29622 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29623  int __pyx_r;
29624  __Pyx_TraceDeclarations
29625  __Pyx_RefNannyDeclarations
29626  int __pyx_lineno = 0;
29627  const char *__pyx_filename = NULL;
29628  int __pyx_clineno = 0;
29629  __Pyx_RefNannySetupContext("__del__", 0);
29630  __Pyx_TraceCall("__del__", __pyx_f[2], 64, 0, __PYX_ERR(2, 64, __pyx_L1_error));
29631  __Pyx_INCREF(Py_None);
29632  __Pyx_GIVEREF(Py_None);
29633  __Pyx_GOTREF(__pyx_v_self->ws_advective);
29634  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_advective));
29635  __pyx_v_self->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29636 
29637  /* function exit code */
29638  __pyx_r = 0;
29639  goto __pyx_L0;
29640  __pyx_L1_error:;
29641  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29642  __pyx_r = -1;
29643  __pyx_L0:;
29644  __Pyx_TraceReturn(Py_None, 0);
29645  __Pyx_RefNannyFinishContext();
29646  return __pyx_r;
29647 }
29648 
29649 /* "mprans/BoundaryConditions.pxd":65
29650  * cdef BoundaryCondition vs_advective
29651  * cdef BoundaryCondition ws_advective
29652  * cdef BoundaryCondition vos_advective # <<<<<<<<<<<<<<
29653  * cdef BoundaryCondition us_diffusive
29654  * cdef BoundaryCondition vs_diffusive
29655  */
29656 
29657 /* Python wrapper */
29658 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
29659 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_1__get__(PyObject *__pyx_v_self) {
29660  PyObject *__pyx_r = 0;
29661  __Pyx_RefNannyDeclarations
29662  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29663  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29664 
29665  /* function exit code */
29666  __Pyx_RefNannyFinishContext();
29667  return __pyx_r;
29668 }
29669 
29670 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29671  PyObject *__pyx_r = NULL;
29672  __Pyx_TraceDeclarations
29673  __Pyx_RefNannyDeclarations
29674  int __pyx_lineno = 0;
29675  const char *__pyx_filename = NULL;
29676  int __pyx_clineno = 0;
29677  __Pyx_RefNannySetupContext("__get__", 0);
29678  __Pyx_TraceCall("__get__", __pyx_f[2], 65, 0, __PYX_ERR(2, 65, __pyx_L1_error));
29679  __Pyx_XDECREF(__pyx_r);
29680  __Pyx_INCREF(((PyObject *)__pyx_v_self->vos_advective));
29681  __pyx_r = ((PyObject *)__pyx_v_self->vos_advective);
29682  goto __pyx_L0;
29683 
29684  /* function exit code */
29685  __pyx_L1_error:;
29686  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29687  __pyx_r = NULL;
29688  __pyx_L0:;
29689  __Pyx_XGIVEREF(__pyx_r);
29690  __Pyx_TraceReturn(__pyx_r, 0);
29691  __Pyx_RefNannyFinishContext();
29692  return __pyx_r;
29693 }
29694 
29695 /* Python wrapper */
29696 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29697 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29698  int __pyx_r;
29699  __Pyx_RefNannyDeclarations
29700  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29701  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29702 
29703  /* function exit code */
29704  __Pyx_RefNannyFinishContext();
29705  return __pyx_r;
29706 }
29707 
29708 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29709  int __pyx_r;
29710  __Pyx_TraceDeclarations
29711  __Pyx_RefNannyDeclarations
29712  PyObject *__pyx_t_1 = NULL;
29713  int __pyx_lineno = 0;
29714  const char *__pyx_filename = NULL;
29715  int __pyx_clineno = 0;
29716  __Pyx_RefNannySetupContext("__set__", 0);
29717  __Pyx_TraceCall("__set__", __pyx_f[2], 65, 0, __PYX_ERR(2, 65, __pyx_L1_error));
29718  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 65, __pyx_L1_error)
29719  __pyx_t_1 = __pyx_v_value;
29720  __Pyx_INCREF(__pyx_t_1);
29721  __Pyx_GIVEREF(__pyx_t_1);
29722  __Pyx_GOTREF(__pyx_v_self->vos_advective);
29723  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_advective));
29724  __pyx_v_self->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29725  __pyx_t_1 = 0;
29726 
29727  /* function exit code */
29728  __pyx_r = 0;
29729  goto __pyx_L0;
29730  __pyx_L1_error:;
29731  __Pyx_XDECREF(__pyx_t_1);
29732  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29733  __pyx_r = -1;
29734  __pyx_L0:;
29735  __Pyx_TraceReturn(Py_None, 0);
29736  __Pyx_RefNannyFinishContext();
29737  return __pyx_r;
29738 }
29739 
29740 /* Python wrapper */
29741 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
29742 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_5__del__(PyObject *__pyx_v_self) {
29743  int __pyx_r;
29744  __Pyx_RefNannyDeclarations
29745  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29746  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29747 
29748  /* function exit code */
29749  __Pyx_RefNannyFinishContext();
29750  return __pyx_r;
29751 }
29752 
29753 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29754  int __pyx_r;
29755  __Pyx_TraceDeclarations
29756  __Pyx_RefNannyDeclarations
29757  int __pyx_lineno = 0;
29758  const char *__pyx_filename = NULL;
29759  int __pyx_clineno = 0;
29760  __Pyx_RefNannySetupContext("__del__", 0);
29761  __Pyx_TraceCall("__del__", __pyx_f[2], 65, 0, __PYX_ERR(2, 65, __pyx_L1_error));
29762  __Pyx_INCREF(Py_None);
29763  __Pyx_GIVEREF(Py_None);
29764  __Pyx_GOTREF(__pyx_v_self->vos_advective);
29765  __Pyx_DECREF(((PyObject *)__pyx_v_self->vos_advective));
29766  __pyx_v_self->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29767 
29768  /* function exit code */
29769  __pyx_r = 0;
29770  goto __pyx_L0;
29771  __pyx_L1_error:;
29772  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vos_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29773  __pyx_r = -1;
29774  __pyx_L0:;
29775  __Pyx_TraceReturn(Py_None, 0);
29776  __Pyx_RefNannyFinishContext();
29777  return __pyx_r;
29778 }
29779 
29780 /* "mprans/BoundaryConditions.pxd":66
29781  * cdef BoundaryCondition ws_advective
29782  * cdef BoundaryCondition vos_advective
29783  * cdef BoundaryCondition us_diffusive # <<<<<<<<<<<<<<
29784  * cdef BoundaryCondition vs_diffusive
29785  * cdef BoundaryCondition ws_diffusive
29786  */
29787 
29788 /* Python wrapper */
29789 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
29790 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_1__get__(PyObject *__pyx_v_self) {
29791  PyObject *__pyx_r = 0;
29792  __Pyx_RefNannyDeclarations
29793  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29794  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29795 
29796  /* function exit code */
29797  __Pyx_RefNannyFinishContext();
29798  return __pyx_r;
29799 }
29800 
29801 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29802  PyObject *__pyx_r = NULL;
29803  __Pyx_TraceDeclarations
29804  __Pyx_RefNannyDeclarations
29805  int __pyx_lineno = 0;
29806  const char *__pyx_filename = NULL;
29807  int __pyx_clineno = 0;
29808  __Pyx_RefNannySetupContext("__get__", 0);
29809  __Pyx_TraceCall("__get__", __pyx_f[2], 66, 0, __PYX_ERR(2, 66, __pyx_L1_error));
29810  __Pyx_XDECREF(__pyx_r);
29811  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_diffusive));
29812  __pyx_r = ((PyObject *)__pyx_v_self->us_diffusive);
29813  goto __pyx_L0;
29814 
29815  /* function exit code */
29816  __pyx_L1_error:;
29817  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29818  __pyx_r = NULL;
29819  __pyx_L0:;
29820  __Pyx_XGIVEREF(__pyx_r);
29821  __Pyx_TraceReturn(__pyx_r, 0);
29822  __Pyx_RefNannyFinishContext();
29823  return __pyx_r;
29824 }
29825 
29826 /* Python wrapper */
29827 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29828 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29829  int __pyx_r;
29830  __Pyx_RefNannyDeclarations
29831  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29832  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29833 
29834  /* function exit code */
29835  __Pyx_RefNannyFinishContext();
29836  return __pyx_r;
29837 }
29838 
29839 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29840  int __pyx_r;
29841  __Pyx_TraceDeclarations
29842  __Pyx_RefNannyDeclarations
29843  PyObject *__pyx_t_1 = NULL;
29844  int __pyx_lineno = 0;
29845  const char *__pyx_filename = NULL;
29846  int __pyx_clineno = 0;
29847  __Pyx_RefNannySetupContext("__set__", 0);
29848  __Pyx_TraceCall("__set__", __pyx_f[2], 66, 0, __PYX_ERR(2, 66, __pyx_L1_error));
29849  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 66, __pyx_L1_error)
29850  __pyx_t_1 = __pyx_v_value;
29851  __Pyx_INCREF(__pyx_t_1);
29852  __Pyx_GIVEREF(__pyx_t_1);
29853  __Pyx_GOTREF(__pyx_v_self->us_diffusive);
29854  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_diffusive));
29855  __pyx_v_self->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29856  __pyx_t_1 = 0;
29857 
29858  /* function exit code */
29859  __pyx_r = 0;
29860  goto __pyx_L0;
29861  __pyx_L1_error:;
29862  __Pyx_XDECREF(__pyx_t_1);
29863  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29864  __pyx_r = -1;
29865  __pyx_L0:;
29866  __Pyx_TraceReturn(Py_None, 0);
29867  __Pyx_RefNannyFinishContext();
29868  return __pyx_r;
29869 }
29870 
29871 /* Python wrapper */
29872 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
29873 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_5__del__(PyObject *__pyx_v_self) {
29874  int __pyx_r;
29875  __Pyx_RefNannyDeclarations
29876  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29877  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29878 
29879  /* function exit code */
29880  __Pyx_RefNannyFinishContext();
29881  return __pyx_r;
29882 }
29883 
29884 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29885  int __pyx_r;
29886  __Pyx_TraceDeclarations
29887  __Pyx_RefNannyDeclarations
29888  int __pyx_lineno = 0;
29889  const char *__pyx_filename = NULL;
29890  int __pyx_clineno = 0;
29891  __Pyx_RefNannySetupContext("__del__", 0);
29892  __Pyx_TraceCall("__del__", __pyx_f[2], 66, 0, __PYX_ERR(2, 66, __pyx_L1_error));
29893  __Pyx_INCREF(Py_None);
29894  __Pyx_GIVEREF(Py_None);
29895  __Pyx_GOTREF(__pyx_v_self->us_diffusive);
29896  __Pyx_DECREF(((PyObject *)__pyx_v_self->us_diffusive));
29897  __pyx_v_self->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
29898 
29899  /* function exit code */
29900  __pyx_r = 0;
29901  goto __pyx_L0;
29902  __pyx_L1_error:;
29903  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.us_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29904  __pyx_r = -1;
29905  __pyx_L0:;
29906  __Pyx_TraceReturn(Py_None, 0);
29907  __Pyx_RefNannyFinishContext();
29908  return __pyx_r;
29909 }
29910 
29911 /* "mprans/BoundaryConditions.pxd":67
29912  * cdef BoundaryCondition vos_advective
29913  * cdef BoundaryCondition us_diffusive
29914  * cdef BoundaryCondition vs_diffusive # <<<<<<<<<<<<<<
29915  * cdef BoundaryCondition ws_diffusive
29916  * # projection scheme
29917  */
29918 
29919 /* Python wrapper */
29920 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
29921 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_1__get__(PyObject *__pyx_v_self) {
29922  PyObject *__pyx_r = 0;
29923  __Pyx_RefNannyDeclarations
29924  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29925  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
29926 
29927  /* function exit code */
29928  __Pyx_RefNannyFinishContext();
29929  return __pyx_r;
29930 }
29931 
29932 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
29933  PyObject *__pyx_r = NULL;
29934  __Pyx_TraceDeclarations
29935  __Pyx_RefNannyDeclarations
29936  int __pyx_lineno = 0;
29937  const char *__pyx_filename = NULL;
29938  int __pyx_clineno = 0;
29939  __Pyx_RefNannySetupContext("__get__", 0);
29940  __Pyx_TraceCall("__get__", __pyx_f[2], 67, 0, __PYX_ERR(2, 67, __pyx_L1_error));
29941  __Pyx_XDECREF(__pyx_r);
29942  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_diffusive));
29943  __pyx_r = ((PyObject *)__pyx_v_self->vs_diffusive);
29944  goto __pyx_L0;
29945 
29946  /* function exit code */
29947  __pyx_L1_error:;
29948  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29949  __pyx_r = NULL;
29950  __pyx_L0:;
29951  __Pyx_XGIVEREF(__pyx_r);
29952  __Pyx_TraceReturn(__pyx_r, 0);
29953  __Pyx_RefNannyFinishContext();
29954  return __pyx_r;
29955 }
29956 
29957 /* Python wrapper */
29958 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29959 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29960  int __pyx_r;
29961  __Pyx_RefNannyDeclarations
29962  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29963  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29964 
29965  /* function exit code */
29966  __Pyx_RefNannyFinishContext();
29967  return __pyx_r;
29968 }
29969 
29970 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
29971  int __pyx_r;
29972  __Pyx_TraceDeclarations
29973  __Pyx_RefNannyDeclarations
29974  PyObject *__pyx_t_1 = NULL;
29975  int __pyx_lineno = 0;
29976  const char *__pyx_filename = NULL;
29977  int __pyx_clineno = 0;
29978  __Pyx_RefNannySetupContext("__set__", 0);
29979  __Pyx_TraceCall("__set__", __pyx_f[2], 67, 0, __PYX_ERR(2, 67, __pyx_L1_error));
29980  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 67, __pyx_L1_error)
29981  __pyx_t_1 = __pyx_v_value;
29982  __Pyx_INCREF(__pyx_t_1);
29983  __Pyx_GIVEREF(__pyx_t_1);
29984  __Pyx_GOTREF(__pyx_v_self->vs_diffusive);
29985  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_diffusive));
29986  __pyx_v_self->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
29987  __pyx_t_1 = 0;
29988 
29989  /* function exit code */
29990  __pyx_r = 0;
29991  goto __pyx_L0;
29992  __pyx_L1_error:;
29993  __Pyx_XDECREF(__pyx_t_1);
29994  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29995  __pyx_r = -1;
29996  __pyx_L0:;
29997  __Pyx_TraceReturn(Py_None, 0);
29998  __Pyx_RefNannyFinishContext();
29999  return __pyx_r;
30000 }
30001 
30002 /* Python wrapper */
30003 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
30004 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_5__del__(PyObject *__pyx_v_self) {
30005  int __pyx_r;
30006  __Pyx_RefNannyDeclarations
30007  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30008  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30009 
30010  /* function exit code */
30011  __Pyx_RefNannyFinishContext();
30012  return __pyx_r;
30013 }
30014 
30015 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30016  int __pyx_r;
30017  __Pyx_TraceDeclarations
30018  __Pyx_RefNannyDeclarations
30019  int __pyx_lineno = 0;
30020  const char *__pyx_filename = NULL;
30021  int __pyx_clineno = 0;
30022  __Pyx_RefNannySetupContext("__del__", 0);
30023  __Pyx_TraceCall("__del__", __pyx_f[2], 67, 0, __PYX_ERR(2, 67, __pyx_L1_error));
30024  __Pyx_INCREF(Py_None);
30025  __Pyx_GIVEREF(Py_None);
30026  __Pyx_GOTREF(__pyx_v_self->vs_diffusive);
30027  __Pyx_DECREF(((PyObject *)__pyx_v_self->vs_diffusive));
30028  __pyx_v_self->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30029 
30030  /* function exit code */
30031  __pyx_r = 0;
30032  goto __pyx_L0;
30033  __pyx_L1_error:;
30034  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.vs_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30035  __pyx_r = -1;
30036  __pyx_L0:;
30037  __Pyx_TraceReturn(Py_None, 0);
30038  __Pyx_RefNannyFinishContext();
30039  return __pyx_r;
30040 }
30041 
30042 /* "mprans/BoundaryConditions.pxd":68
30043  * cdef BoundaryCondition us_diffusive
30044  * cdef BoundaryCondition vs_diffusive
30045  * cdef BoundaryCondition ws_diffusive # <<<<<<<<<<<<<<
30046  * # projection scheme
30047  * cdef BoundaryCondition pInit_dirichlet
30048  */
30049 
30050 /* Python wrapper */
30051 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
30052 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_1__get__(PyObject *__pyx_v_self) {
30053  PyObject *__pyx_r = 0;
30054  __Pyx_RefNannyDeclarations
30055  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30056  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30057 
30058  /* function exit code */
30059  __Pyx_RefNannyFinishContext();
30060  return __pyx_r;
30061 }
30062 
30063 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30064  PyObject *__pyx_r = NULL;
30065  __Pyx_TraceDeclarations
30066  __Pyx_RefNannyDeclarations
30067  int __pyx_lineno = 0;
30068  const char *__pyx_filename = NULL;
30069  int __pyx_clineno = 0;
30070  __Pyx_RefNannySetupContext("__get__", 0);
30071  __Pyx_TraceCall("__get__", __pyx_f[2], 68, 0, __PYX_ERR(2, 68, __pyx_L1_error));
30072  __Pyx_XDECREF(__pyx_r);
30073  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_diffusive));
30074  __pyx_r = ((PyObject *)__pyx_v_self->ws_diffusive);
30075  goto __pyx_L0;
30076 
30077  /* function exit code */
30078  __pyx_L1_error:;
30079  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30080  __pyx_r = NULL;
30081  __pyx_L0:;
30082  __Pyx_XGIVEREF(__pyx_r);
30083  __Pyx_TraceReturn(__pyx_r, 0);
30084  __Pyx_RefNannyFinishContext();
30085  return __pyx_r;
30086 }
30087 
30088 /* Python wrapper */
30089 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30090 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30091  int __pyx_r;
30092  __Pyx_RefNannyDeclarations
30093  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30094  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30095 
30096  /* function exit code */
30097  __Pyx_RefNannyFinishContext();
30098  return __pyx_r;
30099 }
30100 
30101 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30102  int __pyx_r;
30103  __Pyx_TraceDeclarations
30104  __Pyx_RefNannyDeclarations
30105  PyObject *__pyx_t_1 = NULL;
30106  int __pyx_lineno = 0;
30107  const char *__pyx_filename = NULL;
30108  int __pyx_clineno = 0;
30109  __Pyx_RefNannySetupContext("__set__", 0);
30110  __Pyx_TraceCall("__set__", __pyx_f[2], 68, 0, __PYX_ERR(2, 68, __pyx_L1_error));
30111  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 68, __pyx_L1_error)
30112  __pyx_t_1 = __pyx_v_value;
30113  __Pyx_INCREF(__pyx_t_1);
30114  __Pyx_GIVEREF(__pyx_t_1);
30115  __Pyx_GOTREF(__pyx_v_self->ws_diffusive);
30116  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_diffusive));
30117  __pyx_v_self->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30118  __pyx_t_1 = 0;
30119 
30120  /* function exit code */
30121  __pyx_r = 0;
30122  goto __pyx_L0;
30123  __pyx_L1_error:;
30124  __Pyx_XDECREF(__pyx_t_1);
30125  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30126  __pyx_r = -1;
30127  __pyx_L0:;
30128  __Pyx_TraceReturn(Py_None, 0);
30129  __Pyx_RefNannyFinishContext();
30130  return __pyx_r;
30131 }
30132 
30133 /* Python wrapper */
30134 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
30135 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_5__del__(PyObject *__pyx_v_self) {
30136  int __pyx_r;
30137  __Pyx_RefNannyDeclarations
30138  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30139  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30140 
30141  /* function exit code */
30142  __Pyx_RefNannyFinishContext();
30143  return __pyx_r;
30144 }
30145 
30146 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30147  int __pyx_r;
30148  __Pyx_TraceDeclarations
30149  __Pyx_RefNannyDeclarations
30150  int __pyx_lineno = 0;
30151  const char *__pyx_filename = NULL;
30152  int __pyx_clineno = 0;
30153  __Pyx_RefNannySetupContext("__del__", 0);
30154  __Pyx_TraceCall("__del__", __pyx_f[2], 68, 0, __PYX_ERR(2, 68, __pyx_L1_error));
30155  __Pyx_INCREF(Py_None);
30156  __Pyx_GIVEREF(Py_None);
30157  __Pyx_GOTREF(__pyx_v_self->ws_diffusive);
30158  __Pyx_DECREF(((PyObject *)__pyx_v_self->ws_diffusive));
30159  __pyx_v_self->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30160 
30161  /* function exit code */
30162  __pyx_r = 0;
30163  goto __pyx_L0;
30164  __pyx_L1_error:;
30165  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.ws_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30166  __pyx_r = -1;
30167  __pyx_L0:;
30168  __Pyx_TraceReturn(Py_None, 0);
30169  __Pyx_RefNannyFinishContext();
30170  return __pyx_r;
30171 }
30172 
30173 /* "mprans/BoundaryConditions.pxd":70
30174  * cdef BoundaryCondition ws_diffusive
30175  * # projection scheme
30176  * cdef BoundaryCondition pInit_dirichlet # <<<<<<<<<<<<<<
30177  * cdef BoundaryCondition pInc_dirichlet
30178  * cdef BoundaryCondition pInit_advective
30179  */
30180 
30181 /* Python wrapper */
30182 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
30183 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_1__get__(PyObject *__pyx_v_self) {
30184  PyObject *__pyx_r = 0;
30185  __Pyx_RefNannyDeclarations
30186  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30187  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30188 
30189  /* function exit code */
30190  __Pyx_RefNannyFinishContext();
30191  return __pyx_r;
30192 }
30193 
30194 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30195  PyObject *__pyx_r = NULL;
30196  __Pyx_TraceDeclarations
30197  __Pyx_RefNannyDeclarations
30198  int __pyx_lineno = 0;
30199  const char *__pyx_filename = NULL;
30200  int __pyx_clineno = 0;
30201  __Pyx_RefNannySetupContext("__get__", 0);
30202  __Pyx_TraceCall("__get__", __pyx_f[2], 70, 0, __PYX_ERR(2, 70, __pyx_L1_error));
30203  __Pyx_XDECREF(__pyx_r);
30204  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
30205  __pyx_r = ((PyObject *)__pyx_v_self->pInit_dirichlet);
30206  goto __pyx_L0;
30207 
30208  /* function exit code */
30209  __pyx_L1_error:;
30210  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30211  __pyx_r = NULL;
30212  __pyx_L0:;
30213  __Pyx_XGIVEREF(__pyx_r);
30214  __Pyx_TraceReturn(__pyx_r, 0);
30215  __Pyx_RefNannyFinishContext();
30216  return __pyx_r;
30217 }
30218 
30219 /* Python wrapper */
30220 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30221 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30222  int __pyx_r;
30223  __Pyx_RefNannyDeclarations
30224  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30225  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30226 
30227  /* function exit code */
30228  __Pyx_RefNannyFinishContext();
30229  return __pyx_r;
30230 }
30231 
30232 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30233  int __pyx_r;
30234  __Pyx_TraceDeclarations
30235  __Pyx_RefNannyDeclarations
30236  PyObject *__pyx_t_1 = NULL;
30237  int __pyx_lineno = 0;
30238  const char *__pyx_filename = NULL;
30239  int __pyx_clineno = 0;
30240  __Pyx_RefNannySetupContext("__set__", 0);
30241  __Pyx_TraceCall("__set__", __pyx_f[2], 70, 0, __PYX_ERR(2, 70, __pyx_L1_error));
30242  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 70, __pyx_L1_error)
30243  __pyx_t_1 = __pyx_v_value;
30244  __Pyx_INCREF(__pyx_t_1);
30245  __Pyx_GIVEREF(__pyx_t_1);
30246  __Pyx_GOTREF(__pyx_v_self->pInit_dirichlet);
30247  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
30248  __pyx_v_self->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30249  __pyx_t_1 = 0;
30250 
30251  /* function exit code */
30252  __pyx_r = 0;
30253  goto __pyx_L0;
30254  __pyx_L1_error:;
30255  __Pyx_XDECREF(__pyx_t_1);
30256  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30257  __pyx_r = -1;
30258  __pyx_L0:;
30259  __Pyx_TraceReturn(Py_None, 0);
30260  __Pyx_RefNannyFinishContext();
30261  return __pyx_r;
30262 }
30263 
30264 /* Python wrapper */
30265 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
30266 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_5__del__(PyObject *__pyx_v_self) {
30267  int __pyx_r;
30268  __Pyx_RefNannyDeclarations
30269  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30270  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30271 
30272  /* function exit code */
30273  __Pyx_RefNannyFinishContext();
30274  return __pyx_r;
30275 }
30276 
30277 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30278  int __pyx_r;
30279  __Pyx_TraceDeclarations
30280  __Pyx_RefNannyDeclarations
30281  int __pyx_lineno = 0;
30282  const char *__pyx_filename = NULL;
30283  int __pyx_clineno = 0;
30284  __Pyx_RefNannySetupContext("__del__", 0);
30285  __Pyx_TraceCall("__del__", __pyx_f[2], 70, 0, __PYX_ERR(2, 70, __pyx_L1_error));
30286  __Pyx_INCREF(Py_None);
30287  __Pyx_GIVEREF(Py_None);
30288  __Pyx_GOTREF(__pyx_v_self->pInit_dirichlet);
30289  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
30290  __pyx_v_self->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30291 
30292  /* function exit code */
30293  __pyx_r = 0;
30294  goto __pyx_L0;
30295  __pyx_L1_error:;
30296  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30297  __pyx_r = -1;
30298  __pyx_L0:;
30299  __Pyx_TraceReturn(Py_None, 0);
30300  __Pyx_RefNannyFinishContext();
30301  return __pyx_r;
30302 }
30303 
30304 /* "mprans/BoundaryConditions.pxd":71
30305  * # projection scheme
30306  * cdef BoundaryCondition pInit_dirichlet
30307  * cdef BoundaryCondition pInc_dirichlet # <<<<<<<<<<<<<<
30308  * cdef BoundaryCondition pInit_advective
30309  * cdef BoundaryCondition pInc_advective
30310  */
30311 
30312 /* Python wrapper */
30313 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
30314 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_1__get__(PyObject *__pyx_v_self) {
30315  PyObject *__pyx_r = 0;
30316  __Pyx_RefNannyDeclarations
30317  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30318  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30319 
30320  /* function exit code */
30321  __Pyx_RefNannyFinishContext();
30322  return __pyx_r;
30323 }
30324 
30325 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30326  PyObject *__pyx_r = NULL;
30327  __Pyx_TraceDeclarations
30328  __Pyx_RefNannyDeclarations
30329  int __pyx_lineno = 0;
30330  const char *__pyx_filename = NULL;
30331  int __pyx_clineno = 0;
30332  __Pyx_RefNannySetupContext("__get__", 0);
30333  __Pyx_TraceCall("__get__", __pyx_f[2], 71, 0, __PYX_ERR(2, 71, __pyx_L1_error));
30334  __Pyx_XDECREF(__pyx_r);
30335  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
30336  __pyx_r = ((PyObject *)__pyx_v_self->pInc_dirichlet);
30337  goto __pyx_L0;
30338 
30339  /* function exit code */
30340  __pyx_L1_error:;
30341  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30342  __pyx_r = NULL;
30343  __pyx_L0:;
30344  __Pyx_XGIVEREF(__pyx_r);
30345  __Pyx_TraceReturn(__pyx_r, 0);
30346  __Pyx_RefNannyFinishContext();
30347  return __pyx_r;
30348 }
30349 
30350 /* Python wrapper */
30351 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30352 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30353  int __pyx_r;
30354  __Pyx_RefNannyDeclarations
30355  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30356  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30357 
30358  /* function exit code */
30359  __Pyx_RefNannyFinishContext();
30360  return __pyx_r;
30361 }
30362 
30363 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30364  int __pyx_r;
30365  __Pyx_TraceDeclarations
30366  __Pyx_RefNannyDeclarations
30367  PyObject *__pyx_t_1 = NULL;
30368  int __pyx_lineno = 0;
30369  const char *__pyx_filename = NULL;
30370  int __pyx_clineno = 0;
30371  __Pyx_RefNannySetupContext("__set__", 0);
30372  __Pyx_TraceCall("__set__", __pyx_f[2], 71, 0, __PYX_ERR(2, 71, __pyx_L1_error));
30373  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 71, __pyx_L1_error)
30374  __pyx_t_1 = __pyx_v_value;
30375  __Pyx_INCREF(__pyx_t_1);
30376  __Pyx_GIVEREF(__pyx_t_1);
30377  __Pyx_GOTREF(__pyx_v_self->pInc_dirichlet);
30378  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
30379  __pyx_v_self->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30380  __pyx_t_1 = 0;
30381 
30382  /* function exit code */
30383  __pyx_r = 0;
30384  goto __pyx_L0;
30385  __pyx_L1_error:;
30386  __Pyx_XDECREF(__pyx_t_1);
30387  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30388  __pyx_r = -1;
30389  __pyx_L0:;
30390  __Pyx_TraceReturn(Py_None, 0);
30391  __Pyx_RefNannyFinishContext();
30392  return __pyx_r;
30393 }
30394 
30395 /* Python wrapper */
30396 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
30397 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_5__del__(PyObject *__pyx_v_self) {
30398  int __pyx_r;
30399  __Pyx_RefNannyDeclarations
30400  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30401  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30402 
30403  /* function exit code */
30404  __Pyx_RefNannyFinishContext();
30405  return __pyx_r;
30406 }
30407 
30408 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30409  int __pyx_r;
30410  __Pyx_TraceDeclarations
30411  __Pyx_RefNannyDeclarations
30412  int __pyx_lineno = 0;
30413  const char *__pyx_filename = NULL;
30414  int __pyx_clineno = 0;
30415  __Pyx_RefNannySetupContext("__del__", 0);
30416  __Pyx_TraceCall("__del__", __pyx_f[2], 71, 0, __PYX_ERR(2, 71, __pyx_L1_error));
30417  __Pyx_INCREF(Py_None);
30418  __Pyx_GIVEREF(Py_None);
30419  __Pyx_GOTREF(__pyx_v_self->pInc_dirichlet);
30420  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
30421  __pyx_v_self->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30422 
30423  /* function exit code */
30424  __pyx_r = 0;
30425  goto __pyx_L0;
30426  __pyx_L1_error:;
30427  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30428  __pyx_r = -1;
30429  __pyx_L0:;
30430  __Pyx_TraceReturn(Py_None, 0);
30431  __Pyx_RefNannyFinishContext();
30432  return __pyx_r;
30433 }
30434 
30435 /* "mprans/BoundaryConditions.pxd":72
30436  * cdef BoundaryCondition pInit_dirichlet
30437  * cdef BoundaryCondition pInc_dirichlet
30438  * cdef BoundaryCondition pInit_advective # <<<<<<<<<<<<<<
30439  * cdef BoundaryCondition pInc_advective
30440  * cdef BoundaryCondition pInit_diffusive
30441  */
30442 
30443 /* Python wrapper */
30444 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
30445 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_1__get__(PyObject *__pyx_v_self) {
30446  PyObject *__pyx_r = 0;
30447  __Pyx_RefNannyDeclarations
30448  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30449  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30450 
30451  /* function exit code */
30452  __Pyx_RefNannyFinishContext();
30453  return __pyx_r;
30454 }
30455 
30456 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30457  PyObject *__pyx_r = NULL;
30458  __Pyx_TraceDeclarations
30459  __Pyx_RefNannyDeclarations
30460  int __pyx_lineno = 0;
30461  const char *__pyx_filename = NULL;
30462  int __pyx_clineno = 0;
30463  __Pyx_RefNannySetupContext("__get__", 0);
30464  __Pyx_TraceCall("__get__", __pyx_f[2], 72, 0, __PYX_ERR(2, 72, __pyx_L1_error));
30465  __Pyx_XDECREF(__pyx_r);
30466  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_advective));
30467  __pyx_r = ((PyObject *)__pyx_v_self->pInit_advective);
30468  goto __pyx_L0;
30469 
30470  /* function exit code */
30471  __pyx_L1_error:;
30472  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30473  __pyx_r = NULL;
30474  __pyx_L0:;
30475  __Pyx_XGIVEREF(__pyx_r);
30476  __Pyx_TraceReturn(__pyx_r, 0);
30477  __Pyx_RefNannyFinishContext();
30478  return __pyx_r;
30479 }
30480 
30481 /* Python wrapper */
30482 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30483 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30484  int __pyx_r;
30485  __Pyx_RefNannyDeclarations
30486  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30487  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30488 
30489  /* function exit code */
30490  __Pyx_RefNannyFinishContext();
30491  return __pyx_r;
30492 }
30493 
30494 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30495  int __pyx_r;
30496  __Pyx_TraceDeclarations
30497  __Pyx_RefNannyDeclarations
30498  PyObject *__pyx_t_1 = NULL;
30499  int __pyx_lineno = 0;
30500  const char *__pyx_filename = NULL;
30501  int __pyx_clineno = 0;
30502  __Pyx_RefNannySetupContext("__set__", 0);
30503  __Pyx_TraceCall("__set__", __pyx_f[2], 72, 0, __PYX_ERR(2, 72, __pyx_L1_error));
30504  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 72, __pyx_L1_error)
30505  __pyx_t_1 = __pyx_v_value;
30506  __Pyx_INCREF(__pyx_t_1);
30507  __Pyx_GIVEREF(__pyx_t_1);
30508  __Pyx_GOTREF(__pyx_v_self->pInit_advective);
30509  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_advective));
30510  __pyx_v_self->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30511  __pyx_t_1 = 0;
30512 
30513  /* function exit code */
30514  __pyx_r = 0;
30515  goto __pyx_L0;
30516  __pyx_L1_error:;
30517  __Pyx_XDECREF(__pyx_t_1);
30518  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30519  __pyx_r = -1;
30520  __pyx_L0:;
30521  __Pyx_TraceReturn(Py_None, 0);
30522  __Pyx_RefNannyFinishContext();
30523  return __pyx_r;
30524 }
30525 
30526 /* Python wrapper */
30527 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
30528 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_5__del__(PyObject *__pyx_v_self) {
30529  int __pyx_r;
30530  __Pyx_RefNannyDeclarations
30531  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30532  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30533 
30534  /* function exit code */
30535  __Pyx_RefNannyFinishContext();
30536  return __pyx_r;
30537 }
30538 
30539 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30540  int __pyx_r;
30541  __Pyx_TraceDeclarations
30542  __Pyx_RefNannyDeclarations
30543  int __pyx_lineno = 0;
30544  const char *__pyx_filename = NULL;
30545  int __pyx_clineno = 0;
30546  __Pyx_RefNannySetupContext("__del__", 0);
30547  __Pyx_TraceCall("__del__", __pyx_f[2], 72, 0, __PYX_ERR(2, 72, __pyx_L1_error));
30548  __Pyx_INCREF(Py_None);
30549  __Pyx_GIVEREF(Py_None);
30550  __Pyx_GOTREF(__pyx_v_self->pInit_advective);
30551  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_advective));
30552  __pyx_v_self->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30553 
30554  /* function exit code */
30555  __pyx_r = 0;
30556  goto __pyx_L0;
30557  __pyx_L1_error:;
30558  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30559  __pyx_r = -1;
30560  __pyx_L0:;
30561  __Pyx_TraceReturn(Py_None, 0);
30562  __Pyx_RefNannyFinishContext();
30563  return __pyx_r;
30564 }
30565 
30566 /* "mprans/BoundaryConditions.pxd":73
30567  * cdef BoundaryCondition pInc_dirichlet
30568  * cdef BoundaryCondition pInit_advective
30569  * cdef BoundaryCondition pInc_advective # <<<<<<<<<<<<<<
30570  * cdef BoundaryCondition pInit_diffusive
30571  * cdef BoundaryCondition pInc_diffusive
30572  */
30573 
30574 /* Python wrapper */
30575 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
30576 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_1__get__(PyObject *__pyx_v_self) {
30577  PyObject *__pyx_r = 0;
30578  __Pyx_RefNannyDeclarations
30579  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30580  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30581 
30582  /* function exit code */
30583  __Pyx_RefNannyFinishContext();
30584  return __pyx_r;
30585 }
30586 
30587 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30588  PyObject *__pyx_r = NULL;
30589  __Pyx_TraceDeclarations
30590  __Pyx_RefNannyDeclarations
30591  int __pyx_lineno = 0;
30592  const char *__pyx_filename = NULL;
30593  int __pyx_clineno = 0;
30594  __Pyx_RefNannySetupContext("__get__", 0);
30595  __Pyx_TraceCall("__get__", __pyx_f[2], 73, 0, __PYX_ERR(2, 73, __pyx_L1_error));
30596  __Pyx_XDECREF(__pyx_r);
30597  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_advective));
30598  __pyx_r = ((PyObject *)__pyx_v_self->pInc_advective);
30599  goto __pyx_L0;
30600 
30601  /* function exit code */
30602  __pyx_L1_error:;
30603  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30604  __pyx_r = NULL;
30605  __pyx_L0:;
30606  __Pyx_XGIVEREF(__pyx_r);
30607  __Pyx_TraceReturn(__pyx_r, 0);
30608  __Pyx_RefNannyFinishContext();
30609  return __pyx_r;
30610 }
30611 
30612 /* Python wrapper */
30613 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30614 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30615  int __pyx_r;
30616  __Pyx_RefNannyDeclarations
30617  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30618  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30619 
30620  /* function exit code */
30621  __Pyx_RefNannyFinishContext();
30622  return __pyx_r;
30623 }
30624 
30625 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30626  int __pyx_r;
30627  __Pyx_TraceDeclarations
30628  __Pyx_RefNannyDeclarations
30629  PyObject *__pyx_t_1 = NULL;
30630  int __pyx_lineno = 0;
30631  const char *__pyx_filename = NULL;
30632  int __pyx_clineno = 0;
30633  __Pyx_RefNannySetupContext("__set__", 0);
30634  __Pyx_TraceCall("__set__", __pyx_f[2], 73, 0, __PYX_ERR(2, 73, __pyx_L1_error));
30635  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 73, __pyx_L1_error)
30636  __pyx_t_1 = __pyx_v_value;
30637  __Pyx_INCREF(__pyx_t_1);
30638  __Pyx_GIVEREF(__pyx_t_1);
30639  __Pyx_GOTREF(__pyx_v_self->pInc_advective);
30640  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_advective));
30641  __pyx_v_self->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30642  __pyx_t_1 = 0;
30643 
30644  /* function exit code */
30645  __pyx_r = 0;
30646  goto __pyx_L0;
30647  __pyx_L1_error:;
30648  __Pyx_XDECREF(__pyx_t_1);
30649  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30650  __pyx_r = -1;
30651  __pyx_L0:;
30652  __Pyx_TraceReturn(Py_None, 0);
30653  __Pyx_RefNannyFinishContext();
30654  return __pyx_r;
30655 }
30656 
30657 /* Python wrapper */
30658 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
30659 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_5__del__(PyObject *__pyx_v_self) {
30660  int __pyx_r;
30661  __Pyx_RefNannyDeclarations
30662  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30663  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30664 
30665  /* function exit code */
30666  __Pyx_RefNannyFinishContext();
30667  return __pyx_r;
30668 }
30669 
30670 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30671  int __pyx_r;
30672  __Pyx_TraceDeclarations
30673  __Pyx_RefNannyDeclarations
30674  int __pyx_lineno = 0;
30675  const char *__pyx_filename = NULL;
30676  int __pyx_clineno = 0;
30677  __Pyx_RefNannySetupContext("__del__", 0);
30678  __Pyx_TraceCall("__del__", __pyx_f[2], 73, 0, __PYX_ERR(2, 73, __pyx_L1_error));
30679  __Pyx_INCREF(Py_None);
30680  __Pyx_GIVEREF(Py_None);
30681  __Pyx_GOTREF(__pyx_v_self->pInc_advective);
30682  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_advective));
30683  __pyx_v_self->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30684 
30685  /* function exit code */
30686  __pyx_r = 0;
30687  goto __pyx_L0;
30688  __pyx_L1_error:;
30689  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30690  __pyx_r = -1;
30691  __pyx_L0:;
30692  __Pyx_TraceReturn(Py_None, 0);
30693  __Pyx_RefNannyFinishContext();
30694  return __pyx_r;
30695 }
30696 
30697 /* "mprans/BoundaryConditions.pxd":74
30698  * cdef BoundaryCondition pInit_advective
30699  * cdef BoundaryCondition pInc_advective
30700  * cdef BoundaryCondition pInit_diffusive # <<<<<<<<<<<<<<
30701  * cdef BoundaryCondition pInc_diffusive
30702  * # clsvof
30703  */
30704 
30705 /* Python wrapper */
30706 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
30707 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_1__get__(PyObject *__pyx_v_self) {
30708  PyObject *__pyx_r = 0;
30709  __Pyx_RefNannyDeclarations
30710  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30711  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30712 
30713  /* function exit code */
30714  __Pyx_RefNannyFinishContext();
30715  return __pyx_r;
30716 }
30717 
30718 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30719  PyObject *__pyx_r = NULL;
30720  __Pyx_TraceDeclarations
30721  __Pyx_RefNannyDeclarations
30722  int __pyx_lineno = 0;
30723  const char *__pyx_filename = NULL;
30724  int __pyx_clineno = 0;
30725  __Pyx_RefNannySetupContext("__get__", 0);
30726  __Pyx_TraceCall("__get__", __pyx_f[2], 74, 0, __PYX_ERR(2, 74, __pyx_L1_error));
30727  __Pyx_XDECREF(__pyx_r);
30728  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_diffusive));
30729  __pyx_r = ((PyObject *)__pyx_v_self->pInit_diffusive);
30730  goto __pyx_L0;
30731 
30732  /* function exit code */
30733  __pyx_L1_error:;
30734  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30735  __pyx_r = NULL;
30736  __pyx_L0:;
30737  __Pyx_XGIVEREF(__pyx_r);
30738  __Pyx_TraceReturn(__pyx_r, 0);
30739  __Pyx_RefNannyFinishContext();
30740  return __pyx_r;
30741 }
30742 
30743 /* Python wrapper */
30744 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30745 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30746  int __pyx_r;
30747  __Pyx_RefNannyDeclarations
30748  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30749  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30750 
30751  /* function exit code */
30752  __Pyx_RefNannyFinishContext();
30753  return __pyx_r;
30754 }
30755 
30756 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30757  int __pyx_r;
30758  __Pyx_TraceDeclarations
30759  __Pyx_RefNannyDeclarations
30760  PyObject *__pyx_t_1 = NULL;
30761  int __pyx_lineno = 0;
30762  const char *__pyx_filename = NULL;
30763  int __pyx_clineno = 0;
30764  __Pyx_RefNannySetupContext("__set__", 0);
30765  __Pyx_TraceCall("__set__", __pyx_f[2], 74, 0, __PYX_ERR(2, 74, __pyx_L1_error));
30766  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 74, __pyx_L1_error)
30767  __pyx_t_1 = __pyx_v_value;
30768  __Pyx_INCREF(__pyx_t_1);
30769  __Pyx_GIVEREF(__pyx_t_1);
30770  __Pyx_GOTREF(__pyx_v_self->pInit_diffusive);
30771  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_diffusive));
30772  __pyx_v_self->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30773  __pyx_t_1 = 0;
30774 
30775  /* function exit code */
30776  __pyx_r = 0;
30777  goto __pyx_L0;
30778  __pyx_L1_error:;
30779  __Pyx_XDECREF(__pyx_t_1);
30780  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30781  __pyx_r = -1;
30782  __pyx_L0:;
30783  __Pyx_TraceReturn(Py_None, 0);
30784  __Pyx_RefNannyFinishContext();
30785  return __pyx_r;
30786 }
30787 
30788 /* Python wrapper */
30789 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
30790 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_5__del__(PyObject *__pyx_v_self) {
30791  int __pyx_r;
30792  __Pyx_RefNannyDeclarations
30793  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30794  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30795 
30796  /* function exit code */
30797  __Pyx_RefNannyFinishContext();
30798  return __pyx_r;
30799 }
30800 
30801 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30802  int __pyx_r;
30803  __Pyx_TraceDeclarations
30804  __Pyx_RefNannyDeclarations
30805  int __pyx_lineno = 0;
30806  const char *__pyx_filename = NULL;
30807  int __pyx_clineno = 0;
30808  __Pyx_RefNannySetupContext("__del__", 0);
30809  __Pyx_TraceCall("__del__", __pyx_f[2], 74, 0, __PYX_ERR(2, 74, __pyx_L1_error));
30810  __Pyx_INCREF(Py_None);
30811  __Pyx_GIVEREF(Py_None);
30812  __Pyx_GOTREF(__pyx_v_self->pInit_diffusive);
30813  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInit_diffusive));
30814  __pyx_v_self->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30815 
30816  /* function exit code */
30817  __pyx_r = 0;
30818  goto __pyx_L0;
30819  __pyx_L1_error:;
30820  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInit_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30821  __pyx_r = -1;
30822  __pyx_L0:;
30823  __Pyx_TraceReturn(Py_None, 0);
30824  __Pyx_RefNannyFinishContext();
30825  return __pyx_r;
30826 }
30827 
30828 /* "mprans/BoundaryConditions.pxd":75
30829  * cdef BoundaryCondition pInc_advective
30830  * cdef BoundaryCondition pInit_diffusive
30831  * cdef BoundaryCondition pInc_diffusive # <<<<<<<<<<<<<<
30832  * # clsvof
30833  * cdef BoundaryCondition clsvof_dirichlet
30834  */
30835 
30836 /* Python wrapper */
30837 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
30838 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_1__get__(PyObject *__pyx_v_self) {
30839  PyObject *__pyx_r = 0;
30840  __Pyx_RefNannyDeclarations
30841  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30842  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30843 
30844  /* function exit code */
30845  __Pyx_RefNannyFinishContext();
30846  return __pyx_r;
30847 }
30848 
30849 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30850  PyObject *__pyx_r = NULL;
30851  __Pyx_TraceDeclarations
30852  __Pyx_RefNannyDeclarations
30853  int __pyx_lineno = 0;
30854  const char *__pyx_filename = NULL;
30855  int __pyx_clineno = 0;
30856  __Pyx_RefNannySetupContext("__get__", 0);
30857  __Pyx_TraceCall("__get__", __pyx_f[2], 75, 0, __PYX_ERR(2, 75, __pyx_L1_error));
30858  __Pyx_XDECREF(__pyx_r);
30859  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_diffusive));
30860  __pyx_r = ((PyObject *)__pyx_v_self->pInc_diffusive);
30861  goto __pyx_L0;
30862 
30863  /* function exit code */
30864  __pyx_L1_error:;
30865  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30866  __pyx_r = NULL;
30867  __pyx_L0:;
30868  __Pyx_XGIVEREF(__pyx_r);
30869  __Pyx_TraceReturn(__pyx_r, 0);
30870  __Pyx_RefNannyFinishContext();
30871  return __pyx_r;
30872 }
30873 
30874 /* Python wrapper */
30875 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
30876 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
30877  int __pyx_r;
30878  __Pyx_RefNannyDeclarations
30879  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
30880  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
30881 
30882  /* function exit code */
30883  __Pyx_RefNannyFinishContext();
30884  return __pyx_r;
30885 }
30886 
30887 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
30888  int __pyx_r;
30889  __Pyx_TraceDeclarations
30890  __Pyx_RefNannyDeclarations
30891  PyObject *__pyx_t_1 = NULL;
30892  int __pyx_lineno = 0;
30893  const char *__pyx_filename = NULL;
30894  int __pyx_clineno = 0;
30895  __Pyx_RefNannySetupContext("__set__", 0);
30896  __Pyx_TraceCall("__set__", __pyx_f[2], 75, 0, __PYX_ERR(2, 75, __pyx_L1_error));
30897  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 75, __pyx_L1_error)
30898  __pyx_t_1 = __pyx_v_value;
30899  __Pyx_INCREF(__pyx_t_1);
30900  __Pyx_GIVEREF(__pyx_t_1);
30901  __Pyx_GOTREF(__pyx_v_self->pInc_diffusive);
30902  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_diffusive));
30903  __pyx_v_self->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
30904  __pyx_t_1 = 0;
30905 
30906  /* function exit code */
30907  __pyx_r = 0;
30908  goto __pyx_L0;
30909  __pyx_L1_error:;
30910  __Pyx_XDECREF(__pyx_t_1);
30911  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30912  __pyx_r = -1;
30913  __pyx_L0:;
30914  __Pyx_TraceReturn(Py_None, 0);
30915  __Pyx_RefNannyFinishContext();
30916  return __pyx_r;
30917 }
30918 
30919 /* Python wrapper */
30920 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
30921 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_5__del__(PyObject *__pyx_v_self) {
30922  int __pyx_r;
30923  __Pyx_RefNannyDeclarations
30924  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
30925  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30926 
30927  /* function exit code */
30928  __Pyx_RefNannyFinishContext();
30929  return __pyx_r;
30930 }
30931 
30932 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30933  int __pyx_r;
30934  __Pyx_TraceDeclarations
30935  __Pyx_RefNannyDeclarations
30936  int __pyx_lineno = 0;
30937  const char *__pyx_filename = NULL;
30938  int __pyx_clineno = 0;
30939  __Pyx_RefNannySetupContext("__del__", 0);
30940  __Pyx_TraceCall("__del__", __pyx_f[2], 75, 0, __PYX_ERR(2, 75, __pyx_L1_error));
30941  __Pyx_INCREF(Py_None);
30942  __Pyx_GIVEREF(Py_None);
30943  __Pyx_GOTREF(__pyx_v_self->pInc_diffusive);
30944  __Pyx_DECREF(((PyObject *)__pyx_v_self->pInc_diffusive));
30945  __pyx_v_self->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
30946 
30947  /* function exit code */
30948  __pyx_r = 0;
30949  goto __pyx_L0;
30950  __pyx_L1_error:;
30951  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.pInc_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30952  __pyx_r = -1;
30953  __pyx_L0:;
30954  __Pyx_TraceReturn(Py_None, 0);
30955  __Pyx_RefNannyFinishContext();
30956  return __pyx_r;
30957 }
30958 
30959 /* "mprans/BoundaryConditions.pxd":77
30960  * cdef BoundaryCondition pInc_diffusive
30961  * # clsvof
30962  * cdef BoundaryCondition clsvof_dirichlet # <<<<<<<<<<<<<<
30963  * cdef BoundaryCondition clsvof_advective
30964  * cdef BoundaryCondition clsvof_diffusive
30965  */
30966 
30967 /* Python wrapper */
30968 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_1__get__(PyObject *__pyx_v_self); /*proto*/
30969 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_1__get__(PyObject *__pyx_v_self) {
30970  PyObject *__pyx_r = 0;
30971  __Pyx_RefNannyDeclarations
30972  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
30973  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
30974 
30975  /* function exit code */
30976  __Pyx_RefNannyFinishContext();
30977  return __pyx_r;
30978 }
30979 
30980 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
30981  PyObject *__pyx_r = NULL;
30982  __Pyx_TraceDeclarations
30983  __Pyx_RefNannyDeclarations
30984  int __pyx_lineno = 0;
30985  const char *__pyx_filename = NULL;
30986  int __pyx_clineno = 0;
30987  __Pyx_RefNannySetupContext("__get__", 0);
30988  __Pyx_TraceCall("__get__", __pyx_f[2], 77, 0, __PYX_ERR(2, 77, __pyx_L1_error));
30989  __Pyx_XDECREF(__pyx_r);
30990  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
30991  __pyx_r = ((PyObject *)__pyx_v_self->clsvof_dirichlet);
30992  goto __pyx_L0;
30993 
30994  /* function exit code */
30995  __pyx_L1_error:;
30996  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_dirichlet.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30997  __pyx_r = NULL;
30998  __pyx_L0:;
30999  __Pyx_XGIVEREF(__pyx_r);
31000  __Pyx_TraceReturn(__pyx_r, 0);
31001  __Pyx_RefNannyFinishContext();
31002  return __pyx_r;
31003 }
31004 
31005 /* Python wrapper */
31006 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
31007 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
31008  int __pyx_r;
31009  __Pyx_RefNannyDeclarations
31010  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
31011  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
31012 
31013  /* function exit code */
31014  __Pyx_RefNannyFinishContext();
31015  return __pyx_r;
31016 }
31017 
31018 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
31019  int __pyx_r;
31020  __Pyx_TraceDeclarations
31021  __Pyx_RefNannyDeclarations
31022  PyObject *__pyx_t_1 = NULL;
31023  int __pyx_lineno = 0;
31024  const char *__pyx_filename = NULL;
31025  int __pyx_clineno = 0;
31026  __Pyx_RefNannySetupContext("__set__", 0);
31027  __Pyx_TraceCall("__set__", __pyx_f[2], 77, 0, __PYX_ERR(2, 77, __pyx_L1_error));
31028  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 77, __pyx_L1_error)
31029  __pyx_t_1 = __pyx_v_value;
31030  __Pyx_INCREF(__pyx_t_1);
31031  __Pyx_GIVEREF(__pyx_t_1);
31032  __Pyx_GOTREF(__pyx_v_self->clsvof_dirichlet);
31033  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
31034  __pyx_v_self->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
31035  __pyx_t_1 = 0;
31036 
31037  /* function exit code */
31038  __pyx_r = 0;
31039  goto __pyx_L0;
31040  __pyx_L1_error:;
31041  __Pyx_XDECREF(__pyx_t_1);
31042  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_dirichlet.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31043  __pyx_r = -1;
31044  __pyx_L0:;
31045  __Pyx_TraceReturn(Py_None, 0);
31046  __Pyx_RefNannyFinishContext();
31047  return __pyx_r;
31048 }
31049 
31050 /* Python wrapper */
31051 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_5__del__(PyObject *__pyx_v_self); /*proto*/
31052 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_5__del__(PyObject *__pyx_v_self) {
31053  int __pyx_r;
31054  __Pyx_RefNannyDeclarations
31055  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
31056  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31057 
31058  /* function exit code */
31059  __Pyx_RefNannyFinishContext();
31060  return __pyx_r;
31061 }
31062 
31063 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31064  int __pyx_r;
31065  __Pyx_TraceDeclarations
31066  __Pyx_RefNannyDeclarations
31067  int __pyx_lineno = 0;
31068  const char *__pyx_filename = NULL;
31069  int __pyx_clineno = 0;
31070  __Pyx_RefNannySetupContext("__del__", 0);
31071  __Pyx_TraceCall("__del__", __pyx_f[2], 77, 0, __PYX_ERR(2, 77, __pyx_L1_error));
31072  __Pyx_INCREF(Py_None);
31073  __Pyx_GIVEREF(Py_None);
31074  __Pyx_GOTREF(__pyx_v_self->clsvof_dirichlet);
31075  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
31076  __pyx_v_self->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
31077 
31078  /* function exit code */
31079  __pyx_r = 0;
31080  goto __pyx_L0;
31081  __pyx_L1_error:;
31082  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_dirichlet.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31083  __pyx_r = -1;
31084  __pyx_L0:;
31085  __Pyx_TraceReturn(Py_None, 0);
31086  __Pyx_RefNannyFinishContext();
31087  return __pyx_r;
31088 }
31089 
31090 /* "mprans/BoundaryConditions.pxd":78
31091  * # clsvof
31092  * cdef BoundaryCondition clsvof_dirichlet
31093  * cdef BoundaryCondition clsvof_advective # <<<<<<<<<<<<<<
31094  * cdef BoundaryCondition clsvof_diffusive
31095  *
31096  */
31097 
31098 /* Python wrapper */
31099 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_1__get__(PyObject *__pyx_v_self); /*proto*/
31100 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_1__get__(PyObject *__pyx_v_self) {
31101  PyObject *__pyx_r = 0;
31102  __Pyx_RefNannyDeclarations
31103  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
31104  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31105 
31106  /* function exit code */
31107  __Pyx_RefNannyFinishContext();
31108  return __pyx_r;
31109 }
31110 
31111 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31112  PyObject *__pyx_r = NULL;
31113  __Pyx_TraceDeclarations
31114  __Pyx_RefNannyDeclarations
31115  int __pyx_lineno = 0;
31116  const char *__pyx_filename = NULL;
31117  int __pyx_clineno = 0;
31118  __Pyx_RefNannySetupContext("__get__", 0);
31119  __Pyx_TraceCall("__get__", __pyx_f[2], 78, 0, __PYX_ERR(2, 78, __pyx_L1_error));
31120  __Pyx_XDECREF(__pyx_r);
31121  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_advective));
31122  __pyx_r = ((PyObject *)__pyx_v_self->clsvof_advective);
31123  goto __pyx_L0;
31124 
31125  /* function exit code */
31126  __pyx_L1_error:;
31127  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_advective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31128  __pyx_r = NULL;
31129  __pyx_L0:;
31130  __Pyx_XGIVEREF(__pyx_r);
31131  __Pyx_TraceReturn(__pyx_r, 0);
31132  __Pyx_RefNannyFinishContext();
31133  return __pyx_r;
31134 }
31135 
31136 /* Python wrapper */
31137 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
31138 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
31139  int __pyx_r;
31140  __Pyx_RefNannyDeclarations
31141  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
31142  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
31143 
31144  /* function exit code */
31145  __Pyx_RefNannyFinishContext();
31146  return __pyx_r;
31147 }
31148 
31149 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
31150  int __pyx_r;
31151  __Pyx_TraceDeclarations
31152  __Pyx_RefNannyDeclarations
31153  PyObject *__pyx_t_1 = NULL;
31154  int __pyx_lineno = 0;
31155  const char *__pyx_filename = NULL;
31156  int __pyx_clineno = 0;
31157  __Pyx_RefNannySetupContext("__set__", 0);
31158  __Pyx_TraceCall("__set__", __pyx_f[2], 78, 0, __PYX_ERR(2, 78, __pyx_L1_error));
31159  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 78, __pyx_L1_error)
31160  __pyx_t_1 = __pyx_v_value;
31161  __Pyx_INCREF(__pyx_t_1);
31162  __Pyx_GIVEREF(__pyx_t_1);
31163  __Pyx_GOTREF(__pyx_v_self->clsvof_advective);
31164  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_advective));
31165  __pyx_v_self->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
31166  __pyx_t_1 = 0;
31167 
31168  /* function exit code */
31169  __pyx_r = 0;
31170  goto __pyx_L0;
31171  __pyx_L1_error:;
31172  __Pyx_XDECREF(__pyx_t_1);
31173  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_advective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31174  __pyx_r = -1;
31175  __pyx_L0:;
31176  __Pyx_TraceReturn(Py_None, 0);
31177  __Pyx_RefNannyFinishContext();
31178  return __pyx_r;
31179 }
31180 
31181 /* Python wrapper */
31182 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_5__del__(PyObject *__pyx_v_self); /*proto*/
31183 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_5__del__(PyObject *__pyx_v_self) {
31184  int __pyx_r;
31185  __Pyx_RefNannyDeclarations
31186  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
31187  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31188 
31189  /* function exit code */
31190  __Pyx_RefNannyFinishContext();
31191  return __pyx_r;
31192 }
31193 
31194 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31195  int __pyx_r;
31196  __Pyx_TraceDeclarations
31197  __Pyx_RefNannyDeclarations
31198  int __pyx_lineno = 0;
31199  const char *__pyx_filename = NULL;
31200  int __pyx_clineno = 0;
31201  __Pyx_RefNannySetupContext("__del__", 0);
31202  __Pyx_TraceCall("__del__", __pyx_f[2], 78, 0, __PYX_ERR(2, 78, __pyx_L1_error));
31203  __Pyx_INCREF(Py_None);
31204  __Pyx_GIVEREF(Py_None);
31205  __Pyx_GOTREF(__pyx_v_self->clsvof_advective);
31206  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_advective));
31207  __pyx_v_self->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
31208 
31209  /* function exit code */
31210  __pyx_r = 0;
31211  goto __pyx_L0;
31212  __pyx_L1_error:;
31213  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_advective.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31214  __pyx_r = -1;
31215  __pyx_L0:;
31216  __Pyx_TraceReturn(Py_None, 0);
31217  __Pyx_RefNannyFinishContext();
31218  return __pyx_r;
31219 }
31220 
31221 /* "mprans/BoundaryConditions.pxd":79
31222  * cdef BoundaryCondition clsvof_dirichlet
31223  * cdef BoundaryCondition clsvof_advective
31224  * cdef BoundaryCondition clsvof_diffusive # <<<<<<<<<<<<<<
31225  *
31226  *
31227  */
31228 
31229 /* Python wrapper */
31230 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_1__get__(PyObject *__pyx_v_self); /*proto*/
31231 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_1__get__(PyObject *__pyx_v_self) {
31232  PyObject *__pyx_r = 0;
31233  __Pyx_RefNannyDeclarations
31234  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
31235  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31236 
31237  /* function exit code */
31238  __Pyx_RefNannyFinishContext();
31239  return __pyx_r;
31240 }
31241 
31242 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive___get__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31243  PyObject *__pyx_r = NULL;
31244  __Pyx_TraceDeclarations
31245  __Pyx_RefNannyDeclarations
31246  int __pyx_lineno = 0;
31247  const char *__pyx_filename = NULL;
31248  int __pyx_clineno = 0;
31249  __Pyx_RefNannySetupContext("__get__", 0);
31250  __Pyx_TraceCall("__get__", __pyx_f[2], 79, 0, __PYX_ERR(2, 79, __pyx_L1_error));
31251  __Pyx_XDECREF(__pyx_r);
31252  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
31253  __pyx_r = ((PyObject *)__pyx_v_self->clsvof_diffusive);
31254  goto __pyx_L0;
31255 
31256  /* function exit code */
31257  __pyx_L1_error:;
31258  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_diffusive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31259  __pyx_r = NULL;
31260  __pyx_L0:;
31261  __Pyx_XGIVEREF(__pyx_r);
31262  __Pyx_TraceReturn(__pyx_r, 0);
31263  __Pyx_RefNannyFinishContext();
31264  return __pyx_r;
31265 }
31266 
31267 /* Python wrapper */
31268 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
31269 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
31270  int __pyx_r;
31271  __Pyx_RefNannyDeclarations
31272  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
31273  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v_value));
31274 
31275  /* function exit code */
31276  __Pyx_RefNannyFinishContext();
31277  return __pyx_r;
31278 }
31279 
31280 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v_value) {
31281  int __pyx_r;
31282  __Pyx_TraceDeclarations
31283  __Pyx_RefNannyDeclarations
31284  PyObject *__pyx_t_1 = NULL;
31285  int __pyx_lineno = 0;
31286  const char *__pyx_filename = NULL;
31287  int __pyx_clineno = 0;
31288  __Pyx_RefNannySetupContext("__set__", 0);
31289  __Pyx_TraceCall("__set__", __pyx_f[2], 79, 0, __PYX_ERR(2, 79, __pyx_L1_error));
31290  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(2, 79, __pyx_L1_error)
31291  __pyx_t_1 = __pyx_v_value;
31292  __Pyx_INCREF(__pyx_t_1);
31293  __Pyx_GIVEREF(__pyx_t_1);
31294  __Pyx_GOTREF(__pyx_v_self->clsvof_diffusive);
31295  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
31296  __pyx_v_self->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
31297  __pyx_t_1 = 0;
31298 
31299  /* function exit code */
31300  __pyx_r = 0;
31301  goto __pyx_L0;
31302  __pyx_L1_error:;
31303  __Pyx_XDECREF(__pyx_t_1);
31304  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_diffusive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31305  __pyx_r = -1;
31306  __pyx_L0:;
31307  __Pyx_TraceReturn(Py_None, 0);
31308  __Pyx_RefNannyFinishContext();
31309  return __pyx_r;
31310 }
31311 
31312 /* Python wrapper */
31313 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_5__del__(PyObject *__pyx_v_self); /*proto*/
31314 static int __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_5__del__(PyObject *__pyx_v_self) {
31315  int __pyx_r;
31316  __Pyx_RefNannyDeclarations
31317  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
31318  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31319 
31320  /* function exit code */
31321  __Pyx_RefNannyFinishContext();
31322  return __pyx_r;
31323 }
31324 
31325 static int __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31326  int __pyx_r;
31327  __Pyx_TraceDeclarations
31328  __Pyx_RefNannyDeclarations
31329  int __pyx_lineno = 0;
31330  const char *__pyx_filename = NULL;
31331  int __pyx_clineno = 0;
31332  __Pyx_RefNannySetupContext("__del__", 0);
31333  __Pyx_TraceCall("__del__", __pyx_f[2], 79, 0, __PYX_ERR(2, 79, __pyx_L1_error));
31334  __Pyx_INCREF(Py_None);
31335  __Pyx_GIVEREF(Py_None);
31336  __Pyx_GOTREF(__pyx_v_self->clsvof_diffusive);
31337  __Pyx_DECREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
31338  __pyx_v_self->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None);
31339 
31340  /* function exit code */
31341  __pyx_r = 0;
31342  goto __pyx_L0;
31343  __pyx_L1_error:;
31344  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.clsvof_diffusive.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31345  __pyx_r = -1;
31346  __pyx_L0:;
31347  __Pyx_TraceReturn(Py_None, 0);
31348  __Pyx_RefNannyFinishContext();
31349  return __pyx_r;
31350 }
31351 
31352 /* "(tree fragment)":1
31353  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
31354  * cdef tuple state
31355  * cdef object _dict
31356  */
31357 
31358 /* Python wrapper */
31359 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
31360 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__[] = "BC_RANS.__reduce_cython__(self)";
31361 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__};
31362 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
31363  PyObject *__pyx_r = 0;
31364  __Pyx_RefNannyDeclarations
31365  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
31366  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self));
31367 
31368  /* function exit code */
31369  __Pyx_RefNannyFinishContext();
31370  return __pyx_r;
31371 }
31372 
31373 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self) {
31374  PyObject *__pyx_v_state = 0;
31375  PyObject *__pyx_v__dict = 0;
31376  int __pyx_v_use_setstate;
31377  PyObject *__pyx_r = NULL;
31378  __Pyx_TraceDeclarations
31379  __Pyx_RefNannyDeclarations
31380  PyObject *__pyx_t_1 = NULL;
31381  PyObject *__pyx_t_2 = NULL;
31382  PyObject *__pyx_t_3 = NULL;
31383  PyObject *__pyx_t_4 = NULL;
31384  PyObject *__pyx_t_5 = NULL;
31385  PyObject *__pyx_t_6 = NULL;
31386  PyObject *__pyx_t_7 = NULL;
31387  PyObject *__pyx_t_8 = NULL;
31388  PyObject *__pyx_t_9 = NULL;
31389  int __pyx_t_10;
31390  int __pyx_t_11;
31391  int __pyx_t_12;
31392  int __pyx_lineno = 0;
31393  const char *__pyx_filename = NULL;
31394  int __pyx_clineno = 0;
31395  __Pyx_TraceFrameInit(__pyx_codeobj__88)
31396  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
31397  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
31398 
31399  /* "(tree fragment)":5
31400  * cdef object _dict
31401  * cdef bint use_setstate
31402  * state = (self.BC_type, self.Shape, self._b_or, self.body, self.body_python_h, self.body_python_last_pos, self.body_python_rot_matrix, self.clsvof_advective, self.clsvof_diffusive, self.clsvof_dirichlet, self.ct, self.dissipation_advective, self.dissipation_diffusive, self.dissipation_dirichlet, self.f, self.hx_dirichlet, self.hy_dirichlet, self.hz_dirichlet, self.k_advective, self.k_diffusive, self.k_dirichlet, self.name, self.nd, self.pAddedMass_dirichlet, self.pInc_advective, self.pInc_diffusive, self.pInc_dirichlet, self.pInit_advective, self.pInit_diffusive, self.pInit_dirichlet, self.p_advective, self.p_dirichlet, self.phi_dirichlet, self.u_advective, self.u_diffusive, self.u_dirichlet, self.u_stress, self.us_advective, self.us_diffusive, self.us_dirichlet, self.v_advective, self.v_diffusive, self.v_dirichlet, self.v_stress, self.vof_advective, self.vof_dirichlet, self.vos_advective, self.vos_dirichlet, self.vs_advective, self.vs_diffusive, self.vs_dirichlet, self.w_advective, self.w_diffusive, self.w_dirichlet, self.w_stress, self.waves, self.wind_speed, self.ws_advective, self.ws_diffusive, self.ws_dirichlet, self.zero_array) # <<<<<<<<<<<<<<
31403  * _dict = getattr(self, '__dict__', None)
31404  * if _dict is not None:
31405  */
31406  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_self->__pyx_base._b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
31407  __Pyx_GOTREF(__pyx_t_1);
31408  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_self->body_python_h, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
31409  __Pyx_GOTREF(__pyx_t_2);
31410  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_self->body_python_last_pos, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
31411  __Pyx_GOTREF(__pyx_t_3);
31412  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_self->body_python_rot_matrix, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
31413  __Pyx_GOTREF(__pyx_t_4);
31414  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->f); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
31415  __Pyx_GOTREF(__pyx_t_5);
31416  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->__pyx_base.nd); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
31417  __Pyx_GOTREF(__pyx_t_6);
31418  __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_self->wind_speed, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
31419  __Pyx_GOTREF(__pyx_t_7);
31420  __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_self->zero_array, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
31421  __Pyx_GOTREF(__pyx_t_8);
31422  __pyx_t_9 = PyTuple_New(61); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error)
31423  __Pyx_GOTREF(__pyx_t_9);
31424  __Pyx_INCREF(__pyx_v_self->__pyx_base.BC_type);
31425  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.BC_type);
31426  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self->__pyx_base.BC_type);
31427  __Pyx_INCREF(__pyx_v_self->__pyx_base.Shape);
31428  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.Shape);
31429  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_self->__pyx_base.Shape);
31430  __Pyx_GIVEREF(__pyx_t_1);
31431  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1);
31432  __Pyx_INCREF(__pyx_v_self->body);
31433  __Pyx_GIVEREF(__pyx_v_self->body);
31434  PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_v_self->body);
31435  __Pyx_GIVEREF(__pyx_t_2);
31436  PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_2);
31437  __Pyx_GIVEREF(__pyx_t_3);
31438  PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_t_3);
31439  __Pyx_GIVEREF(__pyx_t_4);
31440  PyTuple_SET_ITEM(__pyx_t_9, 6, __pyx_t_4);
31441  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_advective));
31442  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->clsvof_advective));
31443  PyTuple_SET_ITEM(__pyx_t_9, 7, ((PyObject *)__pyx_v_self->clsvof_advective));
31444  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
31445  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->clsvof_diffusive));
31446  PyTuple_SET_ITEM(__pyx_t_9, 8, ((PyObject *)__pyx_v_self->clsvof_diffusive));
31447  __Pyx_INCREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
31448  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->clsvof_dirichlet));
31449  PyTuple_SET_ITEM(__pyx_t_9, 9, ((PyObject *)__pyx_v_self->clsvof_dirichlet));
31450  __Pyx_INCREF(__pyx_v_self->__pyx_base.ct);
31451  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ct);
31452  PyTuple_SET_ITEM(__pyx_t_9, 10, __pyx_v_self->__pyx_base.ct);
31453  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_advective));
31454  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dissipation_advective));
31455  PyTuple_SET_ITEM(__pyx_t_9, 11, ((PyObject *)__pyx_v_self->dissipation_advective));
31456  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
31457  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dissipation_diffusive));
31458  PyTuple_SET_ITEM(__pyx_t_9, 12, ((PyObject *)__pyx_v_self->dissipation_diffusive));
31459  __Pyx_INCREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
31460  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dissipation_dirichlet));
31461  PyTuple_SET_ITEM(__pyx_t_9, 13, ((PyObject *)__pyx_v_self->dissipation_dirichlet));
31462  __Pyx_GIVEREF(__pyx_t_5);
31463  PyTuple_SET_ITEM(__pyx_t_9, 14, __pyx_t_5);
31464  __Pyx_INCREF(((PyObject *)__pyx_v_self->hx_dirichlet));
31465  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->hx_dirichlet));
31466  PyTuple_SET_ITEM(__pyx_t_9, 15, ((PyObject *)__pyx_v_self->hx_dirichlet));
31467  __Pyx_INCREF(((PyObject *)__pyx_v_self->hy_dirichlet));
31468  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->hy_dirichlet));
31469  PyTuple_SET_ITEM(__pyx_t_9, 16, ((PyObject *)__pyx_v_self->hy_dirichlet));
31470  __Pyx_INCREF(((PyObject *)__pyx_v_self->hz_dirichlet));
31471  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->hz_dirichlet));
31472  PyTuple_SET_ITEM(__pyx_t_9, 17, ((PyObject *)__pyx_v_self->hz_dirichlet));
31473  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_advective));
31474  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->k_advective));
31475  PyTuple_SET_ITEM(__pyx_t_9, 18, ((PyObject *)__pyx_v_self->k_advective));
31476  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_diffusive));
31477  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->k_diffusive));
31478  PyTuple_SET_ITEM(__pyx_t_9, 19, ((PyObject *)__pyx_v_self->k_diffusive));
31479  __Pyx_INCREF(((PyObject *)__pyx_v_self->k_dirichlet));
31480  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->k_dirichlet));
31481  PyTuple_SET_ITEM(__pyx_t_9, 20, ((PyObject *)__pyx_v_self->k_dirichlet));
31482  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
31483  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
31484  PyTuple_SET_ITEM(__pyx_t_9, 21, __pyx_v_self->__pyx_base.name);
31485  __Pyx_GIVEREF(__pyx_t_6);
31486  PyTuple_SET_ITEM(__pyx_t_9, 22, __pyx_t_6);
31487  __Pyx_INCREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
31488  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
31489  PyTuple_SET_ITEM(__pyx_t_9, 23, ((PyObject *)__pyx_v_self->pAddedMass_dirichlet));
31490  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_advective));
31491  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInc_advective));
31492  PyTuple_SET_ITEM(__pyx_t_9, 24, ((PyObject *)__pyx_v_self->pInc_advective));
31493  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_diffusive));
31494  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInc_diffusive));
31495  PyTuple_SET_ITEM(__pyx_t_9, 25, ((PyObject *)__pyx_v_self->pInc_diffusive));
31496  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
31497  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInc_dirichlet));
31498  PyTuple_SET_ITEM(__pyx_t_9, 26, ((PyObject *)__pyx_v_self->pInc_dirichlet));
31499  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_advective));
31500  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInit_advective));
31501  PyTuple_SET_ITEM(__pyx_t_9, 27, ((PyObject *)__pyx_v_self->pInit_advective));
31502  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_diffusive));
31503  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInit_diffusive));
31504  PyTuple_SET_ITEM(__pyx_t_9, 28, ((PyObject *)__pyx_v_self->pInit_diffusive));
31505  __Pyx_INCREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
31506  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pInit_dirichlet));
31507  PyTuple_SET_ITEM(__pyx_t_9, 29, ((PyObject *)__pyx_v_self->pInit_dirichlet));
31508  __Pyx_INCREF(((PyObject *)__pyx_v_self->p_advective));
31509  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->p_advective));
31510  PyTuple_SET_ITEM(__pyx_t_9, 30, ((PyObject *)__pyx_v_self->p_advective));
31511  __Pyx_INCREF(((PyObject *)__pyx_v_self->p_dirichlet));
31512  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->p_dirichlet));
31513  PyTuple_SET_ITEM(__pyx_t_9, 31, ((PyObject *)__pyx_v_self->p_dirichlet));
31514  __Pyx_INCREF(((PyObject *)__pyx_v_self->phi_dirichlet));
31515  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->phi_dirichlet));
31516  PyTuple_SET_ITEM(__pyx_t_9, 32, ((PyObject *)__pyx_v_self->phi_dirichlet));
31517  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_advective));
31518  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->u_advective));
31519  PyTuple_SET_ITEM(__pyx_t_9, 33, ((PyObject *)__pyx_v_self->u_advective));
31520  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_diffusive));
31521  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->u_diffusive));
31522  PyTuple_SET_ITEM(__pyx_t_9, 34, ((PyObject *)__pyx_v_self->u_diffusive));
31523  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_dirichlet));
31524  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->u_dirichlet));
31525  PyTuple_SET_ITEM(__pyx_t_9, 35, ((PyObject *)__pyx_v_self->u_dirichlet));
31526  __Pyx_INCREF(((PyObject *)__pyx_v_self->u_stress));
31527  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->u_stress));
31528  PyTuple_SET_ITEM(__pyx_t_9, 36, ((PyObject *)__pyx_v_self->u_stress));
31529  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_advective));
31530  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->us_advective));
31531  PyTuple_SET_ITEM(__pyx_t_9, 37, ((PyObject *)__pyx_v_self->us_advective));
31532  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_diffusive));
31533  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->us_diffusive));
31534  PyTuple_SET_ITEM(__pyx_t_9, 38, ((PyObject *)__pyx_v_self->us_diffusive));
31535  __Pyx_INCREF(((PyObject *)__pyx_v_self->us_dirichlet));
31536  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->us_dirichlet));
31537  PyTuple_SET_ITEM(__pyx_t_9, 39, ((PyObject *)__pyx_v_self->us_dirichlet));
31538  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_advective));
31539  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->v_advective));
31540  PyTuple_SET_ITEM(__pyx_t_9, 40, ((PyObject *)__pyx_v_self->v_advective));
31541  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_diffusive));
31542  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->v_diffusive));
31543  PyTuple_SET_ITEM(__pyx_t_9, 41, ((PyObject *)__pyx_v_self->v_diffusive));
31544  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_dirichlet));
31545  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->v_dirichlet));
31546  PyTuple_SET_ITEM(__pyx_t_9, 42, ((PyObject *)__pyx_v_self->v_dirichlet));
31547  __Pyx_INCREF(((PyObject *)__pyx_v_self->v_stress));
31548  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->v_stress));
31549  PyTuple_SET_ITEM(__pyx_t_9, 43, ((PyObject *)__pyx_v_self->v_stress));
31550  __Pyx_INCREF(((PyObject *)__pyx_v_self->vof_advective));
31551  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vof_advective));
31552  PyTuple_SET_ITEM(__pyx_t_9, 44, ((PyObject *)__pyx_v_self->vof_advective));
31553  __Pyx_INCREF(((PyObject *)__pyx_v_self->vof_dirichlet));
31554  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vof_dirichlet));
31555  PyTuple_SET_ITEM(__pyx_t_9, 45, ((PyObject *)__pyx_v_self->vof_dirichlet));
31556  __Pyx_INCREF(((PyObject *)__pyx_v_self->vos_advective));
31557  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vos_advective));
31558  PyTuple_SET_ITEM(__pyx_t_9, 46, ((PyObject *)__pyx_v_self->vos_advective));
31559  __Pyx_INCREF(((PyObject *)__pyx_v_self->vos_dirichlet));
31560  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vos_dirichlet));
31561  PyTuple_SET_ITEM(__pyx_t_9, 47, ((PyObject *)__pyx_v_self->vos_dirichlet));
31562  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_advective));
31563  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vs_advective));
31564  PyTuple_SET_ITEM(__pyx_t_9, 48, ((PyObject *)__pyx_v_self->vs_advective));
31565  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_diffusive));
31566  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vs_diffusive));
31567  PyTuple_SET_ITEM(__pyx_t_9, 49, ((PyObject *)__pyx_v_self->vs_diffusive));
31568  __Pyx_INCREF(((PyObject *)__pyx_v_self->vs_dirichlet));
31569  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->vs_dirichlet));
31570  PyTuple_SET_ITEM(__pyx_t_9, 50, ((PyObject *)__pyx_v_self->vs_dirichlet));
31571  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_advective));
31572  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->w_advective));
31573  PyTuple_SET_ITEM(__pyx_t_9, 51, ((PyObject *)__pyx_v_self->w_advective));
31574  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_diffusive));
31575  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->w_diffusive));
31576  PyTuple_SET_ITEM(__pyx_t_9, 52, ((PyObject *)__pyx_v_self->w_diffusive));
31577  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_dirichlet));
31578  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->w_dirichlet));
31579  PyTuple_SET_ITEM(__pyx_t_9, 53, ((PyObject *)__pyx_v_self->w_dirichlet));
31580  __Pyx_INCREF(((PyObject *)__pyx_v_self->w_stress));
31581  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->w_stress));
31582  PyTuple_SET_ITEM(__pyx_t_9, 54, ((PyObject *)__pyx_v_self->w_stress));
31583  __Pyx_INCREF(((PyObject *)__pyx_v_self->waves));
31584  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->waves));
31585  PyTuple_SET_ITEM(__pyx_t_9, 55, ((PyObject *)__pyx_v_self->waves));
31586  __Pyx_GIVEREF(__pyx_t_7);
31587  PyTuple_SET_ITEM(__pyx_t_9, 56, __pyx_t_7);
31588  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_advective));
31589  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ws_advective));
31590  PyTuple_SET_ITEM(__pyx_t_9, 57, ((PyObject *)__pyx_v_self->ws_advective));
31591  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_diffusive));
31592  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ws_diffusive));
31593  PyTuple_SET_ITEM(__pyx_t_9, 58, ((PyObject *)__pyx_v_self->ws_diffusive));
31594  __Pyx_INCREF(((PyObject *)__pyx_v_self->ws_dirichlet));
31595  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ws_dirichlet));
31596  PyTuple_SET_ITEM(__pyx_t_9, 59, ((PyObject *)__pyx_v_self->ws_dirichlet));
31597  __Pyx_GIVEREF(__pyx_t_8);
31598  PyTuple_SET_ITEM(__pyx_t_9, 60, __pyx_t_8);
31599  __pyx_t_1 = 0;
31600  __pyx_t_2 = 0;
31601  __pyx_t_3 = 0;
31602  __pyx_t_4 = 0;
31603  __pyx_t_5 = 0;
31604  __pyx_t_6 = 0;
31605  __pyx_t_7 = 0;
31606  __pyx_t_8 = 0;
31607  __pyx_v_state = ((PyObject*)__pyx_t_9);
31608  __pyx_t_9 = 0;
31609 
31610  /* "(tree fragment)":6
31611  * cdef bint use_setstate
31612  * state = (self.BC_type, self.Shape, self._b_or, self.body, self.body_python_h, self.body_python_last_pos, self.body_python_rot_matrix, self.clsvof_advective, self.clsvof_diffusive, self.clsvof_dirichlet, self.ct, self.dissipation_advective, self.dissipation_diffusive, self.dissipation_dirichlet, self.f, self.hx_dirichlet, self.hy_dirichlet, self.hz_dirichlet, self.k_advective, self.k_diffusive, self.k_dirichlet, self.name, self.nd, self.pAddedMass_dirichlet, self.pInc_advective, self.pInc_diffusive, self.pInc_dirichlet, self.pInit_advective, self.pInit_diffusive, self.pInit_dirichlet, self.p_advective, self.p_dirichlet, self.phi_dirichlet, self.u_advective, self.u_diffusive, self.u_dirichlet, self.u_stress, self.us_advective, self.us_diffusive, self.us_dirichlet, self.v_advective, self.v_diffusive, self.v_dirichlet, self.v_stress, self.vof_advective, self.vof_dirichlet, self.vos_advective, self.vos_dirichlet, self.vs_advective, self.vs_diffusive, self.vs_dirichlet, self.w_advective, self.w_diffusive, self.w_dirichlet, self.w_stress, self.waves, self.wind_speed, self.ws_advective, self.ws_diffusive, self.ws_dirichlet, self.zero_array)
31613  * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<<
31614  * if _dict is not None:
31615  * state += (_dict,)
31616  */
31617  __pyx_t_9 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 6, __pyx_L1_error)
31618  __Pyx_GOTREF(__pyx_t_9);
31619  __pyx_v__dict = __pyx_t_9;
31620  __pyx_t_9 = 0;
31621 
31622  /* "(tree fragment)":7
31623  * state = (self.BC_type, self.Shape, self._b_or, self.body, self.body_python_h, self.body_python_last_pos, self.body_python_rot_matrix, self.clsvof_advective, self.clsvof_diffusive, self.clsvof_dirichlet, self.ct, self.dissipation_advective, self.dissipation_diffusive, self.dissipation_dirichlet, self.f, self.hx_dirichlet, self.hy_dirichlet, self.hz_dirichlet, self.k_advective, self.k_diffusive, self.k_dirichlet, self.name, self.nd, self.pAddedMass_dirichlet, self.pInc_advective, self.pInc_diffusive, self.pInc_dirichlet, self.pInit_advective, self.pInit_diffusive, self.pInit_dirichlet, self.p_advective, self.p_dirichlet, self.phi_dirichlet, self.u_advective, self.u_diffusive, self.u_dirichlet, self.u_stress, self.us_advective, self.us_diffusive, self.us_dirichlet, self.v_advective, self.v_diffusive, self.v_dirichlet, self.v_stress, self.vof_advective, self.vof_dirichlet, self.vos_advective, self.vos_dirichlet, self.vs_advective, self.vs_diffusive, self.vs_dirichlet, self.w_advective, self.w_diffusive, self.w_dirichlet, self.w_stress, self.waves, self.wind_speed, self.ws_advective, self.ws_diffusive, self.ws_dirichlet, self.zero_array)
31624  * _dict = getattr(self, '__dict__', None)
31625  * if _dict is not None: # <<<<<<<<<<<<<<
31626  * state += (_dict,)
31627  * use_setstate = True
31628  */
31629  __pyx_t_10 = (__pyx_v__dict != Py_None);
31630  __pyx_t_11 = (__pyx_t_10 != 0);
31631  if (__pyx_t_11) {
31632 
31633  /* "(tree fragment)":8
31634  * _dict = getattr(self, '__dict__', None)
31635  * if _dict is not None:
31636  * state += (_dict,) # <<<<<<<<<<<<<<
31637  * use_setstate = True
31638  * else:
31639  */
31640  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 8, __pyx_L1_error)
31641  __Pyx_GOTREF(__pyx_t_9);
31642  __Pyx_INCREF(__pyx_v__dict);
31643  __Pyx_GIVEREF(__pyx_v__dict);
31644  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v__dict);
31645  __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
31646  __Pyx_GOTREF(__pyx_t_8);
31647  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
31648  __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_8));
31649  __pyx_t_8 = 0;
31650 
31651  /* "(tree fragment)":9
31652  * if _dict is not None:
31653  * state += (_dict,)
31654  * use_setstate = True # <<<<<<<<<<<<<<
31655  * else:
31656  * use_setstate = self.BC_type is not None or self.Shape is not None or self.body is not None or self.clsvof_advective is not None or self.clsvof_diffusive is not None or self.clsvof_dirichlet is not None or self.ct is not None or self.dissipation_advective is not None or self.dissipation_diffusive is not None or self.dissipation_dirichlet is not None or self.hx_dirichlet is not None or self.hy_dirichlet is not None or self.hz_dirichlet is not None or self.k_advective is not None or self.k_diffusive is not None or self.k_dirichlet is not None or self.name is not None or self.pAddedMass_dirichlet is not None or self.pInc_advective is not None or self.pInc_diffusive is not None or self.pInc_dirichlet is not None or self.pInit_advective is not None or self.pInit_diffusive is not None or self.pInit_dirichlet is not None or self.p_advective is not None or self.p_dirichlet is not None or self.phi_dirichlet is not None or self.u_advective is not None or self.u_diffusive is not None or self.u_dirichlet is not None or self.u_stress is not None or self.us_advective is not None or self.us_diffusive is not None or self.us_dirichlet is not None or self.v_advective is not None or self.v_diffusive is not None or self.v_dirichlet is not None or self.v_stress is not None or self.vof_advective is not None or self.vof_dirichlet is not None or self.vos_advective is not None or self.vos_dirichlet is not None or self.vs_advective is not None or self.vs_diffusive is not None or self.vs_dirichlet is not None or self.w_advective is not None or self.w_diffusive is not None or self.w_dirichlet is not None or self.w_stress is not None or self.waves is not None or self.ws_advective is not None or self.ws_diffusive is not None or self.ws_dirichlet is not None
31657  */
31658  __pyx_v_use_setstate = 1;
31659 
31660  /* "(tree fragment)":7
31661  * state = (self.BC_type, self.Shape, self._b_or, self.body, self.body_python_h, self.body_python_last_pos, self.body_python_rot_matrix, self.clsvof_advective, self.clsvof_diffusive, self.clsvof_dirichlet, self.ct, self.dissipation_advective, self.dissipation_diffusive, self.dissipation_dirichlet, self.f, self.hx_dirichlet, self.hy_dirichlet, self.hz_dirichlet, self.k_advective, self.k_diffusive, self.k_dirichlet, self.name, self.nd, self.pAddedMass_dirichlet, self.pInc_advective, self.pInc_diffusive, self.pInc_dirichlet, self.pInit_advective, self.pInit_diffusive, self.pInit_dirichlet, self.p_advective, self.p_dirichlet, self.phi_dirichlet, self.u_advective, self.u_diffusive, self.u_dirichlet, self.u_stress, self.us_advective, self.us_diffusive, self.us_dirichlet, self.v_advective, self.v_diffusive, self.v_dirichlet, self.v_stress, self.vof_advective, self.vof_dirichlet, self.vos_advective, self.vos_dirichlet, self.vs_advective, self.vs_diffusive, self.vs_dirichlet, self.w_advective, self.w_diffusive, self.w_dirichlet, self.w_stress, self.waves, self.wind_speed, self.ws_advective, self.ws_diffusive, self.ws_dirichlet, self.zero_array)
31662  * _dict = getattr(self, '__dict__', None)
31663  * if _dict is not None: # <<<<<<<<<<<<<<
31664  * state += (_dict,)
31665  * use_setstate = True
31666  */
31667  goto __pyx_L3;
31668  }
31669 
31670  /* "(tree fragment)":11
31671  * use_setstate = True
31672  * else:
31673  * use_setstate = self.BC_type is not None or self.Shape is not None or self.body is not None or self.clsvof_advective is not None or self.clsvof_diffusive is not None or self.clsvof_dirichlet is not None or self.ct is not None or self.dissipation_advective is not None or self.dissipation_diffusive is not None or self.dissipation_dirichlet is not None or self.hx_dirichlet is not None or self.hy_dirichlet is not None or self.hz_dirichlet is not None or self.k_advective is not None or self.k_diffusive is not None or self.k_dirichlet is not None or self.name is not None or self.pAddedMass_dirichlet is not None or self.pInc_advective is not None or self.pInc_diffusive is not None or self.pInc_dirichlet is not None or self.pInit_advective is not None or self.pInit_diffusive is not None or self.pInit_dirichlet is not None or self.p_advective is not None or self.p_dirichlet is not None or self.phi_dirichlet is not None or self.u_advective is not None or self.u_diffusive is not None or self.u_dirichlet is not None or self.u_stress is not None or self.us_advective is not None or self.us_diffusive is not None or self.us_dirichlet is not None or self.v_advective is not None or self.v_diffusive is not None or self.v_dirichlet is not None or self.v_stress is not None or self.vof_advective is not None or self.vof_dirichlet is not None or self.vos_advective is not None or self.vos_dirichlet is not None or self.vs_advective is not None or self.vs_diffusive is not None or self.vs_dirichlet is not None or self.w_advective is not None or self.w_diffusive is not None or self.w_dirichlet is not None or self.w_stress is not None or self.waves is not None or self.ws_advective is not None or self.ws_diffusive is not None or self.ws_dirichlet is not None # <<<<<<<<<<<<<<
31674  * if use_setstate:
31675  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, None), state
31676  */
31677  /*else*/ {
31678  __pyx_t_10 = (__pyx_v_self->__pyx_base.BC_type != ((PyObject*)Py_None));
31679  __pyx_t_12 = (__pyx_t_10 != 0);
31680  if (!__pyx_t_12) {
31681  } else {
31682  __pyx_t_11 = __pyx_t_12;
31683  goto __pyx_L4_bool_binop_done;
31684  }
31685  __pyx_t_12 = (__pyx_v_self->__pyx_base.Shape != Py_None);
31686  __pyx_t_10 = (__pyx_t_12 != 0);
31687  if (!__pyx_t_10) {
31688  } else {
31689  __pyx_t_11 = __pyx_t_10;
31690  goto __pyx_L4_bool_binop_done;
31691  }
31692  __pyx_t_10 = (__pyx_v_self->body != Py_None);
31693  __pyx_t_12 = (__pyx_t_10 != 0);
31694  if (!__pyx_t_12) {
31695  } else {
31696  __pyx_t_11 = __pyx_t_12;
31697  goto __pyx_L4_bool_binop_done;
31698  }
31699  __pyx_t_12 = (((PyObject *)__pyx_v_self->clsvof_advective) != Py_None);
31700  __pyx_t_10 = (__pyx_t_12 != 0);
31701  if (!__pyx_t_10) {
31702  } else {
31703  __pyx_t_11 = __pyx_t_10;
31704  goto __pyx_L4_bool_binop_done;
31705  }
31706  __pyx_t_10 = (((PyObject *)__pyx_v_self->clsvof_diffusive) != Py_None);
31707  __pyx_t_12 = (__pyx_t_10 != 0);
31708  if (!__pyx_t_12) {
31709  } else {
31710  __pyx_t_11 = __pyx_t_12;
31711  goto __pyx_L4_bool_binop_done;
31712  }
31713  __pyx_t_12 = (((PyObject *)__pyx_v_self->clsvof_dirichlet) != Py_None);
31714  __pyx_t_10 = (__pyx_t_12 != 0);
31715  if (!__pyx_t_10) {
31716  } else {
31717  __pyx_t_11 = __pyx_t_10;
31718  goto __pyx_L4_bool_binop_done;
31719  }
31720  __pyx_t_10 = (__pyx_v_self->__pyx_base.ct != Py_None);
31721  __pyx_t_12 = (__pyx_t_10 != 0);
31722  if (!__pyx_t_12) {
31723  } else {
31724  __pyx_t_11 = __pyx_t_12;
31725  goto __pyx_L4_bool_binop_done;
31726  }
31727  __pyx_t_12 = (((PyObject *)__pyx_v_self->dissipation_advective) != Py_None);
31728  __pyx_t_10 = (__pyx_t_12 != 0);
31729  if (!__pyx_t_10) {
31730  } else {
31731  __pyx_t_11 = __pyx_t_10;
31732  goto __pyx_L4_bool_binop_done;
31733  }
31734  __pyx_t_10 = (((PyObject *)__pyx_v_self->dissipation_diffusive) != Py_None);
31735  __pyx_t_12 = (__pyx_t_10 != 0);
31736  if (!__pyx_t_12) {
31737  } else {
31738  __pyx_t_11 = __pyx_t_12;
31739  goto __pyx_L4_bool_binop_done;
31740  }
31741  __pyx_t_12 = (((PyObject *)__pyx_v_self->dissipation_dirichlet) != Py_None);
31742  __pyx_t_10 = (__pyx_t_12 != 0);
31743  if (!__pyx_t_10) {
31744  } else {
31745  __pyx_t_11 = __pyx_t_10;
31746  goto __pyx_L4_bool_binop_done;
31747  }
31748  __pyx_t_10 = (((PyObject *)__pyx_v_self->hx_dirichlet) != Py_None);
31749  __pyx_t_12 = (__pyx_t_10 != 0);
31750  if (!__pyx_t_12) {
31751  } else {
31752  __pyx_t_11 = __pyx_t_12;
31753  goto __pyx_L4_bool_binop_done;
31754  }
31755  __pyx_t_12 = (((PyObject *)__pyx_v_self->hy_dirichlet) != Py_None);
31756  __pyx_t_10 = (__pyx_t_12 != 0);
31757  if (!__pyx_t_10) {
31758  } else {
31759  __pyx_t_11 = __pyx_t_10;
31760  goto __pyx_L4_bool_binop_done;
31761  }
31762  __pyx_t_10 = (((PyObject *)__pyx_v_self->hz_dirichlet) != Py_None);
31763  __pyx_t_12 = (__pyx_t_10 != 0);
31764  if (!__pyx_t_12) {
31765  } else {
31766  __pyx_t_11 = __pyx_t_12;
31767  goto __pyx_L4_bool_binop_done;
31768  }
31769  __pyx_t_12 = (((PyObject *)__pyx_v_self->k_advective) != Py_None);
31770  __pyx_t_10 = (__pyx_t_12 != 0);
31771  if (!__pyx_t_10) {
31772  } else {
31773  __pyx_t_11 = __pyx_t_10;
31774  goto __pyx_L4_bool_binop_done;
31775  }
31776  __pyx_t_10 = (((PyObject *)__pyx_v_self->k_diffusive) != Py_None);
31777  __pyx_t_12 = (__pyx_t_10 != 0);
31778  if (!__pyx_t_12) {
31779  } else {
31780  __pyx_t_11 = __pyx_t_12;
31781  goto __pyx_L4_bool_binop_done;
31782  }
31783  __pyx_t_12 = (((PyObject *)__pyx_v_self->k_dirichlet) != Py_None);
31784  __pyx_t_10 = (__pyx_t_12 != 0);
31785  if (!__pyx_t_10) {
31786  } else {
31787  __pyx_t_11 = __pyx_t_10;
31788  goto __pyx_L4_bool_binop_done;
31789  }
31790  __pyx_t_10 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
31791  __pyx_t_12 = (__pyx_t_10 != 0);
31792  if (!__pyx_t_12) {
31793  } else {
31794  __pyx_t_11 = __pyx_t_12;
31795  goto __pyx_L4_bool_binop_done;
31796  }
31797  __pyx_t_12 = (((PyObject *)__pyx_v_self->pAddedMass_dirichlet) != Py_None);
31798  __pyx_t_10 = (__pyx_t_12 != 0);
31799  if (!__pyx_t_10) {
31800  } else {
31801  __pyx_t_11 = __pyx_t_10;
31802  goto __pyx_L4_bool_binop_done;
31803  }
31804  __pyx_t_10 = (((PyObject *)__pyx_v_self->pInc_advective) != Py_None);
31805  __pyx_t_12 = (__pyx_t_10 != 0);
31806  if (!__pyx_t_12) {
31807  } else {
31808  __pyx_t_11 = __pyx_t_12;
31809  goto __pyx_L4_bool_binop_done;
31810  }
31811  __pyx_t_12 = (((PyObject *)__pyx_v_self->pInc_diffusive) != Py_None);
31812  __pyx_t_10 = (__pyx_t_12 != 0);
31813  if (!__pyx_t_10) {
31814  } else {
31815  __pyx_t_11 = __pyx_t_10;
31816  goto __pyx_L4_bool_binop_done;
31817  }
31818  __pyx_t_10 = (((PyObject *)__pyx_v_self->pInc_dirichlet) != Py_None);
31819  __pyx_t_12 = (__pyx_t_10 != 0);
31820  if (!__pyx_t_12) {
31821  } else {
31822  __pyx_t_11 = __pyx_t_12;
31823  goto __pyx_L4_bool_binop_done;
31824  }
31825  __pyx_t_12 = (((PyObject *)__pyx_v_self->pInit_advective) != Py_None);
31826  __pyx_t_10 = (__pyx_t_12 != 0);
31827  if (!__pyx_t_10) {
31828  } else {
31829  __pyx_t_11 = __pyx_t_10;
31830  goto __pyx_L4_bool_binop_done;
31831  }
31832  __pyx_t_10 = (((PyObject *)__pyx_v_self->pInit_diffusive) != Py_None);
31833  __pyx_t_12 = (__pyx_t_10 != 0);
31834  if (!__pyx_t_12) {
31835  } else {
31836  __pyx_t_11 = __pyx_t_12;
31837  goto __pyx_L4_bool_binop_done;
31838  }
31839  __pyx_t_12 = (((PyObject *)__pyx_v_self->pInit_dirichlet) != Py_None);
31840  __pyx_t_10 = (__pyx_t_12 != 0);
31841  if (!__pyx_t_10) {
31842  } else {
31843  __pyx_t_11 = __pyx_t_10;
31844  goto __pyx_L4_bool_binop_done;
31845  }
31846  __pyx_t_10 = (((PyObject *)__pyx_v_self->p_advective) != Py_None);
31847  __pyx_t_12 = (__pyx_t_10 != 0);
31848  if (!__pyx_t_12) {
31849  } else {
31850  __pyx_t_11 = __pyx_t_12;
31851  goto __pyx_L4_bool_binop_done;
31852  }
31853  __pyx_t_12 = (((PyObject *)__pyx_v_self->p_dirichlet) != Py_None);
31854  __pyx_t_10 = (__pyx_t_12 != 0);
31855  if (!__pyx_t_10) {
31856  } else {
31857  __pyx_t_11 = __pyx_t_10;
31858  goto __pyx_L4_bool_binop_done;
31859  }
31860  __pyx_t_10 = (((PyObject *)__pyx_v_self->phi_dirichlet) != Py_None);
31861  __pyx_t_12 = (__pyx_t_10 != 0);
31862  if (!__pyx_t_12) {
31863  } else {
31864  __pyx_t_11 = __pyx_t_12;
31865  goto __pyx_L4_bool_binop_done;
31866  }
31867  __pyx_t_12 = (((PyObject *)__pyx_v_self->u_advective) != Py_None);
31868  __pyx_t_10 = (__pyx_t_12 != 0);
31869  if (!__pyx_t_10) {
31870  } else {
31871  __pyx_t_11 = __pyx_t_10;
31872  goto __pyx_L4_bool_binop_done;
31873  }
31874  __pyx_t_10 = (((PyObject *)__pyx_v_self->u_diffusive) != Py_None);
31875  __pyx_t_12 = (__pyx_t_10 != 0);
31876  if (!__pyx_t_12) {
31877  } else {
31878  __pyx_t_11 = __pyx_t_12;
31879  goto __pyx_L4_bool_binop_done;
31880  }
31881  __pyx_t_12 = (((PyObject *)__pyx_v_self->u_dirichlet) != Py_None);
31882  __pyx_t_10 = (__pyx_t_12 != 0);
31883  if (!__pyx_t_10) {
31884  } else {
31885  __pyx_t_11 = __pyx_t_10;
31886  goto __pyx_L4_bool_binop_done;
31887  }
31888  __pyx_t_10 = (((PyObject *)__pyx_v_self->u_stress) != Py_None);
31889  __pyx_t_12 = (__pyx_t_10 != 0);
31890  if (!__pyx_t_12) {
31891  } else {
31892  __pyx_t_11 = __pyx_t_12;
31893  goto __pyx_L4_bool_binop_done;
31894  }
31895  __pyx_t_12 = (((PyObject *)__pyx_v_self->us_advective) != Py_None);
31896  __pyx_t_10 = (__pyx_t_12 != 0);
31897  if (!__pyx_t_10) {
31898  } else {
31899  __pyx_t_11 = __pyx_t_10;
31900  goto __pyx_L4_bool_binop_done;
31901  }
31902  __pyx_t_10 = (((PyObject *)__pyx_v_self->us_diffusive) != Py_None);
31903  __pyx_t_12 = (__pyx_t_10 != 0);
31904  if (!__pyx_t_12) {
31905  } else {
31906  __pyx_t_11 = __pyx_t_12;
31907  goto __pyx_L4_bool_binop_done;
31908  }
31909  __pyx_t_12 = (((PyObject *)__pyx_v_self->us_dirichlet) != Py_None);
31910  __pyx_t_10 = (__pyx_t_12 != 0);
31911  if (!__pyx_t_10) {
31912  } else {
31913  __pyx_t_11 = __pyx_t_10;
31914  goto __pyx_L4_bool_binop_done;
31915  }
31916  __pyx_t_10 = (((PyObject *)__pyx_v_self->v_advective) != Py_None);
31917  __pyx_t_12 = (__pyx_t_10 != 0);
31918  if (!__pyx_t_12) {
31919  } else {
31920  __pyx_t_11 = __pyx_t_12;
31921  goto __pyx_L4_bool_binop_done;
31922  }
31923  __pyx_t_12 = (((PyObject *)__pyx_v_self->v_diffusive) != Py_None);
31924  __pyx_t_10 = (__pyx_t_12 != 0);
31925  if (!__pyx_t_10) {
31926  } else {
31927  __pyx_t_11 = __pyx_t_10;
31928  goto __pyx_L4_bool_binop_done;
31929  }
31930  __pyx_t_10 = (((PyObject *)__pyx_v_self->v_dirichlet) != Py_None);
31931  __pyx_t_12 = (__pyx_t_10 != 0);
31932  if (!__pyx_t_12) {
31933  } else {
31934  __pyx_t_11 = __pyx_t_12;
31935  goto __pyx_L4_bool_binop_done;
31936  }
31937  __pyx_t_12 = (((PyObject *)__pyx_v_self->v_stress) != Py_None);
31938  __pyx_t_10 = (__pyx_t_12 != 0);
31939  if (!__pyx_t_10) {
31940  } else {
31941  __pyx_t_11 = __pyx_t_10;
31942  goto __pyx_L4_bool_binop_done;
31943  }
31944  __pyx_t_10 = (((PyObject *)__pyx_v_self->vof_advective) != Py_None);
31945  __pyx_t_12 = (__pyx_t_10 != 0);
31946  if (!__pyx_t_12) {
31947  } else {
31948  __pyx_t_11 = __pyx_t_12;
31949  goto __pyx_L4_bool_binop_done;
31950  }
31951  __pyx_t_12 = (((PyObject *)__pyx_v_self->vof_dirichlet) != Py_None);
31952  __pyx_t_10 = (__pyx_t_12 != 0);
31953  if (!__pyx_t_10) {
31954  } else {
31955  __pyx_t_11 = __pyx_t_10;
31956  goto __pyx_L4_bool_binop_done;
31957  }
31958  __pyx_t_10 = (((PyObject *)__pyx_v_self->vos_advective) != Py_None);
31959  __pyx_t_12 = (__pyx_t_10 != 0);
31960  if (!__pyx_t_12) {
31961  } else {
31962  __pyx_t_11 = __pyx_t_12;
31963  goto __pyx_L4_bool_binop_done;
31964  }
31965  __pyx_t_12 = (((PyObject *)__pyx_v_self->vos_dirichlet) != Py_None);
31966  __pyx_t_10 = (__pyx_t_12 != 0);
31967  if (!__pyx_t_10) {
31968  } else {
31969  __pyx_t_11 = __pyx_t_10;
31970  goto __pyx_L4_bool_binop_done;
31971  }
31972  __pyx_t_10 = (((PyObject *)__pyx_v_self->vs_advective) != Py_None);
31973  __pyx_t_12 = (__pyx_t_10 != 0);
31974  if (!__pyx_t_12) {
31975  } else {
31976  __pyx_t_11 = __pyx_t_12;
31977  goto __pyx_L4_bool_binop_done;
31978  }
31979  __pyx_t_12 = (((PyObject *)__pyx_v_self->vs_diffusive) != Py_None);
31980  __pyx_t_10 = (__pyx_t_12 != 0);
31981  if (!__pyx_t_10) {
31982  } else {
31983  __pyx_t_11 = __pyx_t_10;
31984  goto __pyx_L4_bool_binop_done;
31985  }
31986  __pyx_t_10 = (((PyObject *)__pyx_v_self->vs_dirichlet) != Py_None);
31987  __pyx_t_12 = (__pyx_t_10 != 0);
31988  if (!__pyx_t_12) {
31989  } else {
31990  __pyx_t_11 = __pyx_t_12;
31991  goto __pyx_L4_bool_binop_done;
31992  }
31993  __pyx_t_12 = (((PyObject *)__pyx_v_self->w_advective) != Py_None);
31994  __pyx_t_10 = (__pyx_t_12 != 0);
31995  if (!__pyx_t_10) {
31996  } else {
31997  __pyx_t_11 = __pyx_t_10;
31998  goto __pyx_L4_bool_binop_done;
31999  }
32000  __pyx_t_10 = (((PyObject *)__pyx_v_self->w_diffusive) != Py_None);
32001  __pyx_t_12 = (__pyx_t_10 != 0);
32002  if (!__pyx_t_12) {
32003  } else {
32004  __pyx_t_11 = __pyx_t_12;
32005  goto __pyx_L4_bool_binop_done;
32006  }
32007  __pyx_t_12 = (((PyObject *)__pyx_v_self->w_dirichlet) != Py_None);
32008  __pyx_t_10 = (__pyx_t_12 != 0);
32009  if (!__pyx_t_10) {
32010  } else {
32011  __pyx_t_11 = __pyx_t_10;
32012  goto __pyx_L4_bool_binop_done;
32013  }
32014  __pyx_t_10 = (((PyObject *)__pyx_v_self->w_stress) != Py_None);
32015  __pyx_t_12 = (__pyx_t_10 != 0);
32016  if (!__pyx_t_12) {
32017  } else {
32018  __pyx_t_11 = __pyx_t_12;
32019  goto __pyx_L4_bool_binop_done;
32020  }
32021  __pyx_t_12 = (((PyObject *)__pyx_v_self->waves) != Py_None);
32022  __pyx_t_10 = (__pyx_t_12 != 0);
32023  if (!__pyx_t_10) {
32024  } else {
32025  __pyx_t_11 = __pyx_t_10;
32026  goto __pyx_L4_bool_binop_done;
32027  }
32028  __pyx_t_10 = (((PyObject *)__pyx_v_self->ws_advective) != Py_None);
32029  __pyx_t_12 = (__pyx_t_10 != 0);
32030  if (!__pyx_t_12) {
32031  } else {
32032  __pyx_t_11 = __pyx_t_12;
32033  goto __pyx_L4_bool_binop_done;
32034  }
32035  __pyx_t_12 = (((PyObject *)__pyx_v_self->ws_diffusive) != Py_None);
32036  __pyx_t_10 = (__pyx_t_12 != 0);
32037  if (!__pyx_t_10) {
32038  } else {
32039  __pyx_t_11 = __pyx_t_10;
32040  goto __pyx_L4_bool_binop_done;
32041  }
32042  __pyx_t_10 = (((PyObject *)__pyx_v_self->ws_dirichlet) != Py_None);
32043  __pyx_t_12 = (__pyx_t_10 != 0);
32044  __pyx_t_11 = __pyx_t_12;
32045  __pyx_L4_bool_binop_done:;
32046  __pyx_v_use_setstate = __pyx_t_11;
32047  }
32048  __pyx_L3:;
32049 
32050  /* "(tree fragment)":12
32051  * else:
32052  * use_setstate = self.BC_type is not None or self.Shape is not None or self.body is not None or self.clsvof_advective is not None or self.clsvof_diffusive is not None or self.clsvof_dirichlet is not None or self.ct is not None or self.dissipation_advective is not None or self.dissipation_diffusive is not None or self.dissipation_dirichlet is not None or self.hx_dirichlet is not None or self.hy_dirichlet is not None or self.hz_dirichlet is not None or self.k_advective is not None or self.k_diffusive is not None or self.k_dirichlet is not None or self.name is not None or self.pAddedMass_dirichlet is not None or self.pInc_advective is not None or self.pInc_diffusive is not None or self.pInc_dirichlet is not None or self.pInit_advective is not None or self.pInit_diffusive is not None or self.pInit_dirichlet is not None or self.p_advective is not None or self.p_dirichlet is not None or self.phi_dirichlet is not None or self.u_advective is not None or self.u_diffusive is not None or self.u_dirichlet is not None or self.u_stress is not None or self.us_advective is not None or self.us_diffusive is not None or self.us_dirichlet is not None or self.v_advective is not None or self.v_diffusive is not None or self.v_dirichlet is not None or self.v_stress is not None or self.vof_advective is not None or self.vof_dirichlet is not None or self.vos_advective is not None or self.vos_dirichlet is not None or self.vs_advective is not None or self.vs_diffusive is not None or self.vs_dirichlet is not None or self.w_advective is not None or self.w_diffusive is not None or self.w_dirichlet is not None or self.w_stress is not None or self.waves is not None or self.ws_advective is not None or self.ws_diffusive is not None or self.ws_dirichlet is not None
32053  * if use_setstate: # <<<<<<<<<<<<<<
32054  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, None), state
32055  * else:
32056  */
32057  __pyx_t_11 = (__pyx_v_use_setstate != 0);
32058  if (__pyx_t_11) {
32059 
32060  /* "(tree fragment)":13
32061  * use_setstate = self.BC_type is not None or self.Shape is not None or self.body is not None or self.clsvof_advective is not None or self.clsvof_diffusive is not None or self.clsvof_dirichlet is not None or self.ct is not None or self.dissipation_advective is not None or self.dissipation_diffusive is not None or self.dissipation_dirichlet is not None or self.hx_dirichlet is not None or self.hy_dirichlet is not None or self.hz_dirichlet is not None or self.k_advective is not None or self.k_diffusive is not None or self.k_dirichlet is not None or self.name is not None or self.pAddedMass_dirichlet is not None or self.pInc_advective is not None or self.pInc_diffusive is not None or self.pInc_dirichlet is not None or self.pInit_advective is not None or self.pInit_diffusive is not None or self.pInit_dirichlet is not None or self.p_advective is not None or self.p_dirichlet is not None or self.phi_dirichlet is not None or self.u_advective is not None or self.u_diffusive is not None or self.u_dirichlet is not None or self.u_stress is not None or self.us_advective is not None or self.us_diffusive is not None or self.us_dirichlet is not None or self.v_advective is not None or self.v_diffusive is not None or self.v_dirichlet is not None or self.v_stress is not None or self.vof_advective is not None or self.vof_dirichlet is not None or self.vos_advective is not None or self.vos_dirichlet is not None or self.vs_advective is not None or self.vs_diffusive is not None or self.vs_dirichlet is not None or self.w_advective is not None or self.w_diffusive is not None or self.w_dirichlet is not None or self.w_stress is not None or self.waves is not None or self.ws_advective is not None or self.ws_diffusive is not None or self.ws_dirichlet is not None
32062  * if use_setstate:
32063  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, None), state # <<<<<<<<<<<<<<
32064  * else:
32065  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
32066  */
32067  __Pyx_XDECREF(__pyx_r);
32068  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_pyx_unpickle_BC_RANS); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
32069  __Pyx_GOTREF(__pyx_t_8);
32070  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error)
32071  __Pyx_GOTREF(__pyx_t_9);
32072  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32073  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32074  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32075  __Pyx_INCREF(__pyx_int_190238252);
32076  __Pyx_GIVEREF(__pyx_int_190238252);
32077  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_190238252);
32078  __Pyx_INCREF(Py_None);
32079  __Pyx_GIVEREF(Py_None);
32080  PyTuple_SET_ITEM(__pyx_t_9, 2, Py_None);
32081  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
32082  __Pyx_GOTREF(__pyx_t_7);
32083  __Pyx_GIVEREF(__pyx_t_8);
32084  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
32085  __Pyx_GIVEREF(__pyx_t_9);
32086  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9);
32087  __Pyx_INCREF(__pyx_v_state);
32088  __Pyx_GIVEREF(__pyx_v_state);
32089  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state);
32090  __pyx_t_8 = 0;
32091  __pyx_t_9 = 0;
32092  __pyx_r = __pyx_t_7;
32093  __pyx_t_7 = 0;
32094  goto __pyx_L0;
32095 
32096  /* "(tree fragment)":12
32097  * else:
32098  * use_setstate = self.BC_type is not None or self.Shape is not None or self.body is not None or self.clsvof_advective is not None or self.clsvof_diffusive is not None or self.clsvof_dirichlet is not None or self.ct is not None or self.dissipation_advective is not None or self.dissipation_diffusive is not None or self.dissipation_dirichlet is not None or self.hx_dirichlet is not None or self.hy_dirichlet is not None or self.hz_dirichlet is not None or self.k_advective is not None or self.k_diffusive is not None or self.k_dirichlet is not None or self.name is not None or self.pAddedMass_dirichlet is not None or self.pInc_advective is not None or self.pInc_diffusive is not None or self.pInc_dirichlet is not None or self.pInit_advective is not None or self.pInit_diffusive is not None or self.pInit_dirichlet is not None or self.p_advective is not None or self.p_dirichlet is not None or self.phi_dirichlet is not None or self.u_advective is not None or self.u_diffusive is not None or self.u_dirichlet is not None or self.u_stress is not None or self.us_advective is not None or self.us_diffusive is not None or self.us_dirichlet is not None or self.v_advective is not None or self.v_diffusive is not None or self.v_dirichlet is not None or self.v_stress is not None or self.vof_advective is not None or self.vof_dirichlet is not None or self.vos_advective is not None or self.vos_dirichlet is not None or self.vs_advective is not None or self.vs_diffusive is not None or self.vs_dirichlet is not None or self.w_advective is not None or self.w_diffusive is not None or self.w_dirichlet is not None or self.w_stress is not None or self.waves is not None or self.ws_advective is not None or self.ws_diffusive is not None or self.ws_dirichlet is not None
32099  * if use_setstate: # <<<<<<<<<<<<<<
32100  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, None), state
32101  * else:
32102  */
32103  }
32104 
32105  /* "(tree fragment)":15
32106  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, None), state
32107  * else:
32108  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state) # <<<<<<<<<<<<<<
32109  * def __setstate_cython__(self, __pyx_state):
32110  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state)
32111  */
32112  /*else*/ {
32113  __Pyx_XDECREF(__pyx_r);
32114  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_BC_RANS); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
32115  __Pyx_GOTREF(__pyx_t_7);
32116  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error)
32117  __Pyx_GOTREF(__pyx_t_9);
32118  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32119  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32120  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
32121  __Pyx_INCREF(__pyx_int_190238252);
32122  __Pyx_GIVEREF(__pyx_int_190238252);
32123  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_190238252);
32124  __Pyx_INCREF(__pyx_v_state);
32125  __Pyx_GIVEREF(__pyx_v_state);
32126  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_state);
32127  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
32128  __Pyx_GOTREF(__pyx_t_8);
32129  __Pyx_GIVEREF(__pyx_t_7);
32130  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7);
32131  __Pyx_GIVEREF(__pyx_t_9);
32132  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9);
32133  __pyx_t_7 = 0;
32134  __pyx_t_9 = 0;
32135  __pyx_r = __pyx_t_8;
32136  __pyx_t_8 = 0;
32137  goto __pyx_L0;
32138  }
32139 
32140  /* "(tree fragment)":1
32141  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
32142  * cdef tuple state
32143  * cdef object _dict
32144  */
32145 
32146  /* function exit code */
32147  __pyx_L1_error:;
32148  __Pyx_XDECREF(__pyx_t_1);
32149  __Pyx_XDECREF(__pyx_t_2);
32150  __Pyx_XDECREF(__pyx_t_3);
32151  __Pyx_XDECREF(__pyx_t_4);
32152  __Pyx_XDECREF(__pyx_t_5);
32153  __Pyx_XDECREF(__pyx_t_6);
32154  __Pyx_XDECREF(__pyx_t_7);
32155  __Pyx_XDECREF(__pyx_t_8);
32156  __Pyx_XDECREF(__pyx_t_9);
32157  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32158  __pyx_r = NULL;
32159  __pyx_L0:;
32160  __Pyx_XDECREF(__pyx_v_state);
32161  __Pyx_XDECREF(__pyx_v__dict);
32162  __Pyx_XGIVEREF(__pyx_r);
32163  __Pyx_TraceReturn(__pyx_r, 0);
32164  __Pyx_RefNannyFinishContext();
32165  return __pyx_r;
32166 }
32167 
32168 /* "(tree fragment)":16
32169  * else:
32170  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
32171  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
32172  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state)
32173  */
32174 
32175 /* Python wrapper */
32176 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
32177 static char __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__[] = "BC_RANS.__setstate_cython__(self, __pyx_state)";
32178 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__};
32179 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
32180  PyObject *__pyx_r = 0;
32181  __Pyx_RefNannyDeclarations
32182  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
32183  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
32184 
32185  /* function exit code */
32186  __Pyx_RefNannyFinishContext();
32187  return __pyx_r;
32188 }
32189 
32190 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
32191  PyObject *__pyx_r = NULL;
32192  __Pyx_TraceDeclarations
32193  __Pyx_RefNannyDeclarations
32194  PyObject *__pyx_t_1 = NULL;
32195  int __pyx_lineno = 0;
32196  const char *__pyx_filename = NULL;
32197  int __pyx_clineno = 0;
32198  __Pyx_TraceFrameInit(__pyx_codeobj__89)
32199  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
32200  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));
32201 
32202  /* "(tree fragment)":17
32203  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
32204  * def __setstate_cython__(self, __pyx_state):
32205  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state) # <<<<<<<<<<<<<<
32206  */
32207  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
32208  __pyx_t_1 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
32209  __Pyx_GOTREF(__pyx_t_1);
32210  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32211 
32212  /* "(tree fragment)":16
32213  * else:
32214  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
32215  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
32216  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state)
32217  */
32218 
32219  /* function exit code */
32220  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32221  goto __pyx_L0;
32222  __pyx_L1_error:;
32223  __Pyx_XDECREF(__pyx_t_1);
32224  __Pyx_AddTraceback("mprans.BoundaryConditions.BC_RANS.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32225  __pyx_r = NULL;
32226  __pyx_L0:;
32227  __Pyx_XGIVEREF(__pyx_r);
32228  __Pyx_TraceReturn(__pyx_r, 0);
32229  __Pyx_RefNannyFinishContext();
32230  return __pyx_r;
32231 }
32232 
32233 /* "mprans/BoundaryConditions.py":947
32234  * """
32235  *
32236  * def __cinit__(self, zone_type, center, orientation, epsFact_porous, # <<<<<<<<<<<<<<
32237  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
32238  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
32239  */
32240 
32241 /* Python wrapper */
32242 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32243 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32244  PyObject *__pyx_v_zone_type = 0;
32245  PyObject *__pyx_v_center = 0;
32246  PyObject *__pyx_v_orientation = 0;
32247  PyObject *__pyx_v_epsFact_porous = 0;
32248  PyObject *__pyx_v_waves = 0;
32249  PyObject *__pyx_v_shape = 0;
32250  PyObject *__pyx_v_wind_speed = 0;
32251  PyObject *__pyx_v_dragAlpha = 0;
32252  PyObject *__pyx_v_dragBeta = 0;
32253  PyObject *__pyx_v_porosity = 0;
32254  PyObject *__pyx_v_vert_axis = 0;
32255  PyObject *__pyx_v_smoothing = 0;
32256  PyObject *__pyx_v_vof_water = 0;
32257  PyObject *__pyx_v_vof_air = 0;
32258  int __pyx_lineno = 0;
32259  const char *__pyx_filename = NULL;
32260  int __pyx_clineno = 0;
32261  int __pyx_r;
32262  __Pyx_RefNannyDeclarations
32263  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
32264  {
32265  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_zone_type,&__pyx_n_s_center,&__pyx_n_s_orientation,&__pyx_n_s_epsFact_porous,&__pyx_n_s_waves,&__pyx_n_s_shape,&__pyx_n_s_wind_speed,&__pyx_n_s_dragAlpha,&__pyx_n_s_dragBeta,&__pyx_n_s_porosity,&__pyx_n_s_vert_axis,&__pyx_n_s_smoothing,&__pyx_n_s_vof_water,&__pyx_n_s_vof_air,0};
32266  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
32267 
32268  /* "mprans/BoundaryConditions.py":948
32269  *
32270  * def __cinit__(self, zone_type, center, orientation, epsFact_porous,
32271  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]), # <<<<<<<<<<<<<<
32272  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
32273  * vof_water=0., vof_air=1.):
32274  */
32275  values[4] = ((PyObject *)Py_None);
32276  values[5] = ((PyObject *)Py_None);
32277  values[6] = __pyx_k__90;
32278  values[7] = __pyx_k__91;
32279  values[8] = ((PyObject *)__pyx_float_0_);
32280  values[9] = ((PyObject *)__pyx_float_1_);
32281 
32282  /* "mprans/BoundaryConditions.py":949
32283  * def __cinit__(self, zone_type, center, orientation, epsFact_porous,
32284  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
32285  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0., # <<<<<<<<<<<<<<
32286  * vof_water=0., vof_air=1.):
32287  * self.Shape = shape
32288  */
32289  values[10] = ((PyObject *)Py_None);
32290  values[11] = ((PyObject *)__pyx_float_0_);
32291  values[12] = ((PyObject *)__pyx_float_0_);
32292  values[13] = ((PyObject *)__pyx_float_1_);
32293  if (unlikely(__pyx_kwds)) {
32294  Py_ssize_t kw_args;
32295  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
32296  switch (pos_args) {
32297  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32298  CYTHON_FALLTHROUGH;
32299  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32300  CYTHON_FALLTHROUGH;
32301  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32302  CYTHON_FALLTHROUGH;
32303  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32304  CYTHON_FALLTHROUGH;
32305  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32306  CYTHON_FALLTHROUGH;
32307  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32308  CYTHON_FALLTHROUGH;
32309  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32310  CYTHON_FALLTHROUGH;
32311  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32312  CYTHON_FALLTHROUGH;
32313  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32314  CYTHON_FALLTHROUGH;
32315  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32316  CYTHON_FALLTHROUGH;
32317  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32318  CYTHON_FALLTHROUGH;
32319  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32320  CYTHON_FALLTHROUGH;
32321  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32322  CYTHON_FALLTHROUGH;
32323  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32324  CYTHON_FALLTHROUGH;
32325  case 0: break;
32326  default: goto __pyx_L5_argtuple_error;
32327  }
32328  kw_args = PyDict_Size(__pyx_kwds);
32329  switch (pos_args) {
32330  case 0:
32331  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zone_type)) != 0)) kw_args--;
32332  else goto __pyx_L5_argtuple_error;
32333  CYTHON_FALLTHROUGH;
32334  case 1:
32335  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_center)) != 0)) kw_args--;
32336  else {
32337  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 4, 14, 1); __PYX_ERR(0, 947, __pyx_L3_error)
32338  }
32339  CYTHON_FALLTHROUGH;
32340  case 2:
32341  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation)) != 0)) kw_args--;
32342  else {
32343  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 4, 14, 2); __PYX_ERR(0, 947, __pyx_L3_error)
32344  }
32345  CYTHON_FALLTHROUGH;
32346  case 3:
32347  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsFact_porous)) != 0)) kw_args--;
32348  else {
32349  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 4, 14, 3); __PYX_ERR(0, 947, __pyx_L3_error)
32350  }
32351  CYTHON_FALLTHROUGH;
32352  case 4:
32353  if (kw_args > 0) {
32354  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_waves);
32355  if (value) { values[4] = value; kw_args--; }
32356  }
32357  CYTHON_FALLTHROUGH;
32358  case 5:
32359  if (kw_args > 0) {
32360  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape);
32361  if (value) { values[5] = value; kw_args--; }
32362  }
32363  CYTHON_FALLTHROUGH;
32364  case 6:
32365  if (kw_args > 0) {
32366  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wind_speed);
32367  if (value) { values[6] = value; kw_args--; }
32368  }
32369  CYTHON_FALLTHROUGH;
32370  case 7:
32371  if (kw_args > 0) {
32372  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dragAlpha);
32373  if (value) { values[7] = value; kw_args--; }
32374  }
32375  CYTHON_FALLTHROUGH;
32376  case 8:
32377  if (kw_args > 0) {
32378  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dragBeta);
32379  if (value) { values[8] = value; kw_args--; }
32380  }
32381  CYTHON_FALLTHROUGH;
32382  case 9:
32383  if (kw_args > 0) {
32384  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_porosity);
32385  if (value) { values[9] = value; kw_args--; }
32386  }
32387  CYTHON_FALLTHROUGH;
32388  case 10:
32389  if (kw_args > 0) {
32390  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vert_axis);
32391  if (value) { values[10] = value; kw_args--; }
32392  }
32393  CYTHON_FALLTHROUGH;
32394  case 11:
32395  if (kw_args > 0) {
32396  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothing);
32397  if (value) { values[11] = value; kw_args--; }
32398  }
32399  CYTHON_FALLTHROUGH;
32400  case 12:
32401  if (kw_args > 0) {
32402  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_water);
32403  if (value) { values[12] = value; kw_args--; }
32404  }
32405  CYTHON_FALLTHROUGH;
32406  case 13:
32407  if (kw_args > 0) {
32408  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_air);
32409  if (value) { values[13] = value; kw_args--; }
32410  }
32411  }
32412  if (unlikely(kw_args > 0)) {
32413  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 947, __pyx_L3_error)
32414  }
32415  } else {
32416  switch (PyTuple_GET_SIZE(__pyx_args)) {
32417  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32418  CYTHON_FALLTHROUGH;
32419  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32420  CYTHON_FALLTHROUGH;
32421  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32422  CYTHON_FALLTHROUGH;
32423  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32424  CYTHON_FALLTHROUGH;
32425  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32426  CYTHON_FALLTHROUGH;
32427  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32428  CYTHON_FALLTHROUGH;
32429  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32430  CYTHON_FALLTHROUGH;
32431  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32432  CYTHON_FALLTHROUGH;
32433  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32434  CYTHON_FALLTHROUGH;
32435  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32436  CYTHON_FALLTHROUGH;
32437  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32438  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32439  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32440  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32441  break;
32442  default: goto __pyx_L5_argtuple_error;
32443  }
32444  }
32445  __pyx_v_zone_type = values[0];
32446  __pyx_v_center = values[1];
32447  __pyx_v_orientation = values[2];
32448  __pyx_v_epsFact_porous = values[3];
32449  __pyx_v_waves = values[4];
32450  __pyx_v_shape = values[5];
32451  __pyx_v_wind_speed = values[6];
32452  __pyx_v_dragAlpha = values[7];
32453  __pyx_v_dragBeta = values[8];
32454  __pyx_v_porosity = values[9];
32455  __pyx_v_vert_axis = values[10];
32456  __pyx_v_smoothing = values[11];
32457  __pyx_v_vof_water = values[12];
32458  __pyx_v_vof_air = values[13];
32459  }
32460  goto __pyx_L4_argument_unpacking_done;
32461  __pyx_L5_argtuple_error:;
32462  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 4, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 947, __pyx_L3_error)
32463  __pyx_L3_error:;
32464  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32465  __Pyx_RefNannyFinishContext();
32466  return -1;
32467  __pyx_L4_argument_unpacking_done:;
32468  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone___cinit__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), __pyx_v_zone_type, __pyx_v_center, __pyx_v_orientation, __pyx_v_epsFact_porous, __pyx_v_waves, __pyx_v_shape, __pyx_v_wind_speed, __pyx_v_dragAlpha, __pyx_v_dragBeta, __pyx_v_porosity, __pyx_v_vert_axis, __pyx_v_smoothing, __pyx_v_vof_water, __pyx_v_vof_air);
32469 
32470  /* "mprans/BoundaryConditions.py":947
32471  * """
32472  *
32473  * def __cinit__(self, zone_type, center, orientation, epsFact_porous, # <<<<<<<<<<<<<<
32474  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
32475  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
32476  */
32477 
32478  /* function exit code */
32479  __Pyx_RefNannyFinishContext();
32480  return __pyx_r;
32481 }
32482 
32483 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone___cinit__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_zone_type, PyObject *__pyx_v_center, PyObject *__pyx_v_orientation, PyObject *__pyx_v_epsFact_porous, PyObject *__pyx_v_waves, PyObject *__pyx_v_shape, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_dragAlpha, PyObject *__pyx_v_dragBeta, PyObject *__pyx_v_porosity, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_vof_air) {
32484  int __pyx_r;
32485  __Pyx_TraceDeclarations
32486  __Pyx_RefNannyDeclarations
32487  PyObject *__pyx_t_1 = NULL;
32488  PyObject *__pyx_t_2 = NULL;
32489  int __pyx_t_3;
32490  __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
32491  int __pyx_t_5;
32492  int __pyx_t_6;
32493  double __pyx_t_7;
32494  PyObject *__pyx_t_8 = NULL;
32495  int __pyx_lineno = 0;
32496  const char *__pyx_filename = NULL;
32497  int __pyx_clineno = 0;
32498  __Pyx_RefNannySetupContext("__cinit__", 0);
32499  __Pyx_TraceCall("__cinit__", __pyx_f[0], 947, 0, __PYX_ERR(0, 947, __pyx_L1_error));
32500  __Pyx_INCREF(__pyx_v_vert_axis);
32501 
32502  /* "mprans/BoundaryConditions.py":951
32503  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
32504  * vof_water=0., vof_air=1.):
32505  * self.Shape = shape # <<<<<<<<<<<<<<
32506  * self.nd = self.Shape.Domain.nd
32507  * self.zone_type = zone_type
32508  */
32509  __Pyx_INCREF(__pyx_v_shape);
32510  __Pyx_GIVEREF(__pyx_v_shape);
32511  __Pyx_GOTREF(__pyx_v_self->Shape);
32512  __Pyx_DECREF(__pyx_v_self->Shape);
32513  __pyx_v_self->Shape = __pyx_v_shape;
32514 
32515  /* "mprans/BoundaryConditions.py":952
32516  * vof_water=0., vof_air=1.):
32517  * self.Shape = shape
32518  * self.nd = self.Shape.Domain.nd # <<<<<<<<<<<<<<
32519  * self.zone_type = zone_type
32520  * self.center = center
32521  */
32522  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->Shape, __pyx_n_s_Domain); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error)
32523  __Pyx_GOTREF(__pyx_t_1);
32524  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 952, __pyx_L1_error)
32525  __Pyx_GOTREF(__pyx_t_2);
32526  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32527  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L1_error)
32528  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32529  __pyx_v_self->nd = __pyx_t_3;
32530 
32531  /* "mprans/BoundaryConditions.py":953
32532  * self.Shape = shape
32533  * self.nd = self.Shape.Domain.nd
32534  * self.zone_type = zone_type # <<<<<<<<<<<<<<
32535  * self.center = center
32536  * self.orientation = orientation
32537  */
32538  if (!(likely(PyString_CheckExact(__pyx_v_zone_type))||((__pyx_v_zone_type) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_zone_type)->tp_name), 0))) __PYX_ERR(0, 953, __pyx_L1_error)
32539  __pyx_t_2 = __pyx_v_zone_type;
32540  __Pyx_INCREF(__pyx_t_2);
32541  __Pyx_GIVEREF(__pyx_t_2);
32542  __Pyx_GOTREF(__pyx_v_self->zone_type);
32543  __Pyx_DECREF(__pyx_v_self->zone_type);
32544  __pyx_v_self->zone_type = ((PyObject*)__pyx_t_2);
32545  __pyx_t_2 = 0;
32546 
32547  /* "mprans/BoundaryConditions.py":954
32548  * self.nd = self.Shape.Domain.nd
32549  * self.zone_type = zone_type
32550  * self.center = center # <<<<<<<<<<<<<<
32551  * self.orientation = orientation
32552  * if vert_axis is None:
32553  */
32554  __pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_center, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 954, __pyx_L1_error)
32555  __PYX_XDEC_MEMVIEW(&__pyx_v_self->center, 0);
32556  __pyx_v_self->center = __pyx_t_4;
32557  __pyx_t_4.memview = NULL;
32558  __pyx_t_4.data = NULL;
32559 
32560  /* "mprans/BoundaryConditions.py":955
32561  * self.zone_type = zone_type
32562  * self.center = center
32563  * self.orientation = orientation # <<<<<<<<<<<<<<
32564  * if vert_axis is None:
32565  * vert_axis = self.Shape.Domain.nd - 1
32566  */
32567  __pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_orientation, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 955, __pyx_L1_error)
32568  __PYX_XDEC_MEMVIEW(&__pyx_v_self->orientation, 0);
32569  __pyx_v_self->orientation = __pyx_t_4;
32570  __pyx_t_4.memview = NULL;
32571  __pyx_t_4.data = NULL;
32572 
32573  /* "mprans/BoundaryConditions.py":956
32574  * self.center = center
32575  * self.orientation = orientation
32576  * if vert_axis is None: # <<<<<<<<<<<<<<
32577  * vert_axis = self.Shape.Domain.nd - 1
32578  * self.vert_axis = vert_axis
32579  */
32580  __pyx_t_5 = (__pyx_v_vert_axis == Py_None);
32581  __pyx_t_6 = (__pyx_t_5 != 0);
32582  if (__pyx_t_6) {
32583 
32584  /* "mprans/BoundaryConditions.py":957
32585  * self.orientation = orientation
32586  * if vert_axis is None:
32587  * vert_axis = self.Shape.Domain.nd - 1 # <<<<<<<<<<<<<<
32588  * self.vert_axis = vert_axis
32589  * if waves is not None:
32590  */
32591  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->Shape, __pyx_n_s_Domain); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 957, __pyx_L1_error)
32592  __Pyx_GOTREF(__pyx_t_2);
32593  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 957, __pyx_L1_error)
32594  __Pyx_GOTREF(__pyx_t_1);
32595  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32596  __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 957, __pyx_L1_error)
32597  __Pyx_GOTREF(__pyx_t_2);
32598  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32599  __Pyx_DECREF_SET(__pyx_v_vert_axis, __pyx_t_2);
32600  __pyx_t_2 = 0;
32601 
32602  /* "mprans/BoundaryConditions.py":956
32603  * self.center = center
32604  * self.orientation = orientation
32605  * if vert_axis is None: # <<<<<<<<<<<<<<
32606  * vert_axis = self.Shape.Domain.nd - 1
32607  * self.vert_axis = vert_axis
32608  */
32609  }
32610 
32611  /* "mprans/BoundaryConditions.py":958
32612  * if vert_axis is None:
32613  * vert_axis = self.Shape.Domain.nd - 1
32614  * self.vert_axis = vert_axis # <<<<<<<<<<<<<<
32615  * if waves is not None:
32616  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis,
32617  */
32618  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_vert_axis); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L1_error)
32619  __pyx_v_self->vert_axis = __pyx_t_7;
32620 
32621  /* "mprans/BoundaryConditions.py":959
32622  * vert_axis = self.Shape.Domain.nd - 1
32623  * self.vert_axis = vert_axis
32624  * if waves is not None: # <<<<<<<<<<<<<<
32625  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis,
32626  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32627  */
32628  __pyx_t_6 = (__pyx_v_waves != Py_None);
32629  __pyx_t_5 = (__pyx_t_6 != 0);
32630  if (__pyx_t_5) {
32631 
32632  /* "mprans/BoundaryConditions.py":960
32633  * self.vert_axis = vert_axis
32634  * if waves is not None:
32635  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis, # <<<<<<<<<<<<<<
32636  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32637  * self.epsFact_porous = epsFact_porous
32638  */
32639  __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 960, __pyx_L1_error)
32640  __Pyx_GOTREF(__pyx_t_2);
32641  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_waves, __pyx_v_waves) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32642  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_wind_speed, __pyx_v_wind_speed) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32643  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_vert_axis, __pyx_v_vert_axis) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32644 
32645  /* "mprans/BoundaryConditions.py":961
32646  * if waves is not None:
32647  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis,
32648  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air) # <<<<<<<<<<<<<<
32649  * self.epsFact_porous = epsFact_porous
32650  * self.dragAlpha = dragAlpha
32651  */
32652  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_smoothing, __pyx_v_smoothing) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32653  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_vof_water, __pyx_v_vof_water) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32654  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_vof_air, __pyx_v_vof_air) < 0) __PYX_ERR(0, 960, __pyx_L1_error)
32655 
32656  /* "mprans/BoundaryConditions.py":960
32657  * self.vert_axis = vert_axis
32658  * if waves is not None:
32659  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis, # <<<<<<<<<<<<<<
32660  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32661  * self.epsFact_porous = epsFact_porous
32662  */
32663  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 960, __pyx_L1_error)
32664  __Pyx_GOTREF(__pyx_t_1);
32665  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32666  __Pyx_GIVEREF(__pyx_t_1);
32667  __Pyx_GOTREF(__pyx_v_self->waves);
32668  __Pyx_DECREF(((PyObject *)__pyx_v_self->waves));
32669  __pyx_v_self->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_t_1);
32670  __pyx_t_1 = 0;
32671 
32672  /* "mprans/BoundaryConditions.py":959
32673  * vert_axis = self.Shape.Domain.nd - 1
32674  * self.vert_axis = vert_axis
32675  * if waves is not None: # <<<<<<<<<<<<<<
32676  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis,
32677  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32678  */
32679  }
32680 
32681  /* "mprans/BoundaryConditions.py":962
32682  * self.waves = __cppClass_WavesCharacteristics(waves=waves, wind_speed=wind_speed, vert_axis=vert_axis,
32683  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32684  * self.epsFact_porous = epsFact_porous # <<<<<<<<<<<<<<
32685  * self.dragAlpha = dragAlpha
32686  * self.dragBeta = dragBeta
32687  */
32688  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_epsFact_porous); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L1_error)
32689  __pyx_v_self->epsFact_porous = __pyx_t_7;
32690 
32691  /* "mprans/BoundaryConditions.py":963
32692  * smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
32693  * self.epsFact_porous = epsFact_porous
32694  * self.dragAlpha = dragAlpha # <<<<<<<<<<<<<<
32695  * self.dragBeta = dragBeta
32696  * self.porosity = porosity
32697  */
32698  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_dragAlpha); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L1_error)
32699  __pyx_v_self->dragAlpha = __pyx_t_7;
32700 
32701  /* "mprans/BoundaryConditions.py":964
32702  * self.epsFact_porous = epsFact_porous
32703  * self.dragAlpha = dragAlpha
32704  * self.dragBeta = dragBeta # <<<<<<<<<<<<<<
32705  * self.porosity = porosity
32706  * self.zero_vel = np.zeros(3)
32707  */
32708  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_dragBeta); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L1_error)
32709  __pyx_v_self->dragBeta = __pyx_t_7;
32710 
32711  /* "mprans/BoundaryConditions.py":965
32712  * self.dragAlpha = dragAlpha
32713  * self.dragBeta = dragBeta
32714  * self.porosity = porosity # <<<<<<<<<<<<<<
32715  * self.zero_vel = np.zeros(3)
32716  *
32717  */
32718  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_porosity); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L1_error)
32719  __pyx_v_self->porosity = __pyx_t_7;
32720 
32721  /* "mprans/BoundaryConditions.py":966
32722  * self.dragBeta = dragBeta
32723  * self.porosity = porosity
32724  * self.zero_vel = np.zeros(3) # <<<<<<<<<<<<<<
32725  *
32726  * def calculate_init(self):
32727  */
32728  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error)
32729  __Pyx_GOTREF(__pyx_t_2);
32730  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 966, __pyx_L1_error)
32731  __Pyx_GOTREF(__pyx_t_8);
32732  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32733  __pyx_t_2 = NULL;
32734  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
32735  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
32736  if (likely(__pyx_t_2)) {
32737  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
32738  __Pyx_INCREF(__pyx_t_2);
32739  __Pyx_INCREF(function);
32740  __Pyx_DECREF_SET(__pyx_t_8, function);
32741  }
32742  }
32743  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_int_3);
32744  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
32745  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error)
32746  __Pyx_GOTREF(__pyx_t_1);
32747  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
32748  __pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 966, __pyx_L1_error)
32749  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32750  __PYX_XDEC_MEMVIEW(&__pyx_v_self->zero_vel, 0);
32751  __pyx_v_self->zero_vel = __pyx_t_4;
32752  __pyx_t_4.memview = NULL;
32753  __pyx_t_4.data = NULL;
32754 
32755  /* "mprans/BoundaryConditions.py":947
32756  * """
32757  *
32758  * def __cinit__(self, zone_type, center, orientation, epsFact_porous, # <<<<<<<<<<<<<<
32759  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
32760  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
32761  */
32762 
32763  /* function exit code */
32764  __pyx_r = 0;
32765  goto __pyx_L0;
32766  __pyx_L1_error:;
32767  __Pyx_XDECREF(__pyx_t_1);
32768  __Pyx_XDECREF(__pyx_t_2);
32769  __PYX_XDEC_MEMVIEW(&__pyx_t_4, 1);
32770  __Pyx_XDECREF(__pyx_t_8);
32771  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32772  __pyx_r = -1;
32773  __pyx_L0:;
32774  __Pyx_XDECREF(__pyx_v_vert_axis);
32775  __Pyx_TraceReturn(Py_None, 0);
32776  __Pyx_RefNannyFinishContext();
32777  return __pyx_r;
32778 }
32779 
32780 /* "mprans/BoundaryConditions.py":968
32781  * self.zero_vel = np.zeros(3)
32782  *
32783  * def calculate_init(self): # <<<<<<<<<<<<<<
32784  * if self.zone_type == 'generation':
32785  * # self.u = &self.waves.u
32786  */
32787 
32788 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32789 static void __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, int __pyx_skip_dispatch) {
32790  __Pyx_TraceDeclarations
32791  __Pyx_RefNannyDeclarations
32792  PyObject *__pyx_t_1 = NULL;
32793  PyObject *__pyx_t_2 = NULL;
32794  PyObject *__pyx_t_3 = NULL;
32795  PyObject *__pyx_t_4 = NULL;
32796  int __pyx_t_5;
32797  int __pyx_t_6;
32798  __Pyx_memviewslice (*__pyx_t_7)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
32799  double (*__pyx_t_8)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
32800  __Pyx_memviewslice (*__pyx_t_9)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double);
32801  double (*__pyx_t_10)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *);
32802  int __pyx_lineno = 0;
32803  const char *__pyx_filename = NULL;
32804  int __pyx_clineno = 0;
32805  __Pyx_TraceFrameInit(__pyx_codeobj__92)
32806  __Pyx_RefNannySetupContext("calculate_init", 0);
32807  __Pyx_TraceCall("calculate_init", __pyx_f[0], 968, 0, __PYX_ERR(0, 968, __pyx_L1_error));
32808  /* Check if called by wrapper */
32809  if (unlikely(__pyx_skip_dispatch)) ;
32810  /* Check if overridden in Python */
32811  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
32812  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32813  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
32814  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
32815  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
32816  #endif
32817  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_calculate_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error)
32818  __Pyx_GOTREF(__pyx_t_1);
32819  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init)) {
32820  __Pyx_INCREF(__pyx_t_1);
32821  __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
32822  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
32823  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
32824  if (likely(__pyx_t_4)) {
32825  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
32826  __Pyx_INCREF(__pyx_t_4);
32827  __Pyx_INCREF(function);
32828  __Pyx_DECREF_SET(__pyx_t_3, function);
32829  }
32830  }
32831  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
32832  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
32833  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 968, __pyx_L1_error)
32834  __Pyx_GOTREF(__pyx_t_2);
32835  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
32836  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32837  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32838  goto __pyx_L0;
32839  }
32840  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32841  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
32842  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
32843  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
32844  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
32845  }
32846  #endif
32847  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32848  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32849  }
32850  #endif
32851  }
32852 
32853  /* "mprans/BoundaryConditions.py":969
32854  *
32855  * def calculate_init(self):
32856  * if self.zone_type == 'generation': # <<<<<<<<<<<<<<
32857  * # self.u = &self.waves.u
32858  * # self.eta = &self.waves.eta
32859  */
32860  __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_self->zone_type, __pyx_n_s_generation, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 969, __pyx_L1_error)
32861  __pyx_t_6 = (__pyx_t_5 != 0);
32862  if (__pyx_t_6) {
32863 
32864  /* "mprans/BoundaryConditions.py":972
32865  * # self.u = &self.waves.u
32866  * # self.eta = &self.waves.eta
32867  * self.uu = self.__cpp_calculate_vel_wave # <<<<<<<<<<<<<<
32868  * self.phi = self.__cpp_calculate_phi_porous_sponge
32869  * elif self.zone_type == 'absorption':
32870  */
32871  __pyx_t_7 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_vel_wave;
32872  __pyx_v_self->uu = __pyx_t_7;
32873 
32874  /* "mprans/BoundaryConditions.py":973
32875  * # self.eta = &self.waves.eta
32876  * self.uu = self.__cpp_calculate_vel_wave
32877  * self.phi = self.__cpp_calculate_phi_porous_sponge # <<<<<<<<<<<<<<
32878  * elif self.zone_type == 'absorption':
32879  * self.uu = self.__cpp_calculate_vel_zero
32880  */
32881  __pyx_t_8 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_phi_porous_sponge;
32882  __pyx_v_self->phi = __pyx_t_8;
32883 
32884  /* "mprans/BoundaryConditions.py":969
32885  *
32886  * def calculate_init(self):
32887  * if self.zone_type == 'generation': # <<<<<<<<<<<<<<
32888  * # self.u = &self.waves.u
32889  * # self.eta = &self.waves.eta
32890  */
32891  goto __pyx_L3;
32892  }
32893 
32894  /* "mprans/BoundaryConditions.py":974
32895  * self.uu = self.__cpp_calculate_vel_wave
32896  * self.phi = self.__cpp_calculate_phi_porous_sponge
32897  * elif self.zone_type == 'absorption': # <<<<<<<<<<<<<<
32898  * self.uu = self.__cpp_calculate_vel_zero
32899  * self.phi = self.__cpp_calculate_phi_porous_sponge
32900  */
32901  __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_self->zone_type, __pyx_n_s_absorption, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
32902  __pyx_t_5 = (__pyx_t_6 != 0);
32903  if (__pyx_t_5) {
32904 
32905  /* "mprans/BoundaryConditions.py":975
32906  * self.phi = self.__cpp_calculate_phi_porous_sponge
32907  * elif self.zone_type == 'absorption':
32908  * self.uu = self.__cpp_calculate_vel_zero # <<<<<<<<<<<<<<
32909  * self.phi = self.__cpp_calculate_phi_porous_sponge
32910  * elif self.zone_type == 'porous':
32911  */
32912  __pyx_t_9 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_vel_zero;
32913  __pyx_v_self->uu = __pyx_t_9;
32914 
32915  /* "mprans/BoundaryConditions.py":976
32916  * elif self.zone_type == 'absorption':
32917  * self.uu = self.__cpp_calculate_vel_zero
32918  * self.phi = self.__cpp_calculate_phi_porous_sponge # <<<<<<<<<<<<<<
32919  * elif self.zone_type == 'porous':
32920  * self.uu = self.__cpp_calculate_vel_zero
32921  */
32922  __pyx_t_8 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_phi_porous_sponge;
32923  __pyx_v_self->phi = __pyx_t_8;
32924 
32925  /* "mprans/BoundaryConditions.py":974
32926  * self.uu = self.__cpp_calculate_vel_wave
32927  * self.phi = self.__cpp_calculate_phi_porous_sponge
32928  * elif self.zone_type == 'absorption': # <<<<<<<<<<<<<<
32929  * self.uu = self.__cpp_calculate_vel_zero
32930  * self.phi = self.__cpp_calculate_phi_porous_sponge
32931  */
32932  goto __pyx_L3;
32933  }
32934 
32935  /* "mprans/BoundaryConditions.py":977
32936  * self.uu = self.__cpp_calculate_vel_zero
32937  * self.phi = self.__cpp_calculate_phi_porous_sponge
32938  * elif self.zone_type == 'porous': # <<<<<<<<<<<<<<
32939  * self.uu = self.__cpp_calculate_vel_zero
32940  * self.phi = self.__cpp_calculate_phi_porous
32941  */
32942  __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_self->zone_type, __pyx_n_s_porous, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 977, __pyx_L1_error)
32943  __pyx_t_6 = (__pyx_t_5 != 0);
32944  if (__pyx_t_6) {
32945 
32946  /* "mprans/BoundaryConditions.py":978
32947  * self.phi = self.__cpp_calculate_phi_porous_sponge
32948  * elif self.zone_type == 'porous':
32949  * self.uu = self.__cpp_calculate_vel_zero # <<<<<<<<<<<<<<
32950  * self.phi = self.__cpp_calculate_phi_porous
32951  *
32952  */
32953  __pyx_t_9 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_vel_zero;
32954  __pyx_v_self->uu = __pyx_t_9;
32955 
32956  /* "mprans/BoundaryConditions.py":979
32957  * elif self.zone_type == 'porous':
32958  * self.uu = self.__cpp_calculate_vel_zero
32959  * self.phi = self.__cpp_calculate_phi_porous # <<<<<<<<<<<<<<
32960  *
32961  * def calculate_phi(self, x):
32962  */
32963  __pyx_t_10 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_phi_porous;
32964  __pyx_v_self->phi = __pyx_t_10;
32965 
32966  /* "mprans/BoundaryConditions.py":977
32967  * self.uu = self.__cpp_calculate_vel_zero
32968  * self.phi = self.__cpp_calculate_phi_porous_sponge
32969  * elif self.zone_type == 'porous': # <<<<<<<<<<<<<<
32970  * self.uu = self.__cpp_calculate_vel_zero
32971  * self.phi = self.__cpp_calculate_phi_porous
32972  */
32973  }
32974  __pyx_L3:;
32975 
32976  /* "mprans/BoundaryConditions.py":968
32977  * self.zero_vel = np.zeros(3)
32978  *
32979  * def calculate_init(self): # <<<<<<<<<<<<<<
32980  * if self.zone_type == 'generation':
32981  * # self.u = &self.waves.u
32982  */
32983 
32984  /* function exit code */
32985  goto __pyx_L0;
32986  __pyx_L1_error:;
32987  __Pyx_XDECREF(__pyx_t_1);
32988  __Pyx_XDECREF(__pyx_t_2);
32989  __Pyx_XDECREF(__pyx_t_3);
32990  __Pyx_XDECREF(__pyx_t_4);
32991  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZone.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
32992  __pyx_L0:;
32993  __Pyx_TraceReturn(Py_None, 0);
32994  __Pyx_RefNannyFinishContext();
32995 }
32996 
32997 /* Python wrapper */
32998 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32999 static char __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_2calculate_init[] = "RelaxationZone.calculate_init(self) -> void";
33000 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init = {"calculate_init", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_2calculate_init};
33001 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33002  PyObject *__pyx_r = 0;
33003  __Pyx_RefNannyDeclarations
33004  __Pyx_RefNannySetupContext("calculate_init (wrapper)", 0);
33005  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_2calculate_init(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
33006 
33007  /* function exit code */
33008  __Pyx_RefNannyFinishContext();
33009  return __pyx_r;
33010 }
33011 
33012 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_2calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
33013  PyObject *__pyx_r = NULL;
33014  __Pyx_TraceDeclarations
33015  __Pyx_RefNannyDeclarations
33016  PyObject *__pyx_t_1 = NULL;
33017  int __pyx_lineno = 0;
33018  const char *__pyx_filename = NULL;
33019  int __pyx_clineno = 0;
33020  __Pyx_TraceFrameInit(__pyx_codeobj__92)
33021  __Pyx_RefNannySetupContext("calculate_init", 0);
33022  __Pyx_TraceCall("calculate_init (wrapper)", __pyx_f[0], 968, 0, __PYX_ERR(0, 968, __pyx_L1_error));
33023  __Pyx_XDECREF(__pyx_r);
33024  __pyx_t_1 = __Pyx_void_to_None(__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_init(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error)
33025  __Pyx_GOTREF(__pyx_t_1);
33026  __pyx_r = __pyx_t_1;
33027  __pyx_t_1 = 0;
33028  goto __pyx_L0;
33029 
33030  /* function exit code */
33031  __pyx_L1_error:;
33032  __Pyx_XDECREF(__pyx_t_1);
33033  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
33034  __pyx_r = NULL;
33035  __pyx_L0:;
33036  __Pyx_XGIVEREF(__pyx_r);
33037  __Pyx_TraceReturn(__pyx_r, 0);
33038  __Pyx_RefNannyFinishContext();
33039  return __pyx_r;
33040 }
33041 
33042 /* "mprans/BoundaryConditions.py":981
33043  * self.phi = self.__cpp_calculate_phi_porous
33044  *
33045  * def calculate_phi(self, x): # <<<<<<<<<<<<<<
33046  * return self.phi(self, x)
33047  *
33048  */
33049 
33050 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_phi(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x) {
33051  double __pyx_r;
33052  __Pyx_TraceDeclarations
33053  __Pyx_RefNannyDeclarations
33054  int __pyx_lineno = 0;
33055  const char *__pyx_filename = NULL;
33056  int __pyx_clineno = 0;
33057  __Pyx_RefNannySetupContext("calculate_phi", 0);
33058  __Pyx_TraceCall("calculate_phi", __pyx_f[0], 981, 0, __PYX_ERR(0, 981, __pyx_L1_error));
33059 
33060  /* "mprans/BoundaryConditions.py":982
33061  *
33062  * def calculate_phi(self, x):
33063  * return self.phi(self, x) # <<<<<<<<<<<<<<
33064  *
33065  * def __cpp_calculate_phi_porous_sponge(self, x):
33066  */
33067  __pyx_r = __pyx_v_self->phi(__pyx_v_self, __pyx_v_x);
33068  goto __pyx_L0;
33069 
33070  /* "mprans/BoundaryConditions.py":981
33071  * self.phi = self.__cpp_calculate_phi_porous
33072  *
33073  * def calculate_phi(self, x): # <<<<<<<<<<<<<<
33074  * return self.phi(self, x)
33075  *
33076  */
33077 
33078  /* function exit code */
33079  __pyx_L1_error:;
33080  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZone.calculate_phi", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
33081  __pyx_r = 0;
33082  __pyx_L0:;
33083  __Pyx_TraceReturn(Py_None, 0);
33084  __Pyx_RefNannyFinishContext();
33085  return __pyx_r;
33086 }
33087 
33088 /* "mprans/BoundaryConditions.py":984
33089  * return self.phi(self, x)
33090  *
33091  * def __cpp_calculate_phi_porous_sponge(self, x): # <<<<<<<<<<<<<<
33092  * """
33093  * Used for RelaxationZone only
33094  */
33095 
33096 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous_sponge(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x) {
33097  double __pyx_v_d[3];
33098  double __pyx_v_o[3];
33099  double __pyx_v_phi;
33100  double __pyx_r;
33101  __Pyx_TraceDeclarations
33102  __Pyx_RefNannyDeclarations
33103  Py_ssize_t __pyx_t_1;
33104  int __pyx_t_2;
33105  int __pyx_lineno = 0;
33106  const char *__pyx_filename = NULL;
33107  int __pyx_clineno = 0;
33108  __Pyx_RefNannySetupContext("__cpp_calculate_phi_porous_sponge", 0);
33109  __Pyx_TraceCall("__cpp_calculate_phi_porous_sponge", __pyx_f[0], 984, 0, __PYX_ERR(0, 984, __pyx_L1_error));
33110 
33111  /* "mprans/BoundaryConditions.py":989
33112  * """
33113  * cython.declare(d=cython.double[3], o=cython.double[3])
33114  * d[0] = self.center[0] - x[0] # <<<<<<<<<<<<<<
33115  * d[1] = self.center[1] - x[1]
33116  * o[0] = self.orientation[0]
33117  */
33118  __pyx_t_1 = 0;
33119  (__pyx_v_d[0]) = ((*((double *) ( /* dim=0 */ (__pyx_v_self->center.data + __pyx_t_1 * __pyx_v_self->center.strides[0]) ))) - (__pyx_v_x[0]));
33120 
33121  /* "mprans/BoundaryConditions.py":990
33122  * cython.declare(d=cython.double[3], o=cython.double[3])
33123  * d[0] = self.center[0] - x[0]
33124  * d[1] = self.center[1] - x[1] # <<<<<<<<<<<<<<
33125  * o[0] = self.orientation[0]
33126  * o[1] = self.orientation[1]
33127  */
33128  __pyx_t_1 = 1;
33129  (__pyx_v_d[1]) = ((*((double *) ( /* dim=0 */ (__pyx_v_self->center.data + __pyx_t_1 * __pyx_v_self->center.strides[0]) ))) - (__pyx_v_x[1]));
33130 
33131  /* "mprans/BoundaryConditions.py":991
33132  * d[0] = self.center[0] - x[0]
33133  * d[1] = self.center[1] - x[1]
33134  * o[0] = self.orientation[0] # <<<<<<<<<<<<<<
33135  * o[1] = self.orientation[1]
33136  * if self.nd > 2:
33137  */
33138  __pyx_t_1 = 0;
33139  (__pyx_v_o[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_self->orientation.data + __pyx_t_1 * __pyx_v_self->orientation.strides[0]) )));
33140 
33141  /* "mprans/BoundaryConditions.py":992
33142  * d[1] = self.center[1] - x[1]
33143  * o[0] = self.orientation[0]
33144  * o[1] = self.orientation[1] # <<<<<<<<<<<<<<
33145  * if self.nd > 2:
33146  * d[2] = self.center[2] - x[2]
33147  */
33148  __pyx_t_1 = 1;
33149  (__pyx_v_o[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_self->orientation.data + __pyx_t_1 * __pyx_v_self->orientation.strides[0]) )));
33150 
33151  /* "mprans/BoundaryConditions.py":993
33152  * o[0] = self.orientation[0]
33153  * o[1] = self.orientation[1]
33154  * if self.nd > 2: # <<<<<<<<<<<<<<
33155  * d[2] = self.center[2] - x[2]
33156  * o[2] = self.orientation[2]
33157  */
33158  __pyx_t_2 = ((__pyx_v_self->nd > 2) != 0);
33159  if (__pyx_t_2) {
33160 
33161  /* "mprans/BoundaryConditions.py":994
33162  * o[1] = self.orientation[1]
33163  * if self.nd > 2:
33164  * d[2] = self.center[2] - x[2] # <<<<<<<<<<<<<<
33165  * o[2] = self.orientation[2]
33166  * else:
33167  */
33168  __pyx_t_1 = 2;
33169  (__pyx_v_d[2]) = ((*((double *) ( /* dim=0 */ (__pyx_v_self->center.data + __pyx_t_1 * __pyx_v_self->center.strides[0]) ))) - (__pyx_v_x[2]));
33170 
33171  /* "mprans/BoundaryConditions.py":995
33172  * if self.nd > 2:
33173  * d[2] = self.center[2] - x[2]
33174  * o[2] = self.orientation[2] # <<<<<<<<<<<<<<
33175  * else:
33176  * d[2] = 0
33177  */
33178  __pyx_t_1 = 2;
33179  (__pyx_v_o[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_self->orientation.data + __pyx_t_1 * __pyx_v_self->orientation.strides[0]) )));
33180 
33181  /* "mprans/BoundaryConditions.py":993
33182  * o[0] = self.orientation[0]
33183  * o[1] = self.orientation[1]
33184  * if self.nd > 2: # <<<<<<<<<<<<<<
33185  * d[2] = self.center[2] - x[2]
33186  * o[2] = self.orientation[2]
33187  */
33188  goto __pyx_L3;
33189  }
33190 
33191  /* "mprans/BoundaryConditions.py":997
33192  * o[2] = self.orientation[2]
33193  * else:
33194  * d[2] = 0 # <<<<<<<<<<<<<<
33195  * o[2] = 0
33196  * phi = o[0] * d[0] + o[1] * d[1] + o[2] * d[2]
33197  */
33198  /*else*/ {
33199  (__pyx_v_d[2]) = 0.0;
33200 
33201  /* "mprans/BoundaryConditions.py":998
33202  * else:
33203  * d[2] = 0
33204  * o[2] = 0 # <<<<<<<<<<<<<<
33205  * phi = o[0] * d[0] + o[1] * d[1] + o[2] * d[2]
33206  * return phi
33207  */
33208  (__pyx_v_o[2]) = 0.0;
33209  }
33210  __pyx_L3:;
33211 
33212  /* "mprans/BoundaryConditions.py":999
33213  * d[2] = 0
33214  * o[2] = 0
33215  * phi = o[0] * d[0] + o[1] * d[1] + o[2] * d[2] # <<<<<<<<<<<<<<
33216  * return phi
33217  *
33218  */
33219  __pyx_v_phi = ((((__pyx_v_o[0]) * (__pyx_v_d[0])) + ((__pyx_v_o[1]) * (__pyx_v_d[1]))) + ((__pyx_v_o[2]) * (__pyx_v_d[2])));
33220 
33221  /* "mprans/BoundaryConditions.py":1000
33222  * o[2] = 0
33223  * phi = o[0] * d[0] + o[1] * d[1] + o[2] * d[2]
33224  * return phi # <<<<<<<<<<<<<<
33225  *
33226  * def __cpp_calculate_phi_porous(self, x):
33227  */
33228  __pyx_r = __pyx_v_phi;
33229  goto __pyx_L0;
33230 
33231  /* "mprans/BoundaryConditions.py":984
33232  * return self.phi(self, x)
33233  *
33234  * def __cpp_calculate_phi_porous_sponge(self, x): # <<<<<<<<<<<<<<
33235  * """
33236  * Used for RelaxationZone only
33237  */
33238 
33239  /* function exit code */
33240  __pyx_L1_error:;
33241  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZone.__cpp_calculate_phi_porous_sponge", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
33242  __pyx_r = 0;
33243  __pyx_L0:;
33244  __Pyx_TraceReturn(Py_None, 0);
33245  __Pyx_RefNannyFinishContext();
33246  return __pyx_r;
33247 }
33248 
33249 /* "mprans/BoundaryConditions.py":1002
33250  * return phi
33251  *
33252  * def __cpp_calculate_phi_porous(self, x): # <<<<<<<<<<<<<<
33253  * IN_POROUS_ZONE=-10000.0
33254  * return IN_POROUS_ZONE
33255  */
33256 
33257 static double __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED double *__pyx_v_x) {
33258  double __pyx_v_IN_POROUS_ZONE;
33259  double __pyx_r;
33260  __Pyx_TraceDeclarations
33261  __Pyx_RefNannyDeclarations
33262  int __pyx_lineno = 0;
33263  const char *__pyx_filename = NULL;
33264  int __pyx_clineno = 0;
33265  __Pyx_RefNannySetupContext("__cpp_calculate_phi_porous", 0);
33266  __Pyx_TraceCall("__cpp_calculate_phi_porous", __pyx_f[0], 1002, 0, __PYX_ERR(0, 1002, __pyx_L1_error));
33267 
33268  /* "mprans/BoundaryConditions.py":1003
33269  *
33270  * def __cpp_calculate_phi_porous(self, x):
33271  * IN_POROUS_ZONE=-10000.0 # <<<<<<<<<<<<<<
33272  * return IN_POROUS_ZONE
33273  *
33274  */
33275  __pyx_v_IN_POROUS_ZONE = -10000.0;
33276 
33277  /* "mprans/BoundaryConditions.py":1004
33278  * def __cpp_calculate_phi_porous(self, x):
33279  * IN_POROUS_ZONE=-10000.0
33280  * return IN_POROUS_ZONE # <<<<<<<<<<<<<<
33281  *
33282  * def calculate_vel(self, x, t):
33283  */
33284  __pyx_r = __pyx_v_IN_POROUS_ZONE;
33285  goto __pyx_L0;
33286 
33287  /* "mprans/BoundaryConditions.py":1002
33288  * return phi
33289  *
33290  * def __cpp_calculate_phi_porous(self, x): # <<<<<<<<<<<<<<
33291  * IN_POROUS_ZONE=-10000.0
33292  * return IN_POROUS_ZONE
33293  */
33294 
33295  /* function exit code */
33296  __pyx_L1_error:;
33297  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZone.__cpp_calculate_phi_porous", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
33298  __pyx_r = 0;
33299  __pyx_L0:;
33300  __Pyx_TraceReturn(Py_None, 0);
33301  __Pyx_RefNannyFinishContext();
33302  return __pyx_r;
33303 }
33304 
33305 /* "mprans/BoundaryConditions.py":1006
33306  * return IN_POROUS_ZONE
33307  *
33308  * def calculate_vel(self, x, t): # <<<<<<<<<<<<<<
33309  * cython.declare(d=cython.double[3], o=cython.double[3])
33310  * d[0] = x[0]
33311  */
33312 
33313 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_vel(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
33314  double __pyx_v_d[3];
33315  __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
33316  __Pyx_TraceDeclarations
33317  __Pyx_RefNannyDeclarations
33318  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
33319  int __pyx_lineno = 0;
33320  const char *__pyx_filename = NULL;
33321  int __pyx_clineno = 0;
33322  __Pyx_RefNannySetupContext("calculate_vel", 0);
33323  __Pyx_TraceCall("calculate_vel", __pyx_f[0], 1006, 0, __PYX_ERR(0, 1006, __pyx_L1_error));
33324 
33325  /* "mprans/BoundaryConditions.py":1008
33326  * def calculate_vel(self, x, t):
33327  * cython.declare(d=cython.double[3], o=cython.double[3])
33328  * d[0] = x[0] # <<<<<<<<<<<<<<
33329  * d[1] = x[1]
33330  * d[2] = x[2]
33331  */
33332  (__pyx_v_d[0]) = (__pyx_v_x[0]);
33333 
33334  /* "mprans/BoundaryConditions.py":1009
33335  * cython.declare(d=cython.double[3], o=cython.double[3])
33336  * d[0] = x[0]
33337  * d[1] = x[1] # <<<<<<<<<<<<<<
33338  * d[2] = x[2]
33339  * return self.uu(self, d, t)
33340  */
33341  (__pyx_v_d[1]) = (__pyx_v_x[1]);
33342 
33343  /* "mprans/BoundaryConditions.py":1010
33344  * d[0] = x[0]
33345  * d[1] = x[1]
33346  * d[2] = x[2] # <<<<<<<<<<<<<<
33347  * return self.uu(self, d, t)
33348  *
33349  */
33350  (__pyx_v_d[2]) = (__pyx_v_x[2]);
33351 
33352  /* "mprans/BoundaryConditions.py":1011
33353  * d[1] = x[1]
33354  * d[2] = x[2]
33355  * return self.uu(self, d, t) # <<<<<<<<<<<<<<
33356  *
33357  * def calculate_phi_python(self, x):
33358  */
33359  __pyx_t_1 = __pyx_v_self->uu(__pyx_v_self, __pyx_v_d, __pyx_v_t); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 1011, __pyx_L1_error)
33360  __pyx_r = __pyx_t_1;
33361  __pyx_t_1.memview = NULL;
33362  __pyx_t_1.data = NULL;
33363  goto __pyx_L0;
33364 
33365  /* "mprans/BoundaryConditions.py":1006
33366  * return IN_POROUS_ZONE
33367  *
33368  * def calculate_vel(self, x, t): # <<<<<<<<<<<<<<
33369  * cython.declare(d=cython.double[3], o=cython.double[3])
33370  * d[0] = x[0]
33371  */
33372 
33373  /* function exit code */
33374  __pyx_L1_error:;
33375  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
33376  __pyx_r.data = NULL;
33377  __pyx_r.memview = NULL;
33378  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.calculate_vel", __pyx_clineno, __pyx_lineno, __pyx_filename);
33379  goto __pyx_L2;
33380  __pyx_L0:;
33381  if (unlikely(!__pyx_r.memview)) {
33382  PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized");
33383  }
33384  __pyx_L2:;
33385  __Pyx_TraceReturn(Py_None, 0);
33386  __Pyx_RefNannyFinishContext();
33387  return __pyx_r;
33388 }
33389 
33390 /* "mprans/BoundaryConditions.py":1013
33391  * return self.uu(self, d, t)
33392  *
33393  * def calculate_phi_python(self, x): # <<<<<<<<<<<<<<
33394  * cython.declare(xx=cython.double[3], tt=cython.double)
33395  * xx[0] = x[0]
33396  */
33397 
33398 /* Python wrapper */
33399 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/
33400 static char __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python[] = "RelaxationZone.calculate_phi_python(self, x)";
33401 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python = {"calculate_phi_python", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python, METH_O, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python};
33402 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python(PyObject *__pyx_v_self, PyObject *__pyx_v_x) {
33403  PyObject *__pyx_r = 0;
33404  __Pyx_RefNannyDeclarations
33405  __Pyx_RefNannySetupContext("calculate_phi_python (wrapper)", 0);
33406  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_x));
33407 
33408  /* function exit code */
33409  __Pyx_RefNannyFinishContext();
33410  return __pyx_r;
33411 }
33412 
33413 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_x) {
33414  double __pyx_v_xx[3];
33415  double __pyx_v_ph;
33416  PyObject *__pyx_r = NULL;
33417  __Pyx_TraceDeclarations
33418  __Pyx_RefNannyDeclarations
33419  PyObject *__pyx_t_1 = NULL;
33420  double __pyx_t_2;
33421  int __pyx_lineno = 0;
33422  const char *__pyx_filename = NULL;
33423  int __pyx_clineno = 0;
33424  __Pyx_TraceFrameInit(__pyx_codeobj__93)
33425  __Pyx_RefNannySetupContext("calculate_phi_python", 0);
33426  __Pyx_TraceCall("calculate_phi_python", __pyx_f[0], 1013, 0, __PYX_ERR(0, 1013, __pyx_L1_error));
33427 
33428  /* "mprans/BoundaryConditions.py":1015
33429  * def calculate_phi_python(self, x):
33430  * cython.declare(xx=cython.double[3], tt=cython.double)
33431  * xx[0] = x[0] # <<<<<<<<<<<<<<
33432  * xx[1] = x[1]
33433  * xx[2] = x[2]
33434  */
33435  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1015, __pyx_L1_error)
33436  __Pyx_GOTREF(__pyx_t_1);
33437  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1015, __pyx_L1_error)
33438  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33439  (__pyx_v_xx[0]) = __pyx_t_2;
33440 
33441  /* "mprans/BoundaryConditions.py":1016
33442  * cython.declare(xx=cython.double[3], tt=cython.double)
33443  * xx[0] = x[0]
33444  * xx[1] = x[1] # <<<<<<<<<<<<<<
33445  * xx[2] = x[2]
33446  * ph = self.phi(self, xx)
33447  */
33448  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error)
33449  __Pyx_GOTREF(__pyx_t_1);
33450  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1016, __pyx_L1_error)
33451  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33452  (__pyx_v_xx[1]) = __pyx_t_2;
33453 
33454  /* "mprans/BoundaryConditions.py":1017
33455  * xx[0] = x[0]
33456  * xx[1] = x[1]
33457  * xx[2] = x[2] # <<<<<<<<<<<<<<
33458  * ph = self.phi(self, xx)
33459  * return ph
33460  */
33461  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L1_error)
33462  __Pyx_GOTREF(__pyx_t_1);
33463  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1017, __pyx_L1_error)
33464  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33465  (__pyx_v_xx[2]) = __pyx_t_2;
33466 
33467  /* "mprans/BoundaryConditions.py":1018
33468  * xx[1] = x[1]
33469  * xx[2] = x[2]
33470  * ph = self.phi(self, xx) # <<<<<<<<<<<<<<
33471  * return ph
33472  *
33473  */
33474  __pyx_v_ph = __pyx_v_self->phi(__pyx_v_self, __pyx_v_xx);
33475 
33476  /* "mprans/BoundaryConditions.py":1019
33477  * xx[2] = x[2]
33478  * ph = self.phi(self, xx)
33479  * return ph # <<<<<<<<<<<<<<
33480  *
33481  * def calculate_vel_python(self, x, t, n=None):
33482  */
33483  __Pyx_XDECREF(__pyx_r);
33484  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_ph); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1019, __pyx_L1_error)
33485  __Pyx_GOTREF(__pyx_t_1);
33486  __pyx_r = __pyx_t_1;
33487  __pyx_t_1 = 0;
33488  goto __pyx_L0;
33489 
33490  /* "mprans/BoundaryConditions.py":1013
33491  * return self.uu(self, d, t)
33492  *
33493  * def calculate_phi_python(self, x): # <<<<<<<<<<<<<<
33494  * cython.declare(xx=cython.double[3], tt=cython.double)
33495  * xx[0] = x[0]
33496  */
33497 
33498  /* function exit code */
33499  __pyx_L1_error:;
33500  __Pyx_XDECREF(__pyx_t_1);
33501  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.calculate_phi_python", __pyx_clineno, __pyx_lineno, __pyx_filename);
33502  __pyx_r = NULL;
33503  __pyx_L0:;
33504  __Pyx_XGIVEREF(__pyx_r);
33505  __Pyx_TraceReturn(__pyx_r, 0);
33506  __Pyx_RefNannyFinishContext();
33507  return __pyx_r;
33508 }
33509 
33510 /* "mprans/BoundaryConditions.py":1021
33511  * return ph
33512  *
33513  * def calculate_vel_python(self, x, t, n=None): # <<<<<<<<<<<<<<
33514  * cython.declare(xx=cython.double[3], tt=cython.double)
33515  * xx[0] = x[0]
33516  */
33517 
33518 /* Python wrapper */
33519 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33520 static char __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python[] = "RelaxationZone.calculate_vel_python(self, x, t, n=None)";
33521 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python = {"calculate_vel_python", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python};
33522 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33523  PyObject *__pyx_v_x = 0;
33524  PyObject *__pyx_v_t = 0;
33525  CYTHON_UNUSED PyObject *__pyx_v_n = 0;
33526  int __pyx_lineno = 0;
33527  const char *__pyx_filename = NULL;
33528  int __pyx_clineno = 0;
33529  PyObject *__pyx_r = 0;
33530  __Pyx_RefNannyDeclarations
33531  __Pyx_RefNannySetupContext("calculate_vel_python (wrapper)", 0);
33532  {
33533  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
33534  PyObject* values[3] = {0,0,0};
33535  values[2] = ((PyObject *)Py_None);
33536  if (unlikely(__pyx_kwds)) {
33537  Py_ssize_t kw_args;
33538  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33539  switch (pos_args) {
33540  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33541  CYTHON_FALLTHROUGH;
33542  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33543  CYTHON_FALLTHROUGH;
33544  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33545  CYTHON_FALLTHROUGH;
33546  case 0: break;
33547  default: goto __pyx_L5_argtuple_error;
33548  }
33549  kw_args = PyDict_Size(__pyx_kwds);
33550  switch (pos_args) {
33551  case 0:
33552  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
33553  else goto __pyx_L5_argtuple_error;
33554  CYTHON_FALLTHROUGH;
33555  case 1:
33556  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
33557  else {
33558  __Pyx_RaiseArgtupleInvalid("calculate_vel_python", 0, 2, 3, 1); __PYX_ERR(0, 1021, __pyx_L3_error)
33559  }
33560  CYTHON_FALLTHROUGH;
33561  case 2:
33562  if (kw_args > 0) {
33563  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
33564  if (value) { values[2] = value; kw_args--; }
33565  }
33566  }
33567  if (unlikely(kw_args > 0)) {
33568  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_vel_python") < 0)) __PYX_ERR(0, 1021, __pyx_L3_error)
33569  }
33570  } else {
33571  switch (PyTuple_GET_SIZE(__pyx_args)) {
33572  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33573  CYTHON_FALLTHROUGH;
33574  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33575  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33576  break;
33577  default: goto __pyx_L5_argtuple_error;
33578  }
33579  }
33580  __pyx_v_x = values[0];
33581  __pyx_v_t = values[1];
33582  __pyx_v_n = values[2];
33583  }
33584  goto __pyx_L4_argument_unpacking_done;
33585  __pyx_L5_argtuple_error:;
33586  __Pyx_RaiseArgtupleInvalid("calculate_vel_python", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1021, __pyx_L3_error)
33587  __pyx_L3_error:;
33588  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.calculate_vel_python", __pyx_clineno, __pyx_lineno, __pyx_filename);
33589  __Pyx_RefNannyFinishContext();
33590  return NULL;
33591  __pyx_L4_argument_unpacking_done:;
33592  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), __pyx_v_x, __pyx_v_t, __pyx_v_n);
33593 
33594  /* function exit code */
33595  __Pyx_RefNannyFinishContext();
33596  return __pyx_r;
33597 }
33598 
33599 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, CYTHON_UNUSED PyObject *__pyx_v_n) {
33600  double __pyx_v_xx[3];
33601  double __pyx_v_tt;
33602  PyObject *__pyx_r = NULL;
33603  __Pyx_TraceDeclarations
33604  __Pyx_RefNannyDeclarations
33605  PyObject *__pyx_t_1 = NULL;
33606  double __pyx_t_2;
33607  __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
33608  int __pyx_lineno = 0;
33609  const char *__pyx_filename = NULL;
33610  int __pyx_clineno = 0;
33611  __Pyx_TraceFrameInit(__pyx_codeobj__94)
33612  __Pyx_RefNannySetupContext("calculate_vel_python", 0);
33613  __Pyx_TraceCall("calculate_vel_python", __pyx_f[0], 1021, 0, __PYX_ERR(0, 1021, __pyx_L1_error));
33614 
33615  /* "mprans/BoundaryConditions.py":1023
33616  * def calculate_vel_python(self, x, t, n=None):
33617  * cython.declare(xx=cython.double[3], tt=cython.double)
33618  * xx[0] = x[0] # <<<<<<<<<<<<<<
33619  * xx[1] = x[1]
33620  * xx[2] = x[2]
33621  */
33622  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
33623  __Pyx_GOTREF(__pyx_t_1);
33624  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1023, __pyx_L1_error)
33625  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33626  (__pyx_v_xx[0]) = __pyx_t_2;
33627 
33628  /* "mprans/BoundaryConditions.py":1024
33629  * cython.declare(xx=cython.double[3], tt=cython.double)
33630  * xx[0] = x[0]
33631  * xx[1] = x[1] # <<<<<<<<<<<<<<
33632  * xx[2] = x[2]
33633  * tt = t
33634  */
33635  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L1_error)
33636  __Pyx_GOTREF(__pyx_t_1);
33637  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1024, __pyx_L1_error)
33638  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33639  (__pyx_v_xx[1]) = __pyx_t_2;
33640 
33641  /* "mprans/BoundaryConditions.py":1025
33642  * xx[0] = x[0]
33643  * xx[1] = x[1]
33644  * xx[2] = x[2] # <<<<<<<<<<<<<<
33645  * tt = t
33646  * return self.uu(self, xx, tt)
33647  */
33648  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1025, __pyx_L1_error)
33649  __Pyx_GOTREF(__pyx_t_1);
33650  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1025, __pyx_L1_error)
33651  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33652  (__pyx_v_xx[2]) = __pyx_t_2;
33653 
33654  /* "mprans/BoundaryConditions.py":1026
33655  * xx[1] = x[1]
33656  * xx[2] = x[2]
33657  * tt = t # <<<<<<<<<<<<<<
33658  * return self.uu(self, xx, tt)
33659  *
33660  */
33661  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_t); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1026, __pyx_L1_error)
33662  __pyx_v_tt = __pyx_t_2;
33663 
33664  /* "mprans/BoundaryConditions.py":1027
33665  * xx[2] = x[2]
33666  * tt = t
33667  * return self.uu(self, xx, tt) # <<<<<<<<<<<<<<
33668  *
33669  * def __cpp_calculate_vel_zero(self, x, t):
33670  */
33671  __Pyx_XDECREF(__pyx_r);
33672  __pyx_t_3 = __pyx_v_self->uu(__pyx_v_self, __pyx_v_xx, __pyx_v_tt); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 1027, __pyx_L1_error)
33673  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_t_3, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1027, __pyx_L1_error)
33674  __Pyx_GOTREF(__pyx_t_1);
33675  __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
33676  __pyx_t_3.memview = NULL;
33677  __pyx_t_3.data = NULL;
33678  __pyx_r = __pyx_t_1;
33679  __pyx_t_1 = 0;
33680  goto __pyx_L0;
33681 
33682  /* "mprans/BoundaryConditions.py":1021
33683  * return ph
33684  *
33685  * def calculate_vel_python(self, x, t, n=None): # <<<<<<<<<<<<<<
33686  * cython.declare(xx=cython.double[3], tt=cython.double)
33687  * xx[0] = x[0]
33688  */
33689 
33690  /* function exit code */
33691  __pyx_L1_error:;
33692  __Pyx_XDECREF(__pyx_t_1);
33693  __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
33694  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.calculate_vel_python", __pyx_clineno, __pyx_lineno, __pyx_filename);
33695  __pyx_r = NULL;
33696  __pyx_L0:;
33697  __Pyx_XGIVEREF(__pyx_r);
33698  __Pyx_TraceReturn(__pyx_r, 0);
33699  __Pyx_RefNannyFinishContext();
33700  return __pyx_r;
33701 }
33702 
33703 /* "mprans/BoundaryConditions.py":1029
33704  * return self.uu(self, xx, tt)
33705  *
33706  * def __cpp_calculate_vel_zero(self, x, t): # <<<<<<<<<<<<<<
33707  * return self.zero_vel
33708  *
33709  */
33710 
33711 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_zero(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED double *__pyx_v_x, CYTHON_UNUSED double __pyx_v_t) {
33712  __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
33713  __Pyx_TraceDeclarations
33714  __Pyx_RefNannyDeclarations
33715  int __pyx_lineno = 0;
33716  const char *__pyx_filename = NULL;
33717  int __pyx_clineno = 0;
33718  __Pyx_RefNannySetupContext("__cpp_calculate_vel_zero", 0);
33719  __Pyx_TraceCall("__cpp_calculate_vel_zero", __pyx_f[0], 1029, 0, __PYX_ERR(0, 1029, __pyx_L1_error));
33720 
33721  /* "mprans/BoundaryConditions.py":1030
33722  *
33723  * def __cpp_calculate_vel_zero(self, x, t):
33724  * return self.zero_vel # <<<<<<<<<<<<<<
33725  *
33726  * def __cpp_calculate_vel_wave(self, x, t):
33727  */
33728  __PYX_INC_MEMVIEW(&__pyx_v_self->zero_vel, 0);
33729  __pyx_r = __pyx_v_self->zero_vel;
33730  goto __pyx_L0;
33731 
33732  /* "mprans/BoundaryConditions.py":1029
33733  * return self.uu(self, xx, tt)
33734  *
33735  * def __cpp_calculate_vel_zero(self, x, t): # <<<<<<<<<<<<<<
33736  * return self.zero_vel
33737  *
33738  */
33739 
33740  /* function exit code */
33741  __pyx_L1_error:;
33742  __pyx_r.data = NULL;
33743  __pyx_r.memview = NULL;
33744  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__cpp_calculate_vel_zero", __pyx_clineno, __pyx_lineno, __pyx_filename);
33745  goto __pyx_L2;
33746  __pyx_L0:;
33747  if (unlikely(!__pyx_r.memview)) {
33748  PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized");
33749  }
33750  __pyx_L2:;
33751  __Pyx_TraceReturn(Py_None, 0);
33752  __Pyx_RefNannyFinishContext();
33753  return __pyx_r;
33754 }
33755 
33756 /* "mprans/BoundaryConditions.py":1032
33757  * return self.zero_vel
33758  *
33759  * def __cpp_calculate_vel_wave(self, x, t): # <<<<<<<<<<<<<<
33760  * return self.waves.__cpp_calculate_velocity(x, t)
33761  *
33762  */
33763 
33764 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_wave(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
33765  __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
33766  __Pyx_TraceDeclarations
33767  __Pyx_RefNannyDeclarations
33768  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
33769  int __pyx_lineno = 0;
33770  const char *__pyx_filename = NULL;
33771  int __pyx_clineno = 0;
33772  __Pyx_RefNannySetupContext("__cpp_calculate_vel_wave", 0);
33773  __Pyx_TraceCall("__cpp_calculate_vel_wave", __pyx_f[0], 1032, 0, __PYX_ERR(0, 1032, __pyx_L1_error));
33774 
33775  /* "mprans/BoundaryConditions.py":1033
33776  *
33777  * def __cpp_calculate_vel_wave(self, x, t):
33778  * return self.waves.__cpp_calculate_velocity(x, t) # <<<<<<<<<<<<<<
33779  *
33780  *
33781  */
33782  __pyx_t_1 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->waves->__pyx_vtab)->__pyx___cpp_calculate_velocity(__pyx_v_self->waves, __pyx_v_x, __pyx_v_t); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 1033, __pyx_L1_error)
33783  __pyx_r = __pyx_t_1;
33784  __pyx_t_1.memview = NULL;
33785  __pyx_t_1.data = NULL;
33786  goto __pyx_L0;
33787 
33788  /* "mprans/BoundaryConditions.py":1032
33789  * return self.zero_vel
33790  *
33791  * def __cpp_calculate_vel_wave(self, x, t): # <<<<<<<<<<<<<<
33792  * return self.waves.__cpp_calculate_velocity(x, t)
33793  *
33794  */
33795 
33796  /* function exit code */
33797  __pyx_L1_error:;
33798  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
33799  __pyx_r.data = NULL;
33800  __pyx_r.memview = NULL;
33801  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__cpp_calculate_vel_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
33802  goto __pyx_L2;
33803  __pyx_L0:;
33804  if (unlikely(!__pyx_r.memview)) {
33805  PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized");
33806  }
33807  __pyx_L2:;
33808  __Pyx_TraceReturn(Py_None, 0);
33809  __Pyx_RefNannyFinishContext();
33810  return __pyx_r;
33811 }
33812 
33813 /* "mprans/BoundaryConditions.pxd":129
33814  * cdef __cppClass_WavesCharacteristics waves
33815  * cdef public:
33816  * object Shape # <<<<<<<<<<<<<<
33817  * str zone_type
33818  * double dragAlpha
33819  */
33820 
33821 /* Python wrapper */
33822 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_1__get__(PyObject *__pyx_v_self); /*proto*/
33823 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_1__get__(PyObject *__pyx_v_self) {
33824  PyObject *__pyx_r = 0;
33825  __Pyx_RefNannyDeclarations
33826  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
33827  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
33828 
33829  /* function exit code */
33830  __Pyx_RefNannyFinishContext();
33831  return __pyx_r;
33832 }
33833 
33834 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
33835  PyObject *__pyx_r = NULL;
33836  __Pyx_TraceDeclarations
33837  __Pyx_RefNannyDeclarations
33838  int __pyx_lineno = 0;
33839  const char *__pyx_filename = NULL;
33840  int __pyx_clineno = 0;
33841  __Pyx_RefNannySetupContext("__get__", 0);
33842  __Pyx_TraceCall("__get__", __pyx_f[2], 129, 0, __PYX_ERR(2, 129, __pyx_L1_error));
33843  __Pyx_XDECREF(__pyx_r);
33844  __Pyx_INCREF(__pyx_v_self->Shape);
33845  __pyx_r = __pyx_v_self->Shape;
33846  goto __pyx_L0;
33847 
33848  /* function exit code */
33849  __pyx_L1_error:;
33850  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.Shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33851  __pyx_r = NULL;
33852  __pyx_L0:;
33853  __Pyx_XGIVEREF(__pyx_r);
33854  __Pyx_TraceReturn(__pyx_r, 0);
33855  __Pyx_RefNannyFinishContext();
33856  return __pyx_r;
33857 }
33858 
33859 /* Python wrapper */
33860 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
33861 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
33862  int __pyx_r;
33863  __Pyx_RefNannyDeclarations
33864  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
33865  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
33866 
33867  /* function exit code */
33868  __Pyx_RefNannyFinishContext();
33869  return __pyx_r;
33870 }
33871 
33872 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
33873  int __pyx_r;
33874  __Pyx_TraceDeclarations
33875  __Pyx_RefNannyDeclarations
33876  int __pyx_lineno = 0;
33877  const char *__pyx_filename = NULL;
33878  int __pyx_clineno = 0;
33879  __Pyx_RefNannySetupContext("__set__", 0);
33880  __Pyx_TraceCall("__set__", __pyx_f[2], 129, 0, __PYX_ERR(2, 129, __pyx_L1_error));
33881  __Pyx_INCREF(__pyx_v_value);
33882  __Pyx_GIVEREF(__pyx_v_value);
33883  __Pyx_GOTREF(__pyx_v_self->Shape);
33884  __Pyx_DECREF(__pyx_v_self->Shape);
33885  __pyx_v_self->Shape = __pyx_v_value;
33886 
33887  /* function exit code */
33888  __pyx_r = 0;
33889  goto __pyx_L0;
33890  __pyx_L1_error:;
33891  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.Shape.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33892  __pyx_r = -1;
33893  __pyx_L0:;
33894  __Pyx_TraceReturn(Py_None, 0);
33895  __Pyx_RefNannyFinishContext();
33896  return __pyx_r;
33897 }
33898 
33899 /* Python wrapper */
33900 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_5__del__(PyObject *__pyx_v_self); /*proto*/
33901 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_5__del__(PyObject *__pyx_v_self) {
33902  int __pyx_r;
33903  __Pyx_RefNannyDeclarations
33904  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
33905  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
33906 
33907  /* function exit code */
33908  __Pyx_RefNannyFinishContext();
33909  return __pyx_r;
33910 }
33911 
33912 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
33913  int __pyx_r;
33914  __Pyx_TraceDeclarations
33915  __Pyx_RefNannyDeclarations
33916  int __pyx_lineno = 0;
33917  const char *__pyx_filename = NULL;
33918  int __pyx_clineno = 0;
33919  __Pyx_RefNannySetupContext("__del__", 0);
33920  __Pyx_TraceCall("__del__", __pyx_f[2], 129, 0, __PYX_ERR(2, 129, __pyx_L1_error));
33921  __Pyx_INCREF(Py_None);
33922  __Pyx_GIVEREF(Py_None);
33923  __Pyx_GOTREF(__pyx_v_self->Shape);
33924  __Pyx_DECREF(__pyx_v_self->Shape);
33925  __pyx_v_self->Shape = Py_None;
33926 
33927  /* function exit code */
33928  __pyx_r = 0;
33929  goto __pyx_L0;
33930  __pyx_L1_error:;
33931  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.Shape.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33932  __pyx_r = -1;
33933  __pyx_L0:;
33934  __Pyx_TraceReturn(Py_None, 0);
33935  __Pyx_RefNannyFinishContext();
33936  return __pyx_r;
33937 }
33938 
33939 /* "mprans/BoundaryConditions.pxd":130
33940  * cdef public:
33941  * object Shape
33942  * str zone_type # <<<<<<<<<<<<<<
33943  * double dragAlpha
33944  * double dragBeta
33945  */
33946 
33947 /* Python wrapper */
33948 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_1__get__(PyObject *__pyx_v_self); /*proto*/
33949 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_1__get__(PyObject *__pyx_v_self) {
33950  PyObject *__pyx_r = 0;
33951  __Pyx_RefNannyDeclarations
33952  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
33953  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
33954 
33955  /* function exit code */
33956  __Pyx_RefNannyFinishContext();
33957  return __pyx_r;
33958 }
33959 
33960 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
33961  PyObject *__pyx_r = NULL;
33962  __Pyx_TraceDeclarations
33963  __Pyx_RefNannyDeclarations
33964  int __pyx_lineno = 0;
33965  const char *__pyx_filename = NULL;
33966  int __pyx_clineno = 0;
33967  __Pyx_RefNannySetupContext("__get__", 0);
33968  __Pyx_TraceCall("__get__", __pyx_f[2], 130, 0, __PYX_ERR(2, 130, __pyx_L1_error));
33969  __Pyx_XDECREF(__pyx_r);
33970  __Pyx_INCREF(__pyx_v_self->zone_type);
33971  __pyx_r = __pyx_v_self->zone_type;
33972  goto __pyx_L0;
33973 
33974  /* function exit code */
33975  __pyx_L1_error:;
33976  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.zone_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33977  __pyx_r = NULL;
33978  __pyx_L0:;
33979  __Pyx_XGIVEREF(__pyx_r);
33980  __Pyx_TraceReturn(__pyx_r, 0);
33981  __Pyx_RefNannyFinishContext();
33982  return __pyx_r;
33983 }
33984 
33985 /* Python wrapper */
33986 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
33987 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
33988  int __pyx_r;
33989  __Pyx_RefNannyDeclarations
33990  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
33991  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
33992 
33993  /* function exit code */
33994  __Pyx_RefNannyFinishContext();
33995  return __pyx_r;
33996 }
33997 
33998 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
33999  int __pyx_r;
34000  __Pyx_TraceDeclarations
34001  __Pyx_RefNannyDeclarations
34002  PyObject *__pyx_t_1 = NULL;
34003  int __pyx_lineno = 0;
34004  const char *__pyx_filename = NULL;
34005  int __pyx_clineno = 0;
34006  __Pyx_RefNannySetupContext("__set__", 0);
34007  __Pyx_TraceCall("__set__", __pyx_f[2], 130, 0, __PYX_ERR(2, 130, __pyx_L1_error));
34008  if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(2, 130, __pyx_L1_error)
34009  __pyx_t_1 = __pyx_v_value;
34010  __Pyx_INCREF(__pyx_t_1);
34011  __Pyx_GIVEREF(__pyx_t_1);
34012  __Pyx_GOTREF(__pyx_v_self->zone_type);
34013  __Pyx_DECREF(__pyx_v_self->zone_type);
34014  __pyx_v_self->zone_type = ((PyObject*)__pyx_t_1);
34015  __pyx_t_1 = 0;
34016 
34017  /* function exit code */
34018  __pyx_r = 0;
34019  goto __pyx_L0;
34020  __pyx_L1_error:;
34021  __Pyx_XDECREF(__pyx_t_1);
34022  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.zone_type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34023  __pyx_r = -1;
34024  __pyx_L0:;
34025  __Pyx_TraceReturn(Py_None, 0);
34026  __Pyx_RefNannyFinishContext();
34027  return __pyx_r;
34028 }
34029 
34030 /* Python wrapper */
34031 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_5__del__(PyObject *__pyx_v_self); /*proto*/
34032 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_5__del__(PyObject *__pyx_v_self) {
34033  int __pyx_r;
34034  __Pyx_RefNannyDeclarations
34035  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
34036  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34037 
34038  /* function exit code */
34039  __Pyx_RefNannyFinishContext();
34040  return __pyx_r;
34041 }
34042 
34043 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34044  int __pyx_r;
34045  __Pyx_TraceDeclarations
34046  __Pyx_RefNannyDeclarations
34047  int __pyx_lineno = 0;
34048  const char *__pyx_filename = NULL;
34049  int __pyx_clineno = 0;
34050  __Pyx_RefNannySetupContext("__del__", 0);
34051  __Pyx_TraceCall("__del__", __pyx_f[2], 130, 0, __PYX_ERR(2, 130, __pyx_L1_error));
34052  __Pyx_INCREF(Py_None);
34053  __Pyx_GIVEREF(Py_None);
34054  __Pyx_GOTREF(__pyx_v_self->zone_type);
34055  __Pyx_DECREF(__pyx_v_self->zone_type);
34056  __pyx_v_self->zone_type = ((PyObject*)Py_None);
34057 
34058  /* function exit code */
34059  __pyx_r = 0;
34060  goto __pyx_L0;
34061  __pyx_L1_error:;
34062  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.zone_type.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34063  __pyx_r = -1;
34064  __pyx_L0:;
34065  __Pyx_TraceReturn(Py_None, 0);
34066  __Pyx_RefNannyFinishContext();
34067  return __pyx_r;
34068 }
34069 
34070 /* "mprans/BoundaryConditions.pxd":131
34071  * object Shape
34072  * str zone_type
34073  * double dragAlpha # <<<<<<<<<<<<<<
34074  * double dragBeta
34075  * double porosity
34076  */
34077 
34078 /* Python wrapper */
34079 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_1__get__(PyObject *__pyx_v_self); /*proto*/
34080 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_1__get__(PyObject *__pyx_v_self) {
34081  PyObject *__pyx_r = 0;
34082  __Pyx_RefNannyDeclarations
34083  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34084  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34085 
34086  /* function exit code */
34087  __Pyx_RefNannyFinishContext();
34088  return __pyx_r;
34089 }
34090 
34091 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34092  PyObject *__pyx_r = NULL;
34093  __Pyx_TraceDeclarations
34094  __Pyx_RefNannyDeclarations
34095  PyObject *__pyx_t_1 = NULL;
34096  int __pyx_lineno = 0;
34097  const char *__pyx_filename = NULL;
34098  int __pyx_clineno = 0;
34099  __Pyx_RefNannySetupContext("__get__", 0);
34100  __Pyx_TraceCall("__get__", __pyx_f[2], 131, 0, __PYX_ERR(2, 131, __pyx_L1_error));
34101  __Pyx_XDECREF(__pyx_r);
34102  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->dragAlpha); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error)
34103  __Pyx_GOTREF(__pyx_t_1);
34104  __pyx_r = __pyx_t_1;
34105  __pyx_t_1 = 0;
34106  goto __pyx_L0;
34107 
34108  /* function exit code */
34109  __pyx_L1_error:;
34110  __Pyx_XDECREF(__pyx_t_1);
34111  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.dragAlpha.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34112  __pyx_r = NULL;
34113  __pyx_L0:;
34114  __Pyx_XGIVEREF(__pyx_r);
34115  __Pyx_TraceReturn(__pyx_r, 0);
34116  __Pyx_RefNannyFinishContext();
34117  return __pyx_r;
34118 }
34119 
34120 /* Python wrapper */
34121 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34122 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34123  int __pyx_r;
34124  __Pyx_RefNannyDeclarations
34125  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34126  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34127 
34128  /* function exit code */
34129  __Pyx_RefNannyFinishContext();
34130  return __pyx_r;
34131 }
34132 
34133 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34134  int __pyx_r;
34135  __Pyx_TraceDeclarations
34136  __Pyx_RefNannyDeclarations
34137  double __pyx_t_1;
34138  int __pyx_lineno = 0;
34139  const char *__pyx_filename = NULL;
34140  int __pyx_clineno = 0;
34141  __Pyx_RefNannySetupContext("__set__", 0);
34142  __Pyx_TraceCall("__set__", __pyx_f[2], 131, 0, __PYX_ERR(2, 131, __pyx_L1_error));
34143  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 131, __pyx_L1_error)
34144  __pyx_v_self->dragAlpha = __pyx_t_1;
34145 
34146  /* function exit code */
34147  __pyx_r = 0;
34148  goto __pyx_L0;
34149  __pyx_L1_error:;
34150  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.dragAlpha.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34151  __pyx_r = -1;
34152  __pyx_L0:;
34153  __Pyx_TraceReturn(Py_None, 0);
34154  __Pyx_RefNannyFinishContext();
34155  return __pyx_r;
34156 }
34157 
34158 /* "mprans/BoundaryConditions.pxd":132
34159  * str zone_type
34160  * double dragAlpha
34161  * double dragBeta # <<<<<<<<<<<<<<
34162  * double porosity
34163  * double epsFact_solid
34164  */
34165 
34166 /* Python wrapper */
34167 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_1__get__(PyObject *__pyx_v_self); /*proto*/
34168 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_1__get__(PyObject *__pyx_v_self) {
34169  PyObject *__pyx_r = 0;
34170  __Pyx_RefNannyDeclarations
34171  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34172  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34173 
34174  /* function exit code */
34175  __Pyx_RefNannyFinishContext();
34176  return __pyx_r;
34177 }
34178 
34179 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34180  PyObject *__pyx_r = NULL;
34181  __Pyx_TraceDeclarations
34182  __Pyx_RefNannyDeclarations
34183  PyObject *__pyx_t_1 = NULL;
34184  int __pyx_lineno = 0;
34185  const char *__pyx_filename = NULL;
34186  int __pyx_clineno = 0;
34187  __Pyx_RefNannySetupContext("__get__", 0);
34188  __Pyx_TraceCall("__get__", __pyx_f[2], 132, 0, __PYX_ERR(2, 132, __pyx_L1_error));
34189  __Pyx_XDECREF(__pyx_r);
34190  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->dragBeta); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 132, __pyx_L1_error)
34191  __Pyx_GOTREF(__pyx_t_1);
34192  __pyx_r = __pyx_t_1;
34193  __pyx_t_1 = 0;
34194  goto __pyx_L0;
34195 
34196  /* function exit code */
34197  __pyx_L1_error:;
34198  __Pyx_XDECREF(__pyx_t_1);
34199  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.dragBeta.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34200  __pyx_r = NULL;
34201  __pyx_L0:;
34202  __Pyx_XGIVEREF(__pyx_r);
34203  __Pyx_TraceReturn(__pyx_r, 0);
34204  __Pyx_RefNannyFinishContext();
34205  return __pyx_r;
34206 }
34207 
34208 /* Python wrapper */
34209 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34210 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34211  int __pyx_r;
34212  __Pyx_RefNannyDeclarations
34213  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34214  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34215 
34216  /* function exit code */
34217  __Pyx_RefNannyFinishContext();
34218  return __pyx_r;
34219 }
34220 
34221 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34222  int __pyx_r;
34223  __Pyx_TraceDeclarations
34224  __Pyx_RefNannyDeclarations
34225  double __pyx_t_1;
34226  int __pyx_lineno = 0;
34227  const char *__pyx_filename = NULL;
34228  int __pyx_clineno = 0;
34229  __Pyx_RefNannySetupContext("__set__", 0);
34230  __Pyx_TraceCall("__set__", __pyx_f[2], 132, 0, __PYX_ERR(2, 132, __pyx_L1_error));
34231  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 132, __pyx_L1_error)
34232  __pyx_v_self->dragBeta = __pyx_t_1;
34233 
34234  /* function exit code */
34235  __pyx_r = 0;
34236  goto __pyx_L0;
34237  __pyx_L1_error:;
34238  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.dragBeta.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34239  __pyx_r = -1;
34240  __pyx_L0:;
34241  __Pyx_TraceReturn(Py_None, 0);
34242  __Pyx_RefNannyFinishContext();
34243  return __pyx_r;
34244 }
34245 
34246 /* "mprans/BoundaryConditions.pxd":133
34247  * double dragAlpha
34248  * double dragBeta
34249  * double porosity # <<<<<<<<<<<<<<
34250  * double epsFact_solid
34251  * double epsFact_porous
34252  */
34253 
34254 /* Python wrapper */
34255 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_1__get__(PyObject *__pyx_v_self); /*proto*/
34256 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_1__get__(PyObject *__pyx_v_self) {
34257  PyObject *__pyx_r = 0;
34258  __Pyx_RefNannyDeclarations
34259  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34260  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34261 
34262  /* function exit code */
34263  __Pyx_RefNannyFinishContext();
34264  return __pyx_r;
34265 }
34266 
34267 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34268  PyObject *__pyx_r = NULL;
34269  __Pyx_TraceDeclarations
34270  __Pyx_RefNannyDeclarations
34271  PyObject *__pyx_t_1 = NULL;
34272  int __pyx_lineno = 0;
34273  const char *__pyx_filename = NULL;
34274  int __pyx_clineno = 0;
34275  __Pyx_RefNannySetupContext("__get__", 0);
34276  __Pyx_TraceCall("__get__", __pyx_f[2], 133, 0, __PYX_ERR(2, 133, __pyx_L1_error));
34277  __Pyx_XDECREF(__pyx_r);
34278  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->porosity); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 133, __pyx_L1_error)
34279  __Pyx_GOTREF(__pyx_t_1);
34280  __pyx_r = __pyx_t_1;
34281  __pyx_t_1 = 0;
34282  goto __pyx_L0;
34283 
34284  /* function exit code */
34285  __pyx_L1_error:;
34286  __Pyx_XDECREF(__pyx_t_1);
34287  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.porosity.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34288  __pyx_r = NULL;
34289  __pyx_L0:;
34290  __Pyx_XGIVEREF(__pyx_r);
34291  __Pyx_TraceReturn(__pyx_r, 0);
34292  __Pyx_RefNannyFinishContext();
34293  return __pyx_r;
34294 }
34295 
34296 /* Python wrapper */
34297 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34298 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34299  int __pyx_r;
34300  __Pyx_RefNannyDeclarations
34301  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34302  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34303 
34304  /* function exit code */
34305  __Pyx_RefNannyFinishContext();
34306  return __pyx_r;
34307 }
34308 
34309 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34310  int __pyx_r;
34311  __Pyx_TraceDeclarations
34312  __Pyx_RefNannyDeclarations
34313  double __pyx_t_1;
34314  int __pyx_lineno = 0;
34315  const char *__pyx_filename = NULL;
34316  int __pyx_clineno = 0;
34317  __Pyx_RefNannySetupContext("__set__", 0);
34318  __Pyx_TraceCall("__set__", __pyx_f[2], 133, 0, __PYX_ERR(2, 133, __pyx_L1_error));
34319  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 133, __pyx_L1_error)
34320  __pyx_v_self->porosity = __pyx_t_1;
34321 
34322  /* function exit code */
34323  __pyx_r = 0;
34324  goto __pyx_L0;
34325  __pyx_L1_error:;
34326  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.porosity.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34327  __pyx_r = -1;
34328  __pyx_L0:;
34329  __Pyx_TraceReturn(Py_None, 0);
34330  __Pyx_RefNannyFinishContext();
34331  return __pyx_r;
34332 }
34333 
34334 /* "mprans/BoundaryConditions.pxd":134
34335  * double dragBeta
34336  * double porosity
34337  * double epsFact_solid # <<<<<<<<<<<<<<
34338  * double epsFact_porous
34339  * double vert_axis
34340  */
34341 
34342 /* Python wrapper */
34343 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_1__get__(PyObject *__pyx_v_self); /*proto*/
34344 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_1__get__(PyObject *__pyx_v_self) {
34345  PyObject *__pyx_r = 0;
34346  __Pyx_RefNannyDeclarations
34347  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34348  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34349 
34350  /* function exit code */
34351  __Pyx_RefNannyFinishContext();
34352  return __pyx_r;
34353 }
34354 
34355 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34356  PyObject *__pyx_r = NULL;
34357  __Pyx_TraceDeclarations
34358  __Pyx_RefNannyDeclarations
34359  PyObject *__pyx_t_1 = NULL;
34360  int __pyx_lineno = 0;
34361  const char *__pyx_filename = NULL;
34362  int __pyx_clineno = 0;
34363  __Pyx_RefNannySetupContext("__get__", 0);
34364  __Pyx_TraceCall("__get__", __pyx_f[2], 134, 0, __PYX_ERR(2, 134, __pyx_L1_error));
34365  __Pyx_XDECREF(__pyx_r);
34366  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->epsFact_solid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error)
34367  __Pyx_GOTREF(__pyx_t_1);
34368  __pyx_r = __pyx_t_1;
34369  __pyx_t_1 = 0;
34370  goto __pyx_L0;
34371 
34372  /* function exit code */
34373  __pyx_L1_error:;
34374  __Pyx_XDECREF(__pyx_t_1);
34375  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.epsFact_solid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34376  __pyx_r = NULL;
34377  __pyx_L0:;
34378  __Pyx_XGIVEREF(__pyx_r);
34379  __Pyx_TraceReturn(__pyx_r, 0);
34380  __Pyx_RefNannyFinishContext();
34381  return __pyx_r;
34382 }
34383 
34384 /* Python wrapper */
34385 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34386 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34387  int __pyx_r;
34388  __Pyx_RefNannyDeclarations
34389  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34390  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34391 
34392  /* function exit code */
34393  __Pyx_RefNannyFinishContext();
34394  return __pyx_r;
34395 }
34396 
34397 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34398  int __pyx_r;
34399  __Pyx_TraceDeclarations
34400  __Pyx_RefNannyDeclarations
34401  double __pyx_t_1;
34402  int __pyx_lineno = 0;
34403  const char *__pyx_filename = NULL;
34404  int __pyx_clineno = 0;
34405  __Pyx_RefNannySetupContext("__set__", 0);
34406  __Pyx_TraceCall("__set__", __pyx_f[2], 134, 0, __PYX_ERR(2, 134, __pyx_L1_error));
34407  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 134, __pyx_L1_error)
34408  __pyx_v_self->epsFact_solid = __pyx_t_1;
34409 
34410  /* function exit code */
34411  __pyx_r = 0;
34412  goto __pyx_L0;
34413  __pyx_L1_error:;
34414  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.epsFact_solid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34415  __pyx_r = -1;
34416  __pyx_L0:;
34417  __Pyx_TraceReturn(Py_None, 0);
34418  __Pyx_RefNannyFinishContext();
34419  return __pyx_r;
34420 }
34421 
34422 /* "mprans/BoundaryConditions.pxd":135
34423  * double porosity
34424  * double epsFact_solid
34425  * double epsFact_porous # <<<<<<<<<<<<<<
34426  * double vert_axis
34427  * double[:] center
34428  */
34429 
34430 /* Python wrapper */
34431 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_1__get__(PyObject *__pyx_v_self); /*proto*/
34432 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_1__get__(PyObject *__pyx_v_self) {
34433  PyObject *__pyx_r = 0;
34434  __Pyx_RefNannyDeclarations
34435  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34436  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34437 
34438  /* function exit code */
34439  __Pyx_RefNannyFinishContext();
34440  return __pyx_r;
34441 }
34442 
34443 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34444  PyObject *__pyx_r = NULL;
34445  __Pyx_TraceDeclarations
34446  __Pyx_RefNannyDeclarations
34447  PyObject *__pyx_t_1 = NULL;
34448  int __pyx_lineno = 0;
34449  const char *__pyx_filename = NULL;
34450  int __pyx_clineno = 0;
34451  __Pyx_RefNannySetupContext("__get__", 0);
34452  __Pyx_TraceCall("__get__", __pyx_f[2], 135, 0, __PYX_ERR(2, 135, __pyx_L1_error));
34453  __Pyx_XDECREF(__pyx_r);
34454  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->epsFact_porous); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error)
34455  __Pyx_GOTREF(__pyx_t_1);
34456  __pyx_r = __pyx_t_1;
34457  __pyx_t_1 = 0;
34458  goto __pyx_L0;
34459 
34460  /* function exit code */
34461  __pyx_L1_error:;
34462  __Pyx_XDECREF(__pyx_t_1);
34463  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.epsFact_porous.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34464  __pyx_r = NULL;
34465  __pyx_L0:;
34466  __Pyx_XGIVEREF(__pyx_r);
34467  __Pyx_TraceReturn(__pyx_r, 0);
34468  __Pyx_RefNannyFinishContext();
34469  return __pyx_r;
34470 }
34471 
34472 /* Python wrapper */
34473 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34474 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34475  int __pyx_r;
34476  __Pyx_RefNannyDeclarations
34477  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34478  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34479 
34480  /* function exit code */
34481  __Pyx_RefNannyFinishContext();
34482  return __pyx_r;
34483 }
34484 
34485 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34486  int __pyx_r;
34487  __Pyx_TraceDeclarations
34488  __Pyx_RefNannyDeclarations
34489  double __pyx_t_1;
34490  int __pyx_lineno = 0;
34491  const char *__pyx_filename = NULL;
34492  int __pyx_clineno = 0;
34493  __Pyx_RefNannySetupContext("__set__", 0);
34494  __Pyx_TraceCall("__set__", __pyx_f[2], 135, 0, __PYX_ERR(2, 135, __pyx_L1_error));
34495  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 135, __pyx_L1_error)
34496  __pyx_v_self->epsFact_porous = __pyx_t_1;
34497 
34498  /* function exit code */
34499  __pyx_r = 0;
34500  goto __pyx_L0;
34501  __pyx_L1_error:;
34502  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.epsFact_porous.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34503  __pyx_r = -1;
34504  __pyx_L0:;
34505  __Pyx_TraceReturn(Py_None, 0);
34506  __Pyx_RefNannyFinishContext();
34507  return __pyx_r;
34508 }
34509 
34510 /* "mprans/BoundaryConditions.pxd":136
34511  * double epsFact_solid
34512  * double epsFact_porous
34513  * double vert_axis # <<<<<<<<<<<<<<
34514  * double[:] center
34515  * double[:] orientation
34516  */
34517 
34518 /* Python wrapper */
34519 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_1__get__(PyObject *__pyx_v_self); /*proto*/
34520 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_1__get__(PyObject *__pyx_v_self) {
34521  PyObject *__pyx_r = 0;
34522  __Pyx_RefNannyDeclarations
34523  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34524  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34525 
34526  /* function exit code */
34527  __Pyx_RefNannyFinishContext();
34528  return __pyx_r;
34529 }
34530 
34531 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34532  PyObject *__pyx_r = NULL;
34533  __Pyx_TraceDeclarations
34534  __Pyx_RefNannyDeclarations
34535  PyObject *__pyx_t_1 = NULL;
34536  int __pyx_lineno = 0;
34537  const char *__pyx_filename = NULL;
34538  int __pyx_clineno = 0;
34539  __Pyx_RefNannySetupContext("__get__", 0);
34540  __Pyx_TraceCall("__get__", __pyx_f[2], 136, 0, __PYX_ERR(2, 136, __pyx_L1_error));
34541  __Pyx_XDECREF(__pyx_r);
34542  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->vert_axis); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __pyx_L1_error)
34543  __Pyx_GOTREF(__pyx_t_1);
34544  __pyx_r = __pyx_t_1;
34545  __pyx_t_1 = 0;
34546  goto __pyx_L0;
34547 
34548  /* function exit code */
34549  __pyx_L1_error:;
34550  __Pyx_XDECREF(__pyx_t_1);
34551  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.vert_axis.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34552  __pyx_r = NULL;
34553  __pyx_L0:;
34554  __Pyx_XGIVEREF(__pyx_r);
34555  __Pyx_TraceReturn(__pyx_r, 0);
34556  __Pyx_RefNannyFinishContext();
34557  return __pyx_r;
34558 }
34559 
34560 /* Python wrapper */
34561 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34562 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34563  int __pyx_r;
34564  __Pyx_RefNannyDeclarations
34565  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34566  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34567 
34568  /* function exit code */
34569  __Pyx_RefNannyFinishContext();
34570  return __pyx_r;
34571 }
34572 
34573 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34574  int __pyx_r;
34575  __Pyx_TraceDeclarations
34576  __Pyx_RefNannyDeclarations
34577  double __pyx_t_1;
34578  int __pyx_lineno = 0;
34579  const char *__pyx_filename = NULL;
34580  int __pyx_clineno = 0;
34581  __Pyx_RefNannySetupContext("__set__", 0);
34582  __Pyx_TraceCall("__set__", __pyx_f[2], 136, 0, __PYX_ERR(2, 136, __pyx_L1_error));
34583  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 136, __pyx_L1_error)
34584  __pyx_v_self->vert_axis = __pyx_t_1;
34585 
34586  /* function exit code */
34587  __pyx_r = 0;
34588  goto __pyx_L0;
34589  __pyx_L1_error:;
34590  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.vert_axis.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34591  __pyx_r = -1;
34592  __pyx_L0:;
34593  __Pyx_TraceReturn(Py_None, 0);
34594  __Pyx_RefNannyFinishContext();
34595  return __pyx_r;
34596 }
34597 
34598 /* "mprans/BoundaryConditions.pxd":137
34599  * double epsFact_porous
34600  * double vert_axis
34601  * double[:] center # <<<<<<<<<<<<<<
34602  * double[:] orientation
34603  * cpdef void calculate_init(self)
34604  */
34605 
34606 /* Python wrapper */
34607 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_1__get__(PyObject *__pyx_v_self); /*proto*/
34608 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_1__get__(PyObject *__pyx_v_self) {
34609  PyObject *__pyx_r = 0;
34610  __Pyx_RefNannyDeclarations
34611  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34612  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34613 
34614  /* function exit code */
34615  __Pyx_RefNannyFinishContext();
34616  return __pyx_r;
34617 }
34618 
34619 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34620  PyObject *__pyx_r = NULL;
34621  __Pyx_TraceDeclarations
34622  __Pyx_RefNannyDeclarations
34623  PyObject *__pyx_t_1 = NULL;
34624  int __pyx_lineno = 0;
34625  const char *__pyx_filename = NULL;
34626  int __pyx_clineno = 0;
34627  __Pyx_RefNannySetupContext("__get__", 0);
34628  __Pyx_TraceCall("__get__", __pyx_f[2], 137, 0, __PYX_ERR(2, 137, __pyx_L1_error));
34629  __Pyx_XDECREF(__pyx_r);
34630  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_self->center, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error)
34631  __Pyx_GOTREF(__pyx_t_1);
34632  __pyx_r = __pyx_t_1;
34633  __pyx_t_1 = 0;
34634  goto __pyx_L0;
34635 
34636  /* function exit code */
34637  __pyx_L1_error:;
34638  __Pyx_XDECREF(__pyx_t_1);
34639  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.center.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34640  __pyx_r = NULL;
34641  __pyx_L0:;
34642  __Pyx_XGIVEREF(__pyx_r);
34643  __Pyx_TraceReturn(__pyx_r, 0);
34644  __Pyx_RefNannyFinishContext();
34645  return __pyx_r;
34646 }
34647 
34648 /* Python wrapper */
34649 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34650 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34651  int __pyx_r;
34652  __Pyx_RefNannyDeclarations
34653  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34654  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34655 
34656  /* function exit code */
34657  __Pyx_RefNannyFinishContext();
34658  return __pyx_r;
34659 }
34660 
34661 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_6center_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34662  int __pyx_r;
34663  __Pyx_TraceDeclarations
34664  __Pyx_RefNannyDeclarations
34665  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
34666  int __pyx_lineno = 0;
34667  const char *__pyx_filename = NULL;
34668  int __pyx_clineno = 0;
34669  __Pyx_RefNannySetupContext("__set__", 0);
34670  __Pyx_TraceCall("__set__", __pyx_f[2], 137, 0, __PYX_ERR(2, 137, __pyx_L1_error));
34671  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_value, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(2, 137, __pyx_L1_error)
34672  __PYX_XDEC_MEMVIEW(&__pyx_v_self->center, 0);
34673  __pyx_v_self->center = __pyx_t_1;
34674  __pyx_t_1.memview = NULL;
34675  __pyx_t_1.data = NULL;
34676 
34677  /* function exit code */
34678  __pyx_r = 0;
34679  goto __pyx_L0;
34680  __pyx_L1_error:;
34681  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
34682  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.center.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34683  __pyx_r = -1;
34684  __pyx_L0:;
34685  __Pyx_TraceReturn(Py_None, 0);
34686  __Pyx_RefNannyFinishContext();
34687  return __pyx_r;
34688 }
34689 
34690 /* "mprans/BoundaryConditions.pxd":138
34691  * double vert_axis
34692  * double[:] center
34693  * double[:] orientation # <<<<<<<<<<<<<<
34694  * cpdef void calculate_init(self)
34695  * cdef double[:] calculate_vel(self, cython.p_double x, double t)
34696  */
34697 
34698 /* Python wrapper */
34699 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_1__get__(PyObject *__pyx_v_self); /*proto*/
34700 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_1__get__(PyObject *__pyx_v_self) {
34701  PyObject *__pyx_r = 0;
34702  __Pyx_RefNannyDeclarations
34703  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
34704  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34705 
34706  /* function exit code */
34707  __Pyx_RefNannyFinishContext();
34708  return __pyx_r;
34709 }
34710 
34711 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34712  PyObject *__pyx_r = NULL;
34713  __Pyx_TraceDeclarations
34714  __Pyx_RefNannyDeclarations
34715  PyObject *__pyx_t_1 = NULL;
34716  int __pyx_lineno = 0;
34717  const char *__pyx_filename = NULL;
34718  int __pyx_clineno = 0;
34719  __Pyx_RefNannySetupContext("__get__", 0);
34720  __Pyx_TraceCall("__get__", __pyx_f[2], 138, 0, __PYX_ERR(2, 138, __pyx_L1_error));
34721  __Pyx_XDECREF(__pyx_r);
34722  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_self->orientation, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error)
34723  __Pyx_GOTREF(__pyx_t_1);
34724  __pyx_r = __pyx_t_1;
34725  __pyx_t_1 = 0;
34726  goto __pyx_L0;
34727 
34728  /* function exit code */
34729  __pyx_L1_error:;
34730  __Pyx_XDECREF(__pyx_t_1);
34731  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.orientation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34732  __pyx_r = NULL;
34733  __pyx_L0:;
34734  __Pyx_XGIVEREF(__pyx_r);
34735  __Pyx_TraceReturn(__pyx_r, 0);
34736  __Pyx_RefNannyFinishContext();
34737  return __pyx_r;
34738 }
34739 
34740 /* Python wrapper */
34741 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
34742 static int __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
34743  int __pyx_r;
34744  __Pyx_RefNannyDeclarations
34745  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
34746  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v_value));
34747 
34748  /* function exit code */
34749  __Pyx_RefNannyFinishContext();
34750  return __pyx_r;
34751 }
34752 
34753 static int __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, PyObject *__pyx_v_value) {
34754  int __pyx_r;
34755  __Pyx_TraceDeclarations
34756  __Pyx_RefNannyDeclarations
34757  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
34758  int __pyx_lineno = 0;
34759  const char *__pyx_filename = NULL;
34760  int __pyx_clineno = 0;
34761  __Pyx_RefNannySetupContext("__set__", 0);
34762  __Pyx_TraceCall("__set__", __pyx_f[2], 138, 0, __PYX_ERR(2, 138, __pyx_L1_error));
34763  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_value, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(2, 138, __pyx_L1_error)
34764  __PYX_XDEC_MEMVIEW(&__pyx_v_self->orientation, 0);
34765  __pyx_v_self->orientation = __pyx_t_1;
34766  __pyx_t_1.memview = NULL;
34767  __pyx_t_1.data = NULL;
34768 
34769  /* function exit code */
34770  __pyx_r = 0;
34771  goto __pyx_L0;
34772  __pyx_L1_error:;
34773  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
34774  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.orientation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34775  __pyx_r = -1;
34776  __pyx_L0:;
34777  __Pyx_TraceReturn(Py_None, 0);
34778  __Pyx_RefNannyFinishContext();
34779  return __pyx_r;
34780 }
34781 
34782 /* "(tree fragment)":1
34783  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
34784  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34785  * def __setstate_cython__(self, __pyx_state):
34786  */
34787 
34788 /* Python wrapper */
34789 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
34790 static char __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__[] = "RelaxationZone.__reduce_cython__(self)";
34791 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__};
34792 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
34793  PyObject *__pyx_r = 0;
34794  __Pyx_RefNannyDeclarations
34795  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
34796  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self));
34797 
34798  /* function exit code */
34799  __Pyx_RefNannyFinishContext();
34800  return __pyx_r;
34801 }
34802 
34803 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self) {
34804  PyObject *__pyx_r = NULL;
34805  __Pyx_TraceDeclarations
34806  __Pyx_RefNannyDeclarations
34807  PyObject *__pyx_t_1 = NULL;
34808  int __pyx_lineno = 0;
34809  const char *__pyx_filename = NULL;
34810  int __pyx_clineno = 0;
34811  __Pyx_TraceFrameInit(__pyx_codeobj__95)
34812  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
34813  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
34814 
34815  /* "(tree fragment)":2
34816  * def __reduce_cython__(self):
34817  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
34818  * def __setstate_cython__(self, __pyx_state):
34819  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34820  */
34821  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__96, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
34822  __Pyx_GOTREF(__pyx_t_1);
34823  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
34824  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34825  __PYX_ERR(1, 2, __pyx_L1_error)
34826 
34827  /* "(tree fragment)":1
34828  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
34829  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34830  * def __setstate_cython__(self, __pyx_state):
34831  */
34832 
34833  /* function exit code */
34834  __pyx_L1_error:;
34835  __Pyx_XDECREF(__pyx_t_1);
34836  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34837  __pyx_r = NULL;
34838  __Pyx_XGIVEREF(__pyx_r);
34839  __Pyx_TraceReturn(__pyx_r, 0);
34840  __Pyx_RefNannyFinishContext();
34841  return __pyx_r;
34842 }
34843 
34844 /* "(tree fragment)":3
34845  * def __reduce_cython__(self):
34846  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34847  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
34848  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34849  */
34850 
34851 /* Python wrapper */
34852 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
34853 static char __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__[] = "RelaxationZone.__setstate_cython__(self, __pyx_state)";
34854 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__};
34855 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
34856  PyObject *__pyx_r = 0;
34857  __Pyx_RefNannyDeclarations
34858  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
34859  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
34860 
34861  /* function exit code */
34862  __Pyx_RefNannyFinishContext();
34863  return __pyx_r;
34864 }
34865 
34866 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
34867  PyObject *__pyx_r = NULL;
34868  __Pyx_TraceDeclarations
34869  __Pyx_RefNannyDeclarations
34870  PyObject *__pyx_t_1 = NULL;
34871  int __pyx_lineno = 0;
34872  const char *__pyx_filename = NULL;
34873  int __pyx_clineno = 0;
34874  __Pyx_TraceFrameInit(__pyx_codeobj__97)
34875  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
34876  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));
34877 
34878  /* "(tree fragment)":4
34879  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34880  * def __setstate_cython__(self, __pyx_state):
34881  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
34882  */
34883  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__98, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
34884  __Pyx_GOTREF(__pyx_t_1);
34885  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
34886  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34887  __PYX_ERR(1, 4, __pyx_L1_error)
34888 
34889  /* "(tree fragment)":3
34890  * def __reduce_cython__(self):
34891  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34892  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
34893  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
34894  */
34895 
34896  /* function exit code */
34897  __pyx_L1_error:;
34898  __Pyx_XDECREF(__pyx_t_1);
34899  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZone.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34900  __pyx_r = NULL;
34901  __Pyx_XGIVEREF(__pyx_r);
34902  __Pyx_TraceReturn(__pyx_r, 0);
34903  __Pyx_RefNannyFinishContext();
34904  return __pyx_r;
34905 }
34906 
34907 /* "mprans/BoundaryConditions.py":1050
34908  * """
34909  *
34910  * def __init__(self, zones, nd): # <<<<<<<<<<<<<<
34911  * self.zones = zones
34912  * self.nd = nd
34913  */
34914 
34915 /* Python wrapper */
34916 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34917 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34918  PyObject *__pyx_v_zones = 0;
34919  PyObject *__pyx_v_nd = 0;
34920  int __pyx_lineno = 0;
34921  const char *__pyx_filename = NULL;
34922  int __pyx_clineno = 0;
34923  int __pyx_r;
34924  __Pyx_RefNannyDeclarations
34925  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
34926  {
34927  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_zones,&__pyx_n_s_nd,0};
34928  PyObject* values[2] = {0,0};
34929  if (unlikely(__pyx_kwds)) {
34930  Py_ssize_t kw_args;
34931  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34932  switch (pos_args) {
34933  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34934  CYTHON_FALLTHROUGH;
34935  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34936  CYTHON_FALLTHROUGH;
34937  case 0: break;
34938  default: goto __pyx_L5_argtuple_error;
34939  }
34940  kw_args = PyDict_Size(__pyx_kwds);
34941  switch (pos_args) {
34942  case 0:
34943  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zones)) != 0)) kw_args--;
34944  else goto __pyx_L5_argtuple_error;
34945  CYTHON_FALLTHROUGH;
34946  case 1:
34947  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
34948  else {
34949  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1050, __pyx_L3_error)
34950  }
34951  }
34952  if (unlikely(kw_args > 0)) {
34953  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1050, __pyx_L3_error)
34954  }
34955  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
34956  goto __pyx_L5_argtuple_error;
34957  } else {
34958  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34959  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34960  }
34961  __pyx_v_zones = values[0];
34962  __pyx_v_nd = values[1];
34963  }
34964  goto __pyx_L4_argument_unpacking_done;
34965  __pyx_L5_argtuple_error:;
34966  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1050, __pyx_L3_error)
34967  __pyx_L3_error:;
34968  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
34969  __Pyx_RefNannyFinishContext();
34970  return -1;
34971  __pyx_L4_argument_unpacking_done:;
34972  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___init__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), __pyx_v_zones, __pyx_v_nd);
34973 
34974  /* function exit code */
34975  __Pyx_RefNannyFinishContext();
34976  return __pyx_r;
34977 }
34978 
34979 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___init__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_zones, PyObject *__pyx_v_nd) {
34980  int __pyx_r;
34981  __Pyx_TraceDeclarations
34982  __Pyx_RefNannyDeclarations
34983  PyObject *__pyx_t_1 = NULL;
34984  int __pyx_t_2;
34985  int __pyx_lineno = 0;
34986  const char *__pyx_filename = NULL;
34987  int __pyx_clineno = 0;
34988  __Pyx_RefNannySetupContext("__init__", 0);
34989  __Pyx_TraceCall("__init__", __pyx_f[0], 1050, 0, __PYX_ERR(0, 1050, __pyx_L1_error));
34990 
34991  /* "mprans/BoundaryConditions.py":1051
34992  *
34993  * def __init__(self, zones, nd):
34994  * self.zones = zones # <<<<<<<<<<<<<<
34995  * self.nd = nd
34996  *
34997  */
34998  if (!(likely(PyDict_CheckExact(__pyx_v_zones))||((__pyx_v_zones) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_zones)->tp_name), 0))) __PYX_ERR(0, 1051, __pyx_L1_error)
34999  __pyx_t_1 = __pyx_v_zones;
35000  __Pyx_INCREF(__pyx_t_1);
35001  __Pyx_GIVEREF(__pyx_t_1);
35002  __Pyx_GOTREF(__pyx_v_self->zones);
35003  __Pyx_DECREF(__pyx_v_self->zones);
35004  __pyx_v_self->zones = ((PyObject*)__pyx_t_1);
35005  __pyx_t_1 = 0;
35006 
35007  /* "mprans/BoundaryConditions.py":1052
35008  * def __init__(self, zones, nd):
35009  * self.zones = zones
35010  * self.nd = nd # <<<<<<<<<<<<<<
35011  *
35012  * def attachModel(self, model, ar):
35013  */
35014  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_nd); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1052, __pyx_L1_error)
35015  __pyx_v_self->nd = __pyx_t_2;
35016 
35017  /* "mprans/BoundaryConditions.py":1050
35018  * """
35019  *
35020  * def __init__(self, zones, nd): # <<<<<<<<<<<<<<
35021  * self.zones = zones
35022  * self.nd = nd
35023  */
35024 
35025  /* function exit code */
35026  __pyx_r = 0;
35027  goto __pyx_L0;
35028  __pyx_L1_error:;
35029  __Pyx_XDECREF(__pyx_t_1);
35030  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35031  __pyx_r = -1;
35032  __pyx_L0:;
35033  __Pyx_TraceReturn(Py_None, 0);
35034  __Pyx_RefNannyFinishContext();
35035  return __pyx_r;
35036 }
35037 
35038 /* "mprans/BoundaryConditions.py":1054
35039  * self.nd = nd
35040  *
35041  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
35042  * self.model = model
35043  * self.ar = ar
35044  */
35045 
35046 /* Python wrapper */
35047 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35048 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel[] = "RelaxationZoneWaveGenerator.attachModel(self, model, ar)";
35049 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel = {"attachModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel};
35050 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35051  PyObject *__pyx_v_model = 0;
35052  PyObject *__pyx_v_ar = 0;
35053  int __pyx_lineno = 0;
35054  const char *__pyx_filename = NULL;
35055  int __pyx_clineno = 0;
35056  PyObject *__pyx_r = 0;
35057  __Pyx_RefNannyDeclarations
35058  __Pyx_RefNannySetupContext("attachModel (wrapper)", 0);
35059  {
35060  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_ar,0};
35061  PyObject* values[2] = {0,0};
35062  if (unlikely(__pyx_kwds)) {
35063  Py_ssize_t kw_args;
35064  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
35065  switch (pos_args) {
35066  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35067  CYTHON_FALLTHROUGH;
35068  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35069  CYTHON_FALLTHROUGH;
35070  case 0: break;
35071  default: goto __pyx_L5_argtuple_error;
35072  }
35073  kw_args = PyDict_Size(__pyx_kwds);
35074  switch (pos_args) {
35075  case 0:
35076  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model)) != 0)) kw_args--;
35077  else goto __pyx_L5_argtuple_error;
35078  CYTHON_FALLTHROUGH;
35079  case 1:
35080  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ar)) != 0)) kw_args--;
35081  else {
35082  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 2, 2, 1); __PYX_ERR(0, 1054, __pyx_L3_error)
35083  }
35084  }
35085  if (unlikely(kw_args > 0)) {
35086  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachModel") < 0)) __PYX_ERR(0, 1054, __pyx_L3_error)
35087  }
35088  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35089  goto __pyx_L5_argtuple_error;
35090  } else {
35091  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35092  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35093  }
35094  __pyx_v_model = values[0];
35095  __pyx_v_ar = values[1];
35096  }
35097  goto __pyx_L4_argument_unpacking_done;
35098  __pyx_L5_argtuple_error:;
35099  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1054, __pyx_L3_error)
35100  __pyx_L3_error:;
35101  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
35102  __Pyx_RefNannyFinishContext();
35103  return NULL;
35104  __pyx_L4_argument_unpacking_done:;
35105  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), __pyx_v_model, __pyx_v_ar);
35106 
35107  /* function exit code */
35108  __Pyx_RefNannyFinishContext();
35109  return __pyx_r;
35110 }
35111 
35112 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar) {
35113  PyObject *__pyx_r = NULL;
35114  __Pyx_TraceDeclarations
35115  __Pyx_RefNannyDeclarations
35116  int __pyx_lineno = 0;
35117  const char *__pyx_filename = NULL;
35118  int __pyx_clineno = 0;
35119  __Pyx_TraceFrameInit(__pyx_codeobj__99)
35120  __Pyx_RefNannySetupContext("attachModel", 0);
35121  __Pyx_TraceCall("attachModel", __pyx_f[0], 1054, 0, __PYX_ERR(0, 1054, __pyx_L1_error));
35122 
35123  /* "mprans/BoundaryConditions.py":1055
35124  *
35125  * def attachModel(self, model, ar):
35126  * self.model = model # <<<<<<<<<<<<<<
35127  * self.ar = ar
35128  * return self
35129  */
35130  __Pyx_INCREF(__pyx_v_model);
35131  __Pyx_GIVEREF(__pyx_v_model);
35132  __Pyx_GOTREF(__pyx_v_self->model);
35133  __Pyx_DECREF(__pyx_v_self->model);
35134  __pyx_v_self->model = __pyx_v_model;
35135 
35136  /* "mprans/BoundaryConditions.py":1056
35137  * def attachModel(self, model, ar):
35138  * self.model = model
35139  * self.ar = ar # <<<<<<<<<<<<<<
35140  * return self
35141  *
35142  */
35143  __Pyx_INCREF(__pyx_v_ar);
35144  __Pyx_GIVEREF(__pyx_v_ar);
35145  __Pyx_GOTREF(__pyx_v_self->ar);
35146  __Pyx_DECREF(__pyx_v_self->ar);
35147  __pyx_v_self->ar = __pyx_v_ar;
35148 
35149  /* "mprans/BoundaryConditions.py":1057
35150  * self.model = model
35151  * self.ar = ar
35152  * return self # <<<<<<<<<<<<<<
35153  *
35154  * def attachAuxiliaryVariables(self, avDict):
35155  */
35156  __Pyx_XDECREF(__pyx_r);
35157  __Pyx_INCREF(((PyObject *)__pyx_v_self));
35158  __pyx_r = ((PyObject *)__pyx_v_self);
35159  goto __pyx_L0;
35160 
35161  /* "mprans/BoundaryConditions.py":1054
35162  * self.nd = nd
35163  *
35164  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
35165  * self.model = model
35166  * self.ar = ar
35167  */
35168 
35169  /* function exit code */
35170  __pyx_L1_error:;
35171  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
35172  __pyx_r = NULL;
35173  __pyx_L0:;
35174  __Pyx_XGIVEREF(__pyx_r);
35175  __Pyx_TraceReturn(__pyx_r, 0);
35176  __Pyx_RefNannyFinishContext();
35177  return __pyx_r;
35178 }
35179 
35180 /* "mprans/BoundaryConditions.py":1059
35181  * return self
35182  *
35183  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
35184  * pass
35185  *
35186  */
35187 
35188 /* Python wrapper */
35189 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_avDict); /*proto*/
35190 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables[] = "RelaxationZoneWaveGenerator.attachAuxiliaryVariables(self, avDict)";
35191 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables = {"attachAuxiliaryVariables", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables, METH_O, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables};
35192 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_avDict) {
35193  PyObject *__pyx_r = 0;
35194  __Pyx_RefNannyDeclarations
35195  __Pyx_RefNannySetupContext("attachAuxiliaryVariables (wrapper)", 0);
35196  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), ((PyObject *)__pyx_v_avDict));
35197 
35198  /* function exit code */
35199  __Pyx_RefNannyFinishContext();
35200  return __pyx_r;
35201 }
35202 
35203 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables(CYTHON_UNUSED struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict) {
35204  PyObject *__pyx_r = NULL;
35205  __Pyx_TraceDeclarations
35206  __Pyx_RefNannyDeclarations
35207  int __pyx_lineno = 0;
35208  const char *__pyx_filename = NULL;
35209  int __pyx_clineno = 0;
35210  __Pyx_TraceFrameInit(__pyx_codeobj__100)
35211  __Pyx_RefNannySetupContext("attachAuxiliaryVariables", 0);
35212  __Pyx_TraceCall("attachAuxiliaryVariables", __pyx_f[0], 1059, 0, __PYX_ERR(0, 1059, __pyx_L1_error));
35213 
35214  /* function exit code */
35215  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35216  goto __pyx_L0;
35217  __pyx_L1_error:;
35218  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.attachAuxiliaryVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
35219  __pyx_r = NULL;
35220  __pyx_L0:;
35221  __Pyx_XGIVEREF(__pyx_r);
35222  __Pyx_TraceReturn(__pyx_r, 0);
35223  __Pyx_RefNannyFinishContext();
35224  return __pyx_r;
35225 }
35226 
35227 /* "mprans/BoundaryConditions.py":1062
35228  * pass
35229  *
35230  * def calculate_init(self): # <<<<<<<<<<<<<<
35231  * max_key = 0
35232  * for key, zone in list(self.zones.items()):
35233  */
35234 
35235 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35236 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, int __pyx_skip_dispatch) {
35237  PyObject *__pyx_v_max_key = NULL;
35238  PyObject *__pyx_v_key = NULL;
35239  PyObject *__pyx_v_zone = NULL;
35240  __Pyx_TraceDeclarations
35241  __Pyx_RefNannyDeclarations
35242  PyObject *__pyx_t_1 = NULL;
35243  PyObject *__pyx_t_2 = NULL;
35244  PyObject *__pyx_t_3 = NULL;
35245  PyObject *__pyx_t_4 = NULL;
35246  Py_ssize_t __pyx_t_5;
35247  PyObject *__pyx_t_6 = NULL;
35248  PyObject *(*__pyx_t_7)(PyObject *);
35249  int __pyx_t_8;
35250  int __pyx_t_9;
35251  int __pyx_lineno = 0;
35252  const char *__pyx_filename = NULL;
35253  int __pyx_clineno = 0;
35254  __Pyx_TraceFrameInit(__pyx_codeobj__101)
35255  __Pyx_RefNannySetupContext("calculate_init", 0);
35256  __Pyx_TraceCall("calculate_init", __pyx_f[0], 1062, 0, __PYX_ERR(0, 1062, __pyx_L1_error));
35257  /* Check if called by wrapper */
35258  if (unlikely(__pyx_skip_dispatch)) ;
35259  /* Check if overridden in Python */
35260  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
35261  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35262  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
35263  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
35264  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
35265  #endif
35266  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_calculate_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
35267  __Pyx_GOTREF(__pyx_t_1);
35268  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init)) {
35269  __Pyx_INCREF(__pyx_t_1);
35270  __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
35271  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
35272  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
35273  if (likely(__pyx_t_4)) {
35274  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
35275  __Pyx_INCREF(__pyx_t_4);
35276  __Pyx_INCREF(function);
35277  __Pyx_DECREF_SET(__pyx_t_3, function);
35278  }
35279  }
35280  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
35281  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
35282  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1062, __pyx_L1_error)
35283  __Pyx_GOTREF(__pyx_t_2);
35284  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35285  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35286  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35287  goto __pyx_L0;
35288  }
35289  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35290  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
35291  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
35292  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
35293  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
35294  }
35295  #endif
35296  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35297  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35298  }
35299  #endif
35300  }
35301 
35302  /* "mprans/BoundaryConditions.py":1063
35303  *
35304  * def calculate_init(self):
35305  * max_key = 0 # <<<<<<<<<<<<<<
35306  * for key, zone in list(self.zones.items()):
35307  * zone.calculate_init()
35308  */
35309  __Pyx_INCREF(__pyx_int_0);
35310  __pyx_v_max_key = __pyx_int_0;
35311 
35312  /* "mprans/BoundaryConditions.py":1064
35313  * def calculate_init(self):
35314  * max_key = 0
35315  * for key, zone in list(self.zones.items()): # <<<<<<<<<<<<<<
35316  * zone.calculate_init()
35317  * if key > max_key:
35318  */
35319  if (unlikely(__pyx_v_self->zones == Py_None)) {
35320  PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
35321  __PYX_ERR(0, 1064, __pyx_L1_error)
35322  }
35323  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_self->zones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error)
35324  __Pyx_GOTREF(__pyx_t_1);
35325  __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error)
35326  __Pyx_GOTREF(__pyx_t_2);
35327  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35328  __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
35329  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35330  for (;;) {
35331  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
35332  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35333  __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1064, __pyx_L1_error)
35334  #else
35335  __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error)
35336  __Pyx_GOTREF(__pyx_t_2);
35337  #endif
35338  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
35339  PyObject* sequence = __pyx_t_2;
35340  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
35341  if (unlikely(size != 2)) {
35342  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
35343  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
35344  __PYX_ERR(0, 1064, __pyx_L1_error)
35345  }
35346  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35347  if (likely(PyTuple_CheckExact(sequence))) {
35348  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
35349  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
35350  } else {
35351  __pyx_t_3 = PyList_GET_ITEM(sequence, 0);
35352  __pyx_t_4 = PyList_GET_ITEM(sequence, 1);
35353  }
35354  __Pyx_INCREF(__pyx_t_3);
35355  __Pyx_INCREF(__pyx_t_4);
35356  #else
35357  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1064, __pyx_L1_error)
35358  __Pyx_GOTREF(__pyx_t_3);
35359  __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L1_error)
35360  __Pyx_GOTREF(__pyx_t_4);
35361  #endif
35362  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35363  } else {
35364  Py_ssize_t index = -1;
35365  __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1064, __pyx_L1_error)
35366  __Pyx_GOTREF(__pyx_t_6);
35367  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35368  __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
35369  index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
35370  __Pyx_GOTREF(__pyx_t_3);
35371  index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
35372  __Pyx_GOTREF(__pyx_t_4);
35373  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
35374  __pyx_t_7 = NULL;
35375  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
35376  goto __pyx_L6_unpacking_done;
35377  __pyx_L5_unpacking_failed:;
35378  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
35379  __pyx_t_7 = NULL;
35380  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
35381  __PYX_ERR(0, 1064, __pyx_L1_error)
35382  __pyx_L6_unpacking_done:;
35383  }
35384  __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
35385  __pyx_t_3 = 0;
35386  __Pyx_XDECREF_SET(__pyx_v_zone, __pyx_t_4);
35387  __pyx_t_4 = 0;
35388 
35389  /* "mprans/BoundaryConditions.py":1065
35390  * max_key = 0
35391  * for key, zone in list(self.zones.items()):
35392  * zone.calculate_init() # <<<<<<<<<<<<<<
35393  * if key > max_key:
35394  * max_key = key
35395  */
35396  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_zone, __pyx_n_s_calculate_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1065, __pyx_L1_error)
35397  __Pyx_GOTREF(__pyx_t_4);
35398  __pyx_t_3 = NULL;
35399  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
35400  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
35401  if (likely(__pyx_t_3)) {
35402  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
35403  __Pyx_INCREF(__pyx_t_3);
35404  __Pyx_INCREF(function);
35405  __Pyx_DECREF_SET(__pyx_t_4, function);
35406  }
35407  }
35408  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
35409  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
35410  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error)
35411  __Pyx_GOTREF(__pyx_t_2);
35412  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35413  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35414 
35415  /* "mprans/BoundaryConditions.py":1066
35416  * for key, zone in list(self.zones.items()):
35417  * zone.calculate_init()
35418  * if key > max_key: # <<<<<<<<<<<<<<
35419  * max_key = key
35420  * self.max_flag = max_key
35421  */
35422  __pyx_t_2 = PyObject_RichCompare(__pyx_v_key, __pyx_v_max_key, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1066, __pyx_L1_error)
35423  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1066, __pyx_L1_error)
35424  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35425  if (__pyx_t_8) {
35426 
35427  /* "mprans/BoundaryConditions.py":1067
35428  * zone.calculate_init()
35429  * if key > max_key:
35430  * max_key = key # <<<<<<<<<<<<<<
35431  * self.max_flag = max_key
35432  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone)
35433  */
35434  __Pyx_INCREF(__pyx_v_key);
35435  __Pyx_DECREF_SET(__pyx_v_max_key, __pyx_v_key);
35436 
35437  /* "mprans/BoundaryConditions.py":1066
35438  * for key, zone in list(self.zones.items()):
35439  * zone.calculate_init()
35440  * if key > max_key: # <<<<<<<<<<<<<<
35441  * max_key = key
35442  * self.max_flag = max_key
35443  */
35444  }
35445 
35446  /* "mprans/BoundaryConditions.py":1064
35447  * def calculate_init(self):
35448  * max_key = 0
35449  * for key, zone in list(self.zones.items()): # <<<<<<<<<<<<<<
35450  * zone.calculate_init()
35451  * if key > max_key:
35452  */
35453  }
35454  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35455 
35456  /* "mprans/BoundaryConditions.py":1068
35457  * if key > max_key:
35458  * max_key = key
35459  * self.max_flag = max_key # <<<<<<<<<<<<<<
35460  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone)
35461  * for key, zone in list(self.zones.items()):
35462  */
35463  __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_max_key); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1068, __pyx_L1_error)
35464  __pyx_v_self->max_flag = __pyx_t_9;
35465 
35466  /* "mprans/BoundaryConditions.py":1069
35467  * max_key = key
35468  * self.max_flag = max_key
35469  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone) # <<<<<<<<<<<<<<
35470  * for key, zone in list(self.zones.items()):
35471  * self.zones_array[key] = zone
35472  */
35473  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
35474  __Pyx_GOTREF(__pyx_t_1);
35475  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
35476  __Pyx_GOTREF(__pyx_t_2);
35477  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35478  __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_self->max_flag + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
35479  __Pyx_GOTREF(__pyx_t_1);
35480  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1069, __pyx_L1_error)
35481  __Pyx_GOTREF(__pyx_t_4);
35482  __Pyx_GIVEREF(__pyx_t_1);
35483  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
35484  __pyx_t_1 = 0;
35485  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
35486  __Pyx_GOTREF(__pyx_t_1);
35487  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone)) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
35488  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1069, __pyx_L1_error)
35489  __Pyx_GOTREF(__pyx_t_3);
35490  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35491  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35492  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35493  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1069, __pyx_L1_error)
35494  __Pyx_GIVEREF(__pyx_t_3);
35495  __Pyx_GOTREF(__pyx_v_self->zones_array);
35496  __Pyx_DECREF(((PyObject *)__pyx_v_self->zones_array));
35497  __pyx_v_self->zones_array = ((PyArrayObject *)__pyx_t_3);
35498  __pyx_t_3 = 0;
35499 
35500  /* "mprans/BoundaryConditions.py":1070
35501  * self.max_flag = max_key
35502  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone)
35503  * for key, zone in list(self.zones.items()): # <<<<<<<<<<<<<<
35504  * self.zones_array[key] = zone
35505  *
35506  */
35507  if (unlikely(__pyx_v_self->zones == Py_None)) {
35508  PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
35509  __PYX_ERR(0, 1070, __pyx_L1_error)
35510  }
35511  __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_self->zones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1070, __pyx_L1_error)
35512  __Pyx_GOTREF(__pyx_t_3);
35513  __pyx_t_1 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1070, __pyx_L1_error)
35514  __Pyx_GOTREF(__pyx_t_1);
35515  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35516  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
35517  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35518  for (;;) {
35519  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
35520  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35521  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1070, __pyx_L1_error)
35522  #else
35523  __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1070, __pyx_L1_error)
35524  __Pyx_GOTREF(__pyx_t_1);
35525  #endif
35526  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
35527  PyObject* sequence = __pyx_t_1;
35528  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
35529  if (unlikely(size != 2)) {
35530  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
35531  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
35532  __PYX_ERR(0, 1070, __pyx_L1_error)
35533  }
35534  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35535  if (likely(PyTuple_CheckExact(sequence))) {
35536  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
35537  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
35538  } else {
35539  __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
35540  __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
35541  }
35542  __Pyx_INCREF(__pyx_t_4);
35543  __Pyx_INCREF(__pyx_t_2);
35544  #else
35545  __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1070, __pyx_L1_error)
35546  __Pyx_GOTREF(__pyx_t_4);
35547  __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1070, __pyx_L1_error)
35548  __Pyx_GOTREF(__pyx_t_2);
35549  #endif
35550  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35551  } else {
35552  Py_ssize_t index = -1;
35553  __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1070, __pyx_L1_error)
35554  __Pyx_GOTREF(__pyx_t_6);
35555  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35556  __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
35557  index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed;
35558  __Pyx_GOTREF(__pyx_t_4);
35559  index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L10_unpacking_failed;
35560  __Pyx_GOTREF(__pyx_t_2);
35561  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1070, __pyx_L1_error)
35562  __pyx_t_7 = NULL;
35563  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
35564  goto __pyx_L11_unpacking_done;
35565  __pyx_L10_unpacking_failed:;
35566  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
35567  __pyx_t_7 = NULL;
35568  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
35569  __PYX_ERR(0, 1070, __pyx_L1_error)
35570  __pyx_L11_unpacking_done:;
35571  }
35572  __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4);
35573  __pyx_t_4 = 0;
35574  __Pyx_XDECREF_SET(__pyx_v_zone, __pyx_t_2);
35575  __pyx_t_2 = 0;
35576 
35577  /* "mprans/BoundaryConditions.py":1071
35578  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone)
35579  * for key, zone in list(self.zones.items()):
35580  * self.zones_array[key] = zone # <<<<<<<<<<<<<<
35581  *
35582  * def calculate(self):
35583  */
35584  if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->zones_array), __pyx_v_key, __pyx_v_zone) < 0)) __PYX_ERR(0, 1071, __pyx_L1_error)
35585 
35586  /* "mprans/BoundaryConditions.py":1070
35587  * self.max_flag = max_key
35588  * self.zones_array = np.empty(self.max_flag + 1, dtype=RelaxationZone)
35589  * for key, zone in list(self.zones.items()): # <<<<<<<<<<<<<<
35590  * self.zones_array[key] = zone
35591  *
35592  */
35593  }
35594  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35595 
35596  /* "mprans/BoundaryConditions.py":1062
35597  * pass
35598  *
35599  * def calculate_init(self): # <<<<<<<<<<<<<<
35600  * max_key = 0
35601  * for key, zone in list(self.zones.items()):
35602  */
35603 
35604  /* function exit code */
35605  goto __pyx_L0;
35606  __pyx_L1_error:;
35607  __Pyx_XDECREF(__pyx_t_1);
35608  __Pyx_XDECREF(__pyx_t_2);
35609  __Pyx_XDECREF(__pyx_t_3);
35610  __Pyx_XDECREF(__pyx_t_4);
35611  __Pyx_XDECREF(__pyx_t_6);
35612  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
35613  __pyx_L0:;
35614  __Pyx_XDECREF(__pyx_v_max_key);
35615  __Pyx_XDECREF(__pyx_v_key);
35616  __Pyx_XDECREF(__pyx_v_zone);
35617  __Pyx_TraceReturn(Py_None, 0);
35618  __Pyx_RefNannyFinishContext();
35619 }
35620 
35621 /* Python wrapper */
35622 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35623 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_6calculate_init[] = "RelaxationZoneWaveGenerator.calculate_init(self) -> void";
35624 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init = {"calculate_init", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_6calculate_init};
35625 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
35626  PyObject *__pyx_r = 0;
35627  __Pyx_RefNannyDeclarations
35628  __Pyx_RefNannySetupContext("calculate_init (wrapper)", 0);
35629  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_6calculate_init(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
35630 
35631  /* function exit code */
35632  __Pyx_RefNannyFinishContext();
35633  return __pyx_r;
35634 }
35635 
35636 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_6calculate_init(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
35637  PyObject *__pyx_r = NULL;
35638  __Pyx_TraceDeclarations
35639  __Pyx_RefNannyDeclarations
35640  PyObject *__pyx_t_1 = NULL;
35641  int __pyx_lineno = 0;
35642  const char *__pyx_filename = NULL;
35643  int __pyx_clineno = 0;
35644  __Pyx_TraceFrameInit(__pyx_codeobj__101)
35645  __Pyx_RefNannySetupContext("calculate_init", 0);
35646  __Pyx_TraceCall("calculate_init (wrapper)", __pyx_f[0], 1062, 0, __PYX_ERR(0, 1062, __pyx_L1_error));
35647  __Pyx_XDECREF(__pyx_r);
35648  __pyx_t_1 = __Pyx_void_to_None(__pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate_init(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
35649  __Pyx_GOTREF(__pyx_t_1);
35650  __pyx_r = __pyx_t_1;
35651  __pyx_t_1 = 0;
35652  goto __pyx_L0;
35653 
35654  /* function exit code */
35655  __pyx_L1_error:;
35656  __Pyx_XDECREF(__pyx_t_1);
35657  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
35658  __pyx_r = NULL;
35659  __pyx_L0:;
35660  __Pyx_XGIVEREF(__pyx_r);
35661  __Pyx_TraceReturn(__pyx_r, 0);
35662  __Pyx_RefNannyFinishContext();
35663  return __pyx_r;
35664 }
35665 
35666 /* "mprans/BoundaryConditions.py":1073
35667  * self.zones_array[key] = zone
35668  *
35669  * def calculate(self): # <<<<<<<<<<<<<<
35670  * self.__cpp_iterate()
35671  *
35672  */
35673 
35674 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35675 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, int __pyx_skip_dispatch) {
35676  __Pyx_TraceDeclarations
35677  __Pyx_RefNannyDeclarations
35678  PyObject *__pyx_t_1 = NULL;
35679  PyObject *__pyx_t_2 = NULL;
35680  PyObject *__pyx_t_3 = NULL;
35681  PyObject *__pyx_t_4 = NULL;
35682  int __pyx_lineno = 0;
35683  const char *__pyx_filename = NULL;
35684  int __pyx_clineno = 0;
35685  __Pyx_TraceFrameInit(__pyx_codeobj__102)
35686  __Pyx_RefNannySetupContext("calculate", 0);
35687  __Pyx_TraceCall("calculate", __pyx_f[0], 1073, 0, __PYX_ERR(0, 1073, __pyx_L1_error));
35688  /* Check if called by wrapper */
35689  if (unlikely(__pyx_skip_dispatch)) ;
35690  /* Check if overridden in Python */
35691  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
35692  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35693  static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
35694  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
35695  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
35696  #endif
35697  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_calculate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error)
35698  __Pyx_GOTREF(__pyx_t_1);
35699  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate)) {
35700  __Pyx_INCREF(__pyx_t_1);
35701  __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
35702  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
35703  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
35704  if (likely(__pyx_t_4)) {
35705  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
35706  __Pyx_INCREF(__pyx_t_4);
35707  __Pyx_INCREF(function);
35708  __Pyx_DECREF_SET(__pyx_t_3, function);
35709  }
35710  }
35711  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
35712  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
35713  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error)
35714  __Pyx_GOTREF(__pyx_t_2);
35715  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35716  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35717  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35718  goto __pyx_L0;
35719  }
35720  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35721  __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
35722  __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
35723  if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
35724  __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
35725  }
35726  #endif
35727  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35728  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
35729  }
35730  #endif
35731  }
35732 
35733  /* "mprans/BoundaryConditions.py":1074
35734  *
35735  * def calculate(self):
35736  * self.__cpp_iterate() # <<<<<<<<<<<<<<
35737  *
35738  * def __cpp_iterate(self):
35739  */
35740  ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_iterate(__pyx_v_self);
35741 
35742  /* "mprans/BoundaryConditions.py":1073
35743  * self.zones_array[key] = zone
35744  *
35745  * def calculate(self): # <<<<<<<<<<<<<<
35746  * self.__cpp_iterate()
35747  *
35748  */
35749 
35750  /* function exit code */
35751  goto __pyx_L0;
35752  __pyx_L1_error:;
35753  __Pyx_XDECREF(__pyx_t_1);
35754  __Pyx_XDECREF(__pyx_t_2);
35755  __Pyx_XDECREF(__pyx_t_3);
35756  __Pyx_XDECREF(__pyx_t_4);
35757  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.calculate", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
35758  __pyx_L0:;
35759  __Pyx_TraceReturn(Py_None, 0);
35760  __Pyx_RefNannyFinishContext();
35761 }
35762 
35763 /* Python wrapper */
35764 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35765 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_8calculate[] = "RelaxationZoneWaveGenerator.calculate(self) -> void";
35766 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate = {"calculate", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_8calculate};
35767 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
35768  PyObject *__pyx_r = 0;
35769  __Pyx_RefNannyDeclarations
35770  __Pyx_RefNannySetupContext("calculate (wrapper)", 0);
35771  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_8calculate(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
35772 
35773  /* function exit code */
35774  __Pyx_RefNannyFinishContext();
35775  return __pyx_r;
35776 }
35777 
35778 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_8calculate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
35779  PyObject *__pyx_r = NULL;
35780  __Pyx_TraceDeclarations
35781  __Pyx_RefNannyDeclarations
35782  PyObject *__pyx_t_1 = NULL;
35783  int __pyx_lineno = 0;
35784  const char *__pyx_filename = NULL;
35785  int __pyx_clineno = 0;
35786  __Pyx_TraceFrameInit(__pyx_codeobj__102)
35787  __Pyx_RefNannySetupContext("calculate", 0);
35788  __Pyx_TraceCall("calculate (wrapper)", __pyx_f[0], 1073, 0, __PYX_ERR(0, 1073, __pyx_L1_error));
35789  __Pyx_XDECREF(__pyx_r);
35790  __pyx_t_1 = __Pyx_void_to_None(__pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error)
35791  __Pyx_GOTREF(__pyx_t_1);
35792  __pyx_r = __pyx_t_1;
35793  __pyx_t_1 = 0;
35794  goto __pyx_L0;
35795 
35796  /* function exit code */
35797  __pyx_L1_error:;
35798  __Pyx_XDECREF(__pyx_t_1);
35799  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.calculate", __pyx_clineno, __pyx_lineno, __pyx_filename);
35800  __pyx_r = NULL;
35801  __pyx_L0:;
35802  __Pyx_XGIVEREF(__pyx_r);
35803  __Pyx_TraceReturn(__pyx_r, 0);
35804  __Pyx_RefNannyFinishContext();
35805  return __pyx_r;
35806 }
35807 
35808 /* "mprans/BoundaryConditions.py":1076
35809  * self.__cpp_iterate()
35810  *
35811  * def __cpp_iterate(self): # <<<<<<<<<<<<<<
35812  * nl = len(self.model.levelModelList)
35813  * for l in range(nl): # usually only 1
35814  */
35815 
35816 static void __pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___cpp_iterate(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
35817  PyObject *__pyx_v_m = 0;
35818  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *__pyx_v_zone = 0;
35819  int __pyx_v_mType;
35820  int __pyx_v_nE;
35821  int __pyx_v_nk;
35822  __pyx_t_6mprans_18BoundaryConditions_double_memview3 __pyx_v_qx = { 0, 0, { 0 }, { 0 }, { 0 } };
35823  double __pyx_v_x[3];
35824  double __pyx_v_t;
35825  int __pyx_v_nl;
35826  __pyx_t_6mprans_18BoundaryConditions_double_memview2 __pyx_v_q_phi_porous = { 0, 0, { 0 }, { 0 }, { 0 } };
35827  double __pyx_v_phi;
35828  __pyx_t_6mprans_18BoundaryConditions_double_memview1 __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
35829  __pyx_t_6mprans_18BoundaryConditions_int_memview1 __pyx_v_mTypes = { 0, 0, { 0 }, { 0 }, { 0 } };
35830  PyObject *__pyx_v_l = NULL;
35831  PyObject *__pyx_v_q_velocity_porous = NULL;
35832  PyObject *__pyx_v_eN = NULL;
35833  PyObject *__pyx_v_k = NULL;
35834  __Pyx_TraceDeclarations
35835  __Pyx_RefNannyDeclarations
35836  PyObject *__pyx_t_1 = NULL;
35837  Py_ssize_t __pyx_t_2;
35838  PyObject *__pyx_t_3 = NULL;
35839  PyObject *__pyx_t_4 = NULL;
35840  PyObject *__pyx_t_5 = NULL;
35841  PyObject *(*__pyx_t_6)(PyObject *);
35842  int __pyx_t_7;
35843  double __pyx_t_8;
35844  __pyx_t_6mprans_18BoundaryConditions_double_memview3 __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
35845  __pyx_t_6mprans_18BoundaryConditions_double_memview2 __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
35846  __pyx_t_6mprans_18BoundaryConditions_int_memview1 __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } };
35847  PyObject *__pyx_t_12 = NULL;
35848  Py_ssize_t __pyx_t_13;
35849  PyObject *(*__pyx_t_14)(PyObject *);
35850  Py_ssize_t __pyx_t_15;
35851  Py_ssize_t __pyx_t_16;
35852  int __pyx_t_17;
35853  int __pyx_t_18;
35854  PyObject *__pyx_t_19 = NULL;
35855  PyObject *(*__pyx_t_20)(PyObject *);
35856  Py_ssize_t __pyx_t_21;
35857  Py_ssize_t __pyx_t_22;
35858  Py_ssize_t __pyx_t_23;
35859  Py_ssize_t __pyx_t_24;
35860  __Pyx_memviewslice __pyx_t_25 = { 0, 0, { 0 }, { 0 }, { 0 } };
35861  int __pyx_lineno = 0;
35862  const char *__pyx_filename = NULL;
35863  int __pyx_clineno = 0;
35864  __Pyx_RefNannySetupContext("__cpp_iterate", 0);
35865  __Pyx_TraceCall("__cpp_iterate", __pyx_f[0], 1076, 0, __PYX_ERR(0, 1076, __pyx_L1_error));
35866 
35867  /* "mprans/BoundaryConditions.py":1077
35868  *
35869  * def __cpp_iterate(self):
35870  * nl = len(self.model.levelModelList) # <<<<<<<<<<<<<<
35871  * for l in range(nl): # usually only 1
35872  * # initialisation of variables before costly loop
35873  */
35874  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1077, __pyx_L1_error)
35875  __Pyx_GOTREF(__pyx_t_1);
35876  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1077, __pyx_L1_error)
35877  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35878  __pyx_v_nl = __pyx_t_2;
35879 
35880  /* "mprans/BoundaryConditions.py":1078
35881  * def __cpp_iterate(self):
35882  * nl = len(self.model.levelModelList)
35883  * for l in range(nl): # usually only 1 # <<<<<<<<<<<<<<
35884  * # initialisation of variables before costly loop
35885  * m = self.model.levelModelList[l]
35886  */
35887  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1078, __pyx_L1_error)
35888  __Pyx_GOTREF(__pyx_t_3);
35889  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1078, __pyx_L1_error)
35890  __Pyx_GOTREF(__pyx_t_4);
35891  __pyx_t_5 = NULL;
35892  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
35893  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
35894  if (likely(__pyx_t_5)) {
35895  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
35896  __Pyx_INCREF(__pyx_t_5);
35897  __Pyx_INCREF(function);
35898  __Pyx_DECREF_SET(__pyx_t_3, function);
35899  }
35900  }
35901  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
35902  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
35903  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35904  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error)
35905  __Pyx_GOTREF(__pyx_t_1);
35906  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35907  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
35908  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;
35909  __pyx_t_6 = NULL;
35910  } else {
35911  __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1078, __pyx_L1_error)
35912  __Pyx_GOTREF(__pyx_t_3);
35913  __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1078, __pyx_L1_error)
35914  }
35915  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35916  for (;;) {
35917  if (likely(!__pyx_t_6)) {
35918  if (likely(PyList_CheckExact(__pyx_t_3))) {
35919  if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
35920  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35921  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error)
35922  #else
35923  __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error)
35924  __Pyx_GOTREF(__pyx_t_1);
35925  #endif
35926  } else {
35927  if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
35928  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
35929  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error)
35930  #else
35931  __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error)
35932  __Pyx_GOTREF(__pyx_t_1);
35933  #endif
35934  }
35935  } else {
35936  __pyx_t_1 = __pyx_t_6(__pyx_t_3);
35937  if (unlikely(!__pyx_t_1)) {
35938  PyObject* exc_type = PyErr_Occurred();
35939  if (exc_type) {
35940  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
35941  else __PYX_ERR(0, 1078, __pyx_L1_error)
35942  }
35943  break;
35944  }
35945  __Pyx_GOTREF(__pyx_t_1);
35946  }
35947  __Pyx_XDECREF_SET(__pyx_v_l, __pyx_t_1);
35948  __pyx_t_1 = 0;
35949 
35950  /* "mprans/BoundaryConditions.py":1080
35951  * for l in range(nl): # usually only 1
35952  * # initialisation of variables before costly loop
35953  * m = self.model.levelModelList[l] # <<<<<<<<<<<<<<
35954  * nE = m.coefficients.q_phi.shape[0]
35955  * nk = m.coefficients.q_phi.shape[1]
35956  */
35957  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1080, __pyx_L1_error)
35958  __Pyx_GOTREF(__pyx_t_1);
35959  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_l); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1080, __pyx_L1_error)
35960  __Pyx_GOTREF(__pyx_t_4);
35961  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35962  __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_4);
35963  __pyx_t_4 = 0;
35964 
35965  /* "mprans/BoundaryConditions.py":1081
35966  * # initialisation of variables before costly loop
35967  * m = self.model.levelModelList[l]
35968  * nE = m.coefficients.q_phi.shape[0] # <<<<<<<<<<<<<<
35969  * nk = m.coefficients.q_phi.shape[1]
35970  * t = m.timeIntegration.t
35971  */
35972  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1081, __pyx_L1_error)
35973  __Pyx_GOTREF(__pyx_t_4);
35974  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_q_phi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error)
35975  __Pyx_GOTREF(__pyx_t_1);
35976  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35977  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1081, __pyx_L1_error)
35978  __Pyx_GOTREF(__pyx_t_4);
35979  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35980  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error)
35981  __Pyx_GOTREF(__pyx_t_1);
35982  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35983  __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1081, __pyx_L1_error)
35984  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35985  __pyx_v_nE = __pyx_t_7;
35986 
35987  /* "mprans/BoundaryConditions.py":1082
35988  * m = self.model.levelModelList[l]
35989  * nE = m.coefficients.q_phi.shape[0]
35990  * nk = m.coefficients.q_phi.shape[1] # <<<<<<<<<<<<<<
35991  * t = m.timeIntegration.t
35992  * qx = m.q['x']
35993  */
35994  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L1_error)
35995  __Pyx_GOTREF(__pyx_t_1);
35996  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_q_phi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1082, __pyx_L1_error)
35997  __Pyx_GOTREF(__pyx_t_4);
35998  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35999  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L1_error)
36000  __Pyx_GOTREF(__pyx_t_1);
36001  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36002  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1082, __pyx_L1_error)
36003  __Pyx_GOTREF(__pyx_t_4);
36004  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36005  __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1082, __pyx_L1_error)
36006  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36007  __pyx_v_nk = __pyx_t_7;
36008 
36009  /* "mprans/BoundaryConditions.py":1083
36010  * nE = m.coefficients.q_phi.shape[0]
36011  * nk = m.coefficients.q_phi.shape[1]
36012  * t = m.timeIntegration.t # <<<<<<<<<<<<<<
36013  * qx = m.q['x']
36014  * q_phi_porous = m.coefficients.q_phi_porous
36015  */
36016  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_timeIntegration); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1083, __pyx_L1_error)
36017  __Pyx_GOTREF(__pyx_t_4);
36018  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1083, __pyx_L1_error)
36019  __Pyx_GOTREF(__pyx_t_1);
36020  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36021  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1083, __pyx_L1_error)
36022  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36023  __pyx_v_t = __pyx_t_8;
36024 
36025  /* "mprans/BoundaryConditions.py":1084
36026  * nk = m.coefficients.q_phi.shape[1]
36027  * t = m.timeIntegration.t
36028  * qx = m.q['x'] # <<<<<<<<<<<<<<
36029  * q_phi_porous = m.coefficients.q_phi_porous
36030  * q_velocity_porous = m.coefficients.q_velocity_porous
36031  */
36032  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_q); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1084, __pyx_L1_error)
36033  __Pyx_GOTREF(__pyx_t_1);
36034  __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_s_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1084, __pyx_L1_error)
36035  __Pyx_GOTREF(__pyx_t_4);
36036  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36037  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 1084, __pyx_L1_error)
36038  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36039  __PYX_XDEC_MEMVIEW(&__pyx_v_qx, 1);
36040  __pyx_v_qx = __pyx_t_9;
36041  __pyx_t_9.memview = NULL;
36042  __pyx_t_9.data = NULL;
36043 
36044  /* "mprans/BoundaryConditions.py":1085
36045  * t = m.timeIntegration.t
36046  * qx = m.q['x']
36047  * q_phi_porous = m.coefficients.q_phi_porous # <<<<<<<<<<<<<<
36048  * q_velocity_porous = m.coefficients.q_velocity_porous
36049  * mTypes = m.mesh.elementMaterialTypes
36050  */
36051  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1085, __pyx_L1_error)
36052  __Pyx_GOTREF(__pyx_t_4);
36053  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_q_phi_porous); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1085, __pyx_L1_error)
36054  __Pyx_GOTREF(__pyx_t_1);
36055  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36056  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 1085, __pyx_L1_error)
36057  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36058  __PYX_XDEC_MEMVIEW(&__pyx_v_q_phi_porous, 1);
36059  __pyx_v_q_phi_porous = __pyx_t_10;
36060  __pyx_t_10.memview = NULL;
36061  __pyx_t_10.data = NULL;
36062 
36063  /* "mprans/BoundaryConditions.py":1086
36064  * qx = m.q['x']
36065  * q_phi_porous = m.coefficients.q_phi_porous
36066  * q_velocity_porous = m.coefficients.q_velocity_porous # <<<<<<<<<<<<<<
36067  * mTypes = m.mesh.elementMaterialTypes
36068  * # costly loop
36069  */
36070  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error)
36071  __Pyx_GOTREF(__pyx_t_1);
36072  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_q_velocity_porous); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1086, __pyx_L1_error)
36073  __Pyx_GOTREF(__pyx_t_4);
36074  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36075  __Pyx_XDECREF_SET(__pyx_v_q_velocity_porous, __pyx_t_4);
36076  __pyx_t_4 = 0;
36077 
36078  /* "mprans/BoundaryConditions.py":1087
36079  * q_phi_porous = m.coefficients.q_phi_porous
36080  * q_velocity_porous = m.coefficients.q_velocity_porous
36081  * mTypes = m.mesh.elementMaterialTypes # <<<<<<<<<<<<<<
36082  * # costly loop
36083  * for eN in range(nE):
36084  */
36085  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_mesh); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error)
36086  __Pyx_GOTREF(__pyx_t_4);
36087  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_elementMaterialTypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
36088  __Pyx_GOTREF(__pyx_t_1);
36089  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36090  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 1087, __pyx_L1_error)
36091  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36092  __PYX_XDEC_MEMVIEW(&__pyx_v_mTypes, 1);
36093  __pyx_v_mTypes = __pyx_t_11;
36094  __pyx_t_11.memview = NULL;
36095  __pyx_t_11.data = NULL;
36096 
36097  /* "mprans/BoundaryConditions.py":1089
36098  * mTypes = m.mesh.elementMaterialTypes
36099  * # costly loop
36100  * for eN in range(nE): # <<<<<<<<<<<<<<
36101  * mType = mTypes[eN]
36102  * if mType <= self.max_flag:
36103  */
36104  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1089, __pyx_L1_error)
36105  __Pyx_GOTREF(__pyx_t_4);
36106  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_nE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1089, __pyx_L1_error)
36107  __Pyx_GOTREF(__pyx_t_5);
36108  __pyx_t_12 = NULL;
36109  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
36110  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
36111  if (likely(__pyx_t_12)) {
36112  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
36113  __Pyx_INCREF(__pyx_t_12);
36114  __Pyx_INCREF(function);
36115  __Pyx_DECREF_SET(__pyx_t_4, function);
36116  }
36117  }
36118  __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_12, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
36119  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
36120  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36121  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L1_error)
36122  __Pyx_GOTREF(__pyx_t_1);
36123  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36124  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
36125  __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0;
36126  __pyx_t_14 = NULL;
36127  } else {
36128  __pyx_t_13 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1089, __pyx_L1_error)
36129  __Pyx_GOTREF(__pyx_t_4);
36130  __pyx_t_14 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1089, __pyx_L1_error)
36131  }
36132  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36133  for (;;) {
36134  if (likely(!__pyx_t_14)) {
36135  if (likely(PyList_CheckExact(__pyx_t_4))) {
36136  if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_4)) break;
36137  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
36138  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1089, __pyx_L1_error)
36139  #else
36140  __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L1_error)
36141  __Pyx_GOTREF(__pyx_t_1);
36142  #endif
36143  } else {
36144  if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
36145  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
36146  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1089, __pyx_L1_error)
36147  #else
36148  __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L1_error)
36149  __Pyx_GOTREF(__pyx_t_1);
36150  #endif
36151  }
36152  } else {
36153  __pyx_t_1 = __pyx_t_14(__pyx_t_4);
36154  if (unlikely(!__pyx_t_1)) {
36155  PyObject* exc_type = PyErr_Occurred();
36156  if (exc_type) {
36157  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
36158  else __PYX_ERR(0, 1089, __pyx_L1_error)
36159  }
36160  break;
36161  }
36162  __Pyx_GOTREF(__pyx_t_1);
36163  }
36164  __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_1);
36165  __pyx_t_1 = 0;
36166 
36167  /* "mprans/BoundaryConditions.py":1090
36168  * # costly loop
36169  * for eN in range(nE):
36170  * mType = mTypes[eN] # <<<<<<<<<<<<<<
36171  * if mType <= self.max_flag:
36172  * zone = self.zones_array[mType]
36173  */
36174  __pyx_t_15 = __Pyx_PyIndex_AsSsize_t(__pyx_v_eN); if (unlikely((__pyx_t_15 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L1_error)
36175  __pyx_t_16 = __pyx_t_15;
36176  __pyx_v_mType = (*((int *) ( /* dim=0 */ (__pyx_v_mTypes.data + __pyx_t_16 * __pyx_v_mTypes.strides[0]) )));
36177 
36178  /* "mprans/BoundaryConditions.py":1091
36179  * for eN in range(nE):
36180  * mType = mTypes[eN]
36181  * if mType <= self.max_flag: # <<<<<<<<<<<<<<
36182  * zone = self.zones_array[mType]
36183  * if zone is not None:
36184  */
36185  __pyx_t_17 = ((__pyx_v_mType <= __pyx_v_self->max_flag) != 0);
36186  if (__pyx_t_17) {
36187 
36188  /* "mprans/BoundaryConditions.py":1092
36189  * mType = mTypes[eN]
36190  * if mType <= self.max_flag:
36191  * zone = self.zones_array[mType] # <<<<<<<<<<<<<<
36192  * if zone is not None:
36193  * for k in range(nk):
36194  */
36195  __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->zones_array), __pyx_v_mType, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1092, __pyx_L1_error)
36196  __Pyx_GOTREF(__pyx_t_1);
36197  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone))))) __PYX_ERR(0, 1092, __pyx_L1_error)
36198  __Pyx_XDECREF_SET(__pyx_v_zone, ((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_t_1));
36199  __pyx_t_1 = 0;
36200 
36201  /* "mprans/BoundaryConditions.py":1093
36202  * if mType <= self.max_flag:
36203  * zone = self.zones_array[mType]
36204  * if zone is not None: # <<<<<<<<<<<<<<
36205  * for k in range(nk):
36206  * x[0] = qx[eN, k, 0]
36207  */
36208  __pyx_t_17 = (((PyObject *)__pyx_v_zone) != Py_None);
36209  __pyx_t_18 = (__pyx_t_17 != 0);
36210  if (__pyx_t_18) {
36211 
36212  /* "mprans/BoundaryConditions.py":1094
36213  * zone = self.zones_array[mType]
36214  * if zone is not None:
36215  * for k in range(nk): # <<<<<<<<<<<<<<
36216  * x[0] = qx[eN, k, 0]
36217  * x[1] = qx[eN, k, 1]
36218  */
36219  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1094, __pyx_L1_error)
36220  __Pyx_GOTREF(__pyx_t_5);
36221  __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_nk); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1094, __pyx_L1_error)
36222  __Pyx_GOTREF(__pyx_t_12);
36223  __pyx_t_19 = NULL;
36224  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
36225  __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5);
36226  if (likely(__pyx_t_19)) {
36227  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
36228  __Pyx_INCREF(__pyx_t_19);
36229  __Pyx_INCREF(function);
36230  __Pyx_DECREF_SET(__pyx_t_5, function);
36231  }
36232  }
36233  __pyx_t_1 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_19, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_12);
36234  __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
36235  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
36236  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error)
36237  __Pyx_GOTREF(__pyx_t_1);
36238  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36239  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
36240  __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_15 = 0;
36241  __pyx_t_20 = NULL;
36242  } else {
36243  __pyx_t_15 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1094, __pyx_L1_error)
36244  __Pyx_GOTREF(__pyx_t_5);
36245  __pyx_t_20 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1094, __pyx_L1_error)
36246  }
36247  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36248  for (;;) {
36249  if (likely(!__pyx_t_20)) {
36250  if (likely(PyList_CheckExact(__pyx_t_5))) {
36251  if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_5)) break;
36252  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
36253  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_1); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1094, __pyx_L1_error)
36254  #else
36255  __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error)
36256  __Pyx_GOTREF(__pyx_t_1);
36257  #endif
36258  } else {
36259  if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
36260  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
36261  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_1); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1094, __pyx_L1_error)
36262  #else
36263  __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error)
36264  __Pyx_GOTREF(__pyx_t_1);
36265  #endif
36266  }
36267  } else {
36268  __pyx_t_1 = __pyx_t_20(__pyx_t_5);
36269  if (unlikely(!__pyx_t_1)) {
36270  PyObject* exc_type = PyErr_Occurred();
36271  if (exc_type) {
36272  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
36273  else __PYX_ERR(0, 1094, __pyx_L1_error)
36274  }
36275  break;
36276  }
36277  __Pyx_GOTREF(__pyx_t_1);
36278  }
36279  __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1);
36280  __pyx_t_1 = 0;
36281 
36282  /* "mprans/BoundaryConditions.py":1095
36283  * if zone is not None:
36284  * for k in range(nk):
36285  * x[0] = qx[eN, k, 0] # <<<<<<<<<<<<<<
36286  * x[1] = qx[eN, k, 1]
36287  * x[2] = qx[eN, k, 2]
36288  */
36289  __pyx_t_21 = __Pyx_PyIndex_AsSsize_t(__pyx_v_eN); if (unlikely((__pyx_t_21 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error)
36290  __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_v_k); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error)
36291  __pyx_t_16 = __pyx_t_21;
36292  __pyx_t_23 = __pyx_t_22;
36293  __pyx_t_24 = 0;
36294  (__pyx_v_x[0]) = (*((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_qx.data + __pyx_t_16 * __pyx_v_qx.strides[0]) ) + __pyx_t_23 * __pyx_v_qx.strides[1]) ) + __pyx_t_24 * __pyx_v_qx.strides[2]) )));
36295 
36296  /* "mprans/BoundaryConditions.py":1096
36297  * for k in range(nk):
36298  * x[0] = qx[eN, k, 0]
36299  * x[1] = qx[eN, k, 1] # <<<<<<<<<<<<<<
36300  * x[2] = qx[eN, k, 2]
36301  * phi = zone.calculate_phi(x)
36302  */
36303  __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_v_eN); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error)
36304  __pyx_t_21 = __Pyx_PyIndex_AsSsize_t(__pyx_v_k); if (unlikely((__pyx_t_21 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error)
36305  __pyx_t_24 = __pyx_t_22;
36306  __pyx_t_23 = __pyx_t_21;
36307  __pyx_t_16 = 1;
36308  (__pyx_v_x[1]) = (*((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_qx.data + __pyx_t_24 * __pyx_v_qx.strides[0]) ) + __pyx_t_23 * __pyx_v_qx.strides[1]) ) + __pyx_t_16 * __pyx_v_qx.strides[2]) )));
36309 
36310  /* "mprans/BoundaryConditions.py":1097
36311  * x[0] = qx[eN, k, 0]
36312  * x[1] = qx[eN, k, 1]
36313  * x[2] = qx[eN, k, 2] # <<<<<<<<<<<<<<
36314  * phi = zone.calculate_phi(x)
36315  * q_phi_porous[eN, k] = phi
36316  */
36317  __pyx_t_21 = __Pyx_PyIndex_AsSsize_t(__pyx_v_eN); if (unlikely((__pyx_t_21 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error)
36318  __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_v_k); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error)
36319  __pyx_t_16 = __pyx_t_21;
36320  __pyx_t_23 = __pyx_t_22;
36321  __pyx_t_24 = 2;
36322  (__pyx_v_x[2]) = (*((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_qx.data + __pyx_t_16 * __pyx_v_qx.strides[0]) ) + __pyx_t_23 * __pyx_v_qx.strides[1]) ) + __pyx_t_24 * __pyx_v_qx.strides[2]) )));
36323 
36324  /* "mprans/BoundaryConditions.py":1098
36325  * x[1] = qx[eN, k, 1]
36326  * x[2] = qx[eN, k, 2]
36327  * phi = zone.calculate_phi(x) # <<<<<<<<<<<<<<
36328  * q_phi_porous[eN, k] = phi
36329  * u = zone.calculate_vel(x, t)
36330  */
36331  __pyx_v_phi = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_zone->__pyx_vtab)->calculate_phi(__pyx_v_zone, __pyx_v_x);
36332 
36333  /* "mprans/BoundaryConditions.py":1099
36334  * x[2] = qx[eN, k, 2]
36335  * phi = zone.calculate_phi(x)
36336  * q_phi_porous[eN, k] = phi # <<<<<<<<<<<<<<
36337  * u = zone.calculate_vel(x, t)
36338  * q_velocity_porous[eN, k, 0] = u[0]
36339  */
36340  __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_v_eN); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L1_error)
36341  __pyx_t_21 = __Pyx_PyIndex_AsSsize_t(__pyx_v_k); if (unlikely((__pyx_t_21 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L1_error)
36342  __pyx_t_24 = __pyx_t_22;
36343  __pyx_t_23 = __pyx_t_21;
36344  *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_q_phi_porous.data + __pyx_t_24 * __pyx_v_q_phi_porous.strides[0]) ) + __pyx_t_23 * __pyx_v_q_phi_porous.strides[1]) )) = __pyx_v_phi;
36345 
36346  /* "mprans/BoundaryConditions.py":1100
36347  * phi = zone.calculate_phi(x)
36348  * q_phi_porous[eN, k] = phi
36349  * u = zone.calculate_vel(x, t) # <<<<<<<<<<<<<<
36350  * q_velocity_porous[eN, k, 0] = u[0]
36351  * q_velocity_porous[eN, k, 1] = u[1]
36352  */
36353  __pyx_t_25 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone *)__pyx_v_zone->__pyx_vtab)->calculate_vel(__pyx_v_zone, __pyx_v_x, __pyx_v_t); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 1100, __pyx_L1_error)
36354  __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
36355  __pyx_v_u = __pyx_t_25;
36356  __pyx_t_25.memview = NULL;
36357  __pyx_t_25.data = NULL;
36358 
36359  /* "mprans/BoundaryConditions.py":1101
36360  * q_phi_porous[eN, k] = phi
36361  * u = zone.calculate_vel(x, t)
36362  * q_velocity_porous[eN, k, 0] = u[0] # <<<<<<<<<<<<<<
36363  * q_velocity_porous[eN, k, 1] = u[1]
36364  * if self.nd > 2:
36365  */
36366  __pyx_t_23 = 0;
36367  __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_23 * __pyx_v_u.strides[0]) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error)
36368  __Pyx_GOTREF(__pyx_t_1);
36369  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1101, __pyx_L1_error)
36370  __Pyx_GOTREF(__pyx_t_12);
36371  __Pyx_INCREF(__pyx_v_eN);
36372  __Pyx_GIVEREF(__pyx_v_eN);
36373  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_eN);
36374  __Pyx_INCREF(__pyx_v_k);
36375  __Pyx_GIVEREF(__pyx_v_k);
36376  PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_k);
36377  __Pyx_INCREF(__pyx_int_0);
36378  __Pyx_GIVEREF(__pyx_int_0);
36379  PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_int_0);
36380  if (unlikely(PyObject_SetItem(__pyx_v_q_velocity_porous, __pyx_t_12, __pyx_t_1) < 0)) __PYX_ERR(0, 1101, __pyx_L1_error)
36381  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
36382  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36383 
36384  /* "mprans/BoundaryConditions.py":1102
36385  * u = zone.calculate_vel(x, t)
36386  * q_velocity_porous[eN, k, 0] = u[0]
36387  * q_velocity_porous[eN, k, 1] = u[1] # <<<<<<<<<<<<<<
36388  * if self.nd > 2:
36389  * q_velocity_porous[eN, k, 2] = u[2]
36390  */
36391  __pyx_t_23 = 1;
36392  __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_23 * __pyx_v_u.strides[0]) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error)
36393  __Pyx_GOTREF(__pyx_t_1);
36394  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1102, __pyx_L1_error)
36395  __Pyx_GOTREF(__pyx_t_12);
36396  __Pyx_INCREF(__pyx_v_eN);
36397  __Pyx_GIVEREF(__pyx_v_eN);
36398  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_eN);
36399  __Pyx_INCREF(__pyx_v_k);
36400  __Pyx_GIVEREF(__pyx_v_k);
36401  PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_k);
36402  __Pyx_INCREF(__pyx_int_1);
36403  __Pyx_GIVEREF(__pyx_int_1);
36404  PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_int_1);
36405  if (unlikely(PyObject_SetItem(__pyx_v_q_velocity_porous, __pyx_t_12, __pyx_t_1) < 0)) __PYX_ERR(0, 1102, __pyx_L1_error)
36406  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
36407  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36408 
36409  /* "mprans/BoundaryConditions.py":1103
36410  * q_velocity_porous[eN, k, 0] = u[0]
36411  * q_velocity_porous[eN, k, 1] = u[1]
36412  * if self.nd > 2: # <<<<<<<<<<<<<<
36413  * q_velocity_porous[eN, k, 2] = u[2]
36414  * m.q['phi_porous'] = q_phi_porous
36415  */
36416  __pyx_t_18 = ((__pyx_v_self->nd > 2) != 0);
36417  if (__pyx_t_18) {
36418 
36419  /* "mprans/BoundaryConditions.py":1104
36420  * q_velocity_porous[eN, k, 1] = u[1]
36421  * if self.nd > 2:
36422  * q_velocity_porous[eN, k, 2] = u[2] # <<<<<<<<<<<<<<
36423  * m.q['phi_porous'] = q_phi_porous
36424  * m.q['velocity_porous'] = q_velocity_porous
36425  */
36426  __pyx_t_23 = 2;
36427  __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_23 * __pyx_v_u.strides[0]) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1104, __pyx_L1_error)
36428  __Pyx_GOTREF(__pyx_t_1);
36429  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1104, __pyx_L1_error)
36430  __Pyx_GOTREF(__pyx_t_12);
36431  __Pyx_INCREF(__pyx_v_eN);
36432  __Pyx_GIVEREF(__pyx_v_eN);
36433  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_eN);
36434  __Pyx_INCREF(__pyx_v_k);
36435  __Pyx_GIVEREF(__pyx_v_k);
36436  PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_k);
36437  __Pyx_INCREF(__pyx_int_2);
36438  __Pyx_GIVEREF(__pyx_int_2);
36439  PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_int_2);
36440  if (unlikely(PyObject_SetItem(__pyx_v_q_velocity_porous, __pyx_t_12, __pyx_t_1) < 0)) __PYX_ERR(0, 1104, __pyx_L1_error)
36441  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
36442  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36443 
36444  /* "mprans/BoundaryConditions.py":1103
36445  * q_velocity_porous[eN, k, 0] = u[0]
36446  * q_velocity_porous[eN, k, 1] = u[1]
36447  * if self.nd > 2: # <<<<<<<<<<<<<<
36448  * q_velocity_porous[eN, k, 2] = u[2]
36449  * m.q['phi_porous'] = q_phi_porous
36450  */
36451  }
36452 
36453  /* "mprans/BoundaryConditions.py":1094
36454  * zone = self.zones_array[mType]
36455  * if zone is not None:
36456  * for k in range(nk): # <<<<<<<<<<<<<<
36457  * x[0] = qx[eN, k, 0]
36458  * x[1] = qx[eN, k, 1]
36459  */
36460  }
36461  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36462 
36463  /* "mprans/BoundaryConditions.py":1093
36464  * if mType <= self.max_flag:
36465  * zone = self.zones_array[mType]
36466  * if zone is not None: # <<<<<<<<<<<<<<
36467  * for k in range(nk):
36468  * x[0] = qx[eN, k, 0]
36469  */
36470  }
36471 
36472  /* "mprans/BoundaryConditions.py":1091
36473  * for eN in range(nE):
36474  * mType = mTypes[eN]
36475  * if mType <= self.max_flag: # <<<<<<<<<<<<<<
36476  * zone = self.zones_array[mType]
36477  * if zone is not None:
36478  */
36479  }
36480 
36481  /* "mprans/BoundaryConditions.py":1089
36482  * mTypes = m.mesh.elementMaterialTypes
36483  * # costly loop
36484  * for eN in range(nE): # <<<<<<<<<<<<<<
36485  * mType = mTypes[eN]
36486  * if mType <= self.max_flag:
36487  */
36488  }
36489  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36490 
36491  /* "mprans/BoundaryConditions.py":1105
36492  * if self.nd > 2:
36493  * q_velocity_porous[eN, k, 2] = u[2]
36494  * m.q['phi_porous'] = q_phi_porous # <<<<<<<<<<<<<<
36495  * m.q['velocity_porous'] = q_velocity_porous
36496  *
36497  */
36498  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_q_phi_porous, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1105, __pyx_L1_error)
36499  __Pyx_GOTREF(__pyx_t_4);
36500  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_q); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1105, __pyx_L1_error)
36501  __Pyx_GOTREF(__pyx_t_5);
36502  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_s_phi_porous, __pyx_t_4) < 0)) __PYX_ERR(0, 1105, __pyx_L1_error)
36503  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36504  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36505 
36506  /* "mprans/BoundaryConditions.py":1106
36507  * q_velocity_porous[eN, k, 2] = u[2]
36508  * m.q['phi_porous'] = q_phi_porous
36509  * m.q['velocity_porous'] = q_velocity_porous # <<<<<<<<<<<<<<
36510  *
36511  *
36512  */
36513  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_q); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1106, __pyx_L1_error)
36514  __Pyx_GOTREF(__pyx_t_4);
36515  if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_s_velocity_porous, __pyx_v_q_velocity_porous) < 0)) __PYX_ERR(0, 1106, __pyx_L1_error)
36516  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36517 
36518  /* "mprans/BoundaryConditions.py":1078
36519  * def __cpp_iterate(self):
36520  * nl = len(self.model.levelModelList)
36521  * for l in range(nl): # usually only 1 # <<<<<<<<<<<<<<
36522  * # initialisation of variables before costly loop
36523  * m = self.model.levelModelList[l]
36524  */
36525  }
36526  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36527 
36528  /* "mprans/BoundaryConditions.py":1076
36529  * self.__cpp_iterate()
36530  *
36531  * def __cpp_iterate(self): # <<<<<<<<<<<<<<
36532  * nl = len(self.model.levelModelList)
36533  * for l in range(nl): # usually only 1
36534  */
36535 
36536  /* function exit code */
36537  goto __pyx_L0;
36538  __pyx_L1_error:;
36539  __Pyx_XDECREF(__pyx_t_1);
36540  __Pyx_XDECREF(__pyx_t_3);
36541  __Pyx_XDECREF(__pyx_t_4);
36542  __Pyx_XDECREF(__pyx_t_5);
36543  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
36544  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
36545  __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
36546  __Pyx_XDECREF(__pyx_t_12);
36547  __Pyx_XDECREF(__pyx_t_19);
36548  __PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
36549  __Pyx_WriteUnraisable("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.__cpp_iterate", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
36550  __pyx_L0:;
36551  __Pyx_XDECREF(__pyx_v_m);
36552  __Pyx_XDECREF((PyObject *)__pyx_v_zone);
36553  __PYX_XDEC_MEMVIEW(&__pyx_v_qx, 1);
36554  __PYX_XDEC_MEMVIEW(&__pyx_v_q_phi_porous, 1);
36555  __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
36556  __PYX_XDEC_MEMVIEW(&__pyx_v_mTypes, 1);
36557  __Pyx_XDECREF(__pyx_v_l);
36558  __Pyx_XDECREF(__pyx_v_q_velocity_porous);
36559  __Pyx_XDECREF(__pyx_v_eN);
36560  __Pyx_XDECREF(__pyx_v_k);
36561  __Pyx_TraceReturn(Py_None, 0);
36562  __Pyx_RefNannyFinishContext();
36563 }
36564 
36565 /* "mprans/BoundaryConditions.pxd":157
36566  * cdef np.ndarray zones_array # zones array for fast access
36567  * cdef public:
36568  * dict zones # zones dictionary # <<<<<<<<<<<<<<
36569  * object model # model attached to zone
36570  * object ar #
36571  */
36572 
36573 /* Python wrapper */
36574 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_1__get__(PyObject *__pyx_v_self); /*proto*/
36575 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_1__get__(PyObject *__pyx_v_self) {
36576  PyObject *__pyx_r = 0;
36577  __Pyx_RefNannyDeclarations
36578  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
36579  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36580 
36581  /* function exit code */
36582  __Pyx_RefNannyFinishContext();
36583  return __pyx_r;
36584 }
36585 
36586 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36587  PyObject *__pyx_r = NULL;
36588  __Pyx_TraceDeclarations
36589  __Pyx_RefNannyDeclarations
36590  int __pyx_lineno = 0;
36591  const char *__pyx_filename = NULL;
36592  int __pyx_clineno = 0;
36593  __Pyx_RefNannySetupContext("__get__", 0);
36594  __Pyx_TraceCall("__get__", __pyx_f[2], 157, 0, __PYX_ERR(2, 157, __pyx_L1_error));
36595  __Pyx_XDECREF(__pyx_r);
36596  __Pyx_INCREF(__pyx_v_self->zones);
36597  __pyx_r = __pyx_v_self->zones;
36598  goto __pyx_L0;
36599 
36600  /* function exit code */
36601  __pyx_L1_error:;
36602  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.zones.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36603  __pyx_r = NULL;
36604  __pyx_L0:;
36605  __Pyx_XGIVEREF(__pyx_r);
36606  __Pyx_TraceReturn(__pyx_r, 0);
36607  __Pyx_RefNannyFinishContext();
36608  return __pyx_r;
36609 }
36610 
36611 /* Python wrapper */
36612 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
36613 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
36614  int __pyx_r;
36615  __Pyx_RefNannyDeclarations
36616  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
36617  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
36618 
36619  /* function exit code */
36620  __Pyx_RefNannyFinishContext();
36621  return __pyx_r;
36622 }
36623 
36624 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value) {
36625  int __pyx_r;
36626  __Pyx_TraceDeclarations
36627  __Pyx_RefNannyDeclarations
36628  PyObject *__pyx_t_1 = NULL;
36629  int __pyx_lineno = 0;
36630  const char *__pyx_filename = NULL;
36631  int __pyx_clineno = 0;
36632  __Pyx_RefNannySetupContext("__set__", 0);
36633  __Pyx_TraceCall("__set__", __pyx_f[2], 157, 0, __PYX_ERR(2, 157, __pyx_L1_error));
36634  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(2, 157, __pyx_L1_error)
36635  __pyx_t_1 = __pyx_v_value;
36636  __Pyx_INCREF(__pyx_t_1);
36637  __Pyx_GIVEREF(__pyx_t_1);
36638  __Pyx_GOTREF(__pyx_v_self->zones);
36639  __Pyx_DECREF(__pyx_v_self->zones);
36640  __pyx_v_self->zones = ((PyObject*)__pyx_t_1);
36641  __pyx_t_1 = 0;
36642 
36643  /* function exit code */
36644  __pyx_r = 0;
36645  goto __pyx_L0;
36646  __pyx_L1_error:;
36647  __Pyx_XDECREF(__pyx_t_1);
36648  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.zones.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36649  __pyx_r = -1;
36650  __pyx_L0:;
36651  __Pyx_TraceReturn(Py_None, 0);
36652  __Pyx_RefNannyFinishContext();
36653  return __pyx_r;
36654 }
36655 
36656 /* Python wrapper */
36657 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_5__del__(PyObject *__pyx_v_self); /*proto*/
36658 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_5__del__(PyObject *__pyx_v_self) {
36659  int __pyx_r;
36660  __Pyx_RefNannyDeclarations
36661  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
36662  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36663 
36664  /* function exit code */
36665  __Pyx_RefNannyFinishContext();
36666  return __pyx_r;
36667 }
36668 
36669 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36670  int __pyx_r;
36671  __Pyx_TraceDeclarations
36672  __Pyx_RefNannyDeclarations
36673  int __pyx_lineno = 0;
36674  const char *__pyx_filename = NULL;
36675  int __pyx_clineno = 0;
36676  __Pyx_RefNannySetupContext("__del__", 0);
36677  __Pyx_TraceCall("__del__", __pyx_f[2], 157, 0, __PYX_ERR(2, 157, __pyx_L1_error));
36678  __Pyx_INCREF(Py_None);
36679  __Pyx_GIVEREF(Py_None);
36680  __Pyx_GOTREF(__pyx_v_self->zones);
36681  __Pyx_DECREF(__pyx_v_self->zones);
36682  __pyx_v_self->zones = ((PyObject*)Py_None);
36683 
36684  /* function exit code */
36685  __pyx_r = 0;
36686  goto __pyx_L0;
36687  __pyx_L1_error:;
36688  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.zones.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36689  __pyx_r = -1;
36690  __pyx_L0:;
36691  __Pyx_TraceReturn(Py_None, 0);
36692  __Pyx_RefNannyFinishContext();
36693  return __pyx_r;
36694 }
36695 
36696 /* "mprans/BoundaryConditions.pxd":158
36697  * cdef public:
36698  * dict zones # zones dictionary
36699  * object model # model attached to zone # <<<<<<<<<<<<<<
36700  * object ar #
36701  * # cpdef RelaxationZoneWaveGenerator attachModel(self, dict, int) # needed
36702  */
36703 
36704 /* Python wrapper */
36705 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_1__get__(PyObject *__pyx_v_self); /*proto*/
36706 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_1__get__(PyObject *__pyx_v_self) {
36707  PyObject *__pyx_r = 0;
36708  __Pyx_RefNannyDeclarations
36709  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
36710  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36711 
36712  /* function exit code */
36713  __Pyx_RefNannyFinishContext();
36714  return __pyx_r;
36715 }
36716 
36717 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36718  PyObject *__pyx_r = NULL;
36719  __Pyx_TraceDeclarations
36720  __Pyx_RefNannyDeclarations
36721  int __pyx_lineno = 0;
36722  const char *__pyx_filename = NULL;
36723  int __pyx_clineno = 0;
36724  __Pyx_RefNannySetupContext("__get__", 0);
36725  __Pyx_TraceCall("__get__", __pyx_f[2], 158, 0, __PYX_ERR(2, 158, __pyx_L1_error));
36726  __Pyx_XDECREF(__pyx_r);
36727  __Pyx_INCREF(__pyx_v_self->model);
36728  __pyx_r = __pyx_v_self->model;
36729  goto __pyx_L0;
36730 
36731  /* function exit code */
36732  __pyx_L1_error:;
36733  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.model.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36734  __pyx_r = NULL;
36735  __pyx_L0:;
36736  __Pyx_XGIVEREF(__pyx_r);
36737  __Pyx_TraceReturn(__pyx_r, 0);
36738  __Pyx_RefNannyFinishContext();
36739  return __pyx_r;
36740 }
36741 
36742 /* Python wrapper */
36743 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
36744 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
36745  int __pyx_r;
36746  __Pyx_RefNannyDeclarations
36747  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
36748  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
36749 
36750  /* function exit code */
36751  __Pyx_RefNannyFinishContext();
36752  return __pyx_r;
36753 }
36754 
36755 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value) {
36756  int __pyx_r;
36757  __Pyx_TraceDeclarations
36758  __Pyx_RefNannyDeclarations
36759  int __pyx_lineno = 0;
36760  const char *__pyx_filename = NULL;
36761  int __pyx_clineno = 0;
36762  __Pyx_RefNannySetupContext("__set__", 0);
36763  __Pyx_TraceCall("__set__", __pyx_f[2], 158, 0, __PYX_ERR(2, 158, __pyx_L1_error));
36764  __Pyx_INCREF(__pyx_v_value);
36765  __Pyx_GIVEREF(__pyx_v_value);
36766  __Pyx_GOTREF(__pyx_v_self->model);
36767  __Pyx_DECREF(__pyx_v_self->model);
36768  __pyx_v_self->model = __pyx_v_value;
36769 
36770  /* function exit code */
36771  __pyx_r = 0;
36772  goto __pyx_L0;
36773  __pyx_L1_error:;
36774  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.model.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36775  __pyx_r = -1;
36776  __pyx_L0:;
36777  __Pyx_TraceReturn(Py_None, 0);
36778  __Pyx_RefNannyFinishContext();
36779  return __pyx_r;
36780 }
36781 
36782 /* Python wrapper */
36783 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_5__del__(PyObject *__pyx_v_self); /*proto*/
36784 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_5__del__(PyObject *__pyx_v_self) {
36785  int __pyx_r;
36786  __Pyx_RefNannyDeclarations
36787  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
36788  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36789 
36790  /* function exit code */
36791  __Pyx_RefNannyFinishContext();
36792  return __pyx_r;
36793 }
36794 
36795 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36796  int __pyx_r;
36797  __Pyx_TraceDeclarations
36798  __Pyx_RefNannyDeclarations
36799  int __pyx_lineno = 0;
36800  const char *__pyx_filename = NULL;
36801  int __pyx_clineno = 0;
36802  __Pyx_RefNannySetupContext("__del__", 0);
36803  __Pyx_TraceCall("__del__", __pyx_f[2], 158, 0, __PYX_ERR(2, 158, __pyx_L1_error));
36804  __Pyx_INCREF(Py_None);
36805  __Pyx_GIVEREF(Py_None);
36806  __Pyx_GOTREF(__pyx_v_self->model);
36807  __Pyx_DECREF(__pyx_v_self->model);
36808  __pyx_v_self->model = Py_None;
36809 
36810  /* function exit code */
36811  __pyx_r = 0;
36812  goto __pyx_L0;
36813  __pyx_L1_error:;
36814  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.model.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36815  __pyx_r = -1;
36816  __pyx_L0:;
36817  __Pyx_TraceReturn(Py_None, 0);
36818  __Pyx_RefNannyFinishContext();
36819  return __pyx_r;
36820 }
36821 
36822 /* "mprans/BoundaryConditions.pxd":159
36823  * dict zones # zones dictionary
36824  * object model # model attached to zone
36825  * object ar # # <<<<<<<<<<<<<<
36826  * # cpdef RelaxationZoneWaveGenerator attachModel(self, dict, int) # needed
36827  * # cpdef void attachAuxiliaryVariables(self, dict) # needed
36828  */
36829 
36830 /* Python wrapper */
36831 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_1__get__(PyObject *__pyx_v_self); /*proto*/
36832 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_1__get__(PyObject *__pyx_v_self) {
36833  PyObject *__pyx_r = 0;
36834  __Pyx_RefNannyDeclarations
36835  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
36836  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar___get__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36837 
36838  /* function exit code */
36839  __Pyx_RefNannyFinishContext();
36840  return __pyx_r;
36841 }
36842 
36843 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar___get__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36844  PyObject *__pyx_r = NULL;
36845  __Pyx_TraceDeclarations
36846  __Pyx_RefNannyDeclarations
36847  int __pyx_lineno = 0;
36848  const char *__pyx_filename = NULL;
36849  int __pyx_clineno = 0;
36850  __Pyx_RefNannySetupContext("__get__", 0);
36851  __Pyx_TraceCall("__get__", __pyx_f[2], 159, 0, __PYX_ERR(2, 159, __pyx_L1_error));
36852  __Pyx_XDECREF(__pyx_r);
36853  __Pyx_INCREF(__pyx_v_self->ar);
36854  __pyx_r = __pyx_v_self->ar;
36855  goto __pyx_L0;
36856 
36857  /* function exit code */
36858  __pyx_L1_error:;
36859  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.ar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36860  __pyx_r = NULL;
36861  __pyx_L0:;
36862  __Pyx_XGIVEREF(__pyx_r);
36863  __Pyx_TraceReturn(__pyx_r, 0);
36864  __Pyx_RefNannyFinishContext();
36865  return __pyx_r;
36866 }
36867 
36868 /* Python wrapper */
36869 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
36870 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
36871  int __pyx_r;
36872  __Pyx_RefNannyDeclarations
36873  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
36874  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
36875 
36876  /* function exit code */
36877  __Pyx_RefNannyFinishContext();
36878  return __pyx_r;
36879 }
36880 
36881 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v_value) {
36882  int __pyx_r;
36883  __Pyx_TraceDeclarations
36884  __Pyx_RefNannyDeclarations
36885  int __pyx_lineno = 0;
36886  const char *__pyx_filename = NULL;
36887  int __pyx_clineno = 0;
36888  __Pyx_RefNannySetupContext("__set__", 0);
36889  __Pyx_TraceCall("__set__", __pyx_f[2], 159, 0, __PYX_ERR(2, 159, __pyx_L1_error));
36890  __Pyx_INCREF(__pyx_v_value);
36891  __Pyx_GIVEREF(__pyx_v_value);
36892  __Pyx_GOTREF(__pyx_v_self->ar);
36893  __Pyx_DECREF(__pyx_v_self->ar);
36894  __pyx_v_self->ar = __pyx_v_value;
36895 
36896  /* function exit code */
36897  __pyx_r = 0;
36898  goto __pyx_L0;
36899  __pyx_L1_error:;
36900  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.ar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36901  __pyx_r = -1;
36902  __pyx_L0:;
36903  __Pyx_TraceReturn(Py_None, 0);
36904  __Pyx_RefNannyFinishContext();
36905  return __pyx_r;
36906 }
36907 
36908 /* Python wrapper */
36909 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_5__del__(PyObject *__pyx_v_self); /*proto*/
36910 static int __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_5__del__(PyObject *__pyx_v_self) {
36911  int __pyx_r;
36912  __Pyx_RefNannyDeclarations
36913  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
36914  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36915 
36916  /* function exit code */
36917  __Pyx_RefNannyFinishContext();
36918  return __pyx_r;
36919 }
36920 
36921 static int __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36922  int __pyx_r;
36923  __Pyx_TraceDeclarations
36924  __Pyx_RefNannyDeclarations
36925  int __pyx_lineno = 0;
36926  const char *__pyx_filename = NULL;
36927  int __pyx_clineno = 0;
36928  __Pyx_RefNannySetupContext("__del__", 0);
36929  __Pyx_TraceCall("__del__", __pyx_f[2], 159, 0, __PYX_ERR(2, 159, __pyx_L1_error));
36930  __Pyx_INCREF(Py_None);
36931  __Pyx_GIVEREF(Py_None);
36932  __Pyx_GOTREF(__pyx_v_self->ar);
36933  __Pyx_DECREF(__pyx_v_self->ar);
36934  __pyx_v_self->ar = Py_None;
36935 
36936  /* function exit code */
36937  __pyx_r = 0;
36938  goto __pyx_L0;
36939  __pyx_L1_error:;
36940  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.ar.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36941  __pyx_r = -1;
36942  __pyx_L0:;
36943  __Pyx_TraceReturn(Py_None, 0);
36944  __Pyx_RefNannyFinishContext();
36945  return __pyx_r;
36946 }
36947 
36948 /* "(tree fragment)":1
36949  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
36950  * cdef tuple state
36951  * cdef object _dict
36952  */
36953 
36954 /* Python wrapper */
36955 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
36956 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__[] = "RelaxationZoneWaveGenerator.__reduce_cython__(self)";
36957 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__};
36958 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
36959  PyObject *__pyx_r = 0;
36960  __Pyx_RefNannyDeclarations
36961  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
36962  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self));
36963 
36964  /* function exit code */
36965  __Pyx_RefNannyFinishContext();
36966  return __pyx_r;
36967 }
36968 
36969 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self) {
36970  PyObject *__pyx_v_state = 0;
36971  PyObject *__pyx_v__dict = 0;
36972  int __pyx_v_use_setstate;
36973  PyObject *__pyx_r = NULL;
36974  __Pyx_TraceDeclarations
36975  __Pyx_RefNannyDeclarations
36976  PyObject *__pyx_t_1 = NULL;
36977  PyObject *__pyx_t_2 = NULL;
36978  PyObject *__pyx_t_3 = NULL;
36979  int __pyx_t_4;
36980  int __pyx_t_5;
36981  int __pyx_t_6;
36982  int __pyx_lineno = 0;
36983  const char *__pyx_filename = NULL;
36984  int __pyx_clineno = 0;
36985  __Pyx_TraceFrameInit(__pyx_codeobj__103)
36986  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
36987  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
36988 
36989  /* "(tree fragment)":5
36990  * cdef object _dict
36991  * cdef bint use_setstate
36992  * state = (self.ar, self.max_flag, self.model, self.nd, self.zones, self.zones_array) # <<<<<<<<<<<<<<
36993  * _dict = getattr(self, '__dict__', None)
36994  * if _dict is not None:
36995  */
36996  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->max_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
36997  __Pyx_GOTREF(__pyx_t_1);
36998  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->nd); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
36999  __Pyx_GOTREF(__pyx_t_2);
37000  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
37001  __Pyx_GOTREF(__pyx_t_3);
37002  __Pyx_INCREF(__pyx_v_self->ar);
37003  __Pyx_GIVEREF(__pyx_v_self->ar);
37004  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->ar);
37005  __Pyx_GIVEREF(__pyx_t_1);
37006  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
37007  __Pyx_INCREF(__pyx_v_self->model);
37008  __Pyx_GIVEREF(__pyx_v_self->model);
37009  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->model);
37010  __Pyx_GIVEREF(__pyx_t_2);
37011  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
37012  __Pyx_INCREF(__pyx_v_self->zones);
37013  __Pyx_GIVEREF(__pyx_v_self->zones);
37014  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->zones);
37015  __Pyx_INCREF(((PyObject *)__pyx_v_self->zones_array));
37016  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->zones_array));
37017  PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->zones_array));
37018  __pyx_t_1 = 0;
37019  __pyx_t_2 = 0;
37020  __pyx_v_state = ((PyObject*)__pyx_t_3);
37021  __pyx_t_3 = 0;
37022 
37023  /* "(tree fragment)":6
37024  * cdef bint use_setstate
37025  * state = (self.ar, self.max_flag, self.model, self.nd, self.zones, self.zones_array)
37026  * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<<
37027  * if _dict is not None:
37028  * state += (_dict,)
37029  */
37030  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
37031  __Pyx_GOTREF(__pyx_t_3);
37032  __pyx_v__dict = __pyx_t_3;
37033  __pyx_t_3 = 0;
37034 
37035  /* "(tree fragment)":7
37036  * state = (self.ar, self.max_flag, self.model, self.nd, self.zones, self.zones_array)
37037  * _dict = getattr(self, '__dict__', None)
37038  * if _dict is not None: # <<<<<<<<<<<<<<
37039  * state += (_dict,)
37040  * use_setstate = True
37041  */
37042  __pyx_t_4 = (__pyx_v__dict != Py_None);
37043  __pyx_t_5 = (__pyx_t_4 != 0);
37044  if (__pyx_t_5) {
37045 
37046  /* "(tree fragment)":8
37047  * _dict = getattr(self, '__dict__', None)
37048  * if _dict is not None:
37049  * state += (_dict,) # <<<<<<<<<<<<<<
37050  * use_setstate = True
37051  * else:
37052  */
37053  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
37054  __Pyx_GOTREF(__pyx_t_3);
37055  __Pyx_INCREF(__pyx_v__dict);
37056  __Pyx_GIVEREF(__pyx_v__dict);
37057  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
37058  __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
37059  __Pyx_GOTREF(__pyx_t_2);
37060  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37061  __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
37062  __pyx_t_2 = 0;
37063 
37064  /* "(tree fragment)":9
37065  * if _dict is not None:
37066  * state += (_dict,)
37067  * use_setstate = True # <<<<<<<<<<<<<<
37068  * else:
37069  * use_setstate = self.ar is not None or self.model is not None or self.zones is not None or self.zones_array is not None
37070  */
37071  __pyx_v_use_setstate = 1;
37072 
37073  /* "(tree fragment)":7
37074  * state = (self.ar, self.max_flag, self.model, self.nd, self.zones, self.zones_array)
37075  * _dict = getattr(self, '__dict__', None)
37076  * if _dict is not None: # <<<<<<<<<<<<<<
37077  * state += (_dict,)
37078  * use_setstate = True
37079  */
37080  goto __pyx_L3;
37081  }
37082 
37083  /* "(tree fragment)":11
37084  * use_setstate = True
37085  * else:
37086  * use_setstate = self.ar is not None or self.model is not None or self.zones is not None or self.zones_array is not None # <<<<<<<<<<<<<<
37087  * if use_setstate:
37088  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, None), state
37089  */
37090  /*else*/ {
37091  __pyx_t_4 = (__pyx_v_self->ar != Py_None);
37092  __pyx_t_6 = (__pyx_t_4 != 0);
37093  if (!__pyx_t_6) {
37094  } else {
37095  __pyx_t_5 = __pyx_t_6;
37096  goto __pyx_L4_bool_binop_done;
37097  }
37098  __pyx_t_6 = (__pyx_v_self->model != Py_None);
37099  __pyx_t_4 = (__pyx_t_6 != 0);
37100  if (!__pyx_t_4) {
37101  } else {
37102  __pyx_t_5 = __pyx_t_4;
37103  goto __pyx_L4_bool_binop_done;
37104  }
37105  __pyx_t_4 = (__pyx_v_self->zones != ((PyObject*)Py_None));
37106  __pyx_t_6 = (__pyx_t_4 != 0);
37107  if (!__pyx_t_6) {
37108  } else {
37109  __pyx_t_5 = __pyx_t_6;
37110  goto __pyx_L4_bool_binop_done;
37111  }
37112  __pyx_t_6 = (((PyObject *)__pyx_v_self->zones_array) != Py_None);
37113  __pyx_t_4 = (__pyx_t_6 != 0);
37114  __pyx_t_5 = __pyx_t_4;
37115  __pyx_L4_bool_binop_done:;
37116  __pyx_v_use_setstate = __pyx_t_5;
37117  }
37118  __pyx_L3:;
37119 
37120  /* "(tree fragment)":12
37121  * else:
37122  * use_setstate = self.ar is not None or self.model is not None or self.zones is not None or self.zones_array is not None
37123  * if use_setstate: # <<<<<<<<<<<<<<
37124  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, None), state
37125  * else:
37126  */
37127  __pyx_t_5 = (__pyx_v_use_setstate != 0);
37128  if (__pyx_t_5) {
37129 
37130  /* "(tree fragment)":13
37131  * use_setstate = self.ar is not None or self.model is not None or self.zones is not None or self.zones_array is not None
37132  * if use_setstate:
37133  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, None), state # <<<<<<<<<<<<<<
37134  * else:
37135  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
37136  */
37137  __Pyx_XDECREF(__pyx_r);
37138  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_RelaxationZoneWav); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
37139  __Pyx_GOTREF(__pyx_t_2);
37140  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
37141  __Pyx_GOTREF(__pyx_t_3);
37142  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37143  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37144  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37145  __Pyx_INCREF(__pyx_int_3281892);
37146  __Pyx_GIVEREF(__pyx_int_3281892);
37147  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3281892);
37148  __Pyx_INCREF(Py_None);
37149  __Pyx_GIVEREF(Py_None);
37150  PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
37151  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
37152  __Pyx_GOTREF(__pyx_t_1);
37153  __Pyx_GIVEREF(__pyx_t_2);
37154  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
37155  __Pyx_GIVEREF(__pyx_t_3);
37156  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
37157  __Pyx_INCREF(__pyx_v_state);
37158  __Pyx_GIVEREF(__pyx_v_state);
37159  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
37160  __pyx_t_2 = 0;
37161  __pyx_t_3 = 0;
37162  __pyx_r = __pyx_t_1;
37163  __pyx_t_1 = 0;
37164  goto __pyx_L0;
37165 
37166  /* "(tree fragment)":12
37167  * else:
37168  * use_setstate = self.ar is not None or self.model is not None or self.zones is not None or self.zones_array is not None
37169  * if use_setstate: # <<<<<<<<<<<<<<
37170  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, None), state
37171  * else:
37172  */
37173  }
37174 
37175  /* "(tree fragment)":15
37176  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, None), state
37177  * else:
37178  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state) # <<<<<<<<<<<<<<
37179  * def __setstate_cython__(self, __pyx_state):
37180  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state)
37181  */
37182  /*else*/ {
37183  __Pyx_XDECREF(__pyx_r);
37184  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_RelaxationZoneWav); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
37185  __Pyx_GOTREF(__pyx_t_1);
37186  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
37187  __Pyx_GOTREF(__pyx_t_3);
37188  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37189  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37190  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37191  __Pyx_INCREF(__pyx_int_3281892);
37192  __Pyx_GIVEREF(__pyx_int_3281892);
37193  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3281892);
37194  __Pyx_INCREF(__pyx_v_state);
37195  __Pyx_GIVEREF(__pyx_v_state);
37196  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
37197  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
37198  __Pyx_GOTREF(__pyx_t_2);
37199  __Pyx_GIVEREF(__pyx_t_1);
37200  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
37201  __Pyx_GIVEREF(__pyx_t_3);
37202  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
37203  __pyx_t_1 = 0;
37204  __pyx_t_3 = 0;
37205  __pyx_r = __pyx_t_2;
37206  __pyx_t_2 = 0;
37207  goto __pyx_L0;
37208  }
37209 
37210  /* "(tree fragment)":1
37211  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
37212  * cdef tuple state
37213  * cdef object _dict
37214  */
37215 
37216  /* function exit code */
37217  __pyx_L1_error:;
37218  __Pyx_XDECREF(__pyx_t_1);
37219  __Pyx_XDECREF(__pyx_t_2);
37220  __Pyx_XDECREF(__pyx_t_3);
37221  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37222  __pyx_r = NULL;
37223  __pyx_L0:;
37224  __Pyx_XDECREF(__pyx_v_state);
37225  __Pyx_XDECREF(__pyx_v__dict);
37226  __Pyx_XGIVEREF(__pyx_r);
37227  __Pyx_TraceReturn(__pyx_r, 0);
37228  __Pyx_RefNannyFinishContext();
37229  return __pyx_r;
37230 }
37231 
37232 /* "(tree fragment)":16
37233  * else:
37234  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
37235  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
37236  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state)
37237  */
37238 
37239 /* Python wrapper */
37240 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
37241 static char __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__[] = "RelaxationZoneWaveGenerator.__setstate_cython__(self, __pyx_state)";
37242 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__};
37243 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
37244  PyObject *__pyx_r = 0;
37245  __Pyx_RefNannyDeclarations
37246  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
37247  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
37248 
37249  /* function exit code */
37250  __Pyx_RefNannyFinishContext();
37251  return __pyx_r;
37252 }
37253 
37254 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
37255  PyObject *__pyx_r = NULL;
37256  __Pyx_TraceDeclarations
37257  __Pyx_RefNannyDeclarations
37258  PyObject *__pyx_t_1 = NULL;
37259  int __pyx_lineno = 0;
37260  const char *__pyx_filename = NULL;
37261  int __pyx_clineno = 0;
37262  __Pyx_TraceFrameInit(__pyx_codeobj__104)
37263  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
37264  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));
37265 
37266  /* "(tree fragment)":17
37267  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
37268  * def __setstate_cython__(self, __pyx_state):
37269  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state) # <<<<<<<<<<<<<<
37270  */
37271  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
37272  __pyx_t_1 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_RelaxationZoneWaveGenerator__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
37273  __Pyx_GOTREF(__pyx_t_1);
37274  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37275 
37276  /* "(tree fragment)":16
37277  * else:
37278  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
37279  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
37280  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state)
37281  */
37282 
37283  /* function exit code */
37284  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37285  goto __pyx_L0;
37286  __pyx_L1_error:;
37287  __Pyx_XDECREF(__pyx_t_1);
37288  __Pyx_AddTraceback("mprans.BoundaryConditions.RelaxationZoneWaveGenerator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37289  __pyx_r = NULL;
37290  __pyx_L0:;
37291  __Pyx_XGIVEREF(__pyx_r);
37292  __Pyx_TraceReturn(__pyx_r, 0);
37293  __Pyx_RefNannyFinishContext();
37294  return __pyx_r;
37295 }
37296 
37297 /* "mprans/BoundaryConditions.py":1136
37298  * """
37299  *
37300  * def __init__(self, waves, vert_axis, wind_speed=None, b_or=None, # <<<<<<<<<<<<<<
37301  * smoothing=0., vof_water=0., vof_air=1.):
37302  * self.WT = waves # wavetools wave
37303  */
37304 
37305 /* Python wrapper */
37306 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37307 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37308  PyObject *__pyx_v_waves = 0;
37309  PyObject *__pyx_v_vert_axis = 0;
37310  PyObject *__pyx_v_wind_speed = 0;
37311  PyObject *__pyx_v_b_or = 0;
37312  PyObject *__pyx_v_smoothing = 0;
37313  PyObject *__pyx_v_vof_water = 0;
37314  PyObject *__pyx_v_vof_air = 0;
37315  int __pyx_lineno = 0;
37316  const char *__pyx_filename = NULL;
37317  int __pyx_clineno = 0;
37318  int __pyx_r;
37319  __Pyx_RefNannyDeclarations
37320  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
37321  {
37322  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_waves,&__pyx_n_s_vert_axis,&__pyx_n_s_wind_speed,&__pyx_n_s_b_or,&__pyx_n_s_smoothing,&__pyx_n_s_vof_water,&__pyx_n_s_vof_air,0};
37323  PyObject* values[7] = {0,0,0,0,0,0,0};
37324  values[2] = ((PyObject *)Py_None);
37325  values[3] = ((PyObject *)Py_None);
37326  values[4] = ((PyObject *)__pyx_float_0_);
37327  values[5] = ((PyObject *)__pyx_float_0_);
37328  values[6] = ((PyObject *)__pyx_float_1_);
37329  if (unlikely(__pyx_kwds)) {
37330  Py_ssize_t kw_args;
37331  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
37332  switch (pos_args) {
37333  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
37334  CYTHON_FALLTHROUGH;
37335  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
37336  CYTHON_FALLTHROUGH;
37337  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
37338  CYTHON_FALLTHROUGH;
37339  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
37340  CYTHON_FALLTHROUGH;
37341  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
37342  CYTHON_FALLTHROUGH;
37343  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37344  CYTHON_FALLTHROUGH;
37345  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37346  CYTHON_FALLTHROUGH;
37347  case 0: break;
37348  default: goto __pyx_L5_argtuple_error;
37349  }
37350  kw_args = PyDict_Size(__pyx_kwds);
37351  switch (pos_args) {
37352  case 0:
37353  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_waves)) != 0)) kw_args--;
37354  else goto __pyx_L5_argtuple_error;
37355  CYTHON_FALLTHROUGH;
37356  case 1:
37357  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vert_axis)) != 0)) kw_args--;
37358  else {
37359  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, 1); __PYX_ERR(0, 1136, __pyx_L3_error)
37360  }
37361  CYTHON_FALLTHROUGH;
37362  case 2:
37363  if (kw_args > 0) {
37364  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wind_speed);
37365  if (value) { values[2] = value; kw_args--; }
37366  }
37367  CYTHON_FALLTHROUGH;
37368  case 3:
37369  if (kw_args > 0) {
37370  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b_or);
37371  if (value) { values[3] = value; kw_args--; }
37372  }
37373  CYTHON_FALLTHROUGH;
37374  case 4:
37375  if (kw_args > 0) {
37376  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothing);
37377  if (value) { values[4] = value; kw_args--; }
37378  }
37379  CYTHON_FALLTHROUGH;
37380  case 5:
37381  if (kw_args > 0) {
37382  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_water);
37383  if (value) { values[5] = value; kw_args--; }
37384  }
37385  CYTHON_FALLTHROUGH;
37386  case 6:
37387  if (kw_args > 0) {
37388  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vof_air);
37389  if (value) { values[6] = value; kw_args--; }
37390  }
37391  }
37392  if (unlikely(kw_args > 0)) {
37393  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1136, __pyx_L3_error)
37394  }
37395  } else {
37396  switch (PyTuple_GET_SIZE(__pyx_args)) {
37397  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
37398  CYTHON_FALLTHROUGH;
37399  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
37400  CYTHON_FALLTHROUGH;
37401  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
37402  CYTHON_FALLTHROUGH;
37403  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
37404  CYTHON_FALLTHROUGH;
37405  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
37406  CYTHON_FALLTHROUGH;
37407  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37408  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37409  break;
37410  default: goto __pyx_L5_argtuple_error;
37411  }
37412  }
37413  __pyx_v_waves = values[0];
37414  __pyx_v_vert_axis = values[1];
37415  __pyx_v_wind_speed = values[2];
37416  __pyx_v_b_or = values[3];
37417  __pyx_v_smoothing = values[4];
37418  __pyx_v_vof_water = values[5];
37419  __pyx_v_vof_air = values[6];
37420  }
37421  goto __pyx_L4_argument_unpacking_done;
37422  __pyx_L5_argtuple_error:;
37423  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1136, __pyx_L3_error)
37424  __pyx_L3_error:;
37425  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37426  __Pyx_RefNannyFinishContext();
37427  return -1;
37428  __pyx_L4_argument_unpacking_done:;
37429  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___init__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self), __pyx_v_waves, __pyx_v_vert_axis, __pyx_v_wind_speed, __pyx_v_b_or, __pyx_v_smoothing, __pyx_v_vof_water, __pyx_v_vof_air);
37430 
37431  /* function exit code */
37432  __Pyx_RefNannyFinishContext();
37433  return __pyx_r;
37434 }
37435 
37436 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___init__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v_waves, PyObject *__pyx_v_vert_axis, PyObject *__pyx_v_wind_speed, PyObject *__pyx_v_b_or, PyObject *__pyx_v_smoothing, PyObject *__pyx_v_vof_water, PyObject *__pyx_v_vof_air) {
37437  int __pyx_r;
37438  __Pyx_TraceDeclarations
37439  __Pyx_RefNannyDeclarations
37440  int __pyx_t_1;
37441  PyObject *__pyx_t_2 = NULL;
37442  PyObject *__pyx_t_3 = NULL;
37443  PyObject *__pyx_t_4 = NULL;
37444  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
37445  double __pyx_t_6;
37446  int __pyx_t_7;
37447  int __pyx_t_8;
37448  int __pyx_lineno = 0;
37449  const char *__pyx_filename = NULL;
37450  int __pyx_clineno = 0;
37451  __Pyx_RefNannySetupContext("__init__", 0);
37452  __Pyx_TraceCall("__init__", __pyx_f[0], 1136, 0, __PYX_ERR(0, 1136, __pyx_L1_error));
37453 
37454  /* "mprans/BoundaryConditions.py":1138
37455  * def __init__(self, waves, vert_axis, wind_speed=None, b_or=None,
37456  * smoothing=0., vof_water=0., vof_air=1.):
37457  * self.WT = waves # wavetools wave # <<<<<<<<<<<<<<
37458  * self.vert_axis = vert_axis
37459  * self.zero_vel = np.zeros(3)
37460  */
37461  __Pyx_INCREF(__pyx_v_waves);
37462  __Pyx_GIVEREF(__pyx_v_waves);
37463  __Pyx_GOTREF(__pyx_v_self->WT);
37464  __Pyx_DECREF(__pyx_v_self->WT);
37465  __pyx_v_self->WT = __pyx_v_waves;
37466 
37467  /* "mprans/BoundaryConditions.py":1139
37468  * smoothing=0., vof_water=0., vof_air=1.):
37469  * self.WT = waves # wavetools wave
37470  * self.vert_axis = vert_axis # <<<<<<<<<<<<<<
37471  * self.zero_vel = np.zeros(3)
37472  * self._b_or = b_or
37473  */
37474  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_vert_axis); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L1_error)
37475  __pyx_v_self->vert_axis = __pyx_t_1;
37476 
37477  /* "mprans/BoundaryConditions.py":1140
37478  * self.WT = waves # wavetools wave
37479  * self.vert_axis = vert_axis
37480  * self.zero_vel = np.zeros(3) # <<<<<<<<<<<<<<
37481  * self._b_or = b_or
37482  * self.smoothing = smoothing
37483  */
37484  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1140, __pyx_L1_error)
37485  __Pyx_GOTREF(__pyx_t_3);
37486  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1140, __pyx_L1_error)
37487  __Pyx_GOTREF(__pyx_t_4);
37488  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37489  __pyx_t_3 = NULL;
37490  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
37491  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
37492  if (likely(__pyx_t_3)) {
37493  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
37494  __Pyx_INCREF(__pyx_t_3);
37495  __Pyx_INCREF(function);
37496  __Pyx_DECREF_SET(__pyx_t_4, function);
37497  }
37498  }
37499  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_int_3);
37500  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
37501  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1140, __pyx_L1_error)
37502  __Pyx_GOTREF(__pyx_t_2);
37503  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37504  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1140, __pyx_L1_error)
37505  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37506  __PYX_XDEC_MEMVIEW(&__pyx_v_self->zero_vel, 0);
37507  __pyx_v_self->zero_vel = __pyx_t_5;
37508  __pyx_t_5.memview = NULL;
37509  __pyx_t_5.data = NULL;
37510 
37511  /* "mprans/BoundaryConditions.py":1141
37512  * self.vert_axis = vert_axis
37513  * self.zero_vel = np.zeros(3)
37514  * self._b_or = b_or # <<<<<<<<<<<<<<
37515  * self.smoothing = smoothing
37516  * self.vof_air = vof_air
37517  */
37518  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_b_or, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1141, __pyx_L1_error)
37519  __PYX_XDEC_MEMVIEW(&__pyx_v_self->_b_or, 0);
37520  __pyx_v_self->_b_or = __pyx_t_5;
37521  __pyx_t_5.memview = NULL;
37522  __pyx_t_5.data = NULL;
37523 
37524  /* "mprans/BoundaryConditions.py":1142
37525  * self.zero_vel = np.zeros(3)
37526  * self._b_or = b_or
37527  * self.smoothing = smoothing # <<<<<<<<<<<<<<
37528  * self.vof_air = vof_air
37529  * self.vof_water = vof_water
37530  */
37531  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_smoothing); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1142, __pyx_L1_error)
37532  __pyx_v_self->smoothing = __pyx_t_6;
37533 
37534  /* "mprans/BoundaryConditions.py":1143
37535  * self._b_or = b_or
37536  * self.smoothing = smoothing
37537  * self.vof_air = vof_air # <<<<<<<<<<<<<<
37538  * self.vof_water = vof_water
37539  * if wind_speed is None:
37540  */
37541  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_vof_air); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1143, __pyx_L1_error)
37542  __pyx_v_self->vof_air = __pyx_t_6;
37543 
37544  /* "mprans/BoundaryConditions.py":1144
37545  * self.smoothing = smoothing
37546  * self.vof_air = vof_air
37547  * self.vof_water = vof_water # <<<<<<<<<<<<<<
37548  * if wind_speed is None:
37549  * self.wind_speed = self.zero_vel
37550  */
37551  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_vof_water); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L1_error)
37552  __pyx_v_self->vof_water = __pyx_t_6;
37553 
37554  /* "mprans/BoundaryConditions.py":1145
37555  * self.vof_air = vof_air
37556  * self.vof_water = vof_water
37557  * if wind_speed is None: # <<<<<<<<<<<<<<
37558  * self.wind_speed = self.zero_vel
37559  * else:
37560  */
37561  __pyx_t_7 = (__pyx_v_wind_speed == Py_None);
37562  __pyx_t_8 = (__pyx_t_7 != 0);
37563  if (__pyx_t_8) {
37564 
37565  /* "mprans/BoundaryConditions.py":1146
37566  * self.vof_water = vof_water
37567  * if wind_speed is None:
37568  * self.wind_speed = self.zero_vel # <<<<<<<<<<<<<<
37569  * else:
37570  * self.wind_speed = wind_speed
37571  */
37572  __pyx_t_5 = __pyx_v_self->zero_vel;
37573  __PYX_INC_MEMVIEW(&__pyx_t_5, 1);
37574  __PYX_XDEC_MEMVIEW(&__pyx_v_self->wind_speed, 0);
37575  __pyx_v_self->wind_speed = __pyx_t_5;
37576  __pyx_t_5.memview = NULL;
37577  __pyx_t_5.data = NULL;
37578 
37579  /* "mprans/BoundaryConditions.py":1145
37580  * self.vof_air = vof_air
37581  * self.vof_water = vof_water
37582  * if wind_speed is None: # <<<<<<<<<<<<<<
37583  * self.wind_speed = self.zero_vel
37584  * else:
37585  */
37586  goto __pyx_L3;
37587  }
37588 
37589  /* "mprans/BoundaryConditions.py":1148
37590  * self.wind_speed = self.zero_vel
37591  * else:
37592  * self.wind_speed = wind_speed # <<<<<<<<<<<<<<
37593  *
37594  * def __cpp_calculate_velocity(self, x, t):
37595  */
37596  /*else*/ {
37597  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_wind_speed, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1148, __pyx_L1_error)
37598  __PYX_XDEC_MEMVIEW(&__pyx_v_self->wind_speed, 0);
37599  __pyx_v_self->wind_speed = __pyx_t_5;
37600  __pyx_t_5.memview = NULL;
37601  __pyx_t_5.data = NULL;
37602  }
37603  __pyx_L3:;
37604 
37605  /* "mprans/BoundaryConditions.py":1136
37606  * """
37607  *
37608  * def __init__(self, waves, vert_axis, wind_speed=None, b_or=None, # <<<<<<<<<<<<<<
37609  * smoothing=0., vof_water=0., vof_air=1.):
37610  * self.WT = waves # wavetools wave
37611  */
37612 
37613  /* function exit code */
37614  __pyx_r = 0;
37615  goto __pyx_L0;
37616  __pyx_L1_error:;
37617  __Pyx_XDECREF(__pyx_t_2);
37618  __Pyx_XDECREF(__pyx_t_3);
37619  __Pyx_XDECREF(__pyx_t_4);
37620  __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
37621  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37622  __pyx_r = -1;
37623  __pyx_L0:;
37624  __Pyx_TraceReturn(Py_None, 0);
37625  __Pyx_RefNannyFinishContext();
37626  return __pyx_r;
37627 }
37628 
37629 /* "mprans/BoundaryConditions.py":1150
37630  * self.wind_speed = wind_speed
37631  *
37632  * def __cpp_calculate_velocity(self, x, t): # <<<<<<<<<<<<<<
37633  * cython.declare(u=cython.double[3])
37634  * cython.declare(xx=cython.double[3])
37635  */
37636 
37637 static __Pyx_memviewslice __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_velocity(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
37638  double __pyx_v_phi;
37639  __pyx_t_6mprans_18BoundaryConditions_double_memview1 __pyx_v_waterSpeed = { 0, 0, { 0 }, { 0 }, { 0 } };
37640  double __pyx_v_H;
37641  double __pyx_v_u[3];
37642  double __pyx_v_xx[3];
37643  double __pyx_v_x_max[3];
37644  __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
37645  __Pyx_TraceDeclarations
37646  __Pyx_RefNannyDeclarations
37647  int __pyx_t_1;
37648  PyObject *__pyx_t_2 = NULL;
37649  PyObject *__pyx_t_3 = NULL;
37650  PyObject *__pyx_t_4 = NULL;
37651  PyObject *__pyx_t_5 = NULL;
37652  PyObject *__pyx_t_6 = NULL;
37653  int __pyx_t_7;
37654  PyObject *__pyx_t_8 = NULL;
37655  __pyx_t_6mprans_18BoundaryConditions_double_memview1 __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
37656  int __pyx_t_10;
37657  PyObject *__pyx_t_11 = NULL;
37658  PyObject *__pyx_t_12 = NULL;
37659  PyObject *__pyx_t_13 = NULL;
37660  double __pyx_t_14;
37661  __Pyx_memviewslice __pyx_t_15 = { 0, 0, { 0 }, { 0 }, { 0 } };
37662  Py_ssize_t __pyx_t_16;
37663  Py_ssize_t __pyx_t_17;
37664  struct __pyx_array_obj *__pyx_t_18 = NULL;
37665  int __pyx_lineno = 0;
37666  const char *__pyx_filename = NULL;
37667  int __pyx_clineno = 0;
37668  __Pyx_RefNannySetupContext("__cpp_calculate_velocity", 0);
37669  __Pyx_TraceCall("__cpp_calculate_velocity", __pyx_f[0], 1150, 0, __PYX_ERR(0, 1150, __pyx_L1_error));
37670 
37671  /* "mprans/BoundaryConditions.py":1154
37672  * cython.declare(xx=cython.double[3])
37673  * cython.declare(x_max=cython.double[3])
37674  * xx[0] = x[0] # <<<<<<<<<<<<<<
37675  * xx[1] = x[1]
37676  * xx[2] = x[2]
37677  */
37678  (__pyx_v_xx[0]) = (__pyx_v_x[0]);
37679 
37680  /* "mprans/BoundaryConditions.py":1155
37681  * cython.declare(x_max=cython.double[3])
37682  * xx[0] = x[0]
37683  * xx[1] = x[1] # <<<<<<<<<<<<<<
37684  * xx[2] = x[2]
37685  * phi = self.__cpp_calculate_phi(x, t)
37686  */
37687  (__pyx_v_xx[1]) = (__pyx_v_x[1]);
37688 
37689  /* "mprans/BoundaryConditions.py":1156
37690  * xx[0] = x[0]
37691  * xx[1] = x[1]
37692  * xx[2] = x[2] # <<<<<<<<<<<<<<
37693  * phi = self.__cpp_calculate_phi(x, t)
37694  * if phi <= 0.:
37695  */
37696  (__pyx_v_xx[2]) = (__pyx_v_x[2]);
37697 
37698  /* "mprans/BoundaryConditions.py":1157
37699  * xx[1] = x[1]
37700  * xx[2] = x[2]
37701  * phi = self.__cpp_calculate_phi(x, t) # <<<<<<<<<<<<<<
37702  * if phi <= 0.:
37703  * # no smoothing below mwl, or wave peak could get chopped off
37704  */
37705  __pyx_v_phi = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_phi(__pyx_v_self, __pyx_v_x, __pyx_v_t);
37706 
37707  /* "mprans/BoundaryConditions.py":1158
37708  * xx[2] = x[2]
37709  * phi = self.__cpp_calculate_phi(x, t)
37710  * if phi <= 0.: # <<<<<<<<<<<<<<
37711  * # no smoothing below mwl, or wave peak could get chopped off
37712  * H = 0
37713  */
37714  __pyx_t_1 = ((__pyx_v_phi <= 0.) != 0);
37715  if (__pyx_t_1) {
37716 
37717  /* "mprans/BoundaryConditions.py":1160
37718  * if phi <= 0.:
37719  * # no smoothing below mwl, or wave peak could get chopped off
37720  * H = 0 # <<<<<<<<<<<<<<
37721  * waterSpeed = self.WT.u(xx, t)
37722  * elif 0 < phi <= self.smoothing:
37723  */
37724  __pyx_v_H = 0.0;
37725 
37726  /* "mprans/BoundaryConditions.py":1161
37727  * # no smoothing below mwl, or wave peak could get chopped off
37728  * H = 0
37729  * waterSpeed = self.WT.u(xx, t) # <<<<<<<<<<<<<<
37730  * elif 0 < phi <= self.smoothing:
37731  * # smoothing on half the range of VOF (above wave crest)
37732  */
37733  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->WT, __pyx_n_s_u); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1161, __pyx_L1_error)
37734  __Pyx_GOTREF(__pyx_t_3);
37735  __pyx_t_4 = __Pyx_carray_to_py_double(__pyx_v_xx, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1161, __pyx_L1_error)
37736  __Pyx_GOTREF(__pyx_t_4);
37737  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1161, __pyx_L1_error)
37738  __Pyx_GOTREF(__pyx_t_5);
37739  __pyx_t_6 = NULL;
37740  __pyx_t_7 = 0;
37741  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
37742  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
37743  if (likely(__pyx_t_6)) {
37744  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
37745  __Pyx_INCREF(__pyx_t_6);
37746  __Pyx_INCREF(function);
37747  __Pyx_DECREF_SET(__pyx_t_3, function);
37748  __pyx_t_7 = 1;
37749  }
37750  }
37751  #if CYTHON_FAST_PYCALL
37752  if (PyFunction_Check(__pyx_t_3)) {
37753  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
37754  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
37755  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
37756  __Pyx_GOTREF(__pyx_t_2);
37757  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37758  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37759  } else
37760  #endif
37761  #if CYTHON_FAST_PYCCALL
37762  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
37763  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
37764  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
37765  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
37766  __Pyx_GOTREF(__pyx_t_2);
37767  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37768  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37769  } else
37770  #endif
37771  {
37772  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1161, __pyx_L1_error)
37773  __Pyx_GOTREF(__pyx_t_8);
37774  if (__pyx_t_6) {
37775  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
37776  }
37777  __Pyx_GIVEREF(__pyx_t_4);
37778  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
37779  __Pyx_GIVEREF(__pyx_t_5);
37780  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5);
37781  __pyx_t_4 = 0;
37782  __pyx_t_5 = 0;
37783  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1161, __pyx_L1_error)
37784  __Pyx_GOTREF(__pyx_t_2);
37785  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37786  }
37787  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37788  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 1161, __pyx_L1_error)
37789  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37790  __pyx_v_waterSpeed = __pyx_t_9;
37791  __pyx_t_9.memview = NULL;
37792  __pyx_t_9.data = NULL;
37793 
37794  /* "mprans/BoundaryConditions.py":1158
37795  * xx[2] = x[2]
37796  * phi = self.__cpp_calculate_phi(x, t)
37797  * if phi <= 0.: # <<<<<<<<<<<<<<
37798  * # no smoothing below mwl, or wave peak could get chopped off
37799  * H = 0
37800  */
37801  goto __pyx_L3;
37802  }
37803 
37804  /* "mprans/BoundaryConditions.py":1162
37805  * H = 0
37806  * waterSpeed = self.WT.u(xx, t)
37807  * elif 0 < phi <= self.smoothing: # <<<<<<<<<<<<<<
37808  * # smoothing on half the range of VOF (above wave crest)
37809  * H = smoothedHeaviside(old_div(self.smoothing, 2.), phi - old_div(self.smoothing, 2.))
37810  */
37811  __pyx_t_1 = (0.0 < __pyx_v_phi);
37812  if (__pyx_t_1) {
37813  __pyx_t_1 = (__pyx_v_phi <= __pyx_v_self->smoothing);
37814  }
37815  __pyx_t_10 = (__pyx_t_1 != 0);
37816  if (__pyx_t_10) {
37817 
37818  /* "mprans/BoundaryConditions.py":1164
37819  * elif 0 < phi <= self.smoothing:
37820  * # smoothing on half the range of VOF (above wave crest)
37821  * H = smoothedHeaviside(old_div(self.smoothing, 2.), phi - old_div(self.smoothing, 2.)) # <<<<<<<<<<<<<<
37822  * # use max velocity of wave for water
37823  * x_max[0] = x[0]
37824  */
37825  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1164, __pyx_L1_error)
37826  __Pyx_GOTREF(__pyx_t_3);
37827  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1164, __pyx_L1_error)
37828  __Pyx_GOTREF(__pyx_t_5);
37829  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->smoothing); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1164, __pyx_L1_error)
37830  __Pyx_GOTREF(__pyx_t_4);
37831  __pyx_t_6 = NULL;
37832  __pyx_t_7 = 0;
37833  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
37834  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
37835  if (likely(__pyx_t_6)) {
37836  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
37837  __Pyx_INCREF(__pyx_t_6);
37838  __Pyx_INCREF(function);
37839  __Pyx_DECREF_SET(__pyx_t_5, function);
37840  __pyx_t_7 = 1;
37841  }
37842  }
37843  #if CYTHON_FAST_PYCALL
37844  if (PyFunction_Check(__pyx_t_5)) {
37845  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_float_2_};
37846  __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1164, __pyx_L1_error)
37847  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
37848  __Pyx_GOTREF(__pyx_t_8);
37849  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37850  } else
37851  #endif
37852  #if CYTHON_FAST_PYCCALL
37853  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
37854  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_float_2_};
37855  __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1164, __pyx_L1_error)
37856  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
37857  __Pyx_GOTREF(__pyx_t_8);
37858  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37859  } else
37860  #endif
37861  {
37862  __pyx_t_11 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1164, __pyx_L1_error)
37863  __Pyx_GOTREF(__pyx_t_11);
37864  if (__pyx_t_6) {
37865  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __pyx_t_6 = NULL;
37866  }
37867  __Pyx_GIVEREF(__pyx_t_4);
37868  PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_t_4);
37869  __Pyx_INCREF(__pyx_float_2_);
37870  __Pyx_GIVEREF(__pyx_float_2_);
37871  PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_float_2_);
37872  __pyx_t_4 = 0;
37873  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1164, __pyx_L1_error)
37874  __Pyx_GOTREF(__pyx_t_8);
37875  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
37876  }
37877  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37878  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_phi); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1164, __pyx_L1_error)
37879  __Pyx_GOTREF(__pyx_t_5);
37880  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_old_div); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1164, __pyx_L1_error)
37881  __Pyx_GOTREF(__pyx_t_4);
37882  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->smoothing); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1164, __pyx_L1_error)
37883  __Pyx_GOTREF(__pyx_t_6);
37884  __pyx_t_12 = NULL;
37885  __pyx_t_7 = 0;
37886  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
37887  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
37888  if (likely(__pyx_t_12)) {
37889  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
37890  __Pyx_INCREF(__pyx_t_12);
37891  __Pyx_INCREF(function);
37892  __Pyx_DECREF_SET(__pyx_t_4, function);
37893  __pyx_t_7 = 1;
37894  }
37895  }
37896  #if CYTHON_FAST_PYCALL
37897  if (PyFunction_Check(__pyx_t_4)) {
37898  PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_6, __pyx_float_2_};
37899  __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1164, __pyx_L1_error)
37900  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
37901  __Pyx_GOTREF(__pyx_t_11);
37902  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
37903  } else
37904  #endif
37905  #if CYTHON_FAST_PYCCALL
37906  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
37907  PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_6, __pyx_float_2_};
37908  __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1164, __pyx_L1_error)
37909  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
37910  __Pyx_GOTREF(__pyx_t_11);
37911  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
37912  } else
37913  #endif
37914  {
37915  __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1164, __pyx_L1_error)
37916  __Pyx_GOTREF(__pyx_t_13);
37917  if (__pyx_t_12) {
37918  __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
37919  }
37920  __Pyx_GIVEREF(__pyx_t_6);
37921  PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_t_6);
37922  __Pyx_INCREF(__pyx_float_2_);
37923  __Pyx_GIVEREF(__pyx_float_2_);
37924  PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_float_2_);
37925  __pyx_t_6 = 0;
37926  __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1164, __pyx_L1_error)
37927  __Pyx_GOTREF(__pyx_t_11);
37928  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
37929  }
37930  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37931  __pyx_t_4 = PyNumber_Subtract(__pyx_t_5, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1164, __pyx_L1_error)
37932  __Pyx_GOTREF(__pyx_t_4);
37933  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37934  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
37935  __pyx_t_11 = NULL;
37936  __pyx_t_7 = 0;
37937  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
37938  __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
37939  if (likely(__pyx_t_11)) {
37940  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
37941  __Pyx_INCREF(__pyx_t_11);
37942  __Pyx_INCREF(function);
37943  __Pyx_DECREF_SET(__pyx_t_3, function);
37944  __pyx_t_7 = 1;
37945  }
37946  }
37947  #if CYTHON_FAST_PYCALL
37948  if (PyFunction_Check(__pyx_t_3)) {
37949  PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_8, __pyx_t_4};
37950  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error)
37951  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
37952  __Pyx_GOTREF(__pyx_t_2);
37953  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37954  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37955  } else
37956  #endif
37957  #if CYTHON_FAST_PYCCALL
37958  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
37959  PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_8, __pyx_t_4};
37960  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error)
37961  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
37962  __Pyx_GOTREF(__pyx_t_2);
37963  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37964  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37965  } else
37966  #endif
37967  {
37968  __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1164, __pyx_L1_error)
37969  __Pyx_GOTREF(__pyx_t_5);
37970  if (__pyx_t_11) {
37971  __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_11); __pyx_t_11 = NULL;
37972  }
37973  __Pyx_GIVEREF(__pyx_t_8);
37974  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_8);
37975  __Pyx_GIVEREF(__pyx_t_4);
37976  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_t_4);
37977  __pyx_t_8 = 0;
37978  __pyx_t_4 = 0;
37979  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error)
37980  __Pyx_GOTREF(__pyx_t_2);
37981  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37982  }
37983  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37984  __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L1_error)
37985  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37986  __pyx_v_H = __pyx_t_14;
37987 
37988  /* "mprans/BoundaryConditions.py":1166
37989  * H = smoothedHeaviside(old_div(self.smoothing, 2.), phi - old_div(self.smoothing, 2.))
37990  * # use max velocity of wave for water
37991  * x_max[0] = x[0] # <<<<<<<<<<<<<<
37992  * x_max[1] = x[1]
37993  * x_max[2] = x[2]
37994  */
37995  (__pyx_v_x_max[0]) = (__pyx_v_x[0]);
37996 
37997  /* "mprans/BoundaryConditions.py":1167
37998  * # use max velocity of wave for water
37999  * x_max[0] = x[0]
38000  * x_max[1] = x[1] # <<<<<<<<<<<<<<
38001  * x_max[2] = x[2]
38002  * x_max[self.vert_axis] = x[self.vert_axis] - phi
38003  */
38004  (__pyx_v_x_max[1]) = (__pyx_v_x[1]);
38005 
38006  /* "mprans/BoundaryConditions.py":1168
38007  * x_max[0] = x[0]
38008  * x_max[1] = x[1]
38009  * x_max[2] = x[2] # <<<<<<<<<<<<<<
38010  * x_max[self.vert_axis] = x[self.vert_axis] - phi
38011  * waterSpeed = self.WT.u(x_max, t)
38012  */
38013  (__pyx_v_x_max[2]) = (__pyx_v_x[2]);
38014 
38015  /* "mprans/BoundaryConditions.py":1169
38016  * x_max[1] = x[1]
38017  * x_max[2] = x[2]
38018  * x_max[self.vert_axis] = x[self.vert_axis] - phi # <<<<<<<<<<<<<<
38019  * waterSpeed = self.WT.u(x_max, t)
38020  * else:
38021  */
38022  (__pyx_v_x_max[__pyx_v_self->vert_axis]) = ((__pyx_v_x[__pyx_v_self->vert_axis]) - __pyx_v_phi);
38023 
38024  /* "mprans/BoundaryConditions.py":1170
38025  * x_max[2] = x[2]
38026  * x_max[self.vert_axis] = x[self.vert_axis] - phi
38027  * waterSpeed = self.WT.u(x_max, t) # <<<<<<<<<<<<<<
38028  * else:
38029  * H = 1.
38030  */
38031  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->WT, __pyx_n_s_u); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1170, __pyx_L1_error)
38032  __Pyx_GOTREF(__pyx_t_3);
38033  __pyx_t_5 = __Pyx_carray_to_py_double(__pyx_v_x_max, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1170, __pyx_L1_error)
38034  __Pyx_GOTREF(__pyx_t_5);
38035  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1170, __pyx_L1_error)
38036  __Pyx_GOTREF(__pyx_t_4);
38037  __pyx_t_8 = NULL;
38038  __pyx_t_7 = 0;
38039  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
38040  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
38041  if (likely(__pyx_t_8)) {
38042  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
38043  __Pyx_INCREF(__pyx_t_8);
38044  __Pyx_INCREF(function);
38045  __Pyx_DECREF_SET(__pyx_t_3, function);
38046  __pyx_t_7 = 1;
38047  }
38048  }
38049  #if CYTHON_FAST_PYCALL
38050  if (PyFunction_Check(__pyx_t_3)) {
38051  PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_4};
38052  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1170, __pyx_L1_error)
38053  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
38054  __Pyx_GOTREF(__pyx_t_2);
38055  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
38056  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38057  } else
38058  #endif
38059  #if CYTHON_FAST_PYCCALL
38060  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
38061  PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_4};
38062  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1170, __pyx_L1_error)
38063  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
38064  __Pyx_GOTREF(__pyx_t_2);
38065  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
38066  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38067  } else
38068  #endif
38069  {
38070  __pyx_t_11 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1170, __pyx_L1_error)
38071  __Pyx_GOTREF(__pyx_t_11);
38072  if (__pyx_t_8) {
38073  __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL;
38074  }
38075  __Pyx_GIVEREF(__pyx_t_5);
38076  PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_t_5);
38077  __Pyx_GIVEREF(__pyx_t_4);
38078  PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_t_4);
38079  __pyx_t_5 = 0;
38080  __pyx_t_4 = 0;
38081  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1170, __pyx_L1_error)
38082  __Pyx_GOTREF(__pyx_t_2);
38083  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
38084  }
38085  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38086  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 1170, __pyx_L1_error)
38087  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
38088  __pyx_v_waterSpeed = __pyx_t_9;
38089  __pyx_t_9.memview = NULL;
38090  __pyx_t_9.data = NULL;
38091 
38092  /* "mprans/BoundaryConditions.py":1162
38093  * H = 0
38094  * waterSpeed = self.WT.u(xx, t)
38095  * elif 0 < phi <= self.smoothing: # <<<<<<<<<<<<<<
38096  * # smoothing on half the range of VOF (above wave crest)
38097  * H = smoothedHeaviside(old_div(self.smoothing, 2.), phi - old_div(self.smoothing, 2.))
38098  */
38099  goto __pyx_L3;
38100  }
38101 
38102  /* "mprans/BoundaryConditions.py":1172
38103  * waterSpeed = self.WT.u(x_max, t)
38104  * else:
38105  * H = 1. # <<<<<<<<<<<<<<
38106  * waterSpeed = self.zero_vel
38107  * u[0] = H * self.wind_speed[0] + (1 - H) * waterSpeed[0]
38108  */
38109  /*else*/ {
38110  __pyx_v_H = 1.;
38111 
38112  /* "mprans/BoundaryConditions.py":1173
38113  * else:
38114  * H = 1.
38115  * waterSpeed = self.zero_vel # <<<<<<<<<<<<<<
38116  * u[0] = H * self.wind_speed[0] + (1 - H) * waterSpeed[0]
38117  * u[1] = H * self.wind_speed[1] + (1 - H) * waterSpeed[1]
38118  */
38119  __pyx_t_15 = __pyx_v_self->zero_vel;
38120  __PYX_INC_MEMVIEW(&__pyx_t_15, 1);
38121  __pyx_v_waterSpeed = __pyx_t_15;
38122  __pyx_t_15.memview = NULL;
38123  __pyx_t_15.data = NULL;
38124  }
38125  __pyx_L3:;
38126 
38127  /* "mprans/BoundaryConditions.py":1174
38128  * H = 1.
38129  * waterSpeed = self.zero_vel
38130  * u[0] = H * self.wind_speed[0] + (1 - H) * waterSpeed[0] # <<<<<<<<<<<<<<
38131  * u[1] = H * self.wind_speed[1] + (1 - H) * waterSpeed[1]
38132  * u[2] = H * self.wind_speed[2] + (1 - H) * waterSpeed[2]
38133  */
38134  __pyx_t_16 = 0;
38135  __pyx_t_17 = 0;
38136  (__pyx_v_u[0]) = ((__pyx_v_H * (*((double *) ( /* dim=0 */ (__pyx_v_self->wind_speed.data + __pyx_t_16 * __pyx_v_self->wind_speed.strides[0]) )))) + ((1.0 - __pyx_v_H) * (*((double *) ( /* dim=0 */ (__pyx_v_waterSpeed.data + __pyx_t_17 * __pyx_v_waterSpeed.strides[0]) )))));
38137 
38138  /* "mprans/BoundaryConditions.py":1175
38139  * waterSpeed = self.zero_vel
38140  * u[0] = H * self.wind_speed[0] + (1 - H) * waterSpeed[0]
38141  * u[1] = H * self.wind_speed[1] + (1 - H) * waterSpeed[1] # <<<<<<<<<<<<<<
38142  * u[2] = H * self.wind_speed[2] + (1 - H) * waterSpeed[2]
38143  * return u
38144  */
38145  __pyx_t_17 = 1;
38146  __pyx_t_16 = 1;
38147  (__pyx_v_u[1]) = ((__pyx_v_H * (*((double *) ( /* dim=0 */ (__pyx_v_self->wind_speed.data + __pyx_t_17 * __pyx_v_self->wind_speed.strides[0]) )))) + ((1.0 - __pyx_v_H) * (*((double *) ( /* dim=0 */ (__pyx_v_waterSpeed.data + __pyx_t_16 * __pyx_v_waterSpeed.strides[0]) )))));
38148 
38149  /* "mprans/BoundaryConditions.py":1176
38150  * u[0] = H * self.wind_speed[0] + (1 - H) * waterSpeed[0]
38151  * u[1] = H * self.wind_speed[1] + (1 - H) * waterSpeed[1]
38152  * u[2] = H * self.wind_speed[2] + (1 - H) * waterSpeed[2] # <<<<<<<<<<<<<<
38153  * return u
38154  *
38155  */
38156  __pyx_t_16 = 2;
38157  __pyx_t_17 = 2;
38158  (__pyx_v_u[2]) = ((__pyx_v_H * (*((double *) ( /* dim=0 */ (__pyx_v_self->wind_speed.data + __pyx_t_16 * __pyx_v_self->wind_speed.strides[0]) )))) + ((1.0 - __pyx_v_H) * (*((double *) ( /* dim=0 */ (__pyx_v_waterSpeed.data + __pyx_t_17 * __pyx_v_waterSpeed.strides[0]) )))));
38159 
38160  /* "mprans/BoundaryConditions.py":1177
38161  * u[1] = H * self.wind_speed[1] + (1 - H) * waterSpeed[1]
38162  * u[2] = H * self.wind_speed[2] + (1 - H) * waterSpeed[2]
38163  * return u # <<<<<<<<<<<<<<
38164  *
38165  * def __cpp_calculate_pressure(self, x, t):
38166  */
38167  __pyx_t_3 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1177, __pyx_L1_error)
38168  __Pyx_GOTREF(__pyx_t_3);
38169  __pyx_t_2 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1177, __pyx_L1_error)
38170  __Pyx_GOTREF(__pyx_t_2);
38171  __pyx_t_18 = __pyx_array_new(__pyx_t_2, sizeof(double), PyBytes_AS_STRING(__pyx_t_3), (char *) "fortran", (char *) __pyx_v_u);
38172  if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1177, __pyx_L1_error)
38173  __Pyx_GOTREF(__pyx_t_18);
38174  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
38175  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38176  __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(((PyObject *)__pyx_t_18), PyBUF_WRITABLE); if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 1177, __pyx_L1_error)
38177  __Pyx_DECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0;
38178  __pyx_r = __pyx_t_15;
38179  __pyx_t_15.memview = NULL;
38180  __pyx_t_15.data = NULL;
38181  goto __pyx_L0;
38182 
38183  /* "mprans/BoundaryConditions.py":1150
38184  * self.wind_speed = wind_speed
38185  *
38186  * def __cpp_calculate_velocity(self, x, t): # <<<<<<<<<<<<<<
38187  * cython.declare(u=cython.double[3])
38188  * cython.declare(xx=cython.double[3])
38189  */
38190 
38191  /* function exit code */
38192  __pyx_L1_error:;
38193  __Pyx_XDECREF(__pyx_t_2);
38194  __Pyx_XDECREF(__pyx_t_3);
38195  __Pyx_XDECREF(__pyx_t_4);
38196  __Pyx_XDECREF(__pyx_t_5);
38197  __Pyx_XDECREF(__pyx_t_6);
38198  __Pyx_XDECREF(__pyx_t_8);
38199  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
38200  __Pyx_XDECREF(__pyx_t_11);
38201  __Pyx_XDECREF(__pyx_t_12);
38202  __Pyx_XDECREF(__pyx_t_13);
38203  __PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
38204  __Pyx_XDECREF(((PyObject *)__pyx_t_18));
38205  __pyx_r.data = NULL;
38206  __pyx_r.memview = NULL;
38207  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__cpp_calculate_velocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
38208  goto __pyx_L2;
38209  __pyx_L0:;
38210  if (unlikely(!__pyx_r.memview)) {
38211  PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized");
38212  }
38213  __pyx_L2:;
38214  __PYX_XDEC_MEMVIEW(&__pyx_v_waterSpeed, 1);
38215  __Pyx_TraceReturn(Py_None, 0);
38216  __Pyx_RefNannyFinishContext();
38217  return __pyx_r;
38218 }
38219 
38220 /* "mprans/BoundaryConditions.py":1179
38221  * return u
38222  *
38223  * def __cpp_calculate_pressure(self, x, t): # <<<<<<<<<<<<<<
38224  * # This is the normal velocity, based on the outwards boundary
38225  * # orientation b_or
38226  */
38227 
38228 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_pressure(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
38229  __pyx_t_6mprans_18BoundaryConditions_double_memview1 __pyx_v_ux = { 0, 0, { 0 }, { 0 }, { 0 } };
38230  double __pyx_v_b0;
38231  double __pyx_v_b1;
38232  double __pyx_v_b2;
38233  double __pyx_v_u0;
38234  double __pyx_v_u1;
38235  double __pyx_v_u2;
38236  double __pyx_r;
38237  __Pyx_TraceDeclarations
38238  __Pyx_RefNannyDeclarations
38239  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
38240  Py_ssize_t __pyx_t_2;
38241  double __pyx_t_3;
38242  double __pyx_t_4;
38243  double __pyx_t_5;
38244  int __pyx_lineno = 0;
38245  const char *__pyx_filename = NULL;
38246  int __pyx_clineno = 0;
38247  __Pyx_RefNannySetupContext("__cpp_calculate_pressure", 0);
38248  __Pyx_TraceCall("__cpp_calculate_pressure", __pyx_f[0], 1179, 0, __PYX_ERR(0, 1179, __pyx_L1_error));
38249 
38250  /* "mprans/BoundaryConditions.py":1183
38251  * # orientation b_or
38252  * # needs to be equal to -ux_dirichlet
38253  * ux = self.__cpp_calculate_velocity(x, t) # <<<<<<<<<<<<<<
38254  * b0, b1, b2 = self._b_or[0], self._b_or[1], self._b_or[2]
38255  * u0, u1, u2 = ux[0], ux[1], ux[2]
38256  */
38257  __pyx_t_1 = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_velocity(__pyx_v_self, __pyx_v_x, __pyx_v_t); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 1183, __pyx_L1_error)
38258  __pyx_v_ux = __pyx_t_1;
38259  __pyx_t_1.memview = NULL;
38260  __pyx_t_1.data = NULL;
38261 
38262  /* "mprans/BoundaryConditions.py":1184
38263  * # needs to be equal to -ux_dirichlet
38264  * ux = self.__cpp_calculate_velocity(x, t)
38265  * b0, b1, b2 = self._b_or[0], self._b_or[1], self._b_or[2] # <<<<<<<<<<<<<<
38266  * u0, u1, u2 = ux[0], ux[1], ux[2]
38267  * return b0 * u0 + b1 * u1 + b2 * u2
38268  */
38269  __pyx_t_2 = 0;
38270  __pyx_t_3 = (*((double *) ( /* dim=0 */ (__pyx_v_self->_b_or.data + __pyx_t_2 * __pyx_v_self->_b_or.strides[0]) )));
38271  __pyx_t_2 = 1;
38272  __pyx_t_4 = (*((double *) ( /* dim=0 */ (__pyx_v_self->_b_or.data + __pyx_t_2 * __pyx_v_self->_b_or.strides[0]) )));
38273  __pyx_t_2 = 2;
38274  __pyx_t_5 = (*((double *) ( /* dim=0 */ (__pyx_v_self->_b_or.data + __pyx_t_2 * __pyx_v_self->_b_or.strides[0]) )));
38275  __pyx_v_b0 = __pyx_t_3;
38276  __pyx_v_b1 = __pyx_t_4;
38277  __pyx_v_b2 = __pyx_t_5;
38278 
38279  /* "mprans/BoundaryConditions.py":1185
38280  * ux = self.__cpp_calculate_velocity(x, t)
38281  * b0, b1, b2 = self._b_or[0], self._b_or[1], self._b_or[2]
38282  * u0, u1, u2 = ux[0], ux[1], ux[2] # <<<<<<<<<<<<<<
38283  * return b0 * u0 + b1 * u1 + b2 * u2
38284  *
38285  */
38286  __pyx_t_2 = 0;
38287  __pyx_t_5 = (*((double *) ( /* dim=0 */ (__pyx_v_ux.data + __pyx_t_2 * __pyx_v_ux.strides[0]) )));
38288  __pyx_t_2 = 1;
38289  __pyx_t_4 = (*((double *) ( /* dim=0 */ (__pyx_v_ux.data + __pyx_t_2 * __pyx_v_ux.strides[0]) )));
38290  __pyx_t_2 = 2;
38291  __pyx_t_3 = (*((double *) ( /* dim=0 */ (__pyx_v_ux.data + __pyx_t_2 * __pyx_v_ux.strides[0]) )));
38292  __pyx_v_u0 = __pyx_t_5;
38293  __pyx_v_u1 = __pyx_t_4;
38294  __pyx_v_u2 = __pyx_t_3;
38295 
38296  /* "mprans/BoundaryConditions.py":1186
38297  * b0, b1, b2 = self._b_or[0], self._b_or[1], self._b_or[2]
38298  * u0, u1, u2 = ux[0], ux[1], ux[2]
38299  * return b0 * u0 + b1 * u1 + b2 * u2 # <<<<<<<<<<<<<<
38300  *
38301  * def __cpp_calculate_phi(self, x, t):
38302  */
38303  __pyx_r = (((__pyx_v_b0 * __pyx_v_u0) + (__pyx_v_b1 * __pyx_v_u1)) + (__pyx_v_b2 * __pyx_v_u2));
38304  goto __pyx_L0;
38305 
38306  /* "mprans/BoundaryConditions.py":1179
38307  * return u
38308  *
38309  * def __cpp_calculate_pressure(self, x, t): # <<<<<<<<<<<<<<
38310  * # This is the normal velocity, based on the outwards boundary
38311  * # orientation b_or
38312  */
38313 
38314  /* function exit code */
38315  __pyx_L1_error:;
38316  __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
38317  __Pyx_WriteUnraisable("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__cpp_calculate_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
38318  __pyx_r = 0;
38319  __pyx_L0:;
38320  __PYX_XDEC_MEMVIEW(&__pyx_v_ux, 1);
38321  __Pyx_TraceReturn(Py_None, 0);
38322  __Pyx_RefNannyFinishContext();
38323  return __pyx_r;
38324 }
38325 
38326 /* "mprans/BoundaryConditions.py":1188
38327  * return b0 * u0 + b1 * u1 + b2 * u2
38328  *
38329  * def __cpp_calculate_phi(self, x, t): # <<<<<<<<<<<<<<
38330  * cython.declare(xx=cython.double[3])
38331  * xx[0] = x[0]
38332  */
38333 
38334 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_phi(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
38335  double __pyx_v_level;
38336  double __pyx_v_xx[3];
38337  double __pyx_r;
38338  __Pyx_TraceDeclarations
38339  __Pyx_RefNannyDeclarations
38340  PyObject *__pyx_t_1 = NULL;
38341  PyObject *__pyx_t_2 = NULL;
38342  PyObject *__pyx_t_3 = NULL;
38343  PyObject *__pyx_t_4 = NULL;
38344  PyObject *__pyx_t_5 = NULL;
38345  PyObject *__pyx_t_6 = NULL;
38346  int __pyx_t_7;
38347  PyObject *__pyx_t_8 = NULL;
38348  double __pyx_t_9;
38349  int __pyx_lineno = 0;
38350  const char *__pyx_filename = NULL;
38351  int __pyx_clineno = 0;
38352  __Pyx_RefNannySetupContext("__cpp_calculate_phi", 0);
38353  __Pyx_TraceCall("__cpp_calculate_phi", __pyx_f[0], 1188, 0, __PYX_ERR(0, 1188, __pyx_L1_error));
38354 
38355  /* "mprans/BoundaryConditions.py":1190
38356  * def __cpp_calculate_phi(self, x, t):
38357  * cython.declare(xx=cython.double[3])
38358  * xx[0] = x[0] # <<<<<<<<<<<<<<
38359  * xx[1] = x[1]
38360  * xx[2] = x[2]
38361  */
38362  (__pyx_v_xx[0]) = (__pyx_v_x[0]);
38363 
38364  /* "mprans/BoundaryConditions.py":1191
38365  * cython.declare(xx=cython.double[3])
38366  * xx[0] = x[0]
38367  * xx[1] = x[1] # <<<<<<<<<<<<<<
38368  * xx[2] = x[2]
38369  * level = self.WT.mwl + self.WT.eta(xx, t)
38370  */
38371  (__pyx_v_xx[1]) = (__pyx_v_x[1]);
38372 
38373  /* "mprans/BoundaryConditions.py":1192
38374  * xx[0] = x[0]
38375  * xx[1] = x[1]
38376  * xx[2] = x[2] # <<<<<<<<<<<<<<
38377  * level = self.WT.mwl + self.WT.eta(xx, t)
38378  * return x[self.vert_axis] - level
38379  */
38380  (__pyx_v_xx[2]) = (__pyx_v_x[2]);
38381 
38382  /* "mprans/BoundaryConditions.py":1193
38383  * xx[1] = x[1]
38384  * xx[2] = x[2]
38385  * level = self.WT.mwl + self.WT.eta(xx, t) # <<<<<<<<<<<<<<
38386  * return x[self.vert_axis] - level
38387  *
38388  */
38389  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->WT, __pyx_n_s_mwl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1193, __pyx_L1_error)
38390  __Pyx_GOTREF(__pyx_t_1);
38391  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->WT, __pyx_n_s_eta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1193, __pyx_L1_error)
38392  __Pyx_GOTREF(__pyx_t_3);
38393  __pyx_t_4 = __Pyx_carray_to_py_double(__pyx_v_xx, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1193, __pyx_L1_error)
38394  __Pyx_GOTREF(__pyx_t_4);
38395  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1193, __pyx_L1_error)
38396  __Pyx_GOTREF(__pyx_t_5);
38397  __pyx_t_6 = NULL;
38398  __pyx_t_7 = 0;
38399  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
38400  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
38401  if (likely(__pyx_t_6)) {
38402  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
38403  __Pyx_INCREF(__pyx_t_6);
38404  __Pyx_INCREF(function);
38405  __Pyx_DECREF_SET(__pyx_t_3, function);
38406  __pyx_t_7 = 1;
38407  }
38408  }
38409  #if CYTHON_FAST_PYCALL
38410  if (PyFunction_Check(__pyx_t_3)) {
38411  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
38412  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1193, __pyx_L1_error)
38413  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
38414  __Pyx_GOTREF(__pyx_t_2);
38415  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38416  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
38417  } else
38418  #endif
38419  #if CYTHON_FAST_PYCCALL
38420  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
38421  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
38422  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1193, __pyx_L1_error)
38423  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
38424  __Pyx_GOTREF(__pyx_t_2);
38425  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38426  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
38427  } else
38428  #endif
38429  {
38430  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1193, __pyx_L1_error)
38431  __Pyx_GOTREF(__pyx_t_8);
38432  if (__pyx_t_6) {
38433  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
38434  }
38435  __Pyx_GIVEREF(__pyx_t_4);
38436  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
38437  __Pyx_GIVEREF(__pyx_t_5);
38438  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5);
38439  __pyx_t_4 = 0;
38440  __pyx_t_5 = 0;
38441  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1193, __pyx_L1_error)
38442  __Pyx_GOTREF(__pyx_t_2);
38443  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
38444  }
38445  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38446  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1193, __pyx_L1_error)
38447  __Pyx_GOTREF(__pyx_t_3);
38448  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38449  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
38450  __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1193, __pyx_L1_error)
38451  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38452  __pyx_v_level = __pyx_t_9;
38453 
38454  /* "mprans/BoundaryConditions.py":1194
38455  * xx[2] = x[2]
38456  * level = self.WT.mwl + self.WT.eta(xx, t)
38457  * return x[self.vert_axis] - level # <<<<<<<<<<<<<<
38458  *
38459  * def __cpp_calculate_vof(self, x, t):
38460  */
38461  __pyx_r = ((__pyx_v_x[__pyx_v_self->vert_axis]) - __pyx_v_level);
38462  goto __pyx_L0;
38463 
38464  /* "mprans/BoundaryConditions.py":1188
38465  * return b0 * u0 + b1 * u1 + b2 * u2
38466  *
38467  * def __cpp_calculate_phi(self, x, t): # <<<<<<<<<<<<<<
38468  * cython.declare(xx=cython.double[3])
38469  * xx[0] = x[0]
38470  */
38471 
38472  /* function exit code */
38473  __pyx_L1_error:;
38474  __Pyx_XDECREF(__pyx_t_1);
38475  __Pyx_XDECREF(__pyx_t_2);
38476  __Pyx_XDECREF(__pyx_t_3);
38477  __Pyx_XDECREF(__pyx_t_4);
38478  __Pyx_XDECREF(__pyx_t_5);
38479  __Pyx_XDECREF(__pyx_t_6);
38480  __Pyx_XDECREF(__pyx_t_8);
38481  __Pyx_WriteUnraisable("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__cpp_calculate_phi", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
38482  __pyx_r = 0;
38483  __pyx_L0:;
38484  __Pyx_TraceReturn(Py_None, 0);
38485  __Pyx_RefNannyFinishContext();
38486  return __pyx_r;
38487 }
38488 
38489 /* "mprans/BoundaryConditions.py":1196
38490  * return x[self.vert_axis] - level
38491  *
38492  * def __cpp_calculate_vof(self, x, t): # <<<<<<<<<<<<<<
38493  * phi = self.__cpp_calculate_phi(x, t)
38494  * H = self.__cpp_calculate_smoothing_H(phi)
38495  */
38496 
38497 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_vof(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double *__pyx_v_x, double __pyx_v_t) {
38498  double __pyx_v_phi;
38499  double __pyx_v_H;
38500  double __pyx_r;
38501  __Pyx_TraceDeclarations
38502  __Pyx_RefNannyDeclarations
38503  int __pyx_lineno = 0;
38504  const char *__pyx_filename = NULL;
38505  int __pyx_clineno = 0;
38506  __Pyx_RefNannySetupContext("__cpp_calculate_vof", 0);
38507  __Pyx_TraceCall("__cpp_calculate_vof", __pyx_f[0], 1196, 0, __PYX_ERR(0, 1196, __pyx_L1_error));
38508 
38509  /* "mprans/BoundaryConditions.py":1197
38510  *
38511  * def __cpp_calculate_vof(self, x, t):
38512  * phi = self.__cpp_calculate_phi(x, t) # <<<<<<<<<<<<<<
38513  * H = self.__cpp_calculate_smoothing_H(phi)
38514  * return H
38515  */
38516  __pyx_v_phi = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_phi(__pyx_v_self, __pyx_v_x, __pyx_v_t);
38517 
38518  /* "mprans/BoundaryConditions.py":1198
38519  * def __cpp_calculate_vof(self, x, t):
38520  * phi = self.__cpp_calculate_phi(x, t)
38521  * H = self.__cpp_calculate_smoothing_H(phi) # <<<<<<<<<<<<<<
38522  * return H
38523  *
38524  */
38525  __pyx_v_H = ((struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self->__pyx_vtab)->__pyx___cpp_calculate_smoothing_H(__pyx_v_self, __pyx_v_phi);
38526 
38527  /* "mprans/BoundaryConditions.py":1199
38528  * phi = self.__cpp_calculate_phi(x, t)
38529  * H = self.__cpp_calculate_smoothing_H(phi)
38530  * return H # <<<<<<<<<<<<<<
38531  *
38532  * def __cpp_calculate_smoothing_H(self, phi):
38533  */
38534  __pyx_r = __pyx_v_H;
38535  goto __pyx_L0;
38536 
38537  /* "mprans/BoundaryConditions.py":1196
38538  * return x[self.vert_axis] - level
38539  *
38540  * def __cpp_calculate_vof(self, x, t): # <<<<<<<<<<<<<<
38541  * phi = self.__cpp_calculate_phi(x, t)
38542  * H = self.__cpp_calculate_smoothing_H(phi)
38543  */
38544 
38545  /* function exit code */
38546  __pyx_L1_error:;
38547  __Pyx_WriteUnraisable("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__cpp_calculate_vof", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
38548  __pyx_r = 0;
38549  __pyx_L0:;
38550  __Pyx_TraceReturn(Py_None, 0);
38551  __Pyx_RefNannyFinishContext();
38552  return __pyx_r;
38553 }
38554 
38555 /* "mprans/BoundaryConditions.py":1201
38556  * return H
38557  *
38558  * def __cpp_calculate_smoothing_H(self, phi): # <<<<<<<<<<<<<<
38559  * if phi >= self.smoothing:
38560  * H = 1.
38561  */
38562 
38563 static double __pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_smoothing_H(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, double __pyx_v_phi) {
38564  double __pyx_v_H;
38565  double __pyx_r;
38566  __Pyx_TraceDeclarations
38567  __Pyx_RefNannyDeclarations
38568  int __pyx_t_1;
38569  int __pyx_t_2;
38570  int __pyx_t_3;
38571  PyObject *__pyx_t_4 = NULL;
38572  PyObject *__pyx_t_5 = NULL;
38573  PyObject *__pyx_t_6 = NULL;
38574  PyObject *__pyx_t_7 = NULL;
38575  PyObject *__pyx_t_8 = NULL;
38576  int __pyx_t_9;
38577  PyObject *__pyx_t_10 = NULL;
38578  double __pyx_t_11;
38579  int __pyx_lineno = 0;
38580  const char *__pyx_filename = NULL;
38581  int __pyx_clineno = 0;
38582  __Pyx_RefNannySetupContext("__cpp_calculate_smoothing_H", 0);
38583  __Pyx_TraceCall("__cpp_calculate_smoothing_H", __pyx_f[0], 1201, 0, __PYX_ERR(0, 1201, __pyx_L1_error));
38584 
38585  /* "mprans/BoundaryConditions.py":1202
38586  *
38587  * def __cpp_calculate_smoothing_H(self, phi):
38588  * if phi >= self.smoothing: # <<<<<<<<<<<<<<
38589  * H = 1.
38590  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38591  */
38592  __pyx_t_1 = ((__pyx_v_phi >= __pyx_v_self->smoothing) != 0);
38593  if (__pyx_t_1) {
38594 
38595  /* "mprans/BoundaryConditions.py":1203
38596  * def __cpp_calculate_smoothing_H(self, phi):
38597  * if phi >= self.smoothing:
38598  * H = 1. # <<<<<<<<<<<<<<
38599  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38600  * H = smoothedHeaviside(self.smoothing, phi)
38601  */
38602  __pyx_v_H = 1.;
38603 
38604  /* "mprans/BoundaryConditions.py":1202
38605  *
38606  * def __cpp_calculate_smoothing_H(self, phi):
38607  * if phi >= self.smoothing: # <<<<<<<<<<<<<<
38608  * H = 1.
38609  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38610  */
38611  goto __pyx_L3;
38612  }
38613 
38614  /* "mprans/BoundaryConditions.py":1204
38615  * if phi >= self.smoothing:
38616  * H = 1.
38617  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing: # <<<<<<<<<<<<<<
38618  * H = smoothedHeaviside(self.smoothing, phi)
38619  * elif phi <= -self.smoothing:
38620  */
38621  __pyx_t_2 = ((__pyx_v_self->smoothing > 0.0) != 0);
38622  if (__pyx_t_2) {
38623  } else {
38624  __pyx_t_1 = __pyx_t_2;
38625  goto __pyx_L4_bool_binop_done;
38626  }
38627  __pyx_t_2 = ((-__pyx_v_self->smoothing) < __pyx_v_phi);
38628  if (__pyx_t_2) {
38629  __pyx_t_2 = (__pyx_v_phi < __pyx_v_self->smoothing);
38630  }
38631  __pyx_t_3 = (__pyx_t_2 != 0);
38632  __pyx_t_1 = __pyx_t_3;
38633  __pyx_L4_bool_binop_done:;
38634  if (__pyx_t_1) {
38635 
38636  /* "mprans/BoundaryConditions.py":1205
38637  * H = 1.
38638  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38639  * H = smoothedHeaviside(self.smoothing, phi) # <<<<<<<<<<<<<<
38640  * elif phi <= -self.smoothing:
38641  * H = 0.
38642  */
38643  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1205, __pyx_L1_error)
38644  __Pyx_GOTREF(__pyx_t_5);
38645  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->smoothing); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1205, __pyx_L1_error)
38646  __Pyx_GOTREF(__pyx_t_6);
38647  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_phi); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1205, __pyx_L1_error)
38648  __Pyx_GOTREF(__pyx_t_7);
38649  __pyx_t_8 = NULL;
38650  __pyx_t_9 = 0;
38651  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
38652  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
38653  if (likely(__pyx_t_8)) {
38654  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
38655  __Pyx_INCREF(__pyx_t_8);
38656  __Pyx_INCREF(function);
38657  __Pyx_DECREF_SET(__pyx_t_5, function);
38658  __pyx_t_9 = 1;
38659  }
38660  }
38661  #if CYTHON_FAST_PYCALL
38662  if (PyFunction_Check(__pyx_t_5)) {
38663  PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7};
38664  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1205, __pyx_L1_error)
38665  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
38666  __Pyx_GOTREF(__pyx_t_4);
38667  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
38668  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
38669  } else
38670  #endif
38671  #if CYTHON_FAST_PYCCALL
38672  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
38673  PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7};
38674  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1205, __pyx_L1_error)
38675  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
38676  __Pyx_GOTREF(__pyx_t_4);
38677  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
38678  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
38679  } else
38680  #endif
38681  {
38682  __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1205, __pyx_L1_error)
38683  __Pyx_GOTREF(__pyx_t_10);
38684  if (__pyx_t_8) {
38685  __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
38686  }
38687  __Pyx_GIVEREF(__pyx_t_6);
38688  PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_6);
38689  __Pyx_GIVEREF(__pyx_t_7);
38690  PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7);
38691  __pyx_t_6 = 0;
38692  __pyx_t_7 = 0;
38693  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1205, __pyx_L1_error)
38694  __Pyx_GOTREF(__pyx_t_4);
38695  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
38696  }
38697  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
38698  __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1205, __pyx_L1_error)
38699  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38700  __pyx_v_H = __pyx_t_11;
38701 
38702  /* "mprans/BoundaryConditions.py":1204
38703  * if phi >= self.smoothing:
38704  * H = 1.
38705  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing: # <<<<<<<<<<<<<<
38706  * H = smoothedHeaviside(self.smoothing, phi)
38707  * elif phi <= -self.smoothing:
38708  */
38709  goto __pyx_L3;
38710  }
38711 
38712  /* "mprans/BoundaryConditions.py":1206
38713  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38714  * H = smoothedHeaviside(self.smoothing, phi)
38715  * elif phi <= -self.smoothing: # <<<<<<<<<<<<<<
38716  * H = 0.
38717  * return H
38718  */
38719  __pyx_t_1 = ((__pyx_v_phi <= (-__pyx_v_self->smoothing)) != 0);
38720  if (__pyx_t_1) {
38721 
38722  /* "mprans/BoundaryConditions.py":1207
38723  * H = smoothedHeaviside(self.smoothing, phi)
38724  * elif phi <= -self.smoothing:
38725  * H = 0. # <<<<<<<<<<<<<<
38726  * return H
38727  *
38728  */
38729  __pyx_v_H = 0.;
38730 
38731  /* "mprans/BoundaryConditions.py":1206
38732  * elif self.smoothing > 0 and -self.smoothing < phi < self.smoothing:
38733  * H = smoothedHeaviside(self.smoothing, phi)
38734  * elif phi <= -self.smoothing: # <<<<<<<<<<<<<<
38735  * H = 0.
38736  * return H
38737  */
38738  }
38739  __pyx_L3:;
38740 
38741  /* "mprans/BoundaryConditions.py":1208
38742  * elif phi <= -self.smoothing:
38743  * H = 0.
38744  * return H # <<<<<<<<<<<<<<
38745  *
38746  *
38747  */
38748  __pyx_r = __pyx_v_H;
38749  goto __pyx_L0;
38750 
38751  /* "mprans/BoundaryConditions.py":1201
38752  * return H
38753  *
38754  * def __cpp_calculate_smoothing_H(self, phi): # <<<<<<<<<<<<<<
38755  * if phi >= self.smoothing:
38756  * H = 1.
38757  */
38758 
38759  /* function exit code */
38760  __pyx_L1_error:;
38761  __Pyx_XDECREF(__pyx_t_4);
38762  __Pyx_XDECREF(__pyx_t_5);
38763  __Pyx_XDECREF(__pyx_t_6);
38764  __Pyx_XDECREF(__pyx_t_7);
38765  __Pyx_XDECREF(__pyx_t_8);
38766  __Pyx_XDECREF(__pyx_t_10);
38767  __Pyx_WriteUnraisable("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__cpp_calculate_smoothing_H", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
38768  __pyx_r = 0;
38769  __pyx_L0:;
38770  __Pyx_TraceReturn(Py_None, 0);
38771  __Pyx_RefNannyFinishContext();
38772  return __pyx_r;
38773 }
38774 
38775 /* "mprans/BoundaryConditions.pxd":186
38776  * cdef public:
38777  * # wave class from WaveTools
38778  * object WT # <<<<<<<<<<<<<<
38779  * @cython.locals(phi=double, waterSpeed=double_memview1,
38780  * H=double)
38781  */
38782 
38783 /* Python wrapper */
38784 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_1__get__(PyObject *__pyx_v_self); /*proto*/
38785 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_1__get__(PyObject *__pyx_v_self) {
38786  PyObject *__pyx_r = 0;
38787  __Pyx_RefNannyDeclarations
38788  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
38789  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT___get__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self));
38790 
38791  /* function exit code */
38792  __Pyx_RefNannyFinishContext();
38793  return __pyx_r;
38794 }
38795 
38796 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT___get__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self) {
38797  PyObject *__pyx_r = NULL;
38798  __Pyx_TraceDeclarations
38799  __Pyx_RefNannyDeclarations
38800  int __pyx_lineno = 0;
38801  const char *__pyx_filename = NULL;
38802  int __pyx_clineno = 0;
38803  __Pyx_RefNannySetupContext("__get__", 0);
38804  __Pyx_TraceCall("__get__", __pyx_f[2], 186, 0, __PYX_ERR(2, 186, __pyx_L1_error));
38805  __Pyx_XDECREF(__pyx_r);
38806  __Pyx_INCREF(__pyx_v_self->WT);
38807  __pyx_r = __pyx_v_self->WT;
38808  goto __pyx_L0;
38809 
38810  /* function exit code */
38811  __pyx_L1_error:;
38812  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.WT.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38813  __pyx_r = NULL;
38814  __pyx_L0:;
38815  __Pyx_XGIVEREF(__pyx_r);
38816  __Pyx_TraceReturn(__pyx_r, 0);
38817  __Pyx_RefNannyFinishContext();
38818  return __pyx_r;
38819 }
38820 
38821 /* Python wrapper */
38822 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
38823 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
38824  int __pyx_r;
38825  __Pyx_RefNannyDeclarations
38826  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
38827  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_2__set__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self), ((PyObject *)__pyx_v_value));
38828 
38829  /* function exit code */
38830  __Pyx_RefNannyFinishContext();
38831  return __pyx_r;
38832 }
38833 
38834 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_2__set__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v_value) {
38835  int __pyx_r;
38836  __Pyx_TraceDeclarations
38837  __Pyx_RefNannyDeclarations
38838  int __pyx_lineno = 0;
38839  const char *__pyx_filename = NULL;
38840  int __pyx_clineno = 0;
38841  __Pyx_RefNannySetupContext("__set__", 0);
38842  __Pyx_TraceCall("__set__", __pyx_f[2], 186, 0, __PYX_ERR(2, 186, __pyx_L1_error));
38843  __Pyx_INCREF(__pyx_v_value);
38844  __Pyx_GIVEREF(__pyx_v_value);
38845  __Pyx_GOTREF(__pyx_v_self->WT);
38846  __Pyx_DECREF(__pyx_v_self->WT);
38847  __pyx_v_self->WT = __pyx_v_value;
38848 
38849  /* function exit code */
38850  __pyx_r = 0;
38851  goto __pyx_L0;
38852  __pyx_L1_error:;
38853  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.WT.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38854  __pyx_r = -1;
38855  __pyx_L0:;
38856  __Pyx_TraceReturn(Py_None, 0);
38857  __Pyx_RefNannyFinishContext();
38858  return __pyx_r;
38859 }
38860 
38861 /* Python wrapper */
38862 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_5__del__(PyObject *__pyx_v_self); /*proto*/
38863 static int __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_5__del__(PyObject *__pyx_v_self) {
38864  int __pyx_r;
38865  __Pyx_RefNannyDeclarations
38866  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
38867  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_4__del__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self));
38868 
38869  /* function exit code */
38870  __Pyx_RefNannyFinishContext();
38871  return __pyx_r;
38872 }
38873 
38874 static int __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_4__del__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self) {
38875  int __pyx_r;
38876  __Pyx_TraceDeclarations
38877  __Pyx_RefNannyDeclarations
38878  int __pyx_lineno = 0;
38879  const char *__pyx_filename = NULL;
38880  int __pyx_clineno = 0;
38881  __Pyx_RefNannySetupContext("__del__", 0);
38882  __Pyx_TraceCall("__del__", __pyx_f[2], 186, 0, __PYX_ERR(2, 186, __pyx_L1_error));
38883  __Pyx_INCREF(Py_None);
38884  __Pyx_GIVEREF(Py_None);
38885  __Pyx_GOTREF(__pyx_v_self->WT);
38886  __Pyx_DECREF(__pyx_v_self->WT);
38887  __pyx_v_self->WT = Py_None;
38888 
38889  /* function exit code */
38890  __pyx_r = 0;
38891  goto __pyx_L0;
38892  __pyx_L1_error:;
38893  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.WT.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38894  __pyx_r = -1;
38895  __pyx_L0:;
38896  __Pyx_TraceReturn(Py_None, 0);
38897  __Pyx_RefNannyFinishContext();
38898  return __pyx_r;
38899 }
38900 
38901 /* "(tree fragment)":1
38902  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
38903  * cdef tuple state
38904  * cdef object _dict
38905  */
38906 
38907 /* Python wrapper */
38908 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
38909 static char __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__[] = "__cppClass_WavesCharacteristics.__reduce_cython__(self)";
38910 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__};
38911 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
38912  PyObject *__pyx_r = 0;
38913  __Pyx_RefNannyDeclarations
38914  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
38915  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self));
38916 
38917  /* function exit code */
38918  __Pyx_RefNannyFinishContext();
38919  return __pyx_r;
38920 }
38921 
38922 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self) {
38923  PyObject *__pyx_v_state = 0;
38924  PyObject *__pyx_v__dict = 0;
38925  int __pyx_v_use_setstate;
38926  PyObject *__pyx_r = NULL;
38927  __Pyx_TraceDeclarations
38928  __Pyx_RefNannyDeclarations
38929  PyObject *__pyx_t_1 = NULL;
38930  PyObject *__pyx_t_2 = NULL;
38931  PyObject *__pyx_t_3 = NULL;
38932  PyObject *__pyx_t_4 = NULL;
38933  PyObject *__pyx_t_5 = NULL;
38934  PyObject *__pyx_t_6 = NULL;
38935  PyObject *__pyx_t_7 = NULL;
38936  PyObject *__pyx_t_8 = NULL;
38937  PyObject *__pyx_t_9 = NULL;
38938  PyObject *__pyx_t_10 = NULL;
38939  int __pyx_t_11;
38940  int __pyx_t_12;
38941  int __pyx_lineno = 0;
38942  const char *__pyx_filename = NULL;
38943  int __pyx_clineno = 0;
38944  __Pyx_TraceFrameInit(__pyx_codeobj__105)
38945  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
38946  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
38947 
38948  /* "(tree fragment)":5
38949  * cdef object _dict
38950  * cdef bint use_setstate
38951  * state = (self.WT, self._b_or, self.center, self.orientation, self.smoothing, self.vert_axis, self.vof_air, self.vof_water, self.wind_speed, self.zero_vel) # <<<<<<<<<<<<<<
38952  * _dict = getattr(self, '__dict__', None)
38953  * if _dict is not None:
38954  */
38955  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_self->_b_or, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
38956  __Pyx_GOTREF(__pyx_t_1);
38957  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_self->center, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
38958  __Pyx_GOTREF(__pyx_t_2);
38959  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_self->orientation, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
38960  __Pyx_GOTREF(__pyx_t_3);
38961  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->smoothing); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
38962  __Pyx_GOTREF(__pyx_t_4);
38963  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->vert_axis); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
38964  __Pyx_GOTREF(__pyx_t_5);
38965  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->vof_air); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
38966  __Pyx_GOTREF(__pyx_t_6);
38967  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->vof_water); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
38968  __Pyx_GOTREF(__pyx_t_7);
38969  __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_self->wind_speed, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
38970  __Pyx_GOTREF(__pyx_t_8);
38971  __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_self->zero_vel, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error)
38972  __Pyx_GOTREF(__pyx_t_9);
38973  __pyx_t_10 = PyTuple_New(10); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 5, __pyx_L1_error)
38974  __Pyx_GOTREF(__pyx_t_10);
38975  __Pyx_INCREF(__pyx_v_self->WT);
38976  __Pyx_GIVEREF(__pyx_v_self->WT);
38977  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_self->WT);
38978  __Pyx_GIVEREF(__pyx_t_1);
38979  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
38980  __Pyx_GIVEREF(__pyx_t_2);
38981  PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_2);
38982  __Pyx_GIVEREF(__pyx_t_3);
38983  PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_3);
38984  __Pyx_GIVEREF(__pyx_t_4);
38985  PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_4);
38986  __Pyx_GIVEREF(__pyx_t_5);
38987  PyTuple_SET_ITEM(__pyx_t_10, 5, __pyx_t_5);
38988  __Pyx_GIVEREF(__pyx_t_6);
38989  PyTuple_SET_ITEM(__pyx_t_10, 6, __pyx_t_6);
38990  __Pyx_GIVEREF(__pyx_t_7);
38991  PyTuple_SET_ITEM(__pyx_t_10, 7, __pyx_t_7);
38992  __Pyx_GIVEREF(__pyx_t_8);
38993  PyTuple_SET_ITEM(__pyx_t_10, 8, __pyx_t_8);
38994  __Pyx_GIVEREF(__pyx_t_9);
38995  PyTuple_SET_ITEM(__pyx_t_10, 9, __pyx_t_9);
38996  __pyx_t_1 = 0;
38997  __pyx_t_2 = 0;
38998  __pyx_t_3 = 0;
38999  __pyx_t_4 = 0;
39000  __pyx_t_5 = 0;
39001  __pyx_t_6 = 0;
39002  __pyx_t_7 = 0;
39003  __pyx_t_8 = 0;
39004  __pyx_t_9 = 0;
39005  __pyx_v_state = ((PyObject*)__pyx_t_10);
39006  __pyx_t_10 = 0;
39007 
39008  /* "(tree fragment)":6
39009  * cdef bint use_setstate
39010  * state = (self.WT, self._b_or, self.center, self.orientation, self.smoothing, self.vert_axis, self.vof_air, self.vof_water, self.wind_speed, self.zero_vel)
39011  * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<<
39012  * if _dict is not None:
39013  * state += (_dict,)
39014  */
39015  __pyx_t_10 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 6, __pyx_L1_error)
39016  __Pyx_GOTREF(__pyx_t_10);
39017  __pyx_v__dict = __pyx_t_10;
39018  __pyx_t_10 = 0;
39019 
39020  /* "(tree fragment)":7
39021  * state = (self.WT, self._b_or, self.center, self.orientation, self.smoothing, self.vert_axis, self.vof_air, self.vof_water, self.wind_speed, self.zero_vel)
39022  * _dict = getattr(self, '__dict__', None)
39023  * if _dict is not None: # <<<<<<<<<<<<<<
39024  * state += (_dict,)
39025  * use_setstate = True
39026  */
39027  __pyx_t_11 = (__pyx_v__dict != Py_None);
39028  __pyx_t_12 = (__pyx_t_11 != 0);
39029  if (__pyx_t_12) {
39030 
39031  /* "(tree fragment)":8
39032  * _dict = getattr(self, '__dict__', None)
39033  * if _dict is not None:
39034  * state += (_dict,) # <<<<<<<<<<<<<<
39035  * use_setstate = True
39036  * else:
39037  */
39038  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 8, __pyx_L1_error)
39039  __Pyx_GOTREF(__pyx_t_10);
39040  __Pyx_INCREF(__pyx_v__dict);
39041  __Pyx_GIVEREF(__pyx_v__dict);
39042  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v__dict);
39043  __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 8, __pyx_L1_error)
39044  __Pyx_GOTREF(__pyx_t_9);
39045  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
39046  __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_9));
39047  __pyx_t_9 = 0;
39048 
39049  /* "(tree fragment)":9
39050  * if _dict is not None:
39051  * state += (_dict,)
39052  * use_setstate = True # <<<<<<<<<<<<<<
39053  * else:
39054  * use_setstate = self.WT is not None
39055  */
39056  __pyx_v_use_setstate = 1;
39057 
39058  /* "(tree fragment)":7
39059  * state = (self.WT, self._b_or, self.center, self.orientation, self.smoothing, self.vert_axis, self.vof_air, self.vof_water, self.wind_speed, self.zero_vel)
39060  * _dict = getattr(self, '__dict__', None)
39061  * if _dict is not None: # <<<<<<<<<<<<<<
39062  * state += (_dict,)
39063  * use_setstate = True
39064  */
39065  goto __pyx_L3;
39066  }
39067 
39068  /* "(tree fragment)":11
39069  * use_setstate = True
39070  * else:
39071  * use_setstate = self.WT is not None # <<<<<<<<<<<<<<
39072  * if use_setstate:
39073  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, None), state
39074  */
39075  /*else*/ {
39076  __pyx_t_12 = (__pyx_v_self->WT != Py_None);
39077  __pyx_v_use_setstate = __pyx_t_12;
39078  }
39079  __pyx_L3:;
39080 
39081  /* "(tree fragment)":12
39082  * else:
39083  * use_setstate = self.WT is not None
39084  * if use_setstate: # <<<<<<<<<<<<<<
39085  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, None), state
39086  * else:
39087  */
39088  __pyx_t_12 = (__pyx_v_use_setstate != 0);
39089  if (__pyx_t_12) {
39090 
39091  /* "(tree fragment)":13
39092  * use_setstate = self.WT is not None
39093  * if use_setstate:
39094  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, None), state # <<<<<<<<<<<<<<
39095  * else:
39096  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
39097  */
39098  __Pyx_XDECREF(__pyx_r);
39099  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pyx_unpickle___cppClass_WavesC); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error)
39100  __Pyx_GOTREF(__pyx_t_9);
39101  __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 13, __pyx_L1_error)
39102  __Pyx_GOTREF(__pyx_t_10);
39103  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39104  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39105  PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39106  __Pyx_INCREF(__pyx_int_24898426);
39107  __Pyx_GIVEREF(__pyx_int_24898426);
39108  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_int_24898426);
39109  __Pyx_INCREF(Py_None);
39110  __Pyx_GIVEREF(Py_None);
39111  PyTuple_SET_ITEM(__pyx_t_10, 2, Py_None);
39112  __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
39113  __Pyx_GOTREF(__pyx_t_8);
39114  __Pyx_GIVEREF(__pyx_t_9);
39115  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
39116  __Pyx_GIVEREF(__pyx_t_10);
39117  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
39118  __Pyx_INCREF(__pyx_v_state);
39119  __Pyx_GIVEREF(__pyx_v_state);
39120  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state);
39121  __pyx_t_9 = 0;
39122  __pyx_t_10 = 0;
39123  __pyx_r = __pyx_t_8;
39124  __pyx_t_8 = 0;
39125  goto __pyx_L0;
39126 
39127  /* "(tree fragment)":12
39128  * else:
39129  * use_setstate = self.WT is not None
39130  * if use_setstate: # <<<<<<<<<<<<<<
39131  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, None), state
39132  * else:
39133  */
39134  }
39135 
39136  /* "(tree fragment)":15
39137  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, None), state
39138  * else:
39139  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state) # <<<<<<<<<<<<<<
39140  * def __setstate_cython__(self, __pyx_state):
39141  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state)
39142  */
39143  /*else*/ {
39144  __Pyx_XDECREF(__pyx_r);
39145  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_pyx_unpickle___cppClass_WavesC); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
39146  __Pyx_GOTREF(__pyx_t_8);
39147  __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 15, __pyx_L1_error)
39148  __Pyx_GOTREF(__pyx_t_10);
39149  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39150  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39151  PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
39152  __Pyx_INCREF(__pyx_int_24898426);
39153  __Pyx_GIVEREF(__pyx_int_24898426);
39154  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_int_24898426);
39155  __Pyx_INCREF(__pyx_v_state);
39156  __Pyx_GIVEREF(__pyx_v_state);
39157  PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_state);
39158  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error)
39159  __Pyx_GOTREF(__pyx_t_9);
39160  __Pyx_GIVEREF(__pyx_t_8);
39161  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
39162  __Pyx_GIVEREF(__pyx_t_10);
39163  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
39164  __pyx_t_8 = 0;
39165  __pyx_t_10 = 0;
39166  __pyx_r = __pyx_t_9;
39167  __pyx_t_9 = 0;
39168  goto __pyx_L0;
39169  }
39170 
39171  /* "(tree fragment)":1
39172  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
39173  * cdef tuple state
39174  * cdef object _dict
39175  */
39176 
39177  /* function exit code */
39178  __pyx_L1_error:;
39179  __Pyx_XDECREF(__pyx_t_1);
39180  __Pyx_XDECREF(__pyx_t_2);
39181  __Pyx_XDECREF(__pyx_t_3);
39182  __Pyx_XDECREF(__pyx_t_4);
39183  __Pyx_XDECREF(__pyx_t_5);
39184  __Pyx_XDECREF(__pyx_t_6);
39185  __Pyx_XDECREF(__pyx_t_7);
39186  __Pyx_XDECREF(__pyx_t_8);
39187  __Pyx_XDECREF(__pyx_t_9);
39188  __Pyx_XDECREF(__pyx_t_10);
39189  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
39190  __pyx_r = NULL;
39191  __pyx_L0:;
39192  __Pyx_XDECREF(__pyx_v_state);
39193  __Pyx_XDECREF(__pyx_v__dict);
39194  __Pyx_XGIVEREF(__pyx_r);
39195  __Pyx_TraceReturn(__pyx_r, 0);
39196  __Pyx_RefNannyFinishContext();
39197  return __pyx_r;
39198 }
39199 
39200 /* "(tree fragment)":16
39201  * else:
39202  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
39203  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
39204  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state)
39205  */
39206 
39207 /* Python wrapper */
39208 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
39209 static char __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__[] = "__cppClass_WavesCharacteristics.__setstate_cython__(self, __pyx_state)";
39210 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__};
39211 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
39212  PyObject *__pyx_r = 0;
39213  __Pyx_RefNannyDeclarations
39214  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
39215  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
39216 
39217  /* function exit code */
39218  __Pyx_RefNannyFinishContext();
39219  return __pyx_r;
39220 }
39221 
39222 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
39223  PyObject *__pyx_r = NULL;
39224  __Pyx_TraceDeclarations
39225  __Pyx_RefNannyDeclarations
39226  PyObject *__pyx_t_1 = NULL;
39227  int __pyx_lineno = 0;
39228  const char *__pyx_filename = NULL;
39229  int __pyx_clineno = 0;
39230  __Pyx_TraceFrameInit(__pyx_codeobj__106)
39231  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
39232  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));
39233 
39234  /* "(tree fragment)":17
39235  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
39236  * def __setstate_cython__(self, __pyx_state):
39237  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state) # <<<<<<<<<<<<<<
39238  */
39239  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
39240  __pyx_t_1 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle___cppClass_WavesCharacteristics__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
39241  __Pyx_GOTREF(__pyx_t_1);
39242  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39243 
39244  /* "(tree fragment)":16
39245  * else:
39246  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
39247  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
39248  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state)
39249  */
39250 
39251  /* function exit code */
39252  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39253  goto __pyx_L0;
39254  __pyx_L1_error:;
39255  __Pyx_XDECREF(__pyx_t_1);
39256  __Pyx_AddTraceback("mprans.BoundaryConditions.__cppClass_WavesCharacteristics.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
39257  __pyx_r = NULL;
39258  __pyx_L0:;
39259  __Pyx_XGIVEREF(__pyx_r);
39260  __Pyx_TraceReturn(__pyx_r, 0);
39261  __Pyx_RefNannyFinishContext();
39262  return __pyx_r;
39263 }
39264 
39265 /* "mprans/BoundaryConditions.py":1211
39266  *
39267  *
39268  * def __x_to_cpp(x): # <<<<<<<<<<<<<<
39269  * cython.declare(xx=double[3])
39270  * xx[0] = x[0]
39271  */
39272 
39273 static double *__pyx_f_6mprans_18BoundaryConditions___x_to_cpp(__Pyx_memviewslice __pyx_v_x) {
39274  double __pyx_v_xx[3];
39275  double *__pyx_r;
39276  __Pyx_TraceDeclarations
39277  __Pyx_RefNannyDeclarations
39278  Py_ssize_t __pyx_t_1;
39279  int __pyx_lineno = 0;
39280  const char *__pyx_filename = NULL;
39281  int __pyx_clineno = 0;
39282  __Pyx_RefNannySetupContext("__x_to_cpp", 0);
39283  __Pyx_TraceCall("__x_to_cpp", __pyx_f[0], 1211, 0, __PYX_ERR(0, 1211, __pyx_L1_error));
39284 
39285  /* "mprans/BoundaryConditions.py":1213
39286  * def __x_to_cpp(x):
39287  * cython.declare(xx=double[3])
39288  * xx[0] = x[0] # <<<<<<<<<<<<<<
39289  * xx[1] = x[1]
39290  * xx[2] = x[2]
39291  */
39292  __pyx_t_1 = 0;
39293  (__pyx_v_xx[0]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
39294 
39295  /* "mprans/BoundaryConditions.py":1214
39296  * cython.declare(xx=double[3])
39297  * xx[0] = x[0]
39298  * xx[1] = x[1] # <<<<<<<<<<<<<<
39299  * xx[2] = x[2]
39300  * return xx
39301  */
39302  __pyx_t_1 = 1;
39303  (__pyx_v_xx[1]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
39304 
39305  /* "mprans/BoundaryConditions.py":1215
39306  * xx[0] = x[0]
39307  * xx[1] = x[1]
39308  * xx[2] = x[2] # <<<<<<<<<<<<<<
39309  * return xx
39310  *
39311  */
39312  __pyx_t_1 = 2;
39313  (__pyx_v_xx[2]) = (*((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_1 * __pyx_v_x.strides[0]) )));
39314 
39315  /* "mprans/BoundaryConditions.py":1216
39316  * xx[1] = x[1]
39317  * xx[2] = x[2]
39318  * return xx # <<<<<<<<<<<<<<
39319  *
39320  *
39321  */
39322  __pyx_r = __pyx_v_xx;
39323  goto __pyx_L0;
39324 
39325  /* "mprans/BoundaryConditions.py":1211
39326  *
39327  *
39328  * def __x_to_cpp(x): # <<<<<<<<<<<<<<
39329  * cython.declare(xx=double[3])
39330  * xx[0] = x[0]
39331  */
39332 
39333  /* function exit code */
39334  __pyx_L1_error:;
39335  __Pyx_WriteUnraisable("mprans.BoundaryConditions.__x_to_cpp", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
39336  __pyx_r = 0;
39337  __pyx_L0:;
39338  __Pyx_TraceReturn(Py_None, 0);
39339  __Pyx_RefNannyFinishContext();
39340  return __pyx_r;
39341 }
39342 
39343 /* "mprans/BoundaryConditions.py":1225
39344  * """
39345  *
39346  * def __init__(self, turbModel, kWall, Y, Yplus, U0, nu=1.004e-6, Cmu=0.09, K=0.41, B=5.57): # <<<<<<<<<<<<<<
39347  * """
39348  * Sets turbulent boundaries for wall treatment.
39349  */
39350 
39351 /* Python wrapper */
39352 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39353 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions___init__[] = "WallFunctions.__init__(self, turbModel, kWall, Y, Yplus, U0, nu=1.004e-6, Cmu=0.09, K=0.41, B=5.57)\n\n Sets turbulent boundaries for wall treatment.\n Calculation made on nodes outside the viscous sublayer and based\n on assumption on the velocity profile close to the wall in order to\n impose the wall shear stress.\n\n - k is assumed to be constant in the fully turbulent region close to the wall,\n in this way kv = kp.\n - dissipation is calculated.\n\n Parameters\n ----------\n turbModel: string.\n 'ke' or 'kw', for switching between k-epsilon or k-omega models.\n kWall: object.\n Class kWall object for extracting kappa from the model.\n Y: float.\n size of the nearest element to the boundary.\n Yplus: float.\n size of the nearest element to the boundary in terms of wall unit.\n U0: array_like.\n stream velocity.\n nu: float.\n fluid viscosity.\n Cmu: float.\n turbulent viscosity constant.\n K: float.\n von Karman coefficient.\n B: float.\n roughness coefficient for walls.\n ";
39354 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_1__init__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions___init__};
39355 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39356  PyObject *__pyx_v_self = 0;
39357  PyObject *__pyx_v_turbModel = 0;
39358  PyObject *__pyx_v_kWall = 0;
39359  PyObject *__pyx_v_Y = 0;
39360  PyObject *__pyx_v_Yplus = 0;
39361  PyObject *__pyx_v_U0 = 0;
39362  PyObject *__pyx_v_nu = 0;
39363  PyObject *__pyx_v_Cmu = 0;
39364  PyObject *__pyx_v_K = 0;
39365  PyObject *__pyx_v_B = 0;
39366  int __pyx_lineno = 0;
39367  const char *__pyx_filename = NULL;
39368  int __pyx_clineno = 0;
39369  PyObject *__pyx_r = 0;
39370  __Pyx_RefNannyDeclarations
39371  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
39372  {
39373  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_turbModel,&__pyx_n_s_kWall,&__pyx_n_s_Y,&__pyx_n_s_Yplus,&__pyx_n_s_U0,&__pyx_n_s_nu,&__pyx_n_s_Cmu,&__pyx_n_s_K,&__pyx_n_s_B,0};
39374  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
39375  values[6] = ((PyObject *)((PyObject*)__pyx_float_1_004eneg_6));
39376  values[7] = ((PyObject *)((PyObject*)__pyx_float_0_09));
39377  values[8] = ((PyObject *)((PyObject*)__pyx_float_0_41));
39378  values[9] = ((PyObject *)((PyObject*)__pyx_float_5_57));
39379  if (unlikely(__pyx_kwds)) {
39380  Py_ssize_t kw_args;
39381  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
39382  switch (pos_args) {
39383  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
39384  CYTHON_FALLTHROUGH;
39385  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
39386  CYTHON_FALLTHROUGH;
39387  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
39388  CYTHON_FALLTHROUGH;
39389  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
39390  CYTHON_FALLTHROUGH;
39391  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
39392  CYTHON_FALLTHROUGH;
39393  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
39394  CYTHON_FALLTHROUGH;
39395  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39396  CYTHON_FALLTHROUGH;
39397  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39398  CYTHON_FALLTHROUGH;
39399  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39400  CYTHON_FALLTHROUGH;
39401  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39402  CYTHON_FALLTHROUGH;
39403  case 0: break;
39404  default: goto __pyx_L5_argtuple_error;
39405  }
39406  kw_args = PyDict_Size(__pyx_kwds);
39407  switch (pos_args) {
39408  case 0:
39409  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
39410  else goto __pyx_L5_argtuple_error;
39411  CYTHON_FALLTHROUGH;
39412  case 1:
39413  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_turbModel)) != 0)) kw_args--;
39414  else {
39415  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, 1); __PYX_ERR(0, 1225, __pyx_L3_error)
39416  }
39417  CYTHON_FALLTHROUGH;
39418  case 2:
39419  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kWall)) != 0)) kw_args--;
39420  else {
39421  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, 2); __PYX_ERR(0, 1225, __pyx_L3_error)
39422  }
39423  CYTHON_FALLTHROUGH;
39424  case 3:
39425  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Y)) != 0)) kw_args--;
39426  else {
39427  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, 3); __PYX_ERR(0, 1225, __pyx_L3_error)
39428  }
39429  CYTHON_FALLTHROUGH;
39430  case 4:
39431  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Yplus)) != 0)) kw_args--;
39432  else {
39433  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, 4); __PYX_ERR(0, 1225, __pyx_L3_error)
39434  }
39435  CYTHON_FALLTHROUGH;
39436  case 5:
39437  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U0)) != 0)) kw_args--;
39438  else {
39439  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, 5); __PYX_ERR(0, 1225, __pyx_L3_error)
39440  }
39441  CYTHON_FALLTHROUGH;
39442  case 6:
39443  if (kw_args > 0) {
39444  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu);
39445  if (value) { values[6] = value; kw_args--; }
39446  }
39447  CYTHON_FALLTHROUGH;
39448  case 7:
39449  if (kw_args > 0) {
39450  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Cmu);
39451  if (value) { values[7] = value; kw_args--; }
39452  }
39453  CYTHON_FALLTHROUGH;
39454  case 8:
39455  if (kw_args > 0) {
39456  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_K);
39457  if (value) { values[8] = value; kw_args--; }
39458  }
39459  CYTHON_FALLTHROUGH;
39460  case 9:
39461  if (kw_args > 0) {
39462  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B);
39463  if (value) { values[9] = value; kw_args--; }
39464  }
39465  }
39466  if (unlikely(kw_args > 0)) {
39467  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1225, __pyx_L3_error)
39468  }
39469  } else {
39470  switch (PyTuple_GET_SIZE(__pyx_args)) {
39471  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
39472  CYTHON_FALLTHROUGH;
39473  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
39474  CYTHON_FALLTHROUGH;
39475  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
39476  CYTHON_FALLTHROUGH;
39477  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
39478  CYTHON_FALLTHROUGH;
39479  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
39480  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
39481  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39482  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39483  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39484  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39485  break;
39486  default: goto __pyx_L5_argtuple_error;
39487  }
39488  }
39489  __pyx_v_self = values[0];
39490  __pyx_v_turbModel = values[1];
39491  __pyx_v_kWall = values[2];
39492  __pyx_v_Y = values[3];
39493  __pyx_v_Yplus = values[4];
39494  __pyx_v_U0 = values[5];
39495  __pyx_v_nu = values[6];
39496  __pyx_v_Cmu = values[7];
39497  __pyx_v_K = values[8];
39498  __pyx_v_B = values[9];
39499  }
39500  goto __pyx_L4_argument_unpacking_done;
39501  __pyx_L5_argtuple_error:;
39502  __Pyx_RaiseArgtupleInvalid("__init__", 0, 6, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1225, __pyx_L3_error)
39503  __pyx_L3_error:;
39504  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
39505  __Pyx_RefNannyFinishContext();
39506  return NULL;
39507  __pyx_L4_argument_unpacking_done:;
39508  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions___init__(__pyx_self, __pyx_v_self, __pyx_v_turbModel, __pyx_v_kWall, __pyx_v_Y, __pyx_v_Yplus, __pyx_v_U0, __pyx_v_nu, __pyx_v_Cmu, __pyx_v_K, __pyx_v_B);
39509 
39510  /* function exit code */
39511  __Pyx_RefNannyFinishContext();
39512  return __pyx_r;
39513 }
39514 
39515 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_turbModel, PyObject *__pyx_v_kWall, PyObject *__pyx_v_Y, PyObject *__pyx_v_Yplus, PyObject *__pyx_v_U0, PyObject *__pyx_v_nu, PyObject *__pyx_v_Cmu, PyObject *__pyx_v_K, PyObject *__pyx_v_B) {
39516  PyObject *__pyx_r = NULL;
39517  __Pyx_TraceDeclarations
39518  __Pyx_RefNannyDeclarations
39519  PyObject *__pyx_t_1 = NULL;
39520  PyObject *__pyx_t_2 = NULL;
39521  PyObject *__pyx_t_3 = NULL;
39522  int __pyx_lineno = 0;
39523  const char *__pyx_filename = NULL;
39524  int __pyx_clineno = 0;
39525  __Pyx_TraceFrameInit(__pyx_codeobj__107)
39526  __Pyx_RefNannySetupContext("__init__", 0);
39527  __Pyx_TraceCall("__init__", __pyx_f[0], 1225, 0, __PYX_ERR(0, 1225, __pyx_L1_error));
39528 
39529  /* "mprans/BoundaryConditions.py":1257
39530  * roughness coefficient for walls.
39531  * """
39532  * self.turbModel = turbModel # <<<<<<<<<<<<<<
39533  * self.Y = Y
39534  * self.Yplus = Yplus
39535  */
39536  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_turbModel, __pyx_v_turbModel) < 0) __PYX_ERR(0, 1257, __pyx_L1_error)
39537 
39538  /* "mprans/BoundaryConditions.py":1258
39539  * """
39540  * self.turbModel = turbModel
39541  * self.Y = Y # <<<<<<<<<<<<<<
39542  * self.Yplus = Yplus
39543  * self.U0 = U0
39544  */
39545  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Y, __pyx_v_Y) < 0) __PYX_ERR(0, 1258, __pyx_L1_error)
39546 
39547  /* "mprans/BoundaryConditions.py":1259
39548  * self.turbModel = turbModel
39549  * self.Y = Y
39550  * self.Yplus = Yplus # <<<<<<<<<<<<<<
39551  * self.U0 = U0
39552  * self.nu = nu
39553  */
39554  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Yplus, __pyx_v_Yplus) < 0) __PYX_ERR(0, 1259, __pyx_L1_error)
39555 
39556  /* "mprans/BoundaryConditions.py":1260
39557  * self.Y = Y
39558  * self.Yplus = Yplus
39559  * self.U0 = U0 # <<<<<<<<<<<<<<
39560  * self.nu = nu
39561  * self.Cmu = Cmu
39562  */
39563  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_U0, __pyx_v_U0) < 0) __PYX_ERR(0, 1260, __pyx_L1_error)
39564 
39565  /* "mprans/BoundaryConditions.py":1261
39566  * self.Yplus = Yplus
39567  * self.U0 = U0
39568  * self.nu = nu # <<<<<<<<<<<<<<
39569  * self.Cmu = Cmu
39570  * self.K = K
39571  */
39572  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_nu, __pyx_v_nu) < 0) __PYX_ERR(0, 1261, __pyx_L1_error)
39573 
39574  /* "mprans/BoundaryConditions.py":1262
39575  * self.U0 = U0
39576  * self.nu = nu
39577  * self.Cmu = Cmu # <<<<<<<<<<<<<<
39578  * self.K = K
39579  * self.B = B
39580  */
39581  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Cmu, __pyx_v_Cmu) < 0) __PYX_ERR(0, 1262, __pyx_L1_error)
39582 
39583  /* "mprans/BoundaryConditions.py":1263
39584  * self.nu = nu
39585  * self.Cmu = Cmu
39586  * self.K = K # <<<<<<<<<<<<<<
39587  * self.B = B
39588  * # initialise variables
39589  */
39590  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_K, __pyx_v_K) < 0) __PYX_ERR(0, 1263, __pyx_L1_error)
39591 
39592  /* "mprans/BoundaryConditions.py":1264
39593  * self.Cmu = Cmu
39594  * self.K = K
39595  * self.B = B # <<<<<<<<<<<<<<
39596  * # initialise variables
39597  * self.Ubound = np.zeros(3)
39598  */
39599  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_B, __pyx_v_B) < 0) __PYX_ERR(0, 1264, __pyx_L1_error)
39600 
39601  /* "mprans/BoundaryConditions.py":1266
39602  * self.B = B
39603  * # initialise variables
39604  * self.Ubound = np.zeros(3) # <<<<<<<<<<<<<<
39605  * self.kappa = 1e-10
39606  * self.tau_rho = 0.
39607  */
39608  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L1_error)
39609  __Pyx_GOTREF(__pyx_t_2);
39610  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1266, __pyx_L1_error)
39611  __Pyx_GOTREF(__pyx_t_3);
39612  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39613  __pyx_t_2 = NULL;
39614  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
39615  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
39616  if (likely(__pyx_t_2)) {
39617  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
39618  __Pyx_INCREF(__pyx_t_2);
39619  __Pyx_INCREF(function);
39620  __Pyx_DECREF_SET(__pyx_t_3, function);
39621  }
39622  }
39623  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_3);
39624  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
39625  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __pyx_L1_error)
39626  __Pyx_GOTREF(__pyx_t_1);
39627  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39628  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Ubound, __pyx_t_1) < 0) __PYX_ERR(0, 1266, __pyx_L1_error)
39629  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39630 
39631  /* "mprans/BoundaryConditions.py":1267
39632  * # initialise variables
39633  * self.Ubound = np.zeros(3)
39634  * self.kappa = 1e-10 # <<<<<<<<<<<<<<
39635  * self.tau_rho = 0.
39636  * self.utAbs = 1e-10
39637  */
39638  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kappa, __pyx_float_1eneg_10) < 0) __PYX_ERR(0, 1267, __pyx_L1_error)
39639 
39640  /* "mprans/BoundaryConditions.py":1268
39641  * self.Ubound = np.zeros(3)
39642  * self.kappa = 1e-10
39643  * self.tau_rho = 0. # <<<<<<<<<<<<<<
39644  * self.utAbs = 1e-10
39645  * self.ut = np.zeros(3)
39646  */
39647  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tau_rho, __pyx_float_0_) < 0) __PYX_ERR(0, 1268, __pyx_L1_error)
39648 
39649  /* "mprans/BoundaryConditions.py":1269
39650  * self.kappa = 1e-10
39651  * self.tau_rho = 0.
39652  * self.utAbs = 1e-10 # <<<<<<<<<<<<<<
39653  * self.ut = np.zeros(3)
39654  * self.x = np.zeros(3)
39655  */
39656  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_utAbs, __pyx_float_1eneg_10) < 0) __PYX_ERR(0, 1269, __pyx_L1_error)
39657 
39658  /* "mprans/BoundaryConditions.py":1270
39659  * self.tau_rho = 0.
39660  * self.utAbs = 1e-10
39661  * self.ut = np.zeros(3) # <<<<<<<<<<<<<<
39662  * self.x = np.zeros(3)
39663  * self.t = 0.
39664  */
39665  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1270, __pyx_L1_error)
39666  __Pyx_GOTREF(__pyx_t_3);
39667  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1270, __pyx_L1_error)
39668  __Pyx_GOTREF(__pyx_t_2);
39669  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39670  __pyx_t_3 = NULL;
39671  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
39672  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
39673  if (likely(__pyx_t_3)) {
39674  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
39675  __Pyx_INCREF(__pyx_t_3);
39676  __Pyx_INCREF(function);
39677  __Pyx_DECREF_SET(__pyx_t_2, function);
39678  }
39679  }
39680  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_3);
39681  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
39682  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1270, __pyx_L1_error)
39683  __Pyx_GOTREF(__pyx_t_1);
39684  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39685  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ut, __pyx_t_1) < 0) __PYX_ERR(0, 1270, __pyx_L1_error)
39686  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39687 
39688  /* "mprans/BoundaryConditions.py":1271
39689  * self.utAbs = 1e-10
39690  * self.ut = np.zeros(3)
39691  * self.x = np.zeros(3) # <<<<<<<<<<<<<<
39692  * self.t = 0.
39693  * self.model = None
39694  */
39695  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error)
39696  __Pyx_GOTREF(__pyx_t_2);
39697  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error)
39698  __Pyx_GOTREF(__pyx_t_3);
39699  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39700  __pyx_t_2 = NULL;
39701  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
39702  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
39703  if (likely(__pyx_t_2)) {
39704  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
39705  __Pyx_INCREF(__pyx_t_2);
39706  __Pyx_INCREF(function);
39707  __Pyx_DECREF_SET(__pyx_t_3, function);
39708  }
39709  }
39710  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_3);
39711  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
39712  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1271, __pyx_L1_error)
39713  __Pyx_GOTREF(__pyx_t_1);
39714  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39715  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_x, __pyx_t_1) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
39716  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39717 
39718  /* "mprans/BoundaryConditions.py":1272
39719  * self.ut = np.zeros(3)
39720  * self.x = np.zeros(3)
39721  * self.t = 0. # <<<<<<<<<<<<<<
39722  * self.model = None
39723  * self.xi, self.element, self.rank = None, None, None
39724  */
39725  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_t, __pyx_float_0_) < 0) __PYX_ERR(0, 1272, __pyx_L1_error)
39726 
39727  /* "mprans/BoundaryConditions.py":1273
39728  * self.x = np.zeros(3)
39729  * self.t = 0.
39730  * self.model = None # <<<<<<<<<<<<<<
39731  * self.xi, self.element, self.rank = None, None, None
39732  * self.kWall = kWall
39733  */
39734  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_model, Py_None) < 0) __PYX_ERR(0, 1273, __pyx_L1_error)
39735 
39736  /* "mprans/BoundaryConditions.py":1274
39737  * self.t = 0.
39738  * self.model = None
39739  * self.xi, self.element, self.rank = None, None, None # <<<<<<<<<<<<<<
39740  * self.kWall = kWall
39741  *
39742  */
39743  __pyx_t_1 = Py_None;
39744  __Pyx_INCREF(__pyx_t_1);
39745  __pyx_t_3 = Py_None;
39746  __Pyx_INCREF(__pyx_t_3);
39747  __pyx_t_2 = Py_None;
39748  __Pyx_INCREF(__pyx_t_2);
39749  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_xi, __pyx_t_1) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
39750  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39751  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_element, __pyx_t_3) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
39752  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39753  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_rank, __pyx_t_2) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
39754  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39755 
39756  /* "mprans/BoundaryConditions.py":1275
39757  * self.model = None
39758  * self.xi, self.element, self.rank = None, None, None
39759  * self.kWall = kWall # <<<<<<<<<<<<<<
39760  *
39761  * def attachModel(self, model, ar):
39762  */
39763  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kWall, __pyx_v_kWall) < 0) __PYX_ERR(0, 1275, __pyx_L1_error)
39764 
39765  /* "mprans/BoundaryConditions.py":1225
39766  * """
39767  *
39768  * def __init__(self, turbModel, kWall, Y, Yplus, U0, nu=1.004e-6, Cmu=0.09, K=0.41, B=5.57): # <<<<<<<<<<<<<<
39769  * """
39770  * Sets turbulent boundaries for wall treatment.
39771  */
39772 
39773  /* function exit code */
39774  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39775  goto __pyx_L0;
39776  __pyx_L1_error:;
39777  __Pyx_XDECREF(__pyx_t_1);
39778  __Pyx_XDECREF(__pyx_t_2);
39779  __Pyx_XDECREF(__pyx_t_3);
39780  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
39781  __pyx_r = NULL;
39782  __pyx_L0:;
39783  __Pyx_XGIVEREF(__pyx_r);
39784  __Pyx_TraceReturn(__pyx_r, 0);
39785  __Pyx_RefNannyFinishContext();
39786  return __pyx_r;
39787 }
39788 
39789 /* "mprans/BoundaryConditions.py":1277
39790  * self.kWall = kWall
39791  *
39792  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
39793  * """
39794  * Attaches model to auxiliary variable
39795  */
39796 
39797 /* Python wrapper */
39798 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_3attachModel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39799 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_2attachModel[] = "WallFunctions.attachModel(self, model, ar)\n\n Attaches model to auxiliary variable\n ";
39800 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_3attachModel = {"attachModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_3attachModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_2attachModel};
39801 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_3attachModel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39802  PyObject *__pyx_v_self = 0;
39803  PyObject *__pyx_v_model = 0;
39804  PyObject *__pyx_v_ar = 0;
39805  int __pyx_lineno = 0;
39806  const char *__pyx_filename = NULL;
39807  int __pyx_clineno = 0;
39808  PyObject *__pyx_r = 0;
39809  __Pyx_RefNannyDeclarations
39810  __Pyx_RefNannySetupContext("attachModel (wrapper)", 0);
39811  {
39812  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_ar,0};
39813  PyObject* values[3] = {0,0,0};
39814  if (unlikely(__pyx_kwds)) {
39815  Py_ssize_t kw_args;
39816  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
39817  switch (pos_args) {
39818  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39819  CYTHON_FALLTHROUGH;
39820  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39821  CYTHON_FALLTHROUGH;
39822  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39823  CYTHON_FALLTHROUGH;
39824  case 0: break;
39825  default: goto __pyx_L5_argtuple_error;
39826  }
39827  kw_args = PyDict_Size(__pyx_kwds);
39828  switch (pos_args) {
39829  case 0:
39830  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
39831  else goto __pyx_L5_argtuple_error;
39832  CYTHON_FALLTHROUGH;
39833  case 1:
39834  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model)) != 0)) kw_args--;
39835  else {
39836  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, 1); __PYX_ERR(0, 1277, __pyx_L3_error)
39837  }
39838  CYTHON_FALLTHROUGH;
39839  case 2:
39840  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ar)) != 0)) kw_args--;
39841  else {
39842  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, 2); __PYX_ERR(0, 1277, __pyx_L3_error)
39843  }
39844  }
39845  if (unlikely(kw_args > 0)) {
39846  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachModel") < 0)) __PYX_ERR(0, 1277, __pyx_L3_error)
39847  }
39848  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
39849  goto __pyx_L5_argtuple_error;
39850  } else {
39851  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39852  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39853  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39854  }
39855  __pyx_v_self = values[0];
39856  __pyx_v_model = values[1];
39857  __pyx_v_ar = values[2];
39858  }
39859  goto __pyx_L4_argument_unpacking_done;
39860  __pyx_L5_argtuple_error:;
39861  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1277, __pyx_L3_error)
39862  __pyx_L3_error:;
39863  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
39864  __Pyx_RefNannyFinishContext();
39865  return NULL;
39866  __pyx_L4_argument_unpacking_done:;
39867  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_2attachModel(__pyx_self, __pyx_v_self, __pyx_v_model, __pyx_v_ar);
39868 
39869  /* function exit code */
39870  __Pyx_RefNannyFinishContext();
39871  return __pyx_r;
39872 }
39873 
39874 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_2attachModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar) {
39875  PyObject *__pyx_r = NULL;
39876  __Pyx_TraceDeclarations
39877  __Pyx_RefNannyDeclarations
39878  PyObject *__pyx_t_1 = NULL;
39879  PyObject *__pyx_t_2 = NULL;
39880  int __pyx_lineno = 0;
39881  const char *__pyx_filename = NULL;
39882  int __pyx_clineno = 0;
39883  __Pyx_TraceFrameInit(__pyx_codeobj__108)
39884  __Pyx_RefNannySetupContext("attachModel", 0);
39885  __Pyx_TraceCall("attachModel", __pyx_f[0], 1277, 0, __PYX_ERR(0, 1277, __pyx_L1_error));
39886 
39887  /* "mprans/BoundaryConditions.py":1281
39888  * Attaches model to auxiliary variable
39889  * """
39890  * self.model = model # <<<<<<<<<<<<<<
39891  * self.ar = ar
39892  * self.nd = model.levelModelList[0].nSpace_global
39893  */
39894  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_model, __pyx_v_model) < 0) __PYX_ERR(0, 1281, __pyx_L1_error)
39895 
39896  /* "mprans/BoundaryConditions.py":1282
39897  * """
39898  * self.model = model
39899  * self.ar = ar # <<<<<<<<<<<<<<
39900  * self.nd = model.levelModelList[0].nSpace_global
39901  * self.Closure_0_model = model.levelModelList[0].coefficients.Closure_0_model
39902  */
39903  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ar, __pyx_v_ar) < 0) __PYX_ERR(0, 1282, __pyx_L1_error)
39904 
39905  /* "mprans/BoundaryConditions.py":1283
39906  * self.model = model
39907  * self.ar = ar
39908  * self.nd = model.levelModelList[0].nSpace_global # <<<<<<<<<<<<<<
39909  * self.Closure_0_model = model.levelModelList[0].coefficients.Closure_0_model
39910  * self.Closure_1_model = model.levelModelList[0].coefficients.Closure_1_model
39911  */
39912  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
39913  __Pyx_GOTREF(__pyx_t_1);
39914  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1283, __pyx_L1_error)
39915  __Pyx_GOTREF(__pyx_t_2);
39916  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39917  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nSpace_global); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
39918  __Pyx_GOTREF(__pyx_t_1);
39919  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39920  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_nd, __pyx_t_1) < 0) __PYX_ERR(0, 1283, __pyx_L1_error)
39921  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39922 
39923  /* "mprans/BoundaryConditions.py":1284
39924  * self.ar = ar
39925  * self.nd = model.levelModelList[0].nSpace_global
39926  * self.Closure_0_model = model.levelModelList[0].coefficients.Closure_0_model # <<<<<<<<<<<<<<
39927  * self.Closure_1_model = model.levelModelList[0].coefficients.Closure_1_model
39928  * return self
39929  */
39930  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
39931  __Pyx_GOTREF(__pyx_t_1);
39932  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1284, __pyx_L1_error)
39933  __Pyx_GOTREF(__pyx_t_2);
39934  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39935  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
39936  __Pyx_GOTREF(__pyx_t_1);
39937  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39938  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Closure_0_model); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1284, __pyx_L1_error)
39939  __Pyx_GOTREF(__pyx_t_2);
39940  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39941  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Closure_0_model, __pyx_t_2) < 0) __PYX_ERR(0, 1284, __pyx_L1_error)
39942  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39943 
39944  /* "mprans/BoundaryConditions.py":1285
39945  * self.nd = model.levelModelList[0].nSpace_global
39946  * self.Closure_0_model = model.levelModelList[0].coefficients.Closure_0_model
39947  * self.Closure_1_model = model.levelModelList[0].coefficients.Closure_1_model # <<<<<<<<<<<<<<
39948  * return self
39949  *
39950  */
39951  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1285, __pyx_L1_error)
39952  __Pyx_GOTREF(__pyx_t_2);
39953  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1285, __pyx_L1_error)
39954  __Pyx_GOTREF(__pyx_t_1);
39955  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39956  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_coefficients); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1285, __pyx_L1_error)
39957  __Pyx_GOTREF(__pyx_t_2);
39958  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39959  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Closure_1_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1285, __pyx_L1_error)
39960  __Pyx_GOTREF(__pyx_t_1);
39961  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39962  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Closure_1_model, __pyx_t_1) < 0) __PYX_ERR(0, 1285, __pyx_L1_error)
39963  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39964 
39965  /* "mprans/BoundaryConditions.py":1286
39966  * self.Closure_0_model = model.levelModelList[0].coefficients.Closure_0_model
39967  * self.Closure_1_model = model.levelModelList[0].coefficients.Closure_1_model
39968  * return self # <<<<<<<<<<<<<<
39969  *
39970  * def attachAuxiliaryVariables(self, avDict):
39971  */
39972  __Pyx_XDECREF(__pyx_r);
39973  __Pyx_INCREF(__pyx_v_self);
39974  __pyx_r = __pyx_v_self;
39975  goto __pyx_L0;
39976 
39977  /* "mprans/BoundaryConditions.py":1277
39978  * self.kWall = kWall
39979  *
39980  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
39981  * """
39982  * Attaches model to auxiliary variable
39983  */
39984 
39985  /* function exit code */
39986  __pyx_L1_error:;
39987  __Pyx_XDECREF(__pyx_t_1);
39988  __Pyx_XDECREF(__pyx_t_2);
39989  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
39990  __pyx_r = NULL;
39991  __pyx_L0:;
39992  __Pyx_XGIVEREF(__pyx_r);
39993  __Pyx_TraceReturn(__pyx_r, 0);
39994  __Pyx_RefNannyFinishContext();
39995  return __pyx_r;
39996 }
39997 
39998 /* "mprans/BoundaryConditions.py":1288
39999  * return self
40000  *
40001  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
40002  * pass
40003  *
40004  */
40005 
40006 /* Python wrapper */
40007 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_5attachAuxiliaryVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40008 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_4attachAuxiliaryVariables[] = "WallFunctions.attachAuxiliaryVariables(self, avDict)";
40009 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_5attachAuxiliaryVariables = {"attachAuxiliaryVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_5attachAuxiliaryVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_4attachAuxiliaryVariables};
40010 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_5attachAuxiliaryVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40011  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
40012  CYTHON_UNUSED PyObject *__pyx_v_avDict = 0;
40013  int __pyx_lineno = 0;
40014  const char *__pyx_filename = NULL;
40015  int __pyx_clineno = 0;
40016  PyObject *__pyx_r = 0;
40017  __Pyx_RefNannyDeclarations
40018  __Pyx_RefNannySetupContext("attachAuxiliaryVariables (wrapper)", 0);
40019  {
40020  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_avDict,0};
40021  PyObject* values[2] = {0,0};
40022  if (unlikely(__pyx_kwds)) {
40023  Py_ssize_t kw_args;
40024  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
40025  switch (pos_args) {
40026  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40027  CYTHON_FALLTHROUGH;
40028  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40029  CYTHON_FALLTHROUGH;
40030  case 0: break;
40031  default: goto __pyx_L5_argtuple_error;
40032  }
40033  kw_args = PyDict_Size(__pyx_kwds);
40034  switch (pos_args) {
40035  case 0:
40036  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
40037  else goto __pyx_L5_argtuple_error;
40038  CYTHON_FALLTHROUGH;
40039  case 1:
40040  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_avDict)) != 0)) kw_args--;
40041  else {
40042  __Pyx_RaiseArgtupleInvalid("attachAuxiliaryVariables", 1, 2, 2, 1); __PYX_ERR(0, 1288, __pyx_L3_error)
40043  }
40044  }
40045  if (unlikely(kw_args > 0)) {
40046  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachAuxiliaryVariables") < 0)) __PYX_ERR(0, 1288, __pyx_L3_error)
40047  }
40048  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
40049  goto __pyx_L5_argtuple_error;
40050  } else {
40051  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40052  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40053  }
40054  __pyx_v_self = values[0];
40055  __pyx_v_avDict = values[1];
40056  }
40057  goto __pyx_L4_argument_unpacking_done;
40058  __pyx_L5_argtuple_error:;
40059  __Pyx_RaiseArgtupleInvalid("attachAuxiliaryVariables", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1288, __pyx_L3_error)
40060  __pyx_L3_error:;
40061  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.attachAuxiliaryVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
40062  __Pyx_RefNannyFinishContext();
40063  return NULL;
40064  __pyx_L4_argument_unpacking_done:;
40065  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_4attachAuxiliaryVariables(__pyx_self, __pyx_v_self, __pyx_v_avDict);
40066 
40067  /* function exit code */
40068  __Pyx_RefNannyFinishContext();
40069  return __pyx_r;
40070 }
40071 
40072 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_4attachAuxiliaryVariables(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict) {
40073  PyObject *__pyx_r = NULL;
40074  __Pyx_TraceDeclarations
40075  __Pyx_RefNannyDeclarations
40076  int __pyx_lineno = 0;
40077  const char *__pyx_filename = NULL;
40078  int __pyx_clineno = 0;
40079  __Pyx_TraceFrameInit(__pyx_codeobj__109)
40080  __Pyx_RefNannySetupContext("attachAuxiliaryVariables", 0);
40081  __Pyx_TraceCall("attachAuxiliaryVariables", __pyx_f[0], 1288, 0, __PYX_ERR(0, 1288, __pyx_L1_error));
40082 
40083  /* function exit code */
40084  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40085  goto __pyx_L0;
40086  __pyx_L1_error:;
40087  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.attachAuxiliaryVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
40088  __pyx_r = NULL;
40089  __pyx_L0:;
40090  __Pyx_XGIVEREF(__pyx_r);
40091  __Pyx_TraceReturn(__pyx_r, 0);
40092  __Pyx_RefNannyFinishContext();
40093  return __pyx_r;
40094 }
40095 
40096 /* "mprans/BoundaryConditions.py":1291
40097  * pass
40098  *
40099  * def calculate_init(self): # <<<<<<<<<<<<<<
40100  * pass
40101  *
40102  */
40103 
40104 /* Python wrapper */
40105 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_7calculate_init(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
40106 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_6calculate_init[] = "WallFunctions.calculate_init(self)";
40107 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_7calculate_init = {"calculate_init", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_7calculate_init, METH_O, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_6calculate_init};
40108 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_7calculate_init(PyObject *__pyx_self, PyObject *__pyx_v_self) {
40109  PyObject *__pyx_r = 0;
40110  __Pyx_RefNannyDeclarations
40111  __Pyx_RefNannySetupContext("calculate_init (wrapper)", 0);
40112  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_6calculate_init(__pyx_self, ((PyObject *)__pyx_v_self));
40113 
40114  /* function exit code */
40115  __Pyx_RefNannyFinishContext();
40116  return __pyx_r;
40117 }
40118 
40119 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_6calculate_init(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
40120  PyObject *__pyx_r = NULL;
40121  __Pyx_TraceDeclarations
40122  __Pyx_RefNannyDeclarations
40123  int __pyx_lineno = 0;
40124  const char *__pyx_filename = NULL;
40125  int __pyx_clineno = 0;
40126  __Pyx_TraceFrameInit(__pyx_codeobj__110)
40127  __Pyx_RefNannySetupContext("calculate_init", 0);
40128  __Pyx_TraceCall("calculate_init", __pyx_f[0], 1291, 0, __PYX_ERR(0, 1291, __pyx_L1_error));
40129 
40130  /* function exit code */
40131  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40132  goto __pyx_L0;
40133  __pyx_L1_error:;
40134  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
40135  __pyx_r = NULL;
40136  __pyx_L0:;
40137  __Pyx_XGIVEREF(__pyx_r);
40138  __Pyx_TraceReturn(__pyx_r, 0);
40139  __Pyx_RefNannyFinishContext();
40140  return __pyx_r;
40141 }
40142 
40143 /* "mprans/BoundaryConditions.py":1294
40144  * pass
40145  *
40146  * def calculate(self): # <<<<<<<<<<<<<<
40147  * pass
40148  *
40149  */
40150 
40151 /* Python wrapper */
40152 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_9calculate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
40153 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_8calculate[] = "WallFunctions.calculate(self)";
40154 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_9calculate = {"calculate", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_9calculate, METH_O, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_8calculate};
40155 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_9calculate(PyObject *__pyx_self, PyObject *__pyx_v_self) {
40156  PyObject *__pyx_r = 0;
40157  __Pyx_RefNannyDeclarations
40158  __Pyx_RefNannySetupContext("calculate (wrapper)", 0);
40159  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_8calculate(__pyx_self, ((PyObject *)__pyx_v_self));
40160 
40161  /* function exit code */
40162  __Pyx_RefNannyFinishContext();
40163  return __pyx_r;
40164 }
40165 
40166 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_8calculate(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
40167  PyObject *__pyx_r = NULL;
40168  __Pyx_TraceDeclarations
40169  __Pyx_RefNannyDeclarations
40170  int __pyx_lineno = 0;
40171  const char *__pyx_filename = NULL;
40172  int __pyx_clineno = 0;
40173  __Pyx_TraceFrameInit(__pyx_codeobj__111)
40174  __Pyx_RefNannySetupContext("calculate", 0);
40175  __Pyx_TraceCall("calculate", __pyx_f[0], 1294, 0, __PYX_ERR(0, 1294, __pyx_L1_error));
40176 
40177  /* function exit code */
40178  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40179  goto __pyx_L0;
40180  __pyx_L1_error:;
40181  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.calculate", __pyx_clineno, __pyx_lineno, __pyx_filename);
40182  __pyx_r = NULL;
40183  __pyx_L0:;
40184  __Pyx_XGIVEREF(__pyx_r);
40185  __Pyx_TraceReturn(__pyx_r, 0);
40186  __Pyx_RefNannyFinishContext();
40187  return __pyx_r;
40188 }
40189 
40190 /* "mprans/BoundaryConditions.py":1297
40191  * pass
40192  *
40193  * def getLocalNearestNode(self, coords, kdtree): # <<<<<<<<<<<<<<
40194  * """
40195  * Finds nearest node to coordinates (local)
40196  */
40197 
40198 /* Python wrapper */
40199 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_11getLocalNearestNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40200 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_10getLocalNearestNode[] = "WallFunctions.getLocalNearestNode(self, coords, kdtree)\n\n Finds nearest node to coordinates (local)\n Parameters\n ----------\n coords: array_like\n coordinates from which to find nearest node\n kdtree: scipy.spatial.cKDTree\n instance of scipy kdtree\n Returns\n -------\n node: int\n nearest node index\n distance: float\n distance to nearest node\n ";
40201 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_11getLocalNearestNode = {"getLocalNearestNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_11getLocalNearestNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_10getLocalNearestNode};
40202 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_11getLocalNearestNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40203  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
40204  PyObject *__pyx_v_coords = 0;
40205  PyObject *__pyx_v_kdtree = 0;
40206  int __pyx_lineno = 0;
40207  const char *__pyx_filename = NULL;
40208  int __pyx_clineno = 0;
40209  PyObject *__pyx_r = 0;
40210  __Pyx_RefNannyDeclarations
40211  __Pyx_RefNannySetupContext("getLocalNearestNode (wrapper)", 0);
40212  {
40213  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_coords,&__pyx_n_s_kdtree,0};
40214  PyObject* values[3] = {0,0,0};
40215  if (unlikely(__pyx_kwds)) {
40216  Py_ssize_t kw_args;
40217  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
40218  switch (pos_args) {
40219  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
40220  CYTHON_FALLTHROUGH;
40221  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40222  CYTHON_FALLTHROUGH;
40223  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40224  CYTHON_FALLTHROUGH;
40225  case 0: break;
40226  default: goto __pyx_L5_argtuple_error;
40227  }
40228  kw_args = PyDict_Size(__pyx_kwds);
40229  switch (pos_args) {
40230  case 0:
40231  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
40232  else goto __pyx_L5_argtuple_error;
40233  CYTHON_FALLTHROUGH;
40234  case 1:
40235  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
40236  else {
40237  __Pyx_RaiseArgtupleInvalid("getLocalNearestNode", 1, 3, 3, 1); __PYX_ERR(0, 1297, __pyx_L3_error)
40238  }
40239  CYTHON_FALLTHROUGH;
40240  case 2:
40241  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kdtree)) != 0)) kw_args--;
40242  else {
40243  __Pyx_RaiseArgtupleInvalid("getLocalNearestNode", 1, 3, 3, 2); __PYX_ERR(0, 1297, __pyx_L3_error)
40244  }
40245  }
40246  if (unlikely(kw_args > 0)) {
40247  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocalNearestNode") < 0)) __PYX_ERR(0, 1297, __pyx_L3_error)
40248  }
40249  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
40250  goto __pyx_L5_argtuple_error;
40251  } else {
40252  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40253  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40254  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
40255  }
40256  __pyx_v_self = values[0];
40257  __pyx_v_coords = values[1];
40258  __pyx_v_kdtree = values[2];
40259  }
40260  goto __pyx_L4_argument_unpacking_done;
40261  __pyx_L5_argtuple_error:;
40262  __Pyx_RaiseArgtupleInvalid("getLocalNearestNode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1297, __pyx_L3_error)
40263  __pyx_L3_error:;
40264  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getLocalNearestNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
40265  __Pyx_RefNannyFinishContext();
40266  return NULL;
40267  __pyx_L4_argument_unpacking_done:;
40268  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_10getLocalNearestNode(__pyx_self, __pyx_v_self, __pyx_v_coords, __pyx_v_kdtree);
40269 
40270  /* function exit code */
40271  __Pyx_RefNannyFinishContext();
40272  return __pyx_r;
40273 }
40274 
40275 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_10getLocalNearestNode(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_coords, PyObject *__pyx_v_kdtree) {
40276  PyObject *__pyx_v_distance = NULL;
40277  PyObject *__pyx_v_node = NULL;
40278  PyObject *__pyx_r = NULL;
40279  __Pyx_TraceDeclarations
40280  __Pyx_RefNannyDeclarations
40281  PyObject *__pyx_t_1 = NULL;
40282  PyObject *__pyx_t_2 = NULL;
40283  PyObject *__pyx_t_3 = NULL;
40284  PyObject *__pyx_t_4 = NULL;
40285  PyObject *(*__pyx_t_5)(PyObject *);
40286  int __pyx_lineno = 0;
40287  const char *__pyx_filename = NULL;
40288  int __pyx_clineno = 0;
40289  __Pyx_TraceFrameInit(__pyx_codeobj__112)
40290  __Pyx_RefNannySetupContext("getLocalNearestNode", 0);
40291  __Pyx_TraceCall("getLocalNearestNode", __pyx_f[0], 1297, 0, __PYX_ERR(0, 1297, __pyx_L1_error));
40292 
40293  /* "mprans/BoundaryConditions.py":1314
40294  * """
40295  * # determine local nearest node distance
40296  * distance, node = kdtree.query(coords) # <<<<<<<<<<<<<<
40297  * return node, distance
40298  *
40299  */
40300  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_kdtree, __pyx_n_s_query); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
40301  __Pyx_GOTREF(__pyx_t_2);
40302  __pyx_t_3 = NULL;
40303  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
40304  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
40305  if (likely(__pyx_t_3)) {
40306  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
40307  __Pyx_INCREF(__pyx_t_3);
40308  __Pyx_INCREF(function);
40309  __Pyx_DECREF_SET(__pyx_t_2, function);
40310  }
40311  }
40312  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_coords) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_coords);
40313  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
40314  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
40315  __Pyx_GOTREF(__pyx_t_1);
40316  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40317  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
40318  PyObject* sequence = __pyx_t_1;
40319  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
40320  if (unlikely(size != 2)) {
40321  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
40322  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
40323  __PYX_ERR(0, 1314, __pyx_L1_error)
40324  }
40325  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
40326  if (likely(PyTuple_CheckExact(sequence))) {
40327  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
40328  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
40329  } else {
40330  __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
40331  __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
40332  }
40333  __Pyx_INCREF(__pyx_t_2);
40334  __Pyx_INCREF(__pyx_t_3);
40335  #else
40336  __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
40337  __Pyx_GOTREF(__pyx_t_2);
40338  __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
40339  __Pyx_GOTREF(__pyx_t_3);
40340  #endif
40341  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40342  } else {
40343  Py_ssize_t index = -1;
40344  __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1314, __pyx_L1_error)
40345  __Pyx_GOTREF(__pyx_t_4);
40346  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40347  __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
40348  index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
40349  __Pyx_GOTREF(__pyx_t_2);
40350  index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
40351  __Pyx_GOTREF(__pyx_t_3);
40352  if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(0, 1314, __pyx_L1_error)
40353  __pyx_t_5 = NULL;
40354  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
40355  goto __pyx_L4_unpacking_done;
40356  __pyx_L3_unpacking_failed:;
40357  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
40358  __pyx_t_5 = NULL;
40359  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
40360  __PYX_ERR(0, 1314, __pyx_L1_error)
40361  __pyx_L4_unpacking_done:;
40362  }
40363  __pyx_v_distance = __pyx_t_2;
40364  __pyx_t_2 = 0;
40365  __pyx_v_node = __pyx_t_3;
40366  __pyx_t_3 = 0;
40367 
40368  /* "mprans/BoundaryConditions.py":1315
40369  * # determine local nearest node distance
40370  * distance, node = kdtree.query(coords)
40371  * return node, distance # <<<<<<<<<<<<<<
40372  *
40373  * def getLocalElement(self, femSpace, coords, node):
40374  */
40375  __Pyx_XDECREF(__pyx_r);
40376  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
40377  __Pyx_GOTREF(__pyx_t_1);
40378  __Pyx_INCREF(__pyx_v_node);
40379  __Pyx_GIVEREF(__pyx_v_node);
40380  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_node);
40381  __Pyx_INCREF(__pyx_v_distance);
40382  __Pyx_GIVEREF(__pyx_v_distance);
40383  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_distance);
40384  __pyx_r = __pyx_t_1;
40385  __pyx_t_1 = 0;
40386  goto __pyx_L0;
40387 
40388  /* "mprans/BoundaryConditions.py":1297
40389  * pass
40390  *
40391  * def getLocalNearestNode(self, coords, kdtree): # <<<<<<<<<<<<<<
40392  * """
40393  * Finds nearest node to coordinates (local)
40394  */
40395 
40396  /* function exit code */
40397  __pyx_L1_error:;
40398  __Pyx_XDECREF(__pyx_t_1);
40399  __Pyx_XDECREF(__pyx_t_2);
40400  __Pyx_XDECREF(__pyx_t_3);
40401  __Pyx_XDECREF(__pyx_t_4);
40402  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getLocalNearestNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
40403  __pyx_r = NULL;
40404  __pyx_L0:;
40405  __Pyx_XDECREF(__pyx_v_distance);
40406  __Pyx_XDECREF(__pyx_v_node);
40407  __Pyx_XGIVEREF(__pyx_r);
40408  __Pyx_TraceReturn(__pyx_r, 0);
40409  __Pyx_RefNannyFinishContext();
40410  return __pyx_r;
40411 }
40412 
40413 /* "mprans/BoundaryConditions.py":1317
40414  * return node, distance
40415  *
40416  * def getLocalElement(self, femSpace, coords, node): # <<<<<<<<<<<<<<
40417  * """
40418  * Given coordinates and its nearest node, determine if it is on a
40419  */
40420 
40421 /* Python wrapper */
40422 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_13getLocalElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40423 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_12getLocalElement[] = "WallFunctions.getLocalElement(self, femSpace, coords, node)\n\n Given coordinates and its nearest node, determine if it is on a\n local element.\n Parameters\n ----------\n femSpace: object\n finite element space\n coords: array_like\n coordinates from which to element\n node: int\n nearest node index\n Returns\n -------\n eN: int or None\n local index of element (None if not found)\n ";
40424 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_13getLocalElement = {"getLocalElement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_13getLocalElement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_12getLocalElement};
40425 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_13getLocalElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40426  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
40427  PyObject *__pyx_v_femSpace = 0;
40428  PyObject *__pyx_v_coords = 0;
40429  PyObject *__pyx_v_node = 0;
40430  int __pyx_lineno = 0;
40431  const char *__pyx_filename = NULL;
40432  int __pyx_clineno = 0;
40433  PyObject *__pyx_r = 0;
40434  __Pyx_RefNannyDeclarations
40435  __Pyx_RefNannySetupContext("getLocalElement (wrapper)", 0);
40436  {
40437  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_femSpace,&__pyx_n_s_coords,&__pyx_n_s_node,0};
40438  PyObject* values[4] = {0,0,0,0};
40439  if (unlikely(__pyx_kwds)) {
40440  Py_ssize_t kw_args;
40441  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
40442  switch (pos_args) {
40443  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
40444  CYTHON_FALLTHROUGH;
40445  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
40446  CYTHON_FALLTHROUGH;
40447  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40448  CYTHON_FALLTHROUGH;
40449  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40450  CYTHON_FALLTHROUGH;
40451  case 0: break;
40452  default: goto __pyx_L5_argtuple_error;
40453  }
40454  kw_args = PyDict_Size(__pyx_kwds);
40455  switch (pos_args) {
40456  case 0:
40457  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
40458  else goto __pyx_L5_argtuple_error;
40459  CYTHON_FALLTHROUGH;
40460  case 1:
40461  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_femSpace)) != 0)) kw_args--;
40462  else {
40463  __Pyx_RaiseArgtupleInvalid("getLocalElement", 1, 4, 4, 1); __PYX_ERR(0, 1317, __pyx_L3_error)
40464  }
40465  CYTHON_FALLTHROUGH;
40466  case 2:
40467  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
40468  else {
40469  __Pyx_RaiseArgtupleInvalid("getLocalElement", 1, 4, 4, 2); __PYX_ERR(0, 1317, __pyx_L3_error)
40470  }
40471  CYTHON_FALLTHROUGH;
40472  case 3:
40473  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
40474  else {
40475  __Pyx_RaiseArgtupleInvalid("getLocalElement", 1, 4, 4, 3); __PYX_ERR(0, 1317, __pyx_L3_error)
40476  }
40477  }
40478  if (unlikely(kw_args > 0)) {
40479  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocalElement") < 0)) __PYX_ERR(0, 1317, __pyx_L3_error)
40480  }
40481  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
40482  goto __pyx_L5_argtuple_error;
40483  } else {
40484  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40485  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40486  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
40487  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
40488  }
40489  __pyx_v_self = values[0];
40490  __pyx_v_femSpace = values[1];
40491  __pyx_v_coords = values[2];
40492  __pyx_v_node = values[3];
40493  }
40494  goto __pyx_L4_argument_unpacking_done;
40495  __pyx_L5_argtuple_error:;
40496  __Pyx_RaiseArgtupleInvalid("getLocalElement", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1317, __pyx_L3_error)
40497  __pyx_L3_error:;
40498  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getLocalElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
40499  __Pyx_RefNannyFinishContext();
40500  return NULL;
40501  __pyx_L4_argument_unpacking_done:;
40502  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_12getLocalElement(__pyx_self, __pyx_v_self, __pyx_v_femSpace, __pyx_v_coords, __pyx_v_node);
40503 
40504  /* function exit code */
40505  __Pyx_RefNannyFinishContext();
40506  return __pyx_r;
40507 }
40508 
40509 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_12getLocalElement(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_femSpace, PyObject *__pyx_v_coords, PyObject *__pyx_v_node) {
40510  PyObject *__pyx_v_patchBoundaryNodes = NULL;
40511  PyObject *__pyx_v_checkedElements = NULL;
40512  CYTHON_UNUSED PyObject *__pyx_v_statem1 = NULL;
40513  PyObject *__pyx_v_eOffset = NULL;
40514  PyObject *__pyx_v_eN = NULL;
40515  PyObject *__pyx_v_xi = NULL;
40516  PyObject *__pyx_r = NULL;
40517  __Pyx_TraceDeclarations
40518  __Pyx_RefNannyDeclarations
40519  PyObject *__pyx_t_1 = NULL;
40520  PyObject *__pyx_t_2 = NULL;
40521  PyObject *__pyx_t_3 = NULL;
40522  Py_ssize_t __pyx_t_4;
40523  PyObject *__pyx_t_5 = NULL;
40524  PyObject *__pyx_t_6 = NULL;
40525  PyObject *__pyx_t_7 = NULL;
40526  int __pyx_t_8;
40527  PyObject *(*__pyx_t_9)(PyObject *);
40528  int __pyx_t_10;
40529  int __pyx_t_11;
40530  Py_ssize_t __pyx_t_12;
40531  int __pyx_t_13;
40532  PyObject *__pyx_t_14 = NULL;
40533  Py_ssize_t __pyx_t_15;
40534  int __pyx_t_16;
40535  int __pyx_lineno = 0;
40536  const char *__pyx_filename = NULL;
40537  int __pyx_clineno = 0;
40538  __Pyx_TraceFrameInit(__pyx_codeobj__113)
40539  __Pyx_RefNannySetupContext("getLocalElement", 0);
40540  __Pyx_TraceCall("getLocalElement", __pyx_f[0], 1317, 0, __PYX_ERR(0, 1317, __pyx_L1_error));
40541  __Pyx_INCREF(__pyx_v_node);
40542 
40543  /* "mprans/BoundaryConditions.py":1334
40544  * local index of element (None if not found)
40545  * """
40546  * patchBoundaryNodes = set() # <<<<<<<<<<<<<<
40547  * checkedElements = []
40548  * # nodeElementOffsets give the indices to get the elements sharing the node
40549  */
40550  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1334, __pyx_L1_error)
40551  __Pyx_GOTREF(__pyx_t_1);
40552  __pyx_v_patchBoundaryNodes = ((PyObject*)__pyx_t_1);
40553  __pyx_t_1 = 0;
40554 
40555  /* "mprans/BoundaryConditions.py":1335
40556  * """
40557  * patchBoundaryNodes = set()
40558  * checkedElements = [] # <<<<<<<<<<<<<<
40559  * # nodeElementOffsets give the indices to get the elements sharing the node
40560  * statem1 = node + 1 < len(femSpace.mesh.nodeElementOffsets)
40561  */
40562  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1335, __pyx_L1_error)
40563  __Pyx_GOTREF(__pyx_t_1);
40564  __pyx_v_checkedElements = ((PyObject*)__pyx_t_1);
40565  __pyx_t_1 = 0;
40566 
40567  /* "mprans/BoundaryConditions.py":1337
40568  * checkedElements = []
40569  * # nodeElementOffsets give the indices to get the elements sharing the node
40570  * statem1 = node + 1 < len(femSpace.mesh.nodeElementOffsets) # <<<<<<<<<<<<<<
40571  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
40572  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40573  */
40574  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
40575  __Pyx_GOTREF(__pyx_t_1);
40576  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1337, __pyx_L1_error)
40577  __Pyx_GOTREF(__pyx_t_2);
40578  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nodeElementOffsets); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1337, __pyx_L1_error)
40579  __Pyx_GOTREF(__pyx_t_3);
40580  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40581  __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1337, __pyx_L1_error)
40582  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40583  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1337, __pyx_L1_error)
40584  __Pyx_GOTREF(__pyx_t_3);
40585  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1337, __pyx_L1_error)
40586  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40587  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40588  __pyx_v_statem1 = __pyx_t_2;
40589  __pyx_t_2 = 0;
40590 
40591  /* "mprans/BoundaryConditions.py":1338
40592  * # nodeElementOffsets give the indices to get the elements sharing the node
40593  * statem1 = node + 1 < len(femSpace.mesh.nodeElementOffsets)
40594  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]): # <<<<<<<<<<<<<<
40595  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40596  * checkedElements.append(eN)
40597  */
40598  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
40599  __Pyx_GOTREF(__pyx_t_3);
40600  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
40601  __Pyx_GOTREF(__pyx_t_1);
40602  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodeElementOffsets); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1338, __pyx_L1_error)
40603  __Pyx_GOTREF(__pyx_t_5);
40604  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40605  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
40606  __Pyx_GOTREF(__pyx_t_1);
40607  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40608  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1338, __pyx_L1_error)
40609  __Pyx_GOTREF(__pyx_t_5);
40610  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_nodeElementOffsets); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1338, __pyx_L1_error)
40611  __Pyx_GOTREF(__pyx_t_6);
40612  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40613  __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1338, __pyx_L1_error)
40614  __Pyx_GOTREF(__pyx_t_5);
40615  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1338, __pyx_L1_error)
40616  __Pyx_GOTREF(__pyx_t_7);
40617  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40618  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40619  __pyx_t_5 = NULL;
40620  __pyx_t_8 = 0;
40621  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
40622  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
40623  if (likely(__pyx_t_5)) {
40624  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
40625  __Pyx_INCREF(__pyx_t_5);
40626  __Pyx_INCREF(function);
40627  __Pyx_DECREF_SET(__pyx_t_3, function);
40628  __pyx_t_8 = 1;
40629  }
40630  }
40631  #if CYTHON_FAST_PYCALL
40632  if (PyFunction_Check(__pyx_t_3)) {
40633  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_t_7};
40634  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
40635  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
40636  __Pyx_GOTREF(__pyx_t_2);
40637  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40638  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40639  } else
40640  #endif
40641  #if CYTHON_FAST_PYCCALL
40642  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
40643  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_t_7};
40644  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
40645  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
40646  __Pyx_GOTREF(__pyx_t_2);
40647  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40648  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40649  } else
40650  #endif
40651  {
40652  __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1338, __pyx_L1_error)
40653  __Pyx_GOTREF(__pyx_t_6);
40654  if (__pyx_t_5) {
40655  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
40656  }
40657  __Pyx_GIVEREF(__pyx_t_1);
40658  PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_1);
40659  __Pyx_GIVEREF(__pyx_t_7);
40660  PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_7);
40661  __pyx_t_1 = 0;
40662  __pyx_t_7 = 0;
40663  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
40664  __Pyx_GOTREF(__pyx_t_2);
40665  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40666  }
40667  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40668  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
40669  __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
40670  __pyx_t_9 = NULL;
40671  } else {
40672  __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
40673  __Pyx_GOTREF(__pyx_t_3);
40674  __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1338, __pyx_L1_error)
40675  }
40676  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40677  for (;;) {
40678  if (likely(!__pyx_t_9)) {
40679  if (likely(PyList_CheckExact(__pyx_t_3))) {
40680  if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
40681  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
40682  __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1338, __pyx_L1_error)
40683  #else
40684  __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
40685  __Pyx_GOTREF(__pyx_t_2);
40686  #endif
40687  } else {
40688  if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
40689  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
40690  __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1338, __pyx_L1_error)
40691  #else
40692  __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
40693  __Pyx_GOTREF(__pyx_t_2);
40694  #endif
40695  }
40696  } else {
40697  __pyx_t_2 = __pyx_t_9(__pyx_t_3);
40698  if (unlikely(!__pyx_t_2)) {
40699  PyObject* exc_type = PyErr_Occurred();
40700  if (exc_type) {
40701  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
40702  else __PYX_ERR(0, 1338, __pyx_L1_error)
40703  }
40704  break;
40705  }
40706  __Pyx_GOTREF(__pyx_t_2);
40707  }
40708  __Pyx_XDECREF_SET(__pyx_v_eOffset, __pyx_t_2);
40709  __pyx_t_2 = 0;
40710 
40711  /* "mprans/BoundaryConditions.py":1339
40712  * statem1 = node + 1 < len(femSpace.mesh.nodeElementOffsets)
40713  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
40714  * eN = femSpace.mesh.nodeElementsArray[eOffset] # <<<<<<<<<<<<<<
40715  * checkedElements.append(eN)
40716  * # union of set
40717  */
40718  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1339, __pyx_L1_error)
40719  __Pyx_GOTREF(__pyx_t_2);
40720  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nodeElementsArray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1339, __pyx_L1_error)
40721  __Pyx_GOTREF(__pyx_t_6);
40722  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40723  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_eOffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1339, __pyx_L1_error)
40724  __Pyx_GOTREF(__pyx_t_2);
40725  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40726  __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_2);
40727  __pyx_t_2 = 0;
40728 
40729  /* "mprans/BoundaryConditions.py":1340
40730  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
40731  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40732  * checkedElements.append(eN) # <<<<<<<<<<<<<<
40733  * # union of set
40734  * patchBoundaryNodes |= set(femSpace.mesh.elementNodesArray[eN])
40735  */
40736  __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_checkedElements, __pyx_v_eN); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1340, __pyx_L1_error)
40737 
40738  /* "mprans/BoundaryConditions.py":1342
40739  * checkedElements.append(eN)
40740  * # union of set
40741  * patchBoundaryNodes |= set(femSpace.mesh.elementNodesArray[eN]) # <<<<<<<<<<<<<<
40742  * # evaluate the inverse map for element eN (global to local)
40743  * xi = femSpace.elementMaps.getInverseValue(eN, coords)
40744  */
40745  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1342, __pyx_L1_error)
40746  __Pyx_GOTREF(__pyx_t_2);
40747  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_elementNodesArray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1342, __pyx_L1_error)
40748  __Pyx_GOTREF(__pyx_t_6);
40749  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40750  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_eN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1342, __pyx_L1_error)
40751  __Pyx_GOTREF(__pyx_t_2);
40752  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40753  __pyx_t_6 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1342, __pyx_L1_error)
40754  __Pyx_GOTREF(__pyx_t_6);
40755  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40756  __pyx_t_2 = PyNumber_InPlaceOr(__pyx_v_patchBoundaryNodes, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1342, __pyx_L1_error)
40757  __Pyx_GOTREF(__pyx_t_2);
40758  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40759  __Pyx_DECREF_SET(__pyx_v_patchBoundaryNodes, ((PyObject*)__pyx_t_2));
40760  __pyx_t_2 = 0;
40761 
40762  /* "mprans/BoundaryConditions.py":1344
40763  * patchBoundaryNodes |= set(femSpace.mesh.elementNodesArray[eN])
40764  * # evaluate the inverse map for element eN (global to local)
40765  * xi = femSpace.elementMaps.getInverseValue(eN, coords) # <<<<<<<<<<<<<<
40766  * #J = femSpace.elementMaps.getJacobianValues(eN, )
40767  * # query whether xi lies within the reference element
40768  */
40769  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1344, __pyx_L1_error)
40770  __Pyx_GOTREF(__pyx_t_6);
40771  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_getInverseValue); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1344, __pyx_L1_error)
40772  __Pyx_GOTREF(__pyx_t_7);
40773  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40774  __pyx_t_6 = NULL;
40775  __pyx_t_8 = 0;
40776  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
40777  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
40778  if (likely(__pyx_t_6)) {
40779  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
40780  __Pyx_INCREF(__pyx_t_6);
40781  __Pyx_INCREF(function);
40782  __Pyx_DECREF_SET(__pyx_t_7, function);
40783  __pyx_t_8 = 1;
40784  }
40785  }
40786  #if CYTHON_FAST_PYCALL
40787  if (PyFunction_Check(__pyx_t_7)) {
40788  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_eN, __pyx_v_coords};
40789  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error)
40790  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
40791  __Pyx_GOTREF(__pyx_t_2);
40792  } else
40793  #endif
40794  #if CYTHON_FAST_PYCCALL
40795  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
40796  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_eN, __pyx_v_coords};
40797  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error)
40798  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
40799  __Pyx_GOTREF(__pyx_t_2);
40800  } else
40801  #endif
40802  {
40803  __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1344, __pyx_L1_error)
40804  __Pyx_GOTREF(__pyx_t_1);
40805  if (__pyx_t_6) {
40806  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL;
40807  }
40808  __Pyx_INCREF(__pyx_v_eN);
40809  __Pyx_GIVEREF(__pyx_v_eN);
40810  PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_eN);
40811  __Pyx_INCREF(__pyx_v_coords);
40812  __Pyx_GIVEREF(__pyx_v_coords);
40813  PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_coords);
40814  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error)
40815  __Pyx_GOTREF(__pyx_t_2);
40816  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40817  }
40818  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40819  __Pyx_XDECREF_SET(__pyx_v_xi, __pyx_t_2);
40820  __pyx_t_2 = 0;
40821 
40822  /* "mprans/BoundaryConditions.py":1347
40823  * #J = femSpace.elementMaps.getJacobianValues(eN, )
40824  * # query whether xi lies within the reference element
40825  * if femSpace.elementMaps.referenceElement.onElement(xi): # <<<<<<<<<<<<<<
40826  * return eN
40827  * # extra loop if case coords is in neighbour element
40828  */
40829  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1347, __pyx_L1_error)
40830  __Pyx_GOTREF(__pyx_t_7);
40831  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_referenceElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1347, __pyx_L1_error)
40832  __Pyx_GOTREF(__pyx_t_1);
40833  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40834  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_onElement); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1347, __pyx_L1_error)
40835  __Pyx_GOTREF(__pyx_t_7);
40836  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40837  __pyx_t_1 = NULL;
40838  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
40839  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
40840  if (likely(__pyx_t_1)) {
40841  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
40842  __Pyx_INCREF(__pyx_t_1);
40843  __Pyx_INCREF(function);
40844  __Pyx_DECREF_SET(__pyx_t_7, function);
40845  }
40846  }
40847  __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_xi);
40848  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
40849  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1347, __pyx_L1_error)
40850  __Pyx_GOTREF(__pyx_t_2);
40851  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40852  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1347, __pyx_L1_error)
40853  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40854  if (__pyx_t_11) {
40855 
40856  /* "mprans/BoundaryConditions.py":1348
40857  * # query whether xi lies within the reference element
40858  * if femSpace.elementMaps.referenceElement.onElement(xi):
40859  * return eN # <<<<<<<<<<<<<<
40860  * # extra loop if case coords is in neighbour element
40861  * for node in patchBoundaryNodes:
40862  */
40863  __Pyx_XDECREF(__pyx_r);
40864  __Pyx_INCREF(__pyx_v_eN);
40865  __pyx_r = __pyx_v_eN;
40866  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40867  goto __pyx_L0;
40868 
40869  /* "mprans/BoundaryConditions.py":1347
40870  * #J = femSpace.elementMaps.getJacobianValues(eN, )
40871  * # query whether xi lies within the reference element
40872  * if femSpace.elementMaps.referenceElement.onElement(xi): # <<<<<<<<<<<<<<
40873  * return eN
40874  * # extra loop if case coords is in neighbour element
40875  */
40876  }
40877 
40878  /* "mprans/BoundaryConditions.py":1338
40879  * # nodeElementOffsets give the indices to get the elements sharing the node
40880  * statem1 = node + 1 < len(femSpace.mesh.nodeElementOffsets)
40881  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]): # <<<<<<<<<<<<<<
40882  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40883  * checkedElements.append(eN)
40884  */
40885  }
40886  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40887 
40888  /* "mprans/BoundaryConditions.py":1350
40889  * return eN
40890  * # extra loop if case coords is in neighbour element
40891  * for node in patchBoundaryNodes: # <<<<<<<<<<<<<<
40892  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
40893  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40894  */
40895  __pyx_t_4 = 0;
40896  __pyx_t_2 = __Pyx_set_iterator(__pyx_v_patchBoundaryNodes, 1, (&__pyx_t_12), (&__pyx_t_8)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1350, __pyx_L1_error)
40897  __Pyx_GOTREF(__pyx_t_2);
40898  __Pyx_XDECREF(__pyx_t_3);
40899  __pyx_t_3 = __pyx_t_2;
40900  __pyx_t_2 = 0;
40901  while (1) {
40902  __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_12, &__pyx_t_4, &__pyx_t_2, __pyx_t_8);
40903  if (unlikely(__pyx_t_13 == 0)) break;
40904  if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 1350, __pyx_L1_error)
40905  __Pyx_GOTREF(__pyx_t_2);
40906  __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_2);
40907  __pyx_t_2 = 0;
40908 
40909  /* "mprans/BoundaryConditions.py":1351
40910  * # extra loop if case coords is in neighbour element
40911  * for node in patchBoundaryNodes:
40912  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]): # <<<<<<<<<<<<<<
40913  * eN = femSpace.mesh.nodeElementsArray[eOffset]
40914  * if eN not in checkedElements:
40915  */
40916  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_range); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1351, __pyx_L1_error)
40917  __Pyx_GOTREF(__pyx_t_7);
40918  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error)
40919  __Pyx_GOTREF(__pyx_t_1);
40920  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodeElementOffsets); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1351, __pyx_L1_error)
40921  __Pyx_GOTREF(__pyx_t_6);
40922  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40923  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error)
40924  __Pyx_GOTREF(__pyx_t_1);
40925  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40926  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1351, __pyx_L1_error)
40927  __Pyx_GOTREF(__pyx_t_6);
40928  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_nodeElementOffsets); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1351, __pyx_L1_error)
40929  __Pyx_GOTREF(__pyx_t_5);
40930  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40931  __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1351, __pyx_L1_error)
40932  __Pyx_GOTREF(__pyx_t_6);
40933  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1351, __pyx_L1_error)
40934  __Pyx_GOTREF(__pyx_t_14);
40935  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40936  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40937  __pyx_t_6 = NULL;
40938  __pyx_t_13 = 0;
40939  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
40940  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
40941  if (likely(__pyx_t_6)) {
40942  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
40943  __Pyx_INCREF(__pyx_t_6);
40944  __Pyx_INCREF(function);
40945  __Pyx_DECREF_SET(__pyx_t_7, function);
40946  __pyx_t_13 = 1;
40947  }
40948  }
40949  #if CYTHON_FAST_PYCALL
40950  if (PyFunction_Check(__pyx_t_7)) {
40951  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_14};
40952  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
40953  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
40954  __Pyx_GOTREF(__pyx_t_2);
40955  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40956  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
40957  } else
40958  #endif
40959  #if CYTHON_FAST_PYCCALL
40960  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
40961  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_14};
40962  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
40963  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
40964  __Pyx_GOTREF(__pyx_t_2);
40965  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40966  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
40967  } else
40968  #endif
40969  {
40970  __pyx_t_5 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1351, __pyx_L1_error)
40971  __Pyx_GOTREF(__pyx_t_5);
40972  if (__pyx_t_6) {
40973  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
40974  }
40975  __Pyx_GIVEREF(__pyx_t_1);
40976  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_13, __pyx_t_1);
40977  __Pyx_GIVEREF(__pyx_t_14);
40978  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_13, __pyx_t_14);
40979  __pyx_t_1 = 0;
40980  __pyx_t_14 = 0;
40981  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
40982  __Pyx_GOTREF(__pyx_t_2);
40983  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40984  }
40985  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40986  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
40987  __pyx_t_7 = __pyx_t_2; __Pyx_INCREF(__pyx_t_7); __pyx_t_15 = 0;
40988  __pyx_t_9 = NULL;
40989  } else {
40990  __pyx_t_15 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1351, __pyx_L1_error)
40991  __Pyx_GOTREF(__pyx_t_7);
40992  __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1351, __pyx_L1_error)
40993  }
40994  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40995  for (;;) {
40996  if (likely(!__pyx_t_9)) {
40997  if (likely(PyList_CheckExact(__pyx_t_7))) {
40998  if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_7)) break;
40999  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
41000  __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1351, __pyx_L1_error)
41001  #else
41002  __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
41003  __Pyx_GOTREF(__pyx_t_2);
41004  #endif
41005  } else {
41006  if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
41007  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
41008  __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1351, __pyx_L1_error)
41009  #else
41010  __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
41011  __Pyx_GOTREF(__pyx_t_2);
41012  #endif
41013  }
41014  } else {
41015  __pyx_t_2 = __pyx_t_9(__pyx_t_7);
41016  if (unlikely(!__pyx_t_2)) {
41017  PyObject* exc_type = PyErr_Occurred();
41018  if (exc_type) {
41019  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
41020  else __PYX_ERR(0, 1351, __pyx_L1_error)
41021  }
41022  break;
41023  }
41024  __Pyx_GOTREF(__pyx_t_2);
41025  }
41026  __Pyx_XDECREF_SET(__pyx_v_eOffset, __pyx_t_2);
41027  __pyx_t_2 = 0;
41028 
41029  /* "mprans/BoundaryConditions.py":1352
41030  * for node in patchBoundaryNodes:
41031  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
41032  * eN = femSpace.mesh.nodeElementsArray[eOffset] # <<<<<<<<<<<<<<
41033  * if eN not in checkedElements:
41034  * checkedElements.append(eN)
41035  */
41036  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1352, __pyx_L1_error)
41037  __Pyx_GOTREF(__pyx_t_2);
41038  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nodeElementsArray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1352, __pyx_L1_error)
41039  __Pyx_GOTREF(__pyx_t_5);
41040  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41041  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_eOffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1352, __pyx_L1_error)
41042  __Pyx_GOTREF(__pyx_t_2);
41043  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
41044  __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_2);
41045  __pyx_t_2 = 0;
41046 
41047  /* "mprans/BoundaryConditions.py":1353
41048  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
41049  * eN = femSpace.mesh.nodeElementsArray[eOffset]
41050  * if eN not in checkedElements: # <<<<<<<<<<<<<<
41051  * checkedElements.append(eN)
41052  * # evaluate the inverse map for element eN
41053  */
41054  __pyx_t_11 = (__Pyx_PySequence_ContainsTF(__pyx_v_eN, __pyx_v_checkedElements, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1353, __pyx_L1_error)
41055  __pyx_t_16 = (__pyx_t_11 != 0);
41056  if (__pyx_t_16) {
41057 
41058  /* "mprans/BoundaryConditions.py":1354
41059  * eN = femSpace.mesh.nodeElementsArray[eOffset]
41060  * if eN not in checkedElements:
41061  * checkedElements.append(eN) # <<<<<<<<<<<<<<
41062  * # evaluate the inverse map for element eN
41063  * xi = femSpace.elementMaps.getInverseValue(eN, coords)
41064  */
41065  __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_checkedElements, __pyx_v_eN); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1354, __pyx_L1_error)
41066 
41067  /* "mprans/BoundaryConditions.py":1356
41068  * checkedElements.append(eN)
41069  * # evaluate the inverse map for element eN
41070  * xi = femSpace.elementMaps.getInverseValue(eN, coords) # <<<<<<<<<<<<<<
41071  * # query whether xi lies within the reference element
41072  * if femSpace.elementMaps.referenceElement.onElement(xi):
41073  */
41074  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1356, __pyx_L1_error)
41075  __Pyx_GOTREF(__pyx_t_5);
41076  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_getInverseValue); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1356, __pyx_L1_error)
41077  __Pyx_GOTREF(__pyx_t_14);
41078  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
41079  __pyx_t_5 = NULL;
41080  __pyx_t_13 = 0;
41081  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
41082  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_14);
41083  if (likely(__pyx_t_5)) {
41084  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
41085  __Pyx_INCREF(__pyx_t_5);
41086  __Pyx_INCREF(function);
41087  __Pyx_DECREF_SET(__pyx_t_14, function);
41088  __pyx_t_13 = 1;
41089  }
41090  }
41091  #if CYTHON_FAST_PYCALL
41092  if (PyFunction_Check(__pyx_t_14)) {
41093  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_eN, __pyx_v_coords};
41094  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1356, __pyx_L1_error)
41095  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
41096  __Pyx_GOTREF(__pyx_t_2);
41097  } else
41098  #endif
41099  #if CYTHON_FAST_PYCCALL
41100  if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
41101  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_eN, __pyx_v_coords};
41102  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1356, __pyx_L1_error)
41103  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
41104  __Pyx_GOTREF(__pyx_t_2);
41105  } else
41106  #endif
41107  {
41108  __pyx_t_1 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1356, __pyx_L1_error)
41109  __Pyx_GOTREF(__pyx_t_1);
41110  if (__pyx_t_5) {
41111  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL;
41112  }
41113  __Pyx_INCREF(__pyx_v_eN);
41114  __Pyx_GIVEREF(__pyx_v_eN);
41115  PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_13, __pyx_v_eN);
41116  __Pyx_INCREF(__pyx_v_coords);
41117  __Pyx_GIVEREF(__pyx_v_coords);
41118  PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_13, __pyx_v_coords);
41119  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1356, __pyx_L1_error)
41120  __Pyx_GOTREF(__pyx_t_2);
41121  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41122  }
41123  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
41124  __Pyx_XDECREF_SET(__pyx_v_xi, __pyx_t_2);
41125  __pyx_t_2 = 0;
41126 
41127  /* "mprans/BoundaryConditions.py":1358
41128  * xi = femSpace.elementMaps.getInverseValue(eN, coords)
41129  * # query whether xi lies within the reference element
41130  * if femSpace.elementMaps.referenceElement.onElement(xi): # <<<<<<<<<<<<<<
41131  * return eN
41132  * # no elements found
41133  */
41134  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1358, __pyx_L1_error)
41135  __Pyx_GOTREF(__pyx_t_14);
41136  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_referenceElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1358, __pyx_L1_error)
41137  __Pyx_GOTREF(__pyx_t_1);
41138  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
41139  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_onElement); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1358, __pyx_L1_error)
41140  __Pyx_GOTREF(__pyx_t_14);
41141  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41142  __pyx_t_1 = NULL;
41143  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
41144  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14);
41145  if (likely(__pyx_t_1)) {
41146  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
41147  __Pyx_INCREF(__pyx_t_1);
41148  __Pyx_INCREF(function);
41149  __Pyx_DECREF_SET(__pyx_t_14, function);
41150  }
41151  }
41152  __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_xi);
41153  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
41154  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error)
41155  __Pyx_GOTREF(__pyx_t_2);
41156  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
41157  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1358, __pyx_L1_error)
41158  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41159  if (__pyx_t_16) {
41160 
41161  /* "mprans/BoundaryConditions.py":1359
41162  * # query whether xi lies within the reference element
41163  * if femSpace.elementMaps.referenceElement.onElement(xi):
41164  * return eN # <<<<<<<<<<<<<<
41165  * # no elements found
41166  * return None
41167  */
41168  __Pyx_XDECREF(__pyx_r);
41169  __Pyx_INCREF(__pyx_v_eN);
41170  __pyx_r = __pyx_v_eN;
41171  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41172  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
41173  goto __pyx_L0;
41174 
41175  /* "mprans/BoundaryConditions.py":1358
41176  * xi = femSpace.elementMaps.getInverseValue(eN, coords)
41177  * # query whether xi lies within the reference element
41178  * if femSpace.elementMaps.referenceElement.onElement(xi): # <<<<<<<<<<<<<<
41179  * return eN
41180  * # no elements found
41181  */
41182  }
41183 
41184  /* "mprans/BoundaryConditions.py":1353
41185  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]):
41186  * eN = femSpace.mesh.nodeElementsArray[eOffset]
41187  * if eN not in checkedElements: # <<<<<<<<<<<<<<
41188  * checkedElements.append(eN)
41189  * # evaluate the inverse map for element eN
41190  */
41191  }
41192 
41193  /* "mprans/BoundaryConditions.py":1351
41194  * # extra loop if case coords is in neighbour element
41195  * for node in patchBoundaryNodes:
41196  * for eOffset in range(femSpace.mesh.nodeElementOffsets[node], femSpace.mesh.nodeElementOffsets[node + 1]): # <<<<<<<<<<<<<<
41197  * eN = femSpace.mesh.nodeElementsArray[eOffset]
41198  * if eN not in checkedElements:
41199  */
41200  }
41201  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
41202  }
41203  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41204 
41205  /* "mprans/BoundaryConditions.py":1361
41206  * return eN
41207  * # no elements found
41208  * return None # <<<<<<<<<<<<<<
41209  *
41210  * def findElementContainingCoords(self, coords):
41211  */
41212  __Pyx_XDECREF(__pyx_r);
41213  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
41214  goto __pyx_L0;
41215 
41216  /* "mprans/BoundaryConditions.py":1317
41217  * return node, distance
41218  *
41219  * def getLocalElement(self, femSpace, coords, node): # <<<<<<<<<<<<<<
41220  * """
41221  * Given coordinates and its nearest node, determine if it is on a
41222  */
41223 
41224  /* function exit code */
41225  __pyx_L1_error:;
41226  __Pyx_XDECREF(__pyx_t_1);
41227  __Pyx_XDECREF(__pyx_t_2);
41228  __Pyx_XDECREF(__pyx_t_3);
41229  __Pyx_XDECREF(__pyx_t_5);
41230  __Pyx_XDECREF(__pyx_t_6);
41231  __Pyx_XDECREF(__pyx_t_7);
41232  __Pyx_XDECREF(__pyx_t_14);
41233  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getLocalElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
41234  __pyx_r = NULL;
41235  __pyx_L0:;
41236  __Pyx_XDECREF(__pyx_v_patchBoundaryNodes);
41237  __Pyx_XDECREF(__pyx_v_checkedElements);
41238  __Pyx_XDECREF(__pyx_v_statem1);
41239  __Pyx_XDECREF(__pyx_v_eOffset);
41240  __Pyx_XDECREF(__pyx_v_eN);
41241  __Pyx_XDECREF(__pyx_v_xi);
41242  __Pyx_XDECREF(__pyx_v_node);
41243  __Pyx_XGIVEREF(__pyx_r);
41244  __Pyx_TraceReturn(__pyx_r, 0);
41245  __Pyx_RefNannyFinishContext();
41246  return __pyx_r;
41247 }
41248 
41249 /* "mprans/BoundaryConditions.py":1363
41250  * return None
41251  *
41252  * def findElementContainingCoords(self, coords): # <<<<<<<<<<<<<<
41253  * """
41254  * Given global coordinates of a point, returns
41255  */
41256 
41257 /* Python wrapper */
41258 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_15findElementContainingCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41259 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_14findElementContainingCoords[] = "WallFunctions.findElementContainingCoords(self, coords)\n\n Given global coordinates of a point, returns\n local coordinates and the owner of the point.\n\n Parameters\n ----------\n coords: array_like\n global coordinates to look for\n Returns\n -------\n xi:\n local coordinates\n eN: int\n (local) element number\n rank: int\n processor rank containing element\n ";
41260 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_15findElementContainingCoords = {"findElementContainingCoords", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_15findElementContainingCoords, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_14findElementContainingCoords};
41261 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_15findElementContainingCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41262  PyObject *__pyx_v_self = 0;
41263  PyObject *__pyx_v_coords = 0;
41264  int __pyx_lineno = 0;
41265  const char *__pyx_filename = NULL;
41266  int __pyx_clineno = 0;
41267  PyObject *__pyx_r = 0;
41268  __Pyx_RefNannyDeclarations
41269  __Pyx_RefNannySetupContext("findElementContainingCoords (wrapper)", 0);
41270  {
41271  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_coords,0};
41272  PyObject* values[2] = {0,0};
41273  if (unlikely(__pyx_kwds)) {
41274  Py_ssize_t kw_args;
41275  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
41276  switch (pos_args) {
41277  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
41278  CYTHON_FALLTHROUGH;
41279  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
41280  CYTHON_FALLTHROUGH;
41281  case 0: break;
41282  default: goto __pyx_L5_argtuple_error;
41283  }
41284  kw_args = PyDict_Size(__pyx_kwds);
41285  switch (pos_args) {
41286  case 0:
41287  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
41288  else goto __pyx_L5_argtuple_error;
41289  CYTHON_FALLTHROUGH;
41290  case 1:
41291  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
41292  else {
41293  __Pyx_RaiseArgtupleInvalid("findElementContainingCoords", 1, 2, 2, 1); __PYX_ERR(0, 1363, __pyx_L3_error)
41294  }
41295  }
41296  if (unlikely(kw_args > 0)) {
41297  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findElementContainingCoords") < 0)) __PYX_ERR(0, 1363, __pyx_L3_error)
41298  }
41299  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
41300  goto __pyx_L5_argtuple_error;
41301  } else {
41302  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
41303  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
41304  }
41305  __pyx_v_self = values[0];
41306  __pyx_v_coords = values[1];
41307  }
41308  goto __pyx_L4_argument_unpacking_done;
41309  __pyx_L5_argtuple_error:;
41310  __Pyx_RaiseArgtupleInvalid("findElementContainingCoords", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1363, __pyx_L3_error)
41311  __pyx_L3_error:;
41312  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.findElementContainingCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
41313  __Pyx_RefNannyFinishContext();
41314  return NULL;
41315  __pyx_L4_argument_unpacking_done:;
41316  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_14findElementContainingCoords(__pyx_self, __pyx_v_self, __pyx_v_coords);
41317 
41318  /* function exit code */
41319  __Pyx_RefNannyFinishContext();
41320  return __pyx_r;
41321 }
41322 
41323 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_14findElementContainingCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_coords) {
41324  PyObject *__pyx_v_comm = NULL;
41325  PyObject *__pyx_v_xi = NULL;
41326  CYTHON_UNUSED PyObject *__pyx_v_owning_proc = NULL;
41327  PyObject *__pyx_v_element = NULL;
41328  PyObject *__pyx_v_rank = NULL;
41329  PyObject *__pyx_v_nodes_kdtree = NULL;
41330  PyObject *__pyx_v_nearest_node = NULL;
41331  CYTHON_UNUSED PyObject *__pyx_v_nearest_node_distance = NULL;
41332  PyObject *__pyx_v_local_element = NULL;
41333  PyObject *__pyx_r = NULL;
41334  __Pyx_TraceDeclarations
41335  __Pyx_RefNannyDeclarations
41336  PyObject *__pyx_t_1 = NULL;
41337  PyObject *__pyx_t_2 = NULL;
41338  PyObject *__pyx_t_3 = NULL;
41339  PyObject *__pyx_t_4 = NULL;
41340  int __pyx_t_5;
41341  PyObject *(*__pyx_t_6)(PyObject *);
41342  PyObject *__pyx_t_7 = NULL;
41343  int __pyx_t_8;
41344  int __pyx_lineno = 0;
41345  const char *__pyx_filename = NULL;
41346  int __pyx_clineno = 0;
41347  __Pyx_TraceFrameInit(__pyx_codeobj__114)
41348  __Pyx_RefNannySetupContext("findElementContainingCoords", 0);
41349  __Pyx_TraceCall("findElementContainingCoords", __pyx_f[0], 1363, 0, __PYX_ERR(0, 1363, __pyx_L1_error));
41350 
41351  /* "mprans/BoundaryConditions.py":1381
41352  * processor rank containing element
41353  * """
41354  * comm = Comm.get().comm.tompi4py() # <<<<<<<<<<<<<<
41355  * xi = owning_proc = element = rank = None # initialised as None
41356  * self.xi, self.element, self.rank = xi, element, rank
41357  */
41358  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1381, __pyx_L1_error)
41359  __Pyx_GOTREF(__pyx_t_3);
41360  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1381, __pyx_L1_error)
41361  __Pyx_GOTREF(__pyx_t_4);
41362  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41363  __pyx_t_3 = NULL;
41364  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
41365  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
41366  if (likely(__pyx_t_3)) {
41367  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
41368  __Pyx_INCREF(__pyx_t_3);
41369  __Pyx_INCREF(function);
41370  __Pyx_DECREF_SET(__pyx_t_4, function);
41371  }
41372  }
41373  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
41374  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
41375  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1381, __pyx_L1_error)
41376  __Pyx_GOTREF(__pyx_t_2);
41377  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41378  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_comm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1381, __pyx_L1_error)
41379  __Pyx_GOTREF(__pyx_t_4);
41380  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41381  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tompi4py); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1381, __pyx_L1_error)
41382  __Pyx_GOTREF(__pyx_t_2);
41383  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41384  __pyx_t_4 = NULL;
41385  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
41386  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
41387  if (likely(__pyx_t_4)) {
41388  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
41389  __Pyx_INCREF(__pyx_t_4);
41390  __Pyx_INCREF(function);
41391  __Pyx_DECREF_SET(__pyx_t_2, function);
41392  }
41393  }
41394  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
41395  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
41396  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1381, __pyx_L1_error)
41397  __Pyx_GOTREF(__pyx_t_1);
41398  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41399  __pyx_v_comm = __pyx_t_1;
41400  __pyx_t_1 = 0;
41401 
41402  /* "mprans/BoundaryConditions.py":1382
41403  * """
41404  * comm = Comm.get().comm.tompi4py()
41405  * xi = owning_proc = element = rank = None # initialised as None # <<<<<<<<<<<<<<
41406  * self.xi, self.element, self.rank = xi, element, rank
41407  * # get nearest node on each processor
41408  */
41409  __Pyx_INCREF(Py_None);
41410  __pyx_v_xi = Py_None;
41411  __Pyx_INCREF(Py_None);
41412  __pyx_v_owning_proc = Py_None;
41413  __Pyx_INCREF(Py_None);
41414  __pyx_v_element = Py_None;
41415  __Pyx_INCREF(Py_None);
41416  __pyx_v_rank = Py_None;
41417 
41418  /* "mprans/BoundaryConditions.py":1383
41419  * comm = Comm.get().comm.tompi4py()
41420  * xi = owning_proc = element = rank = None # initialised as None
41421  * self.xi, self.element, self.rank = xi, element, rank # <<<<<<<<<<<<<<
41422  * # get nearest node on each processor
41423  * # comm.barrier()
41424  */
41425  __pyx_t_1 = __pyx_v_xi;
41426  __Pyx_INCREF(__pyx_t_1);
41427  __pyx_t_2 = __pyx_v_element;
41428  __Pyx_INCREF(__pyx_t_2);
41429  __pyx_t_4 = __pyx_v_rank;
41430  __Pyx_INCREF(__pyx_t_4);
41431  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_xi, __pyx_t_1) < 0) __PYX_ERR(0, 1383, __pyx_L1_error)
41432  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41433  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_element, __pyx_t_2) < 0) __PYX_ERR(0, 1383, __pyx_L1_error)
41434  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41435  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_rank, __pyx_t_4) < 0) __PYX_ERR(0, 1383, __pyx_L1_error)
41436  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41437 
41438  /* "mprans/BoundaryConditions.py":1386
41439  * # get nearest node on each processor
41440  * # comm.barrier()
41441  * self.u = self.model.levelModelList[0].u # <<<<<<<<<<<<<<
41442  * self.femSpace_velocity = self.u[1].femSpace
41443  * nodes_kdtree = spatial.cKDTree(self.model.levelModelList[0].mesh.nodeArray)
41444  */
41445  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1386, __pyx_L1_error)
41446  __Pyx_GOTREF(__pyx_t_4);
41447  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1386, __pyx_L1_error)
41448  __Pyx_GOTREF(__pyx_t_2);
41449  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41450  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1386, __pyx_L1_error)
41451  __Pyx_GOTREF(__pyx_t_4);
41452  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41453  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1386, __pyx_L1_error)
41454  __Pyx_GOTREF(__pyx_t_2);
41455  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41456  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_u, __pyx_t_2) < 0) __PYX_ERR(0, 1386, __pyx_L1_error)
41457  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41458 
41459  /* "mprans/BoundaryConditions.py":1387
41460  * # comm.barrier()
41461  * self.u = self.model.levelModelList[0].u
41462  * self.femSpace_velocity = self.u[1].femSpace # <<<<<<<<<<<<<<
41463  * nodes_kdtree = spatial.cKDTree(self.model.levelModelList[0].mesh.nodeArray)
41464  * nearest_node, nearest_node_distance = self.getLocalNearestNode(coords, nodes_kdtree)
41465  */
41466  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1387, __pyx_L1_error)
41467  __Pyx_GOTREF(__pyx_t_2);
41468  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1387, __pyx_L1_error)
41469  __Pyx_GOTREF(__pyx_t_4);
41470  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41471  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_femSpace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1387, __pyx_L1_error)
41472  __Pyx_GOTREF(__pyx_t_2);
41473  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41474  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_femSpace_velocity, __pyx_t_2) < 0) __PYX_ERR(0, 1387, __pyx_L1_error)
41475  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41476 
41477  /* "mprans/BoundaryConditions.py":1388
41478  * self.u = self.model.levelModelList[0].u
41479  * self.femSpace_velocity = self.u[1].femSpace
41480  * nodes_kdtree = spatial.cKDTree(self.model.levelModelList[0].mesh.nodeArray) # <<<<<<<<<<<<<<
41481  * nearest_node, nearest_node_distance = self.getLocalNearestNode(coords, nodes_kdtree)
41482  * # look for element containing coords on each processor (if it exists)
41483  */
41484  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_spatial); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error)
41485  __Pyx_GOTREF(__pyx_t_4);
41486  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_cKDTree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
41487  __Pyx_GOTREF(__pyx_t_1);
41488  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41489  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error)
41490  __Pyx_GOTREF(__pyx_t_4);
41491  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1388, __pyx_L1_error)
41492  __Pyx_GOTREF(__pyx_t_3);
41493  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41494  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error)
41495  __Pyx_GOTREF(__pyx_t_4);
41496  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41497  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_mesh); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1388, __pyx_L1_error)
41498  __Pyx_GOTREF(__pyx_t_3);
41499  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41500  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nodeArray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error)
41501  __Pyx_GOTREF(__pyx_t_4);
41502  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41503  __pyx_t_3 = NULL;
41504  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
41505  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
41506  if (likely(__pyx_t_3)) {
41507  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
41508  __Pyx_INCREF(__pyx_t_3);
41509  __Pyx_INCREF(function);
41510  __Pyx_DECREF_SET(__pyx_t_1, function);
41511  }
41512  }
41513  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4);
41514  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
41515  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41516  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1388, __pyx_L1_error)
41517  __Pyx_GOTREF(__pyx_t_2);
41518  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41519  __pyx_v_nodes_kdtree = __pyx_t_2;
41520  __pyx_t_2 = 0;
41521 
41522  /* "mprans/BoundaryConditions.py":1389
41523  * self.femSpace_velocity = self.u[1].femSpace
41524  * nodes_kdtree = spatial.cKDTree(self.model.levelModelList[0].mesh.nodeArray)
41525  * nearest_node, nearest_node_distance = self.getLocalNearestNode(coords, nodes_kdtree) # <<<<<<<<<<<<<<
41526  * # look for element containing coords on each processor (if it exists)
41527  * local_element = self.getLocalElement(self.femSpace_velocity, coords, nearest_node)
41528  */
41529  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getLocalNearestNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
41530  __Pyx_GOTREF(__pyx_t_1);
41531  __pyx_t_4 = NULL;
41532  __pyx_t_5 = 0;
41533  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
41534  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
41535  if (likely(__pyx_t_4)) {
41536  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
41537  __Pyx_INCREF(__pyx_t_4);
41538  __Pyx_INCREF(function);
41539  __Pyx_DECREF_SET(__pyx_t_1, function);
41540  __pyx_t_5 = 1;
41541  }
41542  }
41543  #if CYTHON_FAST_PYCALL
41544  if (PyFunction_Check(__pyx_t_1)) {
41545  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_coords, __pyx_v_nodes_kdtree};
41546  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error)
41547  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
41548  __Pyx_GOTREF(__pyx_t_2);
41549  } else
41550  #endif
41551  #if CYTHON_FAST_PYCCALL
41552  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
41553  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_coords, __pyx_v_nodes_kdtree};
41554  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error)
41555  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
41556  __Pyx_GOTREF(__pyx_t_2);
41557  } else
41558  #endif
41559  {
41560  __pyx_t_3 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1389, __pyx_L1_error)
41561  __Pyx_GOTREF(__pyx_t_3);
41562  if (__pyx_t_4) {
41563  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
41564  }
41565  __Pyx_INCREF(__pyx_v_coords);
41566  __Pyx_GIVEREF(__pyx_v_coords);
41567  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, __pyx_v_coords);
41568  __Pyx_INCREF(__pyx_v_nodes_kdtree);
41569  __Pyx_GIVEREF(__pyx_v_nodes_kdtree);
41570  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, __pyx_v_nodes_kdtree);
41571  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error)
41572  __Pyx_GOTREF(__pyx_t_2);
41573  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41574  }
41575  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41576  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
41577  PyObject* sequence = __pyx_t_2;
41578  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
41579  if (unlikely(size != 2)) {
41580  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
41581  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
41582  __PYX_ERR(0, 1389, __pyx_L1_error)
41583  }
41584  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
41585  if (likely(PyTuple_CheckExact(sequence))) {
41586  __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
41587  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
41588  } else {
41589  __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
41590  __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
41591  }
41592  __Pyx_INCREF(__pyx_t_1);
41593  __Pyx_INCREF(__pyx_t_3);
41594  #else
41595  __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
41596  __Pyx_GOTREF(__pyx_t_1);
41597  __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1389, __pyx_L1_error)
41598  __Pyx_GOTREF(__pyx_t_3);
41599  #endif
41600  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41601  } else {
41602  Py_ssize_t index = -1;
41603  __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1389, __pyx_L1_error)
41604  __Pyx_GOTREF(__pyx_t_4);
41605  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41606  __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
41607  index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
41608  __Pyx_GOTREF(__pyx_t_1);
41609  index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
41610  __Pyx_GOTREF(__pyx_t_3);
41611  if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_4), 2) < 0) __PYX_ERR(0, 1389, __pyx_L1_error)
41612  __pyx_t_6 = NULL;
41613  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41614  goto __pyx_L4_unpacking_done;
41615  __pyx_L3_unpacking_failed:;
41616  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
41617  __pyx_t_6 = NULL;
41618  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
41619  __PYX_ERR(0, 1389, __pyx_L1_error)
41620  __pyx_L4_unpacking_done:;
41621  }
41622  __pyx_v_nearest_node = __pyx_t_1;
41623  __pyx_t_1 = 0;
41624  __pyx_v_nearest_node_distance = __pyx_t_3;
41625  __pyx_t_3 = 0;
41626 
41627  /* "mprans/BoundaryConditions.py":1391
41628  * nearest_node, nearest_node_distance = self.getLocalNearestNode(coords, nodes_kdtree)
41629  * # look for element containing coords on each processor (if it exists)
41630  * local_element = self.getLocalElement(self.femSpace_velocity, coords, nearest_node) # <<<<<<<<<<<<<<
41631  * if local_element:
41632  * xi = self.femSpace_velocity.elementMaps.getInverseValue(local_element, coords)
41633  */
41634  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getLocalElement); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1391, __pyx_L1_error)
41635  __Pyx_GOTREF(__pyx_t_3);
41636  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_femSpace_velocity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error)
41637  __Pyx_GOTREF(__pyx_t_1);
41638  __pyx_t_4 = NULL;
41639  __pyx_t_5 = 0;
41640  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
41641  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
41642  if (likely(__pyx_t_4)) {
41643  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
41644  __Pyx_INCREF(__pyx_t_4);
41645  __Pyx_INCREF(function);
41646  __Pyx_DECREF_SET(__pyx_t_3, function);
41647  __pyx_t_5 = 1;
41648  }
41649  }
41650  #if CYTHON_FAST_PYCALL
41651  if (PyFunction_Check(__pyx_t_3)) {
41652  PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_1, __pyx_v_coords, __pyx_v_nearest_node};
41653  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1391, __pyx_L1_error)
41654  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
41655  __Pyx_GOTREF(__pyx_t_2);
41656  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41657  } else
41658  #endif
41659  #if CYTHON_FAST_PYCCALL
41660  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
41661  PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_1, __pyx_v_coords, __pyx_v_nearest_node};
41662  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1391, __pyx_L1_error)
41663  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
41664  __Pyx_GOTREF(__pyx_t_2);
41665  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41666  } else
41667  #endif
41668  {
41669  __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1391, __pyx_L1_error)
41670  __Pyx_GOTREF(__pyx_t_7);
41671  if (__pyx_t_4) {
41672  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
41673  }
41674  __Pyx_GIVEREF(__pyx_t_1);
41675  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_t_1);
41676  __Pyx_INCREF(__pyx_v_coords);
41677  __Pyx_GIVEREF(__pyx_v_coords);
41678  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_v_coords);
41679  __Pyx_INCREF(__pyx_v_nearest_node);
41680  __Pyx_GIVEREF(__pyx_v_nearest_node);
41681  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v_nearest_node);
41682  __pyx_t_1 = 0;
41683  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1391, __pyx_L1_error)
41684  __Pyx_GOTREF(__pyx_t_2);
41685  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
41686  }
41687  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41688  __pyx_v_local_element = __pyx_t_2;
41689  __pyx_t_2 = 0;
41690 
41691  /* "mprans/BoundaryConditions.py":1392
41692  * # look for element containing coords on each processor (if it exists)
41693  * local_element = self.getLocalElement(self.femSpace_velocity, coords, nearest_node)
41694  * if local_element: # <<<<<<<<<<<<<<
41695  * xi = self.femSpace_velocity.elementMaps.getInverseValue(local_element, coords)
41696  * rank = comm.rank
41697  */
41698  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_local_element); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1392, __pyx_L1_error)
41699  if (__pyx_t_8) {
41700 
41701  /* "mprans/BoundaryConditions.py":1393
41702  * local_element = self.getLocalElement(self.femSpace_velocity, coords, nearest_node)
41703  * if local_element:
41704  * xi = self.femSpace_velocity.elementMaps.getInverseValue(local_element, coords) # <<<<<<<<<<<<<<
41705  * rank = comm.rank
41706  * else:
41707  */
41708  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_femSpace_velocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1393, __pyx_L1_error)
41709  __Pyx_GOTREF(__pyx_t_3);
41710  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1393, __pyx_L1_error)
41711  __Pyx_GOTREF(__pyx_t_7);
41712  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41713  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getInverseValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1393, __pyx_L1_error)
41714  __Pyx_GOTREF(__pyx_t_3);
41715  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
41716  __pyx_t_7 = NULL;
41717  __pyx_t_5 = 0;
41718  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
41719  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
41720  if (likely(__pyx_t_7)) {
41721  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
41722  __Pyx_INCREF(__pyx_t_7);
41723  __Pyx_INCREF(function);
41724  __Pyx_DECREF_SET(__pyx_t_3, function);
41725  __pyx_t_5 = 1;
41726  }
41727  }
41728  #if CYTHON_FAST_PYCALL
41729  if (PyFunction_Check(__pyx_t_3)) {
41730  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_local_element, __pyx_v_coords};
41731  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error)
41732  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
41733  __Pyx_GOTREF(__pyx_t_2);
41734  } else
41735  #endif
41736  #if CYTHON_FAST_PYCCALL
41737  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
41738  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_local_element, __pyx_v_coords};
41739  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error)
41740  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
41741  __Pyx_GOTREF(__pyx_t_2);
41742  } else
41743  #endif
41744  {
41745  __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1393, __pyx_L1_error)
41746  __Pyx_GOTREF(__pyx_t_1);
41747  if (__pyx_t_7) {
41748  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL;
41749  }
41750  __Pyx_INCREF(__pyx_v_local_element);
41751  __Pyx_GIVEREF(__pyx_v_local_element);
41752  PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_5, __pyx_v_local_element);
41753  __Pyx_INCREF(__pyx_v_coords);
41754  __Pyx_GIVEREF(__pyx_v_coords);
41755  PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_v_coords);
41756  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error)
41757  __Pyx_GOTREF(__pyx_t_2);
41758  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41759  }
41760  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41761  __Pyx_DECREF_SET(__pyx_v_xi, __pyx_t_2);
41762  __pyx_t_2 = 0;
41763 
41764  /* "mprans/BoundaryConditions.py":1394
41765  * if local_element:
41766  * xi = self.femSpace_velocity.elementMaps.getInverseValue(local_element, coords)
41767  * rank = comm.rank # <<<<<<<<<<<<<<
41768  * else:
41769  * xi = None
41770  */
41771  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_rank); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1394, __pyx_L1_error)
41772  __Pyx_GOTREF(__pyx_t_2);
41773  __Pyx_DECREF_SET(__pyx_v_rank, __pyx_t_2);
41774  __pyx_t_2 = 0;
41775 
41776  /* "mprans/BoundaryConditions.py":1392
41777  * # look for element containing coords on each processor (if it exists)
41778  * local_element = self.getLocalElement(self.femSpace_velocity, coords, nearest_node)
41779  * if local_element: # <<<<<<<<<<<<<<
41780  * xi = self.femSpace_velocity.elementMaps.getInverseValue(local_element, coords)
41781  * rank = comm.rank
41782  */
41783  goto __pyx_L5;
41784  }
41785 
41786  /* "mprans/BoundaryConditions.py":1396
41787  * rank = comm.rank
41788  * else:
41789  * xi = None # <<<<<<<<<<<<<<
41790  * rank = None
41791  * #rank = comm.allreduce(rank, op=MPI.MAX)
41792  */
41793  /*else*/ {
41794  __Pyx_INCREF(Py_None);
41795  __Pyx_DECREF_SET(__pyx_v_xi, Py_None);
41796 
41797  /* "mprans/BoundaryConditions.py":1397
41798  * else:
41799  * xi = None
41800  * rank = None # <<<<<<<<<<<<<<
41801  * #rank = comm.allreduce(rank, op=MPI.MAX)
41802  * return xi, local_element, rank
41803  */
41804  __Pyx_INCREF(Py_None);
41805  __Pyx_DECREF_SET(__pyx_v_rank, Py_None);
41806  }
41807  __pyx_L5:;
41808 
41809  /* "mprans/BoundaryConditions.py":1399
41810  * rank = None
41811  * #rank = comm.allreduce(rank, op=MPI.MAX)
41812  * return xi, local_element, rank # <<<<<<<<<<<<<<
41813  *
41814  * def getFluidVelocityLocalCoords(self, xi, element, rank):
41815  */
41816  __Pyx_XDECREF(__pyx_r);
41817  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1399, __pyx_L1_error)
41818  __Pyx_GOTREF(__pyx_t_2);
41819  __Pyx_INCREF(__pyx_v_xi);
41820  __Pyx_GIVEREF(__pyx_v_xi);
41821  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xi);
41822  __Pyx_INCREF(__pyx_v_local_element);
41823  __Pyx_GIVEREF(__pyx_v_local_element);
41824  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_local_element);
41825  __Pyx_INCREF(__pyx_v_rank);
41826  __Pyx_GIVEREF(__pyx_v_rank);
41827  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_rank);
41828  __pyx_r = __pyx_t_2;
41829  __pyx_t_2 = 0;
41830  goto __pyx_L0;
41831 
41832  /* "mprans/BoundaryConditions.py":1363
41833  * return None
41834  *
41835  * def findElementContainingCoords(self, coords): # <<<<<<<<<<<<<<
41836  * """
41837  * Given global coordinates of a point, returns
41838  */
41839 
41840  /* function exit code */
41841  __pyx_L1_error:;
41842  __Pyx_XDECREF(__pyx_t_1);
41843  __Pyx_XDECREF(__pyx_t_2);
41844  __Pyx_XDECREF(__pyx_t_3);
41845  __Pyx_XDECREF(__pyx_t_4);
41846  __Pyx_XDECREF(__pyx_t_7);
41847  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.findElementContainingCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
41848  __pyx_r = NULL;
41849  __pyx_L0:;
41850  __Pyx_XDECREF(__pyx_v_comm);
41851  __Pyx_XDECREF(__pyx_v_xi);
41852  __Pyx_XDECREF(__pyx_v_owning_proc);
41853  __Pyx_XDECREF(__pyx_v_element);
41854  __Pyx_XDECREF(__pyx_v_rank);
41855  __Pyx_XDECREF(__pyx_v_nodes_kdtree);
41856  __Pyx_XDECREF(__pyx_v_nearest_node);
41857  __Pyx_XDECREF(__pyx_v_nearest_node_distance);
41858  __Pyx_XDECREF(__pyx_v_local_element);
41859  __Pyx_XGIVEREF(__pyx_r);
41860  __Pyx_TraceReturn(__pyx_r, 0);
41861  __Pyx_RefNannyFinishContext();
41862  return __pyx_r;
41863 }
41864 
41865 /* "mprans/BoundaryConditions.py":1401
41866  * return xi, local_element, rank
41867  *
41868  * def getFluidVelocityLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
41869  * """
41870  * Given local details, returns velocity field at those coordinates.
41871  */
41872 
41873 /* Python wrapper */
41874 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_17getFluidVelocityLocalCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41875 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_16getFluidVelocityLocalCoords[] = "WallFunctions.getFluidVelocityLocalCoords(self, xi, element, rank)\n\n Given local details, returns velocity field at those coordinates.\n\n Parameters\n ----------\n xi:\n local coords in element\n element: int\n element number (local to processor 'rank')\n rank: int\n rank of processor owning the element\n ";
41876 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_17getFluidVelocityLocalCoords = {"getFluidVelocityLocalCoords", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_17getFluidVelocityLocalCoords, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_16getFluidVelocityLocalCoords};
41877 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_17getFluidVelocityLocalCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41878  PyObject *__pyx_v_self = 0;
41879  PyObject *__pyx_v_xi = 0;
41880  PyObject *__pyx_v_element = 0;
41881  PyObject *__pyx_v_rank = 0;
41882  int __pyx_lineno = 0;
41883  const char *__pyx_filename = NULL;
41884  int __pyx_clineno = 0;
41885  PyObject *__pyx_r = 0;
41886  __Pyx_RefNannyDeclarations
41887  __Pyx_RefNannySetupContext("getFluidVelocityLocalCoords (wrapper)", 0);
41888  {
41889  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xi,&__pyx_n_s_element,&__pyx_n_s_rank,0};
41890  PyObject* values[4] = {0,0,0,0};
41891  if (unlikely(__pyx_kwds)) {
41892  Py_ssize_t kw_args;
41893  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
41894  switch (pos_args) {
41895  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
41896  CYTHON_FALLTHROUGH;
41897  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
41898  CYTHON_FALLTHROUGH;
41899  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
41900  CYTHON_FALLTHROUGH;
41901  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
41902  CYTHON_FALLTHROUGH;
41903  case 0: break;
41904  default: goto __pyx_L5_argtuple_error;
41905  }
41906  kw_args = PyDict_Size(__pyx_kwds);
41907  switch (pos_args) {
41908  case 0:
41909  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
41910  else goto __pyx_L5_argtuple_error;
41911  CYTHON_FALLTHROUGH;
41912  case 1:
41913  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xi)) != 0)) kw_args--;
41914  else {
41915  __Pyx_RaiseArgtupleInvalid("getFluidVelocityLocalCoords", 1, 4, 4, 1); __PYX_ERR(0, 1401, __pyx_L3_error)
41916  }
41917  CYTHON_FALLTHROUGH;
41918  case 2:
41919  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_element)) != 0)) kw_args--;
41920  else {
41921  __Pyx_RaiseArgtupleInvalid("getFluidVelocityLocalCoords", 1, 4, 4, 2); __PYX_ERR(0, 1401, __pyx_L3_error)
41922  }
41923  CYTHON_FALLTHROUGH;
41924  case 3:
41925  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rank)) != 0)) kw_args--;
41926  else {
41927  __Pyx_RaiseArgtupleInvalid("getFluidVelocityLocalCoords", 1, 4, 4, 3); __PYX_ERR(0, 1401, __pyx_L3_error)
41928  }
41929  }
41930  if (unlikely(kw_args > 0)) {
41931  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFluidVelocityLocalCoords") < 0)) __PYX_ERR(0, 1401, __pyx_L3_error)
41932  }
41933  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
41934  goto __pyx_L5_argtuple_error;
41935  } else {
41936  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
41937  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
41938  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
41939  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
41940  }
41941  __pyx_v_self = values[0];
41942  __pyx_v_xi = values[1];
41943  __pyx_v_element = values[2];
41944  __pyx_v_rank = values[3];
41945  }
41946  goto __pyx_L4_argument_unpacking_done;
41947  __pyx_L5_argtuple_error:;
41948  __Pyx_RaiseArgtupleInvalid("getFluidVelocityLocalCoords", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1401, __pyx_L3_error)
41949  __pyx_L3_error:;
41950  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getFluidVelocityLocalCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
41951  __Pyx_RefNannyFinishContext();
41952  return NULL;
41953  __pyx_L4_argument_unpacking_done:;
41954  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_16getFluidVelocityLocalCoords(__pyx_self, __pyx_v_self, __pyx_v_xi, __pyx_v_element, __pyx_v_rank);
41955 
41956  /* function exit code */
41957  __Pyx_RefNannyFinishContext();
41958  return __pyx_r;
41959 }
41960 
41961 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_16getFluidVelocityLocalCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank) {
41962  PyObject *__pyx_v_comm = NULL;
41963  PyObject *__pyx_v_u = NULL;
41964  PyObject *__pyx_v_v = NULL;
41965  PyObject *__pyx_v_w = NULL;
41966  PyObject *__pyx_r = NULL;
41967  __Pyx_TraceDeclarations
41968  __Pyx_RefNannyDeclarations
41969  PyObject *__pyx_t_1 = NULL;
41970  PyObject *__pyx_t_2 = NULL;
41971  PyObject *__pyx_t_3 = NULL;
41972  PyObject *__pyx_t_4 = NULL;
41973  int __pyx_t_5;
41974  int __pyx_t_6;
41975  int __pyx_lineno = 0;
41976  const char *__pyx_filename = NULL;
41977  int __pyx_clineno = 0;
41978  __Pyx_TraceFrameInit(__pyx_codeobj__115)
41979  __Pyx_RefNannySetupContext("getFluidVelocityLocalCoords", 0);
41980  __Pyx_TraceCall("getFluidVelocityLocalCoords", __pyx_f[0], 1401, 0, __PYX_ERR(0, 1401, __pyx_L1_error));
41981 
41982  /* "mprans/BoundaryConditions.py":1414
41983  * rank of processor owning the element
41984  * """
41985  * comm = Comm.get().comm.tompi4py() # <<<<<<<<<<<<<<
41986  * if comm.rank == rank:
41987  * u = self.u[1].getValue(element, xi)
41988  */
41989  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1414, __pyx_L1_error)
41990  __Pyx_GOTREF(__pyx_t_3);
41991  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
41992  __Pyx_GOTREF(__pyx_t_4);
41993  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41994  __pyx_t_3 = NULL;
41995  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
41996  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
41997  if (likely(__pyx_t_3)) {
41998  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
41999  __Pyx_INCREF(__pyx_t_3);
42000  __Pyx_INCREF(function);
42001  __Pyx_DECREF_SET(__pyx_t_4, function);
42002  }
42003  }
42004  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
42005  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42006  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
42007  __Pyx_GOTREF(__pyx_t_2);
42008  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42009  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_comm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
42010  __Pyx_GOTREF(__pyx_t_4);
42011  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42012  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tompi4py); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
42013  __Pyx_GOTREF(__pyx_t_2);
42014  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42015  __pyx_t_4 = NULL;
42016  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
42017  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
42018  if (likely(__pyx_t_4)) {
42019  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
42020  __Pyx_INCREF(__pyx_t_4);
42021  __Pyx_INCREF(function);
42022  __Pyx_DECREF_SET(__pyx_t_2, function);
42023  }
42024  }
42025  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
42026  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42027  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
42028  __Pyx_GOTREF(__pyx_t_1);
42029  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42030  __pyx_v_comm = __pyx_t_1;
42031  __pyx_t_1 = 0;
42032 
42033  /* "mprans/BoundaryConditions.py":1415
42034  * """
42035  * comm = Comm.get().comm.tompi4py()
42036  * if comm.rank == rank: # <<<<<<<<<<<<<<
42037  * u = self.u[1].getValue(element, xi)
42038  * v = self.u[2].getValue(element, xi)
42039  */
42040  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_rank); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error)
42041  __Pyx_GOTREF(__pyx_t_1);
42042  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_rank, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1415, __pyx_L1_error)
42043  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42044  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1415, __pyx_L1_error)
42045  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42046  if (__pyx_t_5) {
42047 
42048  /* "mprans/BoundaryConditions.py":1416
42049  * comm = Comm.get().comm.tompi4py()
42050  * if comm.rank == rank:
42051  * u = self.u[1].getValue(element, xi) # <<<<<<<<<<<<<<
42052  * v = self.u[2].getValue(element, xi)
42053  * if self.nd > 2:
42054  */
42055  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_u); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1416, __pyx_L1_error)
42056  __Pyx_GOTREF(__pyx_t_1);
42057  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1416, __pyx_L1_error)
42058  __Pyx_GOTREF(__pyx_t_4);
42059  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42060  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getValue); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1416, __pyx_L1_error)
42061  __Pyx_GOTREF(__pyx_t_1);
42062  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42063  __pyx_t_4 = NULL;
42064  __pyx_t_6 = 0;
42065  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
42066  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
42067  if (likely(__pyx_t_4)) {
42068  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
42069  __Pyx_INCREF(__pyx_t_4);
42070  __Pyx_INCREF(function);
42071  __Pyx_DECREF_SET(__pyx_t_1, function);
42072  __pyx_t_6 = 1;
42073  }
42074  }
42075  #if CYTHON_FAST_PYCALL
42076  if (PyFunction_Check(__pyx_t_1)) {
42077  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
42078  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1416, __pyx_L1_error)
42079  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42080  __Pyx_GOTREF(__pyx_t_2);
42081  } else
42082  #endif
42083  #if CYTHON_FAST_PYCCALL
42084  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
42085  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
42086  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1416, __pyx_L1_error)
42087  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42088  __Pyx_GOTREF(__pyx_t_2);
42089  } else
42090  #endif
42091  {
42092  __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1416, __pyx_L1_error)
42093  __Pyx_GOTREF(__pyx_t_3);
42094  if (__pyx_t_4) {
42095  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
42096  }
42097  __Pyx_INCREF(__pyx_v_element);
42098  __Pyx_GIVEREF(__pyx_v_element);
42099  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_element);
42100  __Pyx_INCREF(__pyx_v_xi);
42101  __Pyx_GIVEREF(__pyx_v_xi);
42102  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_xi);
42103  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1416, __pyx_L1_error)
42104  __Pyx_GOTREF(__pyx_t_2);
42105  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42106  }
42107  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42108  __pyx_v_u = __pyx_t_2;
42109  __pyx_t_2 = 0;
42110 
42111  /* "mprans/BoundaryConditions.py":1417
42112  * if comm.rank == rank:
42113  * u = self.u[1].getValue(element, xi)
42114  * v = self.u[2].getValue(element, xi) # <<<<<<<<<<<<<<
42115  * if self.nd > 2:
42116  * w = self.u[3].getValue(element, xi)
42117  */
42118  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_u); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1417, __pyx_L1_error)
42119  __Pyx_GOTREF(__pyx_t_1);
42120  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1417, __pyx_L1_error)
42121  __Pyx_GOTREF(__pyx_t_3);
42122  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42123  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getValue); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1417, __pyx_L1_error)
42124  __Pyx_GOTREF(__pyx_t_1);
42125  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42126  __pyx_t_3 = NULL;
42127  __pyx_t_6 = 0;
42128  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
42129  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
42130  if (likely(__pyx_t_3)) {
42131  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
42132  __Pyx_INCREF(__pyx_t_3);
42133  __Pyx_INCREF(function);
42134  __Pyx_DECREF_SET(__pyx_t_1, function);
42135  __pyx_t_6 = 1;
42136  }
42137  }
42138  #if CYTHON_FAST_PYCALL
42139  if (PyFunction_Check(__pyx_t_1)) {
42140  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_element, __pyx_v_xi};
42141  __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1417, __pyx_L1_error)
42142  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42143  __Pyx_GOTREF(__pyx_t_2);
42144  } else
42145  #endif
42146  #if CYTHON_FAST_PYCCALL
42147  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
42148  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_element, __pyx_v_xi};
42149  __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1417, __pyx_L1_error)
42150  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42151  __Pyx_GOTREF(__pyx_t_2);
42152  } else
42153  #endif
42154  {
42155  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1417, __pyx_L1_error)
42156  __Pyx_GOTREF(__pyx_t_4);
42157  if (__pyx_t_3) {
42158  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
42159  }
42160  __Pyx_INCREF(__pyx_v_element);
42161  __Pyx_GIVEREF(__pyx_v_element);
42162  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_element);
42163  __Pyx_INCREF(__pyx_v_xi);
42164  __Pyx_GIVEREF(__pyx_v_xi);
42165  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_xi);
42166  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1417, __pyx_L1_error)
42167  __Pyx_GOTREF(__pyx_t_2);
42168  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42169  }
42170  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42171  __pyx_v_v = __pyx_t_2;
42172  __pyx_t_2 = 0;
42173 
42174  /* "mprans/BoundaryConditions.py":1418
42175  * u = self.u[1].getValue(element, xi)
42176  * v = self.u[2].getValue(element, xi)
42177  * if self.nd > 2: # <<<<<<<<<<<<<<
42178  * w = self.u[3].getValue(element, xi)
42179  * if self.nd <= 2:
42180  */
42181  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1418, __pyx_L1_error)
42182  __Pyx_GOTREF(__pyx_t_2);
42183  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1418, __pyx_L1_error)
42184  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42185  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1418, __pyx_L1_error)
42186  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42187  if (__pyx_t_5) {
42188 
42189  /* "mprans/BoundaryConditions.py":1419
42190  * v = self.u[2].getValue(element, xi)
42191  * if self.nd > 2:
42192  * w = self.u[3].getValue(element, xi) # <<<<<<<<<<<<<<
42193  * if self.nd <= 2:
42194  * w = 0.
42195  */
42196  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1419, __pyx_L1_error)
42197  __Pyx_GOTREF(__pyx_t_2);
42198  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1419, __pyx_L1_error)
42199  __Pyx_GOTREF(__pyx_t_4);
42200  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42201  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1419, __pyx_L1_error)
42202  __Pyx_GOTREF(__pyx_t_2);
42203  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42204  __pyx_t_4 = NULL;
42205  __pyx_t_6 = 0;
42206  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
42207  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
42208  if (likely(__pyx_t_4)) {
42209  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
42210  __Pyx_INCREF(__pyx_t_4);
42211  __Pyx_INCREF(function);
42212  __Pyx_DECREF_SET(__pyx_t_2, function);
42213  __pyx_t_6 = 1;
42214  }
42215  }
42216  #if CYTHON_FAST_PYCALL
42217  if (PyFunction_Check(__pyx_t_2)) {
42218  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
42219  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1419, __pyx_L1_error)
42220  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42221  __Pyx_GOTREF(__pyx_t_1);
42222  } else
42223  #endif
42224  #if CYTHON_FAST_PYCCALL
42225  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
42226  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
42227  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1419, __pyx_L1_error)
42228  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42229  __Pyx_GOTREF(__pyx_t_1);
42230  } else
42231  #endif
42232  {
42233  __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1419, __pyx_L1_error)
42234  __Pyx_GOTREF(__pyx_t_3);
42235  if (__pyx_t_4) {
42236  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
42237  }
42238  __Pyx_INCREF(__pyx_v_element);
42239  __Pyx_GIVEREF(__pyx_v_element);
42240  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_element);
42241  __Pyx_INCREF(__pyx_v_xi);
42242  __Pyx_GIVEREF(__pyx_v_xi);
42243  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_xi);
42244  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1419, __pyx_L1_error)
42245  __Pyx_GOTREF(__pyx_t_1);
42246  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42247  }
42248  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42249  __pyx_v_w = __pyx_t_1;
42250  __pyx_t_1 = 0;
42251 
42252  /* "mprans/BoundaryConditions.py":1418
42253  * u = self.u[1].getValue(element, xi)
42254  * v = self.u[2].getValue(element, xi)
42255  * if self.nd > 2: # <<<<<<<<<<<<<<
42256  * w = self.u[3].getValue(element, xi)
42257  * if self.nd <= 2:
42258  */
42259  }
42260 
42261  /* "mprans/BoundaryConditions.py":1420
42262  * if self.nd > 2:
42263  * w = self.u[3].getValue(element, xi)
42264  * if self.nd <= 2: # <<<<<<<<<<<<<<
42265  * w = 0.
42266  * else:
42267  */
42268  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1420, __pyx_L1_error)
42269  __Pyx_GOTREF(__pyx_t_1);
42270  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1420, __pyx_L1_error)
42271  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42272  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1420, __pyx_L1_error)
42273  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42274  if (__pyx_t_5) {
42275 
42276  /* "mprans/BoundaryConditions.py":1421
42277  * w = self.u[3].getValue(element, xi)
42278  * if self.nd <= 2:
42279  * w = 0. # <<<<<<<<<<<<<<
42280  * else:
42281  * u = v = w = None
42282  */
42283  __Pyx_INCREF(__pyx_float_0_);
42284  __Pyx_XDECREF_SET(__pyx_v_w, __pyx_float_0_);
42285 
42286  /* "mprans/BoundaryConditions.py":1420
42287  * if self.nd > 2:
42288  * w = self.u[3].getValue(element, xi)
42289  * if self.nd <= 2: # <<<<<<<<<<<<<<
42290  * w = 0.
42291  * else:
42292  */
42293  }
42294 
42295  /* "mprans/BoundaryConditions.py":1415
42296  * """
42297  * comm = Comm.get().comm.tompi4py()
42298  * if comm.rank == rank: # <<<<<<<<<<<<<<
42299  * u = self.u[1].getValue(element, xi)
42300  * v = self.u[2].getValue(element, xi)
42301  */
42302  goto __pyx_L3;
42303  }
42304 
42305  /* "mprans/BoundaryConditions.py":1423
42306  * w = 0.
42307  * else:
42308  * u = v = w = None # <<<<<<<<<<<<<<
42309  * return u, v, w
42310  *
42311  */
42312  /*else*/ {
42313  __Pyx_INCREF(Py_None);
42314  __pyx_v_u = Py_None;
42315  __Pyx_INCREF(Py_None);
42316  __pyx_v_v = Py_None;
42317  __Pyx_INCREF(Py_None);
42318  __pyx_v_w = Py_None;
42319  }
42320  __pyx_L3:;
42321 
42322  /* "mprans/BoundaryConditions.py":1424
42323  * else:
42324  * u = v = w = None
42325  * return u, v, w # <<<<<<<<<<<<<<
42326  *
42327  * def setYplusNormalDirection(self, x, t,n, relax=1.0):
42328  */
42329  __Pyx_XDECREF(__pyx_r);
42330  if (unlikely(!__pyx_v_w)) { __Pyx_RaiseUnboundLocalError("w"); __PYX_ERR(0, 1424, __pyx_L1_error) }
42331  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1424, __pyx_L1_error)
42332  __Pyx_GOTREF(__pyx_t_2);
42333  __Pyx_INCREF(__pyx_v_u);
42334  __Pyx_GIVEREF(__pyx_v_u);
42335  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_u);
42336  __Pyx_INCREF(__pyx_v_v);
42337  __Pyx_GIVEREF(__pyx_v_v);
42338  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_v);
42339  __Pyx_INCREF(__pyx_v_w);
42340  __Pyx_GIVEREF(__pyx_v_w);
42341  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_w);
42342  __pyx_r = __pyx_t_2;
42343  __pyx_t_2 = 0;
42344  goto __pyx_L0;
42345 
42346  /* "mprans/BoundaryConditions.py":1401
42347  * return xi, local_element, rank
42348  *
42349  * def getFluidVelocityLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
42350  * """
42351  * Given local details, returns velocity field at those coordinates.
42352  */
42353 
42354  /* function exit code */
42355  __pyx_L1_error:;
42356  __Pyx_XDECREF(__pyx_t_1);
42357  __Pyx_XDECREF(__pyx_t_2);
42358  __Pyx_XDECREF(__pyx_t_3);
42359  __Pyx_XDECREF(__pyx_t_4);
42360  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getFluidVelocityLocalCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
42361  __pyx_r = NULL;
42362  __pyx_L0:;
42363  __Pyx_XDECREF(__pyx_v_comm);
42364  __Pyx_XDECREF(__pyx_v_u);
42365  __Pyx_XDECREF(__pyx_v_v);
42366  __Pyx_XDECREF(__pyx_v_w);
42367  __Pyx_XGIVEREF(__pyx_r);
42368  __Pyx_TraceReturn(__pyx_r, 0);
42369  __Pyx_RefNannyFinishContext();
42370  return __pyx_r;
42371 }
42372 
42373 /* "mprans/BoundaryConditions.py":1426
42374  * return u, v, w
42375  *
42376  * def setYplusNormalDirection(self, x, t,n, relax=1.0): # <<<<<<<<<<<<<<
42377  * """
42378  * Return the point at y+ distance in normal
42379  */
42380 
42381 /* Python wrapper */
42382 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_19setYplusNormalDirection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
42383 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_18setYplusNormalDirection[] = "WallFunctions.setYplusNormalDirection(self, x, t, n, relax=1.0)\n\n Return the point at y+ distance in normal\n direction from the boundary.\n ";
42384 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_19setYplusNormalDirection = {"setYplusNormalDirection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_19setYplusNormalDirection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_18setYplusNormalDirection};
42385 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_19setYplusNormalDirection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
42386  PyObject *__pyx_v_self = 0;
42387  PyObject *__pyx_v_x = 0;
42388  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
42389  PyObject *__pyx_v_n = 0;
42390  PyObject *__pyx_v_relax = 0;
42391  int __pyx_lineno = 0;
42392  const char *__pyx_filename = NULL;
42393  int __pyx_clineno = 0;
42394  PyObject *__pyx_r = 0;
42395  __Pyx_RefNannyDeclarations
42396  __Pyx_RefNannySetupContext("setYplusNormalDirection (wrapper)", 0);
42397  {
42398  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,&__pyx_n_s_relax,0};
42399  PyObject* values[5] = {0,0,0,0,0};
42400  values[4] = ((PyObject *)((PyObject*)__pyx_float_1_0));
42401  if (unlikely(__pyx_kwds)) {
42402  Py_ssize_t kw_args;
42403  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
42404  switch (pos_args) {
42405  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
42406  CYTHON_FALLTHROUGH;
42407  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42408  CYTHON_FALLTHROUGH;
42409  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42410  CYTHON_FALLTHROUGH;
42411  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42412  CYTHON_FALLTHROUGH;
42413  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42414  CYTHON_FALLTHROUGH;
42415  case 0: break;
42416  default: goto __pyx_L5_argtuple_error;
42417  }
42418  kw_args = PyDict_Size(__pyx_kwds);
42419  switch (pos_args) {
42420  case 0:
42421  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
42422  else goto __pyx_L5_argtuple_error;
42423  CYTHON_FALLTHROUGH;
42424  case 1:
42425  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
42426  else {
42427  __Pyx_RaiseArgtupleInvalid("setYplusNormalDirection", 0, 4, 5, 1); __PYX_ERR(0, 1426, __pyx_L3_error)
42428  }
42429  CYTHON_FALLTHROUGH;
42430  case 2:
42431  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
42432  else {
42433  __Pyx_RaiseArgtupleInvalid("setYplusNormalDirection", 0, 4, 5, 2); __PYX_ERR(0, 1426, __pyx_L3_error)
42434  }
42435  CYTHON_FALLTHROUGH;
42436  case 3:
42437  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
42438  else {
42439  __Pyx_RaiseArgtupleInvalid("setYplusNormalDirection", 0, 4, 5, 3); __PYX_ERR(0, 1426, __pyx_L3_error)
42440  }
42441  CYTHON_FALLTHROUGH;
42442  case 4:
42443  if (kw_args > 0) {
42444  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_relax);
42445  if (value) { values[4] = value; kw_args--; }
42446  }
42447  }
42448  if (unlikely(kw_args > 0)) {
42449  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setYplusNormalDirection") < 0)) __PYX_ERR(0, 1426, __pyx_L3_error)
42450  }
42451  } else {
42452  switch (PyTuple_GET_SIZE(__pyx_args)) {
42453  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
42454  CYTHON_FALLTHROUGH;
42455  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42456  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42457  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42458  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42459  break;
42460  default: goto __pyx_L5_argtuple_error;
42461  }
42462  }
42463  __pyx_v_self = values[0];
42464  __pyx_v_x = values[1];
42465  __pyx_v_t = values[2];
42466  __pyx_v_n = values[3];
42467  __pyx_v_relax = values[4];
42468  }
42469  goto __pyx_L4_argument_unpacking_done;
42470  __pyx_L5_argtuple_error:;
42471  __Pyx_RaiseArgtupleInvalid("setYplusNormalDirection", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1426, __pyx_L3_error)
42472  __pyx_L3_error:;
42473  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.setYplusNormalDirection", __pyx_clineno, __pyx_lineno, __pyx_filename);
42474  __Pyx_RefNannyFinishContext();
42475  return NULL;
42476  __pyx_L4_argument_unpacking_done:;
42477  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_18setYplusNormalDirection(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_v_relax);
42478 
42479  /* function exit code */
42480  __Pyx_RefNannyFinishContext();
42481  return __pyx_r;
42482 }
42483 
42484 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_18setYplusNormalDirection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_n, PyObject *__pyx_v_relax) {
42485  PyObject *__pyx_v_nP = NULL;
42486  PyObject *__pyx_r = NULL;
42487  __Pyx_TraceDeclarations
42488  __Pyx_RefNannyDeclarations
42489  Py_ssize_t __pyx_t_1;
42490  int __pyx_t_2;
42491  PyObject *__pyx_t_3 = NULL;
42492  PyObject *__pyx_t_4 = NULL;
42493  PyObject *__pyx_t_5 = NULL;
42494  int __pyx_lineno = 0;
42495  const char *__pyx_filename = NULL;
42496  int __pyx_clineno = 0;
42497  __Pyx_TraceFrameInit(__pyx_codeobj__116)
42498  __Pyx_RefNannySetupContext("setYplusNormalDirection", 0);
42499  __Pyx_TraceCall("setYplusNormalDirection", __pyx_f[0], 1426, 0, __PYX_ERR(0, 1426, __pyx_L1_error));
42500 
42501  /* "mprans/BoundaryConditions.py":1432
42502  * """
42503  * # near wall point
42504  * if len(n) < 3: # <<<<<<<<<<<<<<
42505  * nP = (relax * self.Y * (-n[:2])) + x[:2]
42506  * else:
42507  */
42508  __pyx_t_1 = PyObject_Length(__pyx_v_n); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1432, __pyx_L1_error)
42509  __pyx_t_2 = ((__pyx_t_1 < 3) != 0);
42510  if (__pyx_t_2) {
42511 
42512  /* "mprans/BoundaryConditions.py":1433
42513  * # near wall point
42514  * if len(n) < 3:
42515  * nP = (relax * self.Y * (-n[:2])) + x[:2] # <<<<<<<<<<<<<<
42516  * else:
42517  * nP = (relax * self.Y * (-n)) + x
42518  */
42519  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1433, __pyx_L1_error)
42520  __Pyx_GOTREF(__pyx_t_3);
42521  __pyx_t_4 = PyNumber_Multiply(__pyx_v_relax, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1433, __pyx_L1_error)
42522  __Pyx_GOTREF(__pyx_t_4);
42523  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42524  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_n, 0, 2, NULL, NULL, &__pyx_slice__117, 0, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1433, __pyx_L1_error)
42525  __Pyx_GOTREF(__pyx_t_3);
42526  __pyx_t_5 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L1_error)
42527  __Pyx_GOTREF(__pyx_t_5);
42528  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42529  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1433, __pyx_L1_error)
42530  __Pyx_GOTREF(__pyx_t_3);
42531  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42532  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
42533  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_x, 0, 2, NULL, NULL, &__pyx_slice__117, 0, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L1_error)
42534  __Pyx_GOTREF(__pyx_t_5);
42535  __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1433, __pyx_L1_error)
42536  __Pyx_GOTREF(__pyx_t_4);
42537  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42538  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
42539  __pyx_v_nP = __pyx_t_4;
42540  __pyx_t_4 = 0;
42541 
42542  /* "mprans/BoundaryConditions.py":1432
42543  * """
42544  * # near wall point
42545  * if len(n) < 3: # <<<<<<<<<<<<<<
42546  * nP = (relax * self.Y * (-n[:2])) + x[:2]
42547  * else:
42548  */
42549  goto __pyx_L3;
42550  }
42551 
42552  /* "mprans/BoundaryConditions.py":1435
42553  * nP = (relax * self.Y * (-n[:2])) + x[:2]
42554  * else:
42555  * nP = (relax * self.Y * (-n)) + x # <<<<<<<<<<<<<<
42556  * return nP
42557  *
42558  */
42559  /*else*/ {
42560  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1435, __pyx_L1_error)
42561  __Pyx_GOTREF(__pyx_t_4);
42562  __pyx_t_5 = PyNumber_Multiply(__pyx_v_relax, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1435, __pyx_L1_error)
42563  __Pyx_GOTREF(__pyx_t_5);
42564  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42565  __pyx_t_4 = PyNumber_Negative(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1435, __pyx_L1_error)
42566  __Pyx_GOTREF(__pyx_t_4);
42567  __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1435, __pyx_L1_error)
42568  __Pyx_GOTREF(__pyx_t_3);
42569  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
42570  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
42571  __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1435, __pyx_L1_error)
42572  __Pyx_GOTREF(__pyx_t_4);
42573  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42574  __pyx_v_nP = __pyx_t_4;
42575  __pyx_t_4 = 0;
42576  }
42577  __pyx_L3:;
42578 
42579  /* "mprans/BoundaryConditions.py":1436
42580  * else:
42581  * nP = (relax * self.Y * (-n)) + x
42582  * return nP # <<<<<<<<<<<<<<
42583  *
42584  * def extractVelocity(self, x, t, n):
42585  */
42586  __Pyx_XDECREF(__pyx_r);
42587  __Pyx_INCREF(__pyx_v_nP);
42588  __pyx_r = __pyx_v_nP;
42589  goto __pyx_L0;
42590 
42591  /* "mprans/BoundaryConditions.py":1426
42592  * return u, v, w
42593  *
42594  * def setYplusNormalDirection(self, x, t,n, relax=1.0): # <<<<<<<<<<<<<<
42595  * """
42596  * Return the point at y+ distance in normal
42597  */
42598 
42599  /* function exit code */
42600  __pyx_L1_error:;
42601  __Pyx_XDECREF(__pyx_t_3);
42602  __Pyx_XDECREF(__pyx_t_4);
42603  __Pyx_XDECREF(__pyx_t_5);
42604  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.setYplusNormalDirection", __pyx_clineno, __pyx_lineno, __pyx_filename);
42605  __pyx_r = NULL;
42606  __pyx_L0:;
42607  __Pyx_XDECREF(__pyx_v_nP);
42608  __Pyx_XGIVEREF(__pyx_r);
42609  __Pyx_TraceReturn(__pyx_r, 0);
42610  __Pyx_RefNannyFinishContext();
42611  return __pyx_r;
42612 }
42613 
42614 /* "mprans/BoundaryConditions.py":1438
42615  * return nP
42616  *
42617  * def extractVelocity(self, x, t, n): # <<<<<<<<<<<<<<
42618  * """
42619  * Extraction of the velocity at y+ distance from the boundary.
42620  */
42621 
42622 /* Python wrapper */
42623 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_21extractVelocity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
42624 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_20extractVelocity[] = "WallFunctions.extractVelocity(self, x, t, n)\n\n Extraction of the velocity at y+ distance from the boundary.\n ";
42625 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_21extractVelocity = {"extractVelocity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_21extractVelocity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_20extractVelocity};
42626 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_21extractVelocity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
42627  PyObject *__pyx_v_self = 0;
42628  PyObject *__pyx_v_x = 0;
42629  PyObject *__pyx_v_t = 0;
42630  PyObject *__pyx_v_n = 0;
42631  int __pyx_lineno = 0;
42632  const char *__pyx_filename = NULL;
42633  int __pyx_clineno = 0;
42634  PyObject *__pyx_r = 0;
42635  __Pyx_RefNannyDeclarations
42636  __Pyx_RefNannySetupContext("extractVelocity (wrapper)", 0);
42637  {
42638  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
42639  PyObject* values[4] = {0,0,0,0};
42640  if (unlikely(__pyx_kwds)) {
42641  Py_ssize_t kw_args;
42642  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
42643  switch (pos_args) {
42644  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42645  CYTHON_FALLTHROUGH;
42646  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42647  CYTHON_FALLTHROUGH;
42648  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42649  CYTHON_FALLTHROUGH;
42650  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42651  CYTHON_FALLTHROUGH;
42652  case 0: break;
42653  default: goto __pyx_L5_argtuple_error;
42654  }
42655  kw_args = PyDict_Size(__pyx_kwds);
42656  switch (pos_args) {
42657  case 0:
42658  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
42659  else goto __pyx_L5_argtuple_error;
42660  CYTHON_FALLTHROUGH;
42661  case 1:
42662  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
42663  else {
42664  __Pyx_RaiseArgtupleInvalid("extractVelocity", 1, 4, 4, 1); __PYX_ERR(0, 1438, __pyx_L3_error)
42665  }
42666  CYTHON_FALLTHROUGH;
42667  case 2:
42668  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
42669  else {
42670  __Pyx_RaiseArgtupleInvalid("extractVelocity", 1, 4, 4, 2); __PYX_ERR(0, 1438, __pyx_L3_error)
42671  }
42672  CYTHON_FALLTHROUGH;
42673  case 3:
42674  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
42675  else {
42676  __Pyx_RaiseArgtupleInvalid("extractVelocity", 1, 4, 4, 3); __PYX_ERR(0, 1438, __pyx_L3_error)
42677  }
42678  }
42679  if (unlikely(kw_args > 0)) {
42680  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extractVelocity") < 0)) __PYX_ERR(0, 1438, __pyx_L3_error)
42681  }
42682  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
42683  goto __pyx_L5_argtuple_error;
42684  } else {
42685  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42686  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42687  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42688  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42689  }
42690  __pyx_v_self = values[0];
42691  __pyx_v_x = values[1];
42692  __pyx_v_t = values[2];
42693  __pyx_v_n = values[3];
42694  }
42695  goto __pyx_L4_argument_unpacking_done;
42696  __pyx_L5_argtuple_error:;
42697  __Pyx_RaiseArgtupleInvalid("extractVelocity", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1438, __pyx_L3_error)
42698  __pyx_L3_error:;
42699  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.extractVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
42700  __Pyx_RefNannyFinishContext();
42701  return NULL;
42702  __pyx_L4_argument_unpacking_done:;
42703  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_20extractVelocity(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
42704 
42705  /* function exit code */
42706  __Pyx_RefNannyFinishContext();
42707  return __pyx_r;
42708 }
42709 
42710 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_20extractVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
42711  PyObject *__pyx_v_coords = NULL;
42712  PyObject *__pyx_v_xi = NULL;
42713  PyObject *__pyx_v_element = NULL;
42714  PyObject *__pyx_v_rank = NULL;
42715  PyObject *__pyx_v_u = NULL;
42716  PyObject *__pyx_v_v = NULL;
42717  PyObject *__pyx_v_w = NULL;
42718  double __pyx_v_relax;
42719  PyObject *__pyx_v_coords_relax = NULL;
42720  PyObject *__pyx_r = NULL;
42721  __Pyx_TraceDeclarations
42722  __Pyx_RefNannyDeclarations
42723  PyObject *__pyx_t_1 = NULL;
42724  PyObject *__pyx_t_2 = NULL;
42725  PyObject *__pyx_t_3 = NULL;
42726  int __pyx_t_4;
42727  PyObject *__pyx_t_5 = NULL;
42728  PyObject *__pyx_t_6 = NULL;
42729  PyObject *(*__pyx_t_7)(PyObject *);
42730  int __pyx_t_8;
42731  int __pyx_t_9;
42732  PyObject *__pyx_t_10 = NULL;
42733  int __pyx_lineno = 0;
42734  const char *__pyx_filename = NULL;
42735  int __pyx_clineno = 0;
42736  __Pyx_TraceFrameInit(__pyx_codeobj__118)
42737  __Pyx_RefNannySetupContext("extractVelocity", 0);
42738  __Pyx_TraceCall("extractVelocity", __pyx_f[0], 1438, 0, __PYX_ERR(0, 1438, __pyx_L1_error));
42739 
42740  /* "mprans/BoundaryConditions.py":1442
42741  * Extraction of the velocity at y+ distance from the boundary.
42742  * """
42743  * coords = self.setYplusNormalDirection(x, t, n) # <<<<<<<<<<<<<<
42744  * xi, element, rank = self.findElementContainingCoords(coords)
42745  * if rank is not None:
42746  */
42747  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_setYplusNormalDirection); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1442, __pyx_L1_error)
42748  __Pyx_GOTREF(__pyx_t_2);
42749  __pyx_t_3 = NULL;
42750  __pyx_t_4 = 0;
42751  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
42752  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
42753  if (likely(__pyx_t_3)) {
42754  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
42755  __Pyx_INCREF(__pyx_t_3);
42756  __Pyx_INCREF(function);
42757  __Pyx_DECREF_SET(__pyx_t_2, function);
42758  __pyx_t_4 = 1;
42759  }
42760  }
42761  #if CYTHON_FAST_PYCALL
42762  if (PyFunction_Check(__pyx_t_2)) {
42763  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
42764  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error)
42765  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42766  __Pyx_GOTREF(__pyx_t_1);
42767  } else
42768  #endif
42769  #if CYTHON_FAST_PYCCALL
42770  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
42771  PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n};
42772  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error)
42773  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42774  __Pyx_GOTREF(__pyx_t_1);
42775  } else
42776  #endif
42777  {
42778  __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error)
42779  __Pyx_GOTREF(__pyx_t_5);
42780  if (__pyx_t_3) {
42781  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
42782  }
42783  __Pyx_INCREF(__pyx_v_x);
42784  __Pyx_GIVEREF(__pyx_v_x);
42785  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x);
42786  __Pyx_INCREF(__pyx_v_t);
42787  __Pyx_GIVEREF(__pyx_v_t);
42788  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_t);
42789  __Pyx_INCREF(__pyx_v_n);
42790  __Pyx_GIVEREF(__pyx_v_n);
42791  PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_n);
42792  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error)
42793  __Pyx_GOTREF(__pyx_t_1);
42794  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
42795  }
42796  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42797  __pyx_v_coords = __pyx_t_1;
42798  __pyx_t_1 = 0;
42799 
42800  /* "mprans/BoundaryConditions.py":1443
42801  * """
42802  * coords = self.setYplusNormalDirection(x, t, n)
42803  * xi, element, rank = self.findElementContainingCoords(coords) # <<<<<<<<<<<<<<
42804  * if rank is not None:
42805  * u, v, w = self.getFluidVelocityLocalCoords(xi, element, rank)
42806  */
42807  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_findElementContainingCoords); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1443, __pyx_L1_error)
42808  __Pyx_GOTREF(__pyx_t_2);
42809  __pyx_t_5 = NULL;
42810  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
42811  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
42812  if (likely(__pyx_t_5)) {
42813  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
42814  __Pyx_INCREF(__pyx_t_5);
42815  __Pyx_INCREF(function);
42816  __Pyx_DECREF_SET(__pyx_t_2, function);
42817  }
42818  }
42819  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_coords) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_coords);
42820  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
42821  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1443, __pyx_L1_error)
42822  __Pyx_GOTREF(__pyx_t_1);
42823  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42824  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
42825  PyObject* sequence = __pyx_t_1;
42826  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
42827  if (unlikely(size != 3)) {
42828  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
42829  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
42830  __PYX_ERR(0, 1443, __pyx_L1_error)
42831  }
42832  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
42833  if (likely(PyTuple_CheckExact(sequence))) {
42834  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
42835  __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
42836  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2);
42837  } else {
42838  __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
42839  __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
42840  __pyx_t_3 = PyList_GET_ITEM(sequence, 2);
42841  }
42842  __Pyx_INCREF(__pyx_t_2);
42843  __Pyx_INCREF(__pyx_t_5);
42844  __Pyx_INCREF(__pyx_t_3);
42845  #else
42846  __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1443, __pyx_L1_error)
42847  __Pyx_GOTREF(__pyx_t_2);
42848  __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1443, __pyx_L1_error)
42849  __Pyx_GOTREF(__pyx_t_5);
42850  __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1443, __pyx_L1_error)
42851  __Pyx_GOTREF(__pyx_t_3);
42852  #endif
42853  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42854  } else {
42855  Py_ssize_t index = -1;
42856  __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1443, __pyx_L1_error)
42857  __Pyx_GOTREF(__pyx_t_6);
42858  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42859  __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
42860  index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
42861  __Pyx_GOTREF(__pyx_t_2);
42862  index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed;
42863  __Pyx_GOTREF(__pyx_t_5);
42864  index = 2; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
42865  __Pyx_GOTREF(__pyx_t_3);
42866  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(0, 1443, __pyx_L1_error)
42867  __pyx_t_7 = NULL;
42868  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42869  goto __pyx_L4_unpacking_done;
42870  __pyx_L3_unpacking_failed:;
42871  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42872  __pyx_t_7 = NULL;
42873  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
42874  __PYX_ERR(0, 1443, __pyx_L1_error)
42875  __pyx_L4_unpacking_done:;
42876  }
42877  __pyx_v_xi = __pyx_t_2;
42878  __pyx_t_2 = 0;
42879  __pyx_v_element = __pyx_t_5;
42880  __pyx_t_5 = 0;
42881  __pyx_v_rank = __pyx_t_3;
42882  __pyx_t_3 = 0;
42883 
42884  /* "mprans/BoundaryConditions.py":1444
42885  * coords = self.setYplusNormalDirection(x, t, n)
42886  * xi, element, rank = self.findElementContainingCoords(coords)
42887  * if rank is not None: # <<<<<<<<<<<<<<
42888  * u, v, w = self.getFluidVelocityLocalCoords(xi, element, rank)
42889  * else:
42890  */
42891  __pyx_t_8 = (__pyx_v_rank != Py_None);
42892  __pyx_t_9 = (__pyx_t_8 != 0);
42893  if (__pyx_t_9) {
42894 
42895  /* "mprans/BoundaryConditions.py":1445
42896  * xi, element, rank = self.findElementContainingCoords(coords)
42897  * if rank is not None:
42898  * u, v, w = self.getFluidVelocityLocalCoords(xi, element, rank) # <<<<<<<<<<<<<<
42899  * else:
42900  * relax = 0.5
42901  */
42902  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getFluidVelocityLocalCoords); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1445, __pyx_L1_error)
42903  __Pyx_GOTREF(__pyx_t_3);
42904  __pyx_t_5 = NULL;
42905  __pyx_t_4 = 0;
42906  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
42907  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
42908  if (likely(__pyx_t_5)) {
42909  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
42910  __Pyx_INCREF(__pyx_t_5);
42911  __Pyx_INCREF(function);
42912  __Pyx_DECREF_SET(__pyx_t_3, function);
42913  __pyx_t_4 = 1;
42914  }
42915  }
42916  #if CYTHON_FAST_PYCALL
42917  if (PyFunction_Check(__pyx_t_3)) {
42918  PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_xi, __pyx_v_element, __pyx_v_rank};
42919  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error)
42920  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
42921  __Pyx_GOTREF(__pyx_t_1);
42922  } else
42923  #endif
42924  #if CYTHON_FAST_PYCCALL
42925  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
42926  PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_xi, __pyx_v_element, __pyx_v_rank};
42927  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error)
42928  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
42929  __Pyx_GOTREF(__pyx_t_1);
42930  } else
42931  #endif
42932  {
42933  __pyx_t_2 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1445, __pyx_L1_error)
42934  __Pyx_GOTREF(__pyx_t_2);
42935  if (__pyx_t_5) {
42936  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL;
42937  }
42938  __Pyx_INCREF(__pyx_v_xi);
42939  __Pyx_GIVEREF(__pyx_v_xi);
42940  PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_xi);
42941  __Pyx_INCREF(__pyx_v_element);
42942  __Pyx_GIVEREF(__pyx_v_element);
42943  PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_element);
42944  __Pyx_INCREF(__pyx_v_rank);
42945  __Pyx_GIVEREF(__pyx_v_rank);
42946  PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_4, __pyx_v_rank);
42947  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error)
42948  __Pyx_GOTREF(__pyx_t_1);
42949  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42950  }
42951  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42952  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
42953  PyObject* sequence = __pyx_t_1;
42954  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
42955  if (unlikely(size != 3)) {
42956  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
42957  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
42958  __PYX_ERR(0, 1445, __pyx_L1_error)
42959  }
42960  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
42961  if (likely(PyTuple_CheckExact(sequence))) {
42962  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
42963  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
42964  __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2);
42965  } else {
42966  __pyx_t_3 = PyList_GET_ITEM(sequence, 0);
42967  __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
42968  __pyx_t_5 = PyList_GET_ITEM(sequence, 2);
42969  }
42970  __Pyx_INCREF(__pyx_t_3);
42971  __Pyx_INCREF(__pyx_t_2);
42972  __Pyx_INCREF(__pyx_t_5);
42973  #else
42974  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1445, __pyx_L1_error)
42975  __Pyx_GOTREF(__pyx_t_3);
42976  __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1445, __pyx_L1_error)
42977  __Pyx_GOTREF(__pyx_t_2);
42978  __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1445, __pyx_L1_error)
42979  __Pyx_GOTREF(__pyx_t_5);
42980  #endif
42981  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42982  } else {
42983  Py_ssize_t index = -1;
42984  __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1445, __pyx_L1_error)
42985  __Pyx_GOTREF(__pyx_t_6);
42986  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42987  __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
42988  index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
42989  __Pyx_GOTREF(__pyx_t_3);
42990  index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
42991  __Pyx_GOTREF(__pyx_t_2);
42992  index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
42993  __Pyx_GOTREF(__pyx_t_5);
42994  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(0, 1445, __pyx_L1_error)
42995  __pyx_t_7 = NULL;
42996  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42997  goto __pyx_L7_unpacking_done;
42998  __pyx_L6_unpacking_failed:;
42999  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
43000  __pyx_t_7 = NULL;
43001  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
43002  __PYX_ERR(0, 1445, __pyx_L1_error)
43003  __pyx_L7_unpacking_done:;
43004  }
43005  __pyx_v_u = __pyx_t_3;
43006  __pyx_t_3 = 0;
43007  __pyx_v_v = __pyx_t_2;
43008  __pyx_t_2 = 0;
43009  __pyx_v_w = __pyx_t_5;
43010  __pyx_t_5 = 0;
43011 
43012  /* "mprans/BoundaryConditions.py":1444
43013  * coords = self.setYplusNormalDirection(x, t, n)
43014  * xi, element, rank = self.findElementContainingCoords(coords)
43015  * if rank is not None: # <<<<<<<<<<<<<<
43016  * u, v, w = self.getFluidVelocityLocalCoords(xi, element, rank)
43017  * else:
43018  */
43019  goto __pyx_L5;
43020  }
43021 
43022  /* "mprans/BoundaryConditions.py":1447
43023  * u, v, w = self.getFluidVelocityLocalCoords(xi, element, rank)
43024  * else:
43025  * relax = 0.5 # <<<<<<<<<<<<<<
43026  * while rank is None:
43027  * coords_relax = self.setYplusNormalDirection(x, t, n ,relax)
43028  */
43029  /*else*/ {
43030  __pyx_v_relax = 0.5;
43031 
43032  /* "mprans/BoundaryConditions.py":1448
43033  * else:
43034  * relax = 0.5
43035  * while rank is None: # <<<<<<<<<<<<<<
43036  * coords_relax = self.setYplusNormalDirection(x, t, n ,relax)
43037  * xi, element, rank = self.findElementContainingCoords(coords_relax)
43038  */
43039  while (1) {
43040  __pyx_t_9 = (__pyx_v_rank == Py_None);
43041  __pyx_t_8 = (__pyx_t_9 != 0);
43042  if (!__pyx_t_8) break;
43043 
43044  /* "mprans/BoundaryConditions.py":1449
43045  * relax = 0.5
43046  * while rank is None:
43047  * coords_relax = self.setYplusNormalDirection(x, t, n ,relax) # <<<<<<<<<<<<<<
43048  * xi, element, rank = self.findElementContainingCoords(coords_relax)
43049  * relax *= 0.5
43050  */
43051  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_setYplusNormalDirection); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1449, __pyx_L1_error)
43052  __Pyx_GOTREF(__pyx_t_5);
43053  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_relax); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1449, __pyx_L1_error)
43054  __Pyx_GOTREF(__pyx_t_2);
43055  __pyx_t_3 = NULL;
43056  __pyx_t_4 = 0;
43057  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
43058  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
43059  if (likely(__pyx_t_3)) {
43060  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
43061  __Pyx_INCREF(__pyx_t_3);
43062  __Pyx_INCREF(function);
43063  __Pyx_DECREF_SET(__pyx_t_5, function);
43064  __pyx_t_4 = 1;
43065  }
43066  }
43067  #if CYTHON_FAST_PYCALL
43068  if (PyFunction_Check(__pyx_t_5)) {
43069  PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_2};
43070  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1449, __pyx_L1_error)
43071  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
43072  __Pyx_GOTREF(__pyx_t_1);
43073  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43074  } else
43075  #endif
43076  #if CYTHON_FAST_PYCCALL
43077  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
43078  PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_2};
43079  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1449, __pyx_L1_error)
43080  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
43081  __Pyx_GOTREF(__pyx_t_1);
43082  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43083  } else
43084  #endif
43085  {
43086  __pyx_t_6 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1449, __pyx_L1_error)
43087  __Pyx_GOTREF(__pyx_t_6);
43088  if (__pyx_t_3) {
43089  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
43090  }
43091  __Pyx_INCREF(__pyx_v_x);
43092  __Pyx_GIVEREF(__pyx_v_x);
43093  PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_4, __pyx_v_x);
43094  __Pyx_INCREF(__pyx_v_t);
43095  __Pyx_GIVEREF(__pyx_v_t);
43096  PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_4, __pyx_v_t);
43097  __Pyx_INCREF(__pyx_v_n);
43098  __Pyx_GIVEREF(__pyx_v_n);
43099  PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_4, __pyx_v_n);
43100  __Pyx_GIVEREF(__pyx_t_2);
43101  PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_4, __pyx_t_2);
43102  __pyx_t_2 = 0;
43103  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1449, __pyx_L1_error)
43104  __Pyx_GOTREF(__pyx_t_1);
43105  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
43106  }
43107  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43108  __Pyx_XDECREF_SET(__pyx_v_coords_relax, __pyx_t_1);
43109  __pyx_t_1 = 0;
43110 
43111  /* "mprans/BoundaryConditions.py":1450
43112  * while rank is None:
43113  * coords_relax = self.setYplusNormalDirection(x, t, n ,relax)
43114  * xi, element, rank = self.findElementContainingCoords(coords_relax) # <<<<<<<<<<<<<<
43115  * relax *= 0.5
43116  * # just use the element containing the boundary quadrature point to interpolate to the y+ point
43117  */
43118  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_findElementContainingCoords); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1450, __pyx_L1_error)
43119  __Pyx_GOTREF(__pyx_t_5);
43120  __pyx_t_6 = NULL;
43121  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
43122  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
43123  if (likely(__pyx_t_6)) {
43124  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
43125  __Pyx_INCREF(__pyx_t_6);
43126  __Pyx_INCREF(function);
43127  __Pyx_DECREF_SET(__pyx_t_5, function);
43128  }
43129  }
43130  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_coords_relax) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_coords_relax);
43131  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
43132  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1450, __pyx_L1_error)
43133  __Pyx_GOTREF(__pyx_t_1);
43134  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43135  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
43136  PyObject* sequence = __pyx_t_1;
43137  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
43138  if (unlikely(size != 3)) {
43139  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
43140  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
43141  __PYX_ERR(0, 1450, __pyx_L1_error)
43142  }
43143  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
43144  if (likely(PyTuple_CheckExact(sequence))) {
43145  __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
43146  __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
43147  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2);
43148  } else {
43149  __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
43150  __pyx_t_6 = PyList_GET_ITEM(sequence, 1);
43151  __pyx_t_2 = PyList_GET_ITEM(sequence, 2);
43152  }
43153  __Pyx_INCREF(__pyx_t_5);
43154  __Pyx_INCREF(__pyx_t_6);
43155  __Pyx_INCREF(__pyx_t_2);
43156  #else
43157  __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1450, __pyx_L1_error)
43158  __Pyx_GOTREF(__pyx_t_5);
43159  __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1450, __pyx_L1_error)
43160  __Pyx_GOTREF(__pyx_t_6);
43161  __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1450, __pyx_L1_error)
43162  __Pyx_GOTREF(__pyx_t_2);
43163  #endif
43164  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43165  } else {
43166  Py_ssize_t index = -1;
43167  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L1_error)
43168  __Pyx_GOTREF(__pyx_t_3);
43169  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43170  __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
43171  index = 0; __pyx_t_5 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed;
43172  __Pyx_GOTREF(__pyx_t_5);
43173  index = 1; __pyx_t_6 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed;
43174  __Pyx_GOTREF(__pyx_t_6);
43175  index = 2; __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L10_unpacking_failed;
43176  __Pyx_GOTREF(__pyx_t_2);
43177  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 3) < 0) __PYX_ERR(0, 1450, __pyx_L1_error)
43178  __pyx_t_7 = NULL;
43179  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43180  goto __pyx_L11_unpacking_done;
43181  __pyx_L10_unpacking_failed:;
43182  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43183  __pyx_t_7 = NULL;
43184  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
43185  __PYX_ERR(0, 1450, __pyx_L1_error)
43186  __pyx_L11_unpacking_done:;
43187  }
43188  __Pyx_DECREF_SET(__pyx_v_xi, __pyx_t_5);
43189  __pyx_t_5 = 0;
43190  __Pyx_DECREF_SET(__pyx_v_element, __pyx_t_6);
43191  __pyx_t_6 = 0;
43192  __Pyx_DECREF_SET(__pyx_v_rank, __pyx_t_2);
43193  __pyx_t_2 = 0;
43194 
43195  /* "mprans/BoundaryConditions.py":1451
43196  * coords_relax = self.setYplusNormalDirection(x, t, n ,relax)
43197  * xi, element, rank = self.findElementContainingCoords(coords_relax)
43198  * relax *= 0.5 # <<<<<<<<<<<<<<
43199  * # just use the element containing the boundary quadrature point to interpolate to the y+ point
43200  * u, v, w = self.getFluidVelocityLocalCoords(self.femSpace_velocity.elementMaps.getInverseValue(element, coords),
43201  */
43202  __pyx_v_relax = (__pyx_v_relax * 0.5);
43203  }
43204 
43205  /* "mprans/BoundaryConditions.py":1453
43206  * relax *= 0.5
43207  * # just use the element containing the boundary quadrature point to interpolate to the y+ point
43208  * u, v, w = self.getFluidVelocityLocalCoords(self.femSpace_velocity.elementMaps.getInverseValue(element, coords), # <<<<<<<<<<<<<<
43209  * element,
43210  * rank)
43211  */
43212  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getFluidVelocityLocalCoords); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1453, __pyx_L1_error)
43213  __Pyx_GOTREF(__pyx_t_2);
43214  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_femSpace_velocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1453, __pyx_L1_error)
43215  __Pyx_GOTREF(__pyx_t_5);
43216  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_elementMaps); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1453, __pyx_L1_error)
43217  __Pyx_GOTREF(__pyx_t_3);
43218  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43219  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getInverseValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1453, __pyx_L1_error)
43220  __Pyx_GOTREF(__pyx_t_5);
43221  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43222  __pyx_t_3 = NULL;
43223  __pyx_t_4 = 0;
43224  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
43225  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
43226  if (likely(__pyx_t_3)) {
43227  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
43228  __Pyx_INCREF(__pyx_t_3);
43229  __Pyx_INCREF(function);
43230  __Pyx_DECREF_SET(__pyx_t_5, function);
43231  __pyx_t_4 = 1;
43232  }
43233  }
43234  #if CYTHON_FAST_PYCALL
43235  if (PyFunction_Check(__pyx_t_5)) {
43236  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_element, __pyx_v_coords};
43237  __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1453, __pyx_L1_error)
43238  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
43239  __Pyx_GOTREF(__pyx_t_6);
43240  } else
43241  #endif
43242  #if CYTHON_FAST_PYCCALL
43243  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
43244  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_element, __pyx_v_coords};
43245  __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1453, __pyx_L1_error)
43246  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
43247  __Pyx_GOTREF(__pyx_t_6);
43248  } else
43249  #endif
43250  {
43251  __pyx_t_10 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1453, __pyx_L1_error)
43252  __Pyx_GOTREF(__pyx_t_10);
43253  if (__pyx_t_3) {
43254  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL;
43255  }
43256  __Pyx_INCREF(__pyx_v_element);
43257  __Pyx_GIVEREF(__pyx_v_element);
43258  PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_element);
43259  __Pyx_INCREF(__pyx_v_coords);
43260  __Pyx_GIVEREF(__pyx_v_coords);
43261  PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_coords);
43262  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1453, __pyx_L1_error)
43263  __Pyx_GOTREF(__pyx_t_6);
43264  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
43265  }
43266  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43267 
43268  /* "mprans/BoundaryConditions.py":1455
43269  * u, v, w = self.getFluidVelocityLocalCoords(self.femSpace_velocity.elementMaps.getInverseValue(element, coords),
43270  * element,
43271  * rank) # <<<<<<<<<<<<<<
43272  * self.xi, self.element, self.rank = xi, element, rank
43273  * return u, v, w
43274  */
43275  __pyx_t_5 = NULL;
43276  __pyx_t_4 = 0;
43277  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
43278  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
43279  if (likely(__pyx_t_5)) {
43280  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
43281  __Pyx_INCREF(__pyx_t_5);
43282  __Pyx_INCREF(function);
43283  __Pyx_DECREF_SET(__pyx_t_2, function);
43284  __pyx_t_4 = 1;
43285  }
43286  }
43287  #if CYTHON_FAST_PYCALL
43288  if (PyFunction_Check(__pyx_t_2)) {
43289  PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_t_6, __pyx_v_element, __pyx_v_rank};
43290  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1453, __pyx_L1_error)
43291  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
43292  __Pyx_GOTREF(__pyx_t_1);
43293  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
43294  } else
43295  #endif
43296  #if CYTHON_FAST_PYCCALL
43297  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
43298  PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_t_6, __pyx_v_element, __pyx_v_rank};
43299  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1453, __pyx_L1_error)
43300  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
43301  __Pyx_GOTREF(__pyx_t_1);
43302  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
43303  } else
43304  #endif
43305  {
43306  __pyx_t_10 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1453, __pyx_L1_error)
43307  __Pyx_GOTREF(__pyx_t_10);
43308  if (__pyx_t_5) {
43309  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL;
43310  }
43311  __Pyx_GIVEREF(__pyx_t_6);
43312  PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_t_6);
43313  __Pyx_INCREF(__pyx_v_element);
43314  __Pyx_GIVEREF(__pyx_v_element);
43315  PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_element);
43316  __Pyx_INCREF(__pyx_v_rank);
43317  __Pyx_GIVEREF(__pyx_v_rank);
43318  PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_4, __pyx_v_rank);
43319  __pyx_t_6 = 0;
43320  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1453, __pyx_L1_error)
43321  __Pyx_GOTREF(__pyx_t_1);
43322  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
43323  }
43324  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43325  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
43326  PyObject* sequence = __pyx_t_1;
43327  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
43328  if (unlikely(size != 3)) {
43329  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
43330  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
43331  __PYX_ERR(0, 1453, __pyx_L1_error)
43332  }
43333  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
43334  if (likely(PyTuple_CheckExact(sequence))) {
43335  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
43336  __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
43337  __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
43338  } else {
43339  __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
43340  __pyx_t_10 = PyList_GET_ITEM(sequence, 1);
43341  __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
43342  }
43343  __Pyx_INCREF(__pyx_t_2);
43344  __Pyx_INCREF(__pyx_t_10);
43345  __Pyx_INCREF(__pyx_t_6);
43346  #else
43347  __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1453, __pyx_L1_error)
43348  __Pyx_GOTREF(__pyx_t_2);
43349  __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1453, __pyx_L1_error)
43350  __Pyx_GOTREF(__pyx_t_10);
43351  __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1453, __pyx_L1_error)
43352  __Pyx_GOTREF(__pyx_t_6);
43353  #endif
43354  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43355  } else {
43356  Py_ssize_t index = -1;
43357  __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1453, __pyx_L1_error)
43358  __Pyx_GOTREF(__pyx_t_5);
43359  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43360  __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
43361  index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L12_unpacking_failed;
43362  __Pyx_GOTREF(__pyx_t_2);
43363  index = 1; __pyx_t_10 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_10)) goto __pyx_L12_unpacking_failed;
43364  __Pyx_GOTREF(__pyx_t_10);
43365  index = 2; __pyx_t_6 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_6)) goto __pyx_L12_unpacking_failed;
43366  __Pyx_GOTREF(__pyx_t_6);
43367  if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_5), 3) < 0) __PYX_ERR(0, 1453, __pyx_L1_error)
43368  __pyx_t_7 = NULL;
43369  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43370  goto __pyx_L13_unpacking_done;
43371  __pyx_L12_unpacking_failed:;
43372  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
43373  __pyx_t_7 = NULL;
43374  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
43375  __PYX_ERR(0, 1453, __pyx_L1_error)
43376  __pyx_L13_unpacking_done:;
43377  }
43378 
43379  /* "mprans/BoundaryConditions.py":1453
43380  * relax *= 0.5
43381  * # just use the element containing the boundary quadrature point to interpolate to the y+ point
43382  * u, v, w = self.getFluidVelocityLocalCoords(self.femSpace_velocity.elementMaps.getInverseValue(element, coords), # <<<<<<<<<<<<<<
43383  * element,
43384  * rank)
43385  */
43386  __pyx_v_u = __pyx_t_2;
43387  __pyx_t_2 = 0;
43388  __pyx_v_v = __pyx_t_10;
43389  __pyx_t_10 = 0;
43390  __pyx_v_w = __pyx_t_6;
43391  __pyx_t_6 = 0;
43392  }
43393  __pyx_L5:;
43394 
43395  /* "mprans/BoundaryConditions.py":1456
43396  * element,
43397  * rank)
43398  * self.xi, self.element, self.rank = xi, element, rank # <<<<<<<<<<<<<<
43399  * return u, v, w
43400  *
43401  */
43402  __pyx_t_1 = __pyx_v_xi;
43403  __Pyx_INCREF(__pyx_t_1);
43404  __pyx_t_6 = __pyx_v_element;
43405  __Pyx_INCREF(__pyx_t_6);
43406  __pyx_t_10 = __pyx_v_rank;
43407  __Pyx_INCREF(__pyx_t_10);
43408  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_xi, __pyx_t_1) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
43409  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43410  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_element, __pyx_t_6) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
43411  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
43412  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_rank, __pyx_t_10) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
43413  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
43414 
43415  /* "mprans/BoundaryConditions.py":1457
43416  * rank)
43417  * self.xi, self.element, self.rank = xi, element, rank
43418  * return u, v, w # <<<<<<<<<<<<<<
43419  *
43420  * def tangentialVelocity(self, x, t, n, uInit=None):
43421  */
43422  __Pyx_XDECREF(__pyx_r);
43423  __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1457, __pyx_L1_error)
43424  __Pyx_GOTREF(__pyx_t_10);
43425  __Pyx_INCREF(__pyx_v_u);
43426  __Pyx_GIVEREF(__pyx_v_u);
43427  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_u);
43428  __Pyx_INCREF(__pyx_v_v);
43429  __Pyx_GIVEREF(__pyx_v_v);
43430  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_v);
43431  __Pyx_INCREF(__pyx_v_w);
43432  __Pyx_GIVEREF(__pyx_v_w);
43433  PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_w);
43434  __pyx_r = __pyx_t_10;
43435  __pyx_t_10 = 0;
43436  goto __pyx_L0;
43437 
43438  /* "mprans/BoundaryConditions.py":1438
43439  * return nP
43440  *
43441  * def extractVelocity(self, x, t, n): # <<<<<<<<<<<<<<
43442  * """
43443  * Extraction of the velocity at y+ distance from the boundary.
43444  */
43445 
43446  /* function exit code */
43447  __pyx_L1_error:;
43448  __Pyx_XDECREF(__pyx_t_1);
43449  __Pyx_XDECREF(__pyx_t_2);
43450  __Pyx_XDECREF(__pyx_t_3);
43451  __Pyx_XDECREF(__pyx_t_5);
43452  __Pyx_XDECREF(__pyx_t_6);
43453  __Pyx_XDECREF(__pyx_t_10);
43454  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.extractVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
43455  __pyx_r = NULL;
43456  __pyx_L0:;
43457  __Pyx_XDECREF(__pyx_v_coords);
43458  __Pyx_XDECREF(__pyx_v_xi);
43459  __Pyx_XDECREF(__pyx_v_element);
43460  __Pyx_XDECREF(__pyx_v_rank);
43461  __Pyx_XDECREF(__pyx_v_u);
43462  __Pyx_XDECREF(__pyx_v_v);
43463  __Pyx_XDECREF(__pyx_v_w);
43464  __Pyx_XDECREF(__pyx_v_coords_relax);
43465  __Pyx_XGIVEREF(__pyx_r);
43466  __Pyx_TraceReturn(__pyx_r, 0);
43467  __Pyx_RefNannyFinishContext();
43468  return __pyx_r;
43469 }
43470 
43471 /* "mprans/BoundaryConditions.py":1459
43472  * return u, v, w
43473  *
43474  * def tangentialVelocity(self, x, t, n, uInit=None): # <<<<<<<<<<<<<<
43475  * """
43476  * Given the velocity, calculates its
43477  */
43478 
43479 /* Python wrapper */
43480 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_23tangentialVelocity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43481 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_22tangentialVelocity[] = "WallFunctions.tangentialVelocity(self, x, t, n, uInit=None)\n\n Given the velocity, calculates its\n tangential component to the wall.\n\n Parameters\n ----------\n uInit: True/False.\n Switch for initializing the module.\n True only during the first time step.\n ";
43482 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_23tangentialVelocity = {"tangentialVelocity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_23tangentialVelocity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_22tangentialVelocity};
43483 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_23tangentialVelocity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43484  PyObject *__pyx_v_self = 0;
43485  PyObject *__pyx_v_x = 0;
43486  PyObject *__pyx_v_t = 0;
43487  PyObject *__pyx_v_n = 0;
43488  PyObject *__pyx_v_uInit = 0;
43489  int __pyx_lineno = 0;
43490  const char *__pyx_filename = NULL;
43491  int __pyx_clineno = 0;
43492  PyObject *__pyx_r = 0;
43493  __Pyx_RefNannyDeclarations
43494  __Pyx_RefNannySetupContext("tangentialVelocity (wrapper)", 0);
43495  {
43496  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,&__pyx_n_s_uInit,0};
43497  PyObject* values[5] = {0,0,0,0,0};
43498  values[4] = ((PyObject *)((PyObject *)Py_None));
43499  if (unlikely(__pyx_kwds)) {
43500  Py_ssize_t kw_args;
43501  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
43502  switch (pos_args) {
43503  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
43504  CYTHON_FALLTHROUGH;
43505  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43506  CYTHON_FALLTHROUGH;
43507  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43508  CYTHON_FALLTHROUGH;
43509  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43510  CYTHON_FALLTHROUGH;
43511  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43512  CYTHON_FALLTHROUGH;
43513  case 0: break;
43514  default: goto __pyx_L5_argtuple_error;
43515  }
43516  kw_args = PyDict_Size(__pyx_kwds);
43517  switch (pos_args) {
43518  case 0:
43519  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
43520  else goto __pyx_L5_argtuple_error;
43521  CYTHON_FALLTHROUGH;
43522  case 1:
43523  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
43524  else {
43525  __Pyx_RaiseArgtupleInvalid("tangentialVelocity", 0, 4, 5, 1); __PYX_ERR(0, 1459, __pyx_L3_error)
43526  }
43527  CYTHON_FALLTHROUGH;
43528  case 2:
43529  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
43530  else {
43531  __Pyx_RaiseArgtupleInvalid("tangentialVelocity", 0, 4, 5, 2); __PYX_ERR(0, 1459, __pyx_L3_error)
43532  }
43533  CYTHON_FALLTHROUGH;
43534  case 3:
43535  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
43536  else {
43537  __Pyx_RaiseArgtupleInvalid("tangentialVelocity", 0, 4, 5, 3); __PYX_ERR(0, 1459, __pyx_L3_error)
43538  }
43539  CYTHON_FALLTHROUGH;
43540  case 4:
43541  if (kw_args > 0) {
43542  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uInit);
43543  if (value) { values[4] = value; kw_args--; }
43544  }
43545  }
43546  if (unlikely(kw_args > 0)) {
43547  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tangentialVelocity") < 0)) __PYX_ERR(0, 1459, __pyx_L3_error)
43548  }
43549  } else {
43550  switch (PyTuple_GET_SIZE(__pyx_args)) {
43551  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
43552  CYTHON_FALLTHROUGH;
43553  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43554  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43555  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43556  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43557  break;
43558  default: goto __pyx_L5_argtuple_error;
43559  }
43560  }
43561  __pyx_v_self = values[0];
43562  __pyx_v_x = values[1];
43563  __pyx_v_t = values[2];
43564  __pyx_v_n = values[3];
43565  __pyx_v_uInit = values[4];
43566  }
43567  goto __pyx_L4_argument_unpacking_done;
43568  __pyx_L5_argtuple_error:;
43569  __Pyx_RaiseArgtupleInvalid("tangentialVelocity", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1459, __pyx_L3_error)
43570  __pyx_L3_error:;
43571  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.tangentialVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
43572  __Pyx_RefNannyFinishContext();
43573  return NULL;
43574  __pyx_L4_argument_unpacking_done:;
43575  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_22tangentialVelocity(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_v_uInit);
43576 
43577  /* function exit code */
43578  __Pyx_RefNannyFinishContext();
43579  return __pyx_r;
43580 }
43581 
43582 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_22tangentialVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n, PyObject *__pyx_v_uInit) {
43583  PyObject *__pyx_v_u0 = NULL;
43584  PyObject *__pyx_v_u1 = NULL;
43585  PyObject *__pyx_v_u2 = NULL;
43586  PyObject *__pyx_r = NULL;
43587  __Pyx_TraceDeclarations
43588  __Pyx_RefNannyDeclarations
43589  PyObject *__pyx_t_1 = NULL;
43590  PyObject *__pyx_t_2 = NULL;
43591  PyObject *__pyx_t_3 = NULL;
43592  PyObject *__pyx_t_4 = NULL;
43593  int __pyx_t_5;
43594  int __pyx_t_6;
43595  int __pyx_t_7;
43596  PyObject *__pyx_t_8 = NULL;
43597  PyObject *(*__pyx_t_9)(PyObject *);
43598  int __pyx_t_10;
43599  PyObject *__pyx_t_11 = NULL;
43600  PyObject *__pyx_t_12 = NULL;
43601  PyObject *__pyx_t_13 = NULL;
43602  PyObject *__pyx_t_14 = NULL;
43603  int __pyx_lineno = 0;
43604  const char *__pyx_filename = NULL;
43605  int __pyx_clineno = 0;
43606  __Pyx_TraceFrameInit(__pyx_codeobj__119)
43607  __Pyx_RefNannySetupContext("tangentialVelocity", 0);
43608  __Pyx_TraceCall("tangentialVelocity", __pyx_f[0], 1459, 0, __PYX_ERR(0, 1459, __pyx_L1_error));
43609  __Pyx_INCREF(__pyx_v_n);
43610 
43611  /* "mprans/BoundaryConditions.py":1470
43612  * True only during the first time step.
43613  * """
43614  * n=np.pad(n,(0,3-n.shape[0]),mode='constant',constant_values=0.0) # <<<<<<<<<<<<<<
43615  * if uInit is True or self.model is None:
43616  * u0, u1, u2 = self.U0
43617  */
43618  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
43619  __Pyx_GOTREF(__pyx_t_1);
43620  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_pad); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1470, __pyx_L1_error)
43621  __Pyx_GOTREF(__pyx_t_2);
43622  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43623  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_n, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
43624  __Pyx_GOTREF(__pyx_t_1);
43625  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1470, __pyx_L1_error)
43626  __Pyx_GOTREF(__pyx_t_3);
43627  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43628  __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_3, __pyx_t_3, 3, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
43629  __Pyx_GOTREF(__pyx_t_1);
43630  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43631  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1470, __pyx_L1_error)
43632  __Pyx_GOTREF(__pyx_t_3);
43633  __Pyx_INCREF(__pyx_int_0);
43634  __Pyx_GIVEREF(__pyx_int_0);
43635  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
43636  __Pyx_GIVEREF(__pyx_t_1);
43637  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
43638  __pyx_t_1 = 0;
43639  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
43640  __Pyx_GOTREF(__pyx_t_1);
43641  __Pyx_INCREF(__pyx_v_n);
43642  __Pyx_GIVEREF(__pyx_v_n);
43643  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_n);
43644  __Pyx_GIVEREF(__pyx_t_3);
43645  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
43646  __pyx_t_3 = 0;
43647  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1470, __pyx_L1_error)
43648  __Pyx_GOTREF(__pyx_t_3);
43649  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_mode, __pyx_n_s_constant) < 0) __PYX_ERR(0, 1470, __pyx_L1_error)
43650  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_constant_values, __pyx_float_0_0) < 0) __PYX_ERR(0, 1470, __pyx_L1_error)
43651  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1470, __pyx_L1_error)
43652  __Pyx_GOTREF(__pyx_t_4);
43653  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43654  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43655  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43656  __Pyx_DECREF_SET(__pyx_v_n, __pyx_t_4);
43657  __pyx_t_4 = 0;
43658 
43659  /* "mprans/BoundaryConditions.py":1471
43660  * """
43661  * n=np.pad(n,(0,3-n.shape[0]),mode='constant',constant_values=0.0)
43662  * if uInit is True or self.model is None: # <<<<<<<<<<<<<<
43663  * u0, u1, u2 = self.U0
43664  * else:
43665  */
43666  __pyx_t_6 = (__pyx_v_uInit == Py_True);
43667  __pyx_t_7 = (__pyx_t_6 != 0);
43668  if (!__pyx_t_7) {
43669  } else {
43670  __pyx_t_5 = __pyx_t_7;
43671  goto __pyx_L4_bool_binop_done;
43672  }
43673  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1471, __pyx_L1_error)
43674  __Pyx_GOTREF(__pyx_t_4);
43675  __pyx_t_7 = (__pyx_t_4 == Py_None);
43676  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43677  __pyx_t_6 = (__pyx_t_7 != 0);
43678  __pyx_t_5 = __pyx_t_6;
43679  __pyx_L4_bool_binop_done:;
43680  if (__pyx_t_5) {
43681 
43682  /* "mprans/BoundaryConditions.py":1472
43683  * n=np.pad(n,(0,3-n.shape[0]),mode='constant',constant_values=0.0)
43684  * if uInit is True or self.model is None:
43685  * u0, u1, u2 = self.U0 # <<<<<<<<<<<<<<
43686  * else:
43687  * u0, u1, u2 = self.extractVelocity(x, t, n)
43688  */
43689  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_U0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1472, __pyx_L1_error)
43690  __Pyx_GOTREF(__pyx_t_4);
43691  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
43692  PyObject* sequence = __pyx_t_4;
43693  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
43694  if (unlikely(size != 3)) {
43695  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
43696  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
43697  __PYX_ERR(0, 1472, __pyx_L1_error)
43698  }
43699  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
43700  if (likely(PyTuple_CheckExact(sequence))) {
43701  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
43702  __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);
43703  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2);
43704  } else {
43705  __pyx_t_3 = PyList_GET_ITEM(sequence, 0);
43706  __pyx_t_1 = PyList_GET_ITEM(sequence, 1);
43707  __pyx_t_2 = PyList_GET_ITEM(sequence, 2);
43708  }
43709  __Pyx_INCREF(__pyx_t_3);
43710  __Pyx_INCREF(__pyx_t_1);
43711  __Pyx_INCREF(__pyx_t_2);
43712  #else
43713  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1472, __pyx_L1_error)
43714  __Pyx_GOTREF(__pyx_t_3);
43715  __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1472, __pyx_L1_error)
43716  __Pyx_GOTREF(__pyx_t_1);
43717  __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1472, __pyx_L1_error)
43718  __Pyx_GOTREF(__pyx_t_2);
43719  #endif
43720  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43721  } else {
43722  Py_ssize_t index = -1;
43723  __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1472, __pyx_L1_error)
43724  __Pyx_GOTREF(__pyx_t_8);
43725  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43726  __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
43727  index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
43728  __Pyx_GOTREF(__pyx_t_3);
43729  index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed;
43730  __Pyx_GOTREF(__pyx_t_1);
43731  index = 2; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
43732  __Pyx_GOTREF(__pyx_t_2);
43733  if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 1472, __pyx_L1_error)
43734  __pyx_t_9 = NULL;
43735  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
43736  goto __pyx_L7_unpacking_done;
43737  __pyx_L6_unpacking_failed:;
43738  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
43739  __pyx_t_9 = NULL;
43740  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
43741  __PYX_ERR(0, 1472, __pyx_L1_error)
43742  __pyx_L7_unpacking_done:;
43743  }
43744  __pyx_v_u0 = __pyx_t_3;
43745  __pyx_t_3 = 0;
43746  __pyx_v_u1 = __pyx_t_1;
43747  __pyx_t_1 = 0;
43748  __pyx_v_u2 = __pyx_t_2;
43749  __pyx_t_2 = 0;
43750 
43751  /* "mprans/BoundaryConditions.py":1471
43752  * """
43753  * n=np.pad(n,(0,3-n.shape[0]),mode='constant',constant_values=0.0)
43754  * if uInit is True or self.model is None: # <<<<<<<<<<<<<<
43755  * u0, u1, u2 = self.U0
43756  * else:
43757  */
43758  goto __pyx_L3;
43759  }
43760 
43761  /* "mprans/BoundaryConditions.py":1474
43762  * u0, u1, u2 = self.U0
43763  * else:
43764  * u0, u1, u2 = self.extractVelocity(x, t, n) # <<<<<<<<<<<<<<
43765  * self.meanV = np.array([u0, u1, u2])
43766  * # projection of u vector over an ortoganal plane to n
43767  */
43768  /*else*/ {
43769  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_extractVelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1474, __pyx_L1_error)
43770  __Pyx_GOTREF(__pyx_t_2);
43771  __pyx_t_1 = NULL;
43772  __pyx_t_10 = 0;
43773  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
43774  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
43775  if (likely(__pyx_t_1)) {
43776  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
43777  __Pyx_INCREF(__pyx_t_1);
43778  __Pyx_INCREF(function);
43779  __Pyx_DECREF_SET(__pyx_t_2, function);
43780  __pyx_t_10 = 1;
43781  }
43782  }
43783  #if CYTHON_FAST_PYCALL
43784  if (PyFunction_Check(__pyx_t_2)) {
43785  PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_x, __pyx_v_t, __pyx_v_n};
43786  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1474, __pyx_L1_error)
43787  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
43788  __Pyx_GOTREF(__pyx_t_4);
43789  } else
43790  #endif
43791  #if CYTHON_FAST_PYCCALL
43792  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
43793  PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_x, __pyx_v_t, __pyx_v_n};
43794  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1474, __pyx_L1_error)
43795  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
43796  __Pyx_GOTREF(__pyx_t_4);
43797  } else
43798  #endif
43799  {
43800  __pyx_t_3 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1474, __pyx_L1_error)
43801  __Pyx_GOTREF(__pyx_t_3);
43802  if (__pyx_t_1) {
43803  __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL;
43804  }
43805  __Pyx_INCREF(__pyx_v_x);
43806  __Pyx_GIVEREF(__pyx_v_x);
43807  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_10, __pyx_v_x);
43808  __Pyx_INCREF(__pyx_v_t);
43809  __Pyx_GIVEREF(__pyx_v_t);
43810  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_10, __pyx_v_t);
43811  __Pyx_INCREF(__pyx_v_n);
43812  __Pyx_GIVEREF(__pyx_v_n);
43813  PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_10, __pyx_v_n);
43814  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1474, __pyx_L1_error)
43815  __Pyx_GOTREF(__pyx_t_4);
43816  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43817  }
43818  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43819  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
43820  PyObject* sequence = __pyx_t_4;
43821  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
43822  if (unlikely(size != 3)) {
43823  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
43824  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
43825  __PYX_ERR(0, 1474, __pyx_L1_error)
43826  }
43827  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
43828  if (likely(PyTuple_CheckExact(sequence))) {
43829  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
43830  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
43831  __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2);
43832  } else {
43833  __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
43834  __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
43835  __pyx_t_1 = PyList_GET_ITEM(sequence, 2);
43836  }
43837  __Pyx_INCREF(__pyx_t_2);
43838  __Pyx_INCREF(__pyx_t_3);
43839  __Pyx_INCREF(__pyx_t_1);
43840  #else
43841  __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1474, __pyx_L1_error)
43842  __Pyx_GOTREF(__pyx_t_2);
43843  __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1474, __pyx_L1_error)
43844  __Pyx_GOTREF(__pyx_t_3);
43845  __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1474, __pyx_L1_error)
43846  __Pyx_GOTREF(__pyx_t_1);
43847  #endif
43848  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43849  } else {
43850  Py_ssize_t index = -1;
43851  __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1474, __pyx_L1_error)
43852  __Pyx_GOTREF(__pyx_t_8);
43853  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43854  __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
43855  index = 0; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed;
43856  __Pyx_GOTREF(__pyx_t_2);
43857  index = 1; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed;
43858  __Pyx_GOTREF(__pyx_t_3);
43859  index = 2; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed;
43860  __Pyx_GOTREF(__pyx_t_1);
43861  if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 1474, __pyx_L1_error)
43862  __pyx_t_9 = NULL;
43863  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
43864  goto __pyx_L9_unpacking_done;
43865  __pyx_L8_unpacking_failed:;
43866  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
43867  __pyx_t_9 = NULL;
43868  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
43869  __PYX_ERR(0, 1474, __pyx_L1_error)
43870  __pyx_L9_unpacking_done:;
43871  }
43872  __pyx_v_u0 = __pyx_t_2;
43873  __pyx_t_2 = 0;
43874  __pyx_v_u1 = __pyx_t_3;
43875  __pyx_t_3 = 0;
43876  __pyx_v_u2 = __pyx_t_1;
43877  __pyx_t_1 = 0;
43878  }
43879  __pyx_L3:;
43880 
43881  /* "mprans/BoundaryConditions.py":1475
43882  * else:
43883  * u0, u1, u2 = self.extractVelocity(x, t, n)
43884  * self.meanV = np.array([u0, u1, u2]) # <<<<<<<<<<<<<<
43885  * # projection of u vector over an ortoganal plane to n
43886  * self.tanU = self.meanV - self.meanV * (n**2)
43887  */
43888  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1475, __pyx_L1_error)
43889  __Pyx_GOTREF(__pyx_t_1);
43890  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1475, __pyx_L1_error)
43891  __Pyx_GOTREF(__pyx_t_3);
43892  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43893  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1475, __pyx_L1_error)
43894  __Pyx_GOTREF(__pyx_t_1);
43895  __Pyx_INCREF(__pyx_v_u0);
43896  __Pyx_GIVEREF(__pyx_v_u0);
43897  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_u0);
43898  __Pyx_INCREF(__pyx_v_u1);
43899  __Pyx_GIVEREF(__pyx_v_u1);
43900  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_u1);
43901  __Pyx_INCREF(__pyx_v_u2);
43902  __Pyx_GIVEREF(__pyx_v_u2);
43903  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_u2);
43904  __pyx_t_2 = NULL;
43905  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
43906  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
43907  if (likely(__pyx_t_2)) {
43908  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
43909  __Pyx_INCREF(__pyx_t_2);
43910  __Pyx_INCREF(function);
43911  __Pyx_DECREF_SET(__pyx_t_3, function);
43912  }
43913  }
43914  __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
43915  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
43916  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43917  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1475, __pyx_L1_error)
43918  __Pyx_GOTREF(__pyx_t_4);
43919  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43920  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_meanV, __pyx_t_4) < 0) __PYX_ERR(0, 1475, __pyx_L1_error)
43921  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43922 
43923  /* "mprans/BoundaryConditions.py":1477
43924  * self.meanV = np.array([u0, u1, u2])
43925  * # projection of u vector over an ortoganal plane to n
43926  * self.tanU = self.meanV - self.meanV * (n**2) # <<<<<<<<<<<<<<
43927  * # tangential unit vector
43928  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2)))
43929  */
43930  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_meanV); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1477, __pyx_L1_error)
43931  __Pyx_GOTREF(__pyx_t_4);
43932  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_meanV); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1477, __pyx_L1_error)
43933  __Pyx_GOTREF(__pyx_t_3);
43934  __pyx_t_1 = PyNumber_Power(__pyx_v_n, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1477, __pyx_L1_error)
43935  __Pyx_GOTREF(__pyx_t_1);
43936  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1477, __pyx_L1_error)
43937  __Pyx_GOTREF(__pyx_t_2);
43938  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
43939  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43940  __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1477, __pyx_L1_error)
43941  __Pyx_GOTREF(__pyx_t_1);
43942  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
43943  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43944  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tanU, __pyx_t_1) < 0) __PYX_ERR(0, 1477, __pyx_L1_error)
43945  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43946 
43947  /* "mprans/BoundaryConditions.py":1479
43948  * self.tanU = self.meanV - self.meanV * (n**2)
43949  * # tangential unit vector
43950  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2))) # <<<<<<<<<<<<<<
43951  *
43952  * def getVariables(self, x, t):
43953  */
43954  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_old_div); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1479, __pyx_L1_error)
43955  __Pyx_GOTREF(__pyx_t_2);
43956  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tanU); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1479, __pyx_L1_error)
43957  __Pyx_GOTREF(__pyx_t_4);
43958  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1479, __pyx_L1_error)
43959  __Pyx_GOTREF(__pyx_t_8);
43960  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1479, __pyx_L1_error)
43961  __Pyx_GOTREF(__pyx_t_11);
43962  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
43963  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1479, __pyx_L1_error)
43964  __Pyx_GOTREF(__pyx_t_12);
43965  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1479, __pyx_L1_error)
43966  __Pyx_GOTREF(__pyx_t_13);
43967  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
43968  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tanU); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1479, __pyx_L1_error)
43969  __Pyx_GOTREF(__pyx_t_12);
43970  __pyx_t_14 = PyNumber_Power(__pyx_t_12, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1479, __pyx_L1_error)
43971  __Pyx_GOTREF(__pyx_t_14);
43972  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
43973  __pyx_t_12 = NULL;
43974  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
43975  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
43976  if (likely(__pyx_t_12)) {
43977  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
43978  __Pyx_INCREF(__pyx_t_12);
43979  __Pyx_INCREF(function);
43980  __Pyx_DECREF_SET(__pyx_t_13, function);
43981  }
43982  }
43983  __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14);
43984  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
43985  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
43986  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1479, __pyx_L1_error)
43987  __Pyx_GOTREF(__pyx_t_8);
43988  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
43989  __pyx_t_13 = NULL;
43990  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
43991  __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11);
43992  if (likely(__pyx_t_13)) {
43993  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
43994  __Pyx_INCREF(__pyx_t_13);
43995  __Pyx_INCREF(function);
43996  __Pyx_DECREF_SET(__pyx_t_11, function);
43997  }
43998  }
43999  __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_13, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_8);
44000  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
44001  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44002  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1479, __pyx_L1_error)
44003  __Pyx_GOTREF(__pyx_t_3);
44004  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
44005  __pyx_t_11 = NULL;
44006  __pyx_t_10 = 0;
44007  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
44008  __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
44009  if (likely(__pyx_t_11)) {
44010  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
44011  __Pyx_INCREF(__pyx_t_11);
44012  __Pyx_INCREF(function);
44013  __Pyx_DECREF_SET(__pyx_t_2, function);
44014  __pyx_t_10 = 1;
44015  }
44016  }
44017  #if CYTHON_FAST_PYCALL
44018  if (PyFunction_Check(__pyx_t_2)) {
44019  PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_4, __pyx_t_3};
44020  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1479, __pyx_L1_error)
44021  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
44022  __Pyx_GOTREF(__pyx_t_1);
44023  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44024  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44025  } else
44026  #endif
44027  #if CYTHON_FAST_PYCCALL
44028  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
44029  PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_4, __pyx_t_3};
44030  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1479, __pyx_L1_error)
44031  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
44032  __Pyx_GOTREF(__pyx_t_1);
44033  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44034  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44035  } else
44036  #endif
44037  {
44038  __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1479, __pyx_L1_error)
44039  __Pyx_GOTREF(__pyx_t_8);
44040  if (__pyx_t_11) {
44041  __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_11); __pyx_t_11 = NULL;
44042  }
44043  __Pyx_GIVEREF(__pyx_t_4);
44044  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_10, __pyx_t_4);
44045  __Pyx_GIVEREF(__pyx_t_3);
44046  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_t_3);
44047  __pyx_t_4 = 0;
44048  __pyx_t_3 = 0;
44049  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1479, __pyx_L1_error)
44050  __Pyx_GOTREF(__pyx_t_1);
44051  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44052  }
44053  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44054  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tV, __pyx_t_1) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
44055  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44056 
44057  /* "mprans/BoundaryConditions.py":1459
44058  * return u, v, w
44059  *
44060  * def tangentialVelocity(self, x, t, n, uInit=None): # <<<<<<<<<<<<<<
44061  * """
44062  * Given the velocity, calculates its
44063  */
44064 
44065  /* function exit code */
44066  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44067  goto __pyx_L0;
44068  __pyx_L1_error:;
44069  __Pyx_XDECREF(__pyx_t_1);
44070  __Pyx_XDECREF(__pyx_t_2);
44071  __Pyx_XDECREF(__pyx_t_3);
44072  __Pyx_XDECREF(__pyx_t_4);
44073  __Pyx_XDECREF(__pyx_t_8);
44074  __Pyx_XDECREF(__pyx_t_11);
44075  __Pyx_XDECREF(__pyx_t_12);
44076  __Pyx_XDECREF(__pyx_t_13);
44077  __Pyx_XDECREF(__pyx_t_14);
44078  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.tangentialVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
44079  __pyx_r = NULL;
44080  __pyx_L0:;
44081  __Pyx_XDECREF(__pyx_v_u0);
44082  __Pyx_XDECREF(__pyx_v_u1);
44083  __Pyx_XDECREF(__pyx_v_u2);
44084  __Pyx_XDECREF(__pyx_v_n);
44085  __Pyx_XGIVEREF(__pyx_r);
44086  __Pyx_TraceReturn(__pyx_r, 0);
44087  __Pyx_RefNannyFinishContext();
44088  return __pyx_r;
44089 }
44090 
44091 /* "mprans/BoundaryConditions.py":1481
44092  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2)))
44093  *
44094  * def getVariables(self, x, t): # <<<<<<<<<<<<<<
44095  * """
44096  * Calculates velocity, gradient of the velocity and
44097  */
44098 
44099 /* Python wrapper */
44100 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_25getVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44101 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_24getVariables[] = "WallFunctions.getVariables(self, x, t)\n\n Calculates velocity, gradient of the velocity and\n kappa according with wall functions theory (see\n S. B. Pope pg 442-443).\n ";
44102 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_25getVariables = {"getVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_25getVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_24getVariables};
44103 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_25getVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44104  PyObject *__pyx_v_self = 0;
44105  PyObject *__pyx_v_x = 0;
44106  PyObject *__pyx_v_t = 0;
44107  int __pyx_lineno = 0;
44108  const char *__pyx_filename = NULL;
44109  int __pyx_clineno = 0;
44110  PyObject *__pyx_r = 0;
44111  __Pyx_RefNannyDeclarations
44112  __Pyx_RefNannySetupContext("getVariables (wrapper)", 0);
44113  {
44114  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,0};
44115  PyObject* values[3] = {0,0,0};
44116  if (unlikely(__pyx_kwds)) {
44117  Py_ssize_t kw_args;
44118  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
44119  switch (pos_args) {
44120  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
44121  CYTHON_FALLTHROUGH;
44122  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44123  CYTHON_FALLTHROUGH;
44124  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44125  CYTHON_FALLTHROUGH;
44126  case 0: break;
44127  default: goto __pyx_L5_argtuple_error;
44128  }
44129  kw_args = PyDict_Size(__pyx_kwds);
44130  switch (pos_args) {
44131  case 0:
44132  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
44133  else goto __pyx_L5_argtuple_error;
44134  CYTHON_FALLTHROUGH;
44135  case 1:
44136  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
44137  else {
44138  __Pyx_RaiseArgtupleInvalid("getVariables", 1, 3, 3, 1); __PYX_ERR(0, 1481, __pyx_L3_error)
44139  }
44140  CYTHON_FALLTHROUGH;
44141  case 2:
44142  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
44143  else {
44144  __Pyx_RaiseArgtupleInvalid("getVariables", 1, 3, 3, 2); __PYX_ERR(0, 1481, __pyx_L3_error)
44145  }
44146  }
44147  if (unlikely(kw_args > 0)) {
44148  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getVariables") < 0)) __PYX_ERR(0, 1481, __pyx_L3_error)
44149  }
44150  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
44151  goto __pyx_L5_argtuple_error;
44152  } else {
44153  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44154  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44155  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
44156  }
44157  __pyx_v_self = values[0];
44158  __pyx_v_x = values[1];
44159  __pyx_v_t = values[2];
44160  }
44161  goto __pyx_L4_argument_unpacking_done;
44162  __pyx_L5_argtuple_error:;
44163  __Pyx_RaiseArgtupleInvalid("getVariables", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1481, __pyx_L3_error)
44164  __pyx_L3_error:;
44165  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
44166  __Pyx_RefNannyFinishContext();
44167  return NULL;
44168  __pyx_L4_argument_unpacking_done:;
44169  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_24getVariables(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t);
44170 
44171  /* function exit code */
44172  __Pyx_RefNannyFinishContext();
44173  return __pyx_r;
44174 }
44175 
44176 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_24getVariables(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t) {
44177  CYTHON_UNUSED PyObject *__pyx_v_comm = NULL;
44178  PyObject *__pyx_v_Up = NULL;
44179  PyObject *__pyx_v_E = NULL;
44180  PyObject *__pyx_r = NULL;
44181  __Pyx_TraceDeclarations
44182  __Pyx_RefNannyDeclarations
44183  PyObject *__pyx_t_1 = NULL;
44184  PyObject *__pyx_t_2 = NULL;
44185  PyObject *__pyx_t_3 = NULL;
44186  PyObject *__pyx_t_4 = NULL;
44187  PyObject *__pyx_t_5 = NULL;
44188  PyObject *__pyx_t_6 = NULL;
44189  int __pyx_t_7;
44190  PyObject *__pyx_t_8 = NULL;
44191  int __pyx_t_9;
44192  PyObject *__pyx_t_10 = NULL;
44193  int __pyx_lineno = 0;
44194  const char *__pyx_filename = NULL;
44195  int __pyx_clineno = 0;
44196  __Pyx_TraceFrameInit(__pyx_codeobj__120)
44197  __Pyx_RefNannySetupContext("getVariables", 0);
44198  __Pyx_TraceCall("getVariables", __pyx_f[0], 1481, 0, __PYX_ERR(0, 1481, __pyx_L1_error));
44199 
44200  /* "mprans/BoundaryConditions.py":1487
44201  * S. B. Pope pg 442-443).
44202  * """
44203  * comm = Comm.get().comm.tompi4py() # <<<<<<<<<<<<<<
44204  * # Extraction of kappa
44205  * self.kappa = self.kWall.getKappa(x, t, self.xi, self.element, self.rank)
44206  */
44207  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1487, __pyx_L1_error)
44208  __Pyx_GOTREF(__pyx_t_3);
44209  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error)
44210  __Pyx_GOTREF(__pyx_t_4);
44211  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44212  __pyx_t_3 = NULL;
44213  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
44214  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
44215  if (likely(__pyx_t_3)) {
44216  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
44217  __Pyx_INCREF(__pyx_t_3);
44218  __Pyx_INCREF(function);
44219  __Pyx_DECREF_SET(__pyx_t_4, function);
44220  }
44221  }
44222  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
44223  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44224  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error)
44225  __Pyx_GOTREF(__pyx_t_2);
44226  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44227  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_comm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error)
44228  __Pyx_GOTREF(__pyx_t_4);
44229  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44230  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tompi4py); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error)
44231  __Pyx_GOTREF(__pyx_t_2);
44232  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44233  __pyx_t_4 = NULL;
44234  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
44235  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
44236  if (likely(__pyx_t_4)) {
44237  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
44238  __Pyx_INCREF(__pyx_t_4);
44239  __Pyx_INCREF(function);
44240  __Pyx_DECREF_SET(__pyx_t_2, function);
44241  }
44242  }
44243  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
44244  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
44245  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error)
44246  __Pyx_GOTREF(__pyx_t_1);
44247  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44248  __pyx_v_comm = __pyx_t_1;
44249  __pyx_t_1 = 0;
44250 
44251  /* "mprans/BoundaryConditions.py":1489
44252  * comm = Comm.get().comm.tompi4py()
44253  * # Extraction of kappa
44254  * self.kappa = self.kWall.getKappa(x, t, self.xi, self.element, self.rank) # <<<<<<<<<<<<<<
44255  * # Calculation of nominal friction velocity based on kappa
44256  * self.utStar = (self.kappa**0.5) * (self.Cmu**0.25)
44257  */
44258  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kWall); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
44259  __Pyx_GOTREF(__pyx_t_2);
44260  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getKappa); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1489, __pyx_L1_error)
44261  __Pyx_GOTREF(__pyx_t_4);
44262  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44263  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
44264  __Pyx_GOTREF(__pyx_t_2);
44265  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_element); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1489, __pyx_L1_error)
44266  __Pyx_GOTREF(__pyx_t_3);
44267  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rank); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1489, __pyx_L1_error)
44268  __Pyx_GOTREF(__pyx_t_5);
44269  __pyx_t_6 = NULL;
44270  __pyx_t_7 = 0;
44271  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
44272  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
44273  if (likely(__pyx_t_6)) {
44274  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
44275  __Pyx_INCREF(__pyx_t_6);
44276  __Pyx_INCREF(function);
44277  __Pyx_DECREF_SET(__pyx_t_4, function);
44278  __pyx_t_7 = 1;
44279  }
44280  }
44281  #if CYTHON_FAST_PYCALL
44282  if (PyFunction_Check(__pyx_t_4)) {
44283  PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_v_x, __pyx_v_t, __pyx_t_2, __pyx_t_3, __pyx_t_5};
44284  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1489, __pyx_L1_error)
44285  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
44286  __Pyx_GOTREF(__pyx_t_1);
44287  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44288  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44289  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44290  } else
44291  #endif
44292  #if CYTHON_FAST_PYCCALL
44293  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
44294  PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_v_x, __pyx_v_t, __pyx_t_2, __pyx_t_3, __pyx_t_5};
44295  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1489, __pyx_L1_error)
44296  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
44297  __Pyx_GOTREF(__pyx_t_1);
44298  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44299  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44300  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44301  } else
44302  #endif
44303  {
44304  __pyx_t_8 = PyTuple_New(5+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1489, __pyx_L1_error)
44305  __Pyx_GOTREF(__pyx_t_8);
44306  if (__pyx_t_6) {
44307  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
44308  }
44309  __Pyx_INCREF(__pyx_v_x);
44310  __Pyx_GIVEREF(__pyx_v_x);
44311  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_x);
44312  __Pyx_INCREF(__pyx_v_t);
44313  __Pyx_GIVEREF(__pyx_v_t);
44314  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_t);
44315  __Pyx_GIVEREF(__pyx_t_2);
44316  PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_2);
44317  __Pyx_GIVEREF(__pyx_t_3);
44318  PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_7, __pyx_t_3);
44319  __Pyx_GIVEREF(__pyx_t_5);
44320  PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_7, __pyx_t_5);
44321  __pyx_t_2 = 0;
44322  __pyx_t_3 = 0;
44323  __pyx_t_5 = 0;
44324  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1489, __pyx_L1_error)
44325  __Pyx_GOTREF(__pyx_t_1);
44326  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44327  }
44328  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44329  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kappa, __pyx_t_1) < 0) __PYX_ERR(0, 1489, __pyx_L1_error)
44330  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44331 
44332  /* "mprans/BoundaryConditions.py":1491
44333  * self.kappa = self.kWall.getKappa(x, t, self.xi, self.element, self.rank)
44334  * # Calculation of nominal friction velocity based on kappa
44335  * self.utStar = (self.kappa**0.5) * (self.Cmu**0.25) # <<<<<<<<<<<<<<
44336  * self.Ystar = self.Y * self.utStar / self.nu
44337  * # Absolute value of the extracted velocity at y+ location.
44338  */
44339  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1491, __pyx_L1_error)
44340  __Pyx_GOTREF(__pyx_t_1);
44341  __pyx_t_4 = PyNumber_Power(__pyx_t_1, __pyx_float_0_5, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1491, __pyx_L1_error)
44342  __Pyx_GOTREF(__pyx_t_4);
44343  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44344  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Cmu); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1491, __pyx_L1_error)
44345  __Pyx_GOTREF(__pyx_t_1);
44346  __pyx_t_8 = PyNumber_Power(__pyx_t_1, __pyx_float_0_25, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1491, __pyx_L1_error)
44347  __Pyx_GOTREF(__pyx_t_8);
44348  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44349  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1491, __pyx_L1_error)
44350  __Pyx_GOTREF(__pyx_t_1);
44351  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44352  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44353  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_utStar, __pyx_t_1) < 0) __PYX_ERR(0, 1491, __pyx_L1_error)
44354  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44355 
44356  /* "mprans/BoundaryConditions.py":1492
44357  * # Calculation of nominal friction velocity based on kappa
44358  * self.utStar = (self.kappa**0.5) * (self.Cmu**0.25)
44359  * self.Ystar = self.Y * self.utStar / self.nu # <<<<<<<<<<<<<<
44360  * # Absolute value of the extracted velocity at y+ location.
44361  * Up = np.sqrt(np.sum(self.tanU**2))
44362  */
44363  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1492, __pyx_L1_error)
44364  __Pyx_GOTREF(__pyx_t_1);
44365  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1492, __pyx_L1_error)
44366  __Pyx_GOTREF(__pyx_t_8);
44367  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1492, __pyx_L1_error)
44368  __Pyx_GOTREF(__pyx_t_4);
44369  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44370  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44371  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nu); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1492, __pyx_L1_error)
44372  __Pyx_GOTREF(__pyx_t_8);
44373  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1492, __pyx_L1_error)
44374  __Pyx_GOTREF(__pyx_t_1);
44375  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44376  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44377  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Ystar, __pyx_t_1) < 0) __PYX_ERR(0, 1492, __pyx_L1_error)
44378  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44379 
44380  /* "mprans/BoundaryConditions.py":1494
44381  * self.Ystar = self.Y * self.utStar / self.nu
44382  * # Absolute value of the extracted velocity at y+ location.
44383  * Up = np.sqrt(np.sum(self.tanU**2)) # <<<<<<<<<<<<<<
44384  * # viscous layer
44385  * if self.Ystar < 11.225:
44386  */
44387  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1494, __pyx_L1_error)
44388  __Pyx_GOTREF(__pyx_t_8);
44389  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1494, __pyx_L1_error)
44390  __Pyx_GOTREF(__pyx_t_4);
44391  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44392  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1494, __pyx_L1_error)
44393  __Pyx_GOTREF(__pyx_t_5);
44394  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1494, __pyx_L1_error)
44395  __Pyx_GOTREF(__pyx_t_3);
44396  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44397  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tanU); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1494, __pyx_L1_error)
44398  __Pyx_GOTREF(__pyx_t_5);
44399  __pyx_t_2 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1494, __pyx_L1_error)
44400  __Pyx_GOTREF(__pyx_t_2);
44401  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44402  __pyx_t_5 = NULL;
44403  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
44404  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
44405  if (likely(__pyx_t_5)) {
44406  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
44407  __Pyx_INCREF(__pyx_t_5);
44408  __Pyx_INCREF(function);
44409  __Pyx_DECREF_SET(__pyx_t_3, function);
44410  }
44411  }
44412  __pyx_t_8 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
44413  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
44414  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44415  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1494, __pyx_L1_error)
44416  __Pyx_GOTREF(__pyx_t_8);
44417  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44418  __pyx_t_3 = NULL;
44419  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
44420  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
44421  if (likely(__pyx_t_3)) {
44422  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
44423  __Pyx_INCREF(__pyx_t_3);
44424  __Pyx_INCREF(function);
44425  __Pyx_DECREF_SET(__pyx_t_4, function);
44426  }
44427  }
44428  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8);
44429  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44430  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44431  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1494, __pyx_L1_error)
44432  __Pyx_GOTREF(__pyx_t_1);
44433  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44434  __pyx_v_Up = __pyx_t_1;
44435  __pyx_t_1 = 0;
44436 
44437  /* "mprans/BoundaryConditions.py":1496
44438  * Up = np.sqrt(np.sum(self.tanU**2))
44439  * # viscous layer
44440  * if self.Ystar < 11.225: # <<<<<<<<<<<<<<
44441  * self.Ustar = self.Ystar
44442  * self.uDir = (self.utStar*self.Ystar) * self.tV
44443  */
44444  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Ystar); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1496, __pyx_L1_error)
44445  __Pyx_GOTREF(__pyx_t_1);
44446  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_11_225, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1496, __pyx_L1_error)
44447  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44448  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1496, __pyx_L1_error)
44449  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44450  if (__pyx_t_9) {
44451 
44452  /* "mprans/BoundaryConditions.py":1497
44453  * # viscous layer
44454  * if self.Ystar < 11.225:
44455  * self.Ustar = self.Ystar # <<<<<<<<<<<<<<
44456  * self.uDir = (self.utStar*self.Ystar) * self.tV
44457  * self.gradU = ( old_div((self.utStar**2), self.nu) ) * self.tV
44458  */
44459  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Ystar); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1497, __pyx_L1_error)
44460  __Pyx_GOTREF(__pyx_t_4);
44461  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Ustar, __pyx_t_4) < 0) __PYX_ERR(0, 1497, __pyx_L1_error)
44462  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44463 
44464  /* "mprans/BoundaryConditions.py":1498
44465  * if self.Ystar < 11.225:
44466  * self.Ustar = self.Ystar
44467  * self.uDir = (self.utStar*self.Ystar) * self.tV # <<<<<<<<<<<<<<
44468  * self.gradU = ( old_div((self.utStar**2), self.nu) ) * self.tV
44469  * # log-law layer
44470  */
44471  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1498, __pyx_L1_error)
44472  __Pyx_GOTREF(__pyx_t_4);
44473  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Ystar); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
44474  __Pyx_GOTREF(__pyx_t_1);
44475  __pyx_t_8 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1498, __pyx_L1_error)
44476  __Pyx_GOTREF(__pyx_t_8);
44477  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44478  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44479  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tV); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
44480  __Pyx_GOTREF(__pyx_t_1);
44481  __pyx_t_4 = PyNumber_Multiply(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1498, __pyx_L1_error)
44482  __Pyx_GOTREF(__pyx_t_4);
44483  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44484  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44485  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_uDir, __pyx_t_4) < 0) __PYX_ERR(0, 1498, __pyx_L1_error)
44486  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44487 
44488  /* "mprans/BoundaryConditions.py":1499
44489  * self.Ustar = self.Ystar
44490  * self.uDir = (self.utStar*self.Ystar) * self.tV
44491  * self.gradU = ( old_div((self.utStar**2), self.nu) ) * self.tV # <<<<<<<<<<<<<<
44492  * # log-law layer
44493  * else:
44494  */
44495  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_old_div); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1499, __pyx_L1_error)
44496  __Pyx_GOTREF(__pyx_t_1);
44497  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1499, __pyx_L1_error)
44498  __Pyx_GOTREF(__pyx_t_8);
44499  __pyx_t_3 = PyNumber_Power(__pyx_t_8, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1499, __pyx_L1_error)
44500  __Pyx_GOTREF(__pyx_t_3);
44501  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44502  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nu); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1499, __pyx_L1_error)
44503  __Pyx_GOTREF(__pyx_t_8);
44504  __pyx_t_2 = NULL;
44505  __pyx_t_7 = 0;
44506  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
44507  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
44508  if (likely(__pyx_t_2)) {
44509  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
44510  __Pyx_INCREF(__pyx_t_2);
44511  __Pyx_INCREF(function);
44512  __Pyx_DECREF_SET(__pyx_t_1, function);
44513  __pyx_t_7 = 1;
44514  }
44515  }
44516  #if CYTHON_FAST_PYCALL
44517  if (PyFunction_Check(__pyx_t_1)) {
44518  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_8};
44519  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1499, __pyx_L1_error)
44520  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
44521  __Pyx_GOTREF(__pyx_t_4);
44522  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44523  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44524  } else
44525  #endif
44526  #if CYTHON_FAST_PYCCALL
44527  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
44528  PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_8};
44529  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1499, __pyx_L1_error)
44530  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
44531  __Pyx_GOTREF(__pyx_t_4);
44532  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44533  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44534  } else
44535  #endif
44536  {
44537  __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1499, __pyx_L1_error)
44538  __Pyx_GOTREF(__pyx_t_5);
44539  if (__pyx_t_2) {
44540  __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
44541  }
44542  __Pyx_GIVEREF(__pyx_t_3);
44543  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_3);
44544  __Pyx_GIVEREF(__pyx_t_8);
44545  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_t_8);
44546  __pyx_t_3 = 0;
44547  __pyx_t_8 = 0;
44548  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1499, __pyx_L1_error)
44549  __Pyx_GOTREF(__pyx_t_4);
44550  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44551  }
44552  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44553  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tV); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1499, __pyx_L1_error)
44554  __Pyx_GOTREF(__pyx_t_1);
44555  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1499, __pyx_L1_error)
44556  __Pyx_GOTREF(__pyx_t_5);
44557  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44558  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44559  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_gradU, __pyx_t_5) < 0) __PYX_ERR(0, 1499, __pyx_L1_error)
44560  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44561 
44562  /* "mprans/BoundaryConditions.py":1496
44563  * Up = np.sqrt(np.sum(self.tanU**2))
44564  * # viscous layer
44565  * if self.Ystar < 11.225: # <<<<<<<<<<<<<<
44566  * self.Ustar = self.Ystar
44567  * self.uDir = (self.utStar*self.Ystar) * self.tV
44568  */
44569  goto __pyx_L3;
44570  }
44571 
44572  /* "mprans/BoundaryConditions.py":1503
44573  * else:
44574  * # Wall function theory from S.B. Pope, page 442-443
44575  * E = np.exp(self.B * self.K) # <<<<<<<<<<<<<<
44576  * self.Ustar = self.utStar * np.log(E * self.Ystar) / self.K
44577  * self.utAbs = self.utStar * np.sqrt(old_div(Up, self.Ustar))
44578  */
44579  /*else*/ {
44580  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1503, __pyx_L1_error)
44581  __Pyx_GOTREF(__pyx_t_1);
44582  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_exp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1503, __pyx_L1_error)
44583  __Pyx_GOTREF(__pyx_t_4);
44584  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44585  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_B); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1503, __pyx_L1_error)
44586  __Pyx_GOTREF(__pyx_t_1);
44587  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_K); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1503, __pyx_L1_error)
44588  __Pyx_GOTREF(__pyx_t_8);
44589  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1503, __pyx_L1_error)
44590  __Pyx_GOTREF(__pyx_t_3);
44591  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44592  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44593  __pyx_t_8 = NULL;
44594  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
44595  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
44596  if (likely(__pyx_t_8)) {
44597  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
44598  __Pyx_INCREF(__pyx_t_8);
44599  __Pyx_INCREF(function);
44600  __Pyx_DECREF_SET(__pyx_t_4, function);
44601  }
44602  }
44603  __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
44604  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
44605  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44606  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1503, __pyx_L1_error)
44607  __Pyx_GOTREF(__pyx_t_5);
44608  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44609  __pyx_v_E = __pyx_t_5;
44610  __pyx_t_5 = 0;
44611 
44612  /* "mprans/BoundaryConditions.py":1504
44613  * # Wall function theory from S.B. Pope, page 442-443
44614  * E = np.exp(self.B * self.K)
44615  * self.Ustar = self.utStar * np.log(E * self.Ystar) / self.K # <<<<<<<<<<<<<<
44616  * self.utAbs = self.utStar * np.sqrt(old_div(Up, self.Ustar))
44617  * # Velocity vector and velocity gradient multiplied by the tangential vector unit
44618  */
44619  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1504, __pyx_L1_error)
44620  __Pyx_GOTREF(__pyx_t_5);
44621  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1504, __pyx_L1_error)
44622  __Pyx_GOTREF(__pyx_t_3);
44623  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1504, __pyx_L1_error)
44624  __Pyx_GOTREF(__pyx_t_8);
44625  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44626  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Ystar); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1504, __pyx_L1_error)
44627  __Pyx_GOTREF(__pyx_t_3);
44628  __pyx_t_1 = PyNumber_Multiply(__pyx_v_E, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1504, __pyx_L1_error)
44629  __Pyx_GOTREF(__pyx_t_1);
44630  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44631  __pyx_t_3 = NULL;
44632  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
44633  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
44634  if (likely(__pyx_t_3)) {
44635  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
44636  __Pyx_INCREF(__pyx_t_3);
44637  __Pyx_INCREF(function);
44638  __Pyx_DECREF_SET(__pyx_t_8, function);
44639  }
44640  }
44641  __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1);
44642  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44643  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44644  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1504, __pyx_L1_error)
44645  __Pyx_GOTREF(__pyx_t_4);
44646  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44647  __pyx_t_8 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1504, __pyx_L1_error)
44648  __Pyx_GOTREF(__pyx_t_8);
44649  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44650  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44651  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_K); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1504, __pyx_L1_error)
44652  __Pyx_GOTREF(__pyx_t_4);
44653  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1504, __pyx_L1_error)
44654  __Pyx_GOTREF(__pyx_t_5);
44655  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44656  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44657  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Ustar, __pyx_t_5) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
44658  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44659 
44660  /* "mprans/BoundaryConditions.py":1505
44661  * E = np.exp(self.B * self.K)
44662  * self.Ustar = self.utStar * np.log(E * self.Ystar) / self.K
44663  * self.utAbs = self.utStar * np.sqrt(old_div(Up, self.Ustar)) # <<<<<<<<<<<<<<
44664  * # Velocity vector and velocity gradient multiplied by the tangential vector unit
44665  * self.gradU = (old_div(self.utAbs, (self.K * self.Y))) * self.tV
44666  */
44667  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1505, __pyx_L1_error)
44668  __Pyx_GOTREF(__pyx_t_5);
44669  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1505, __pyx_L1_error)
44670  __Pyx_GOTREF(__pyx_t_8);
44671  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
44672  __Pyx_GOTREF(__pyx_t_1);
44673  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44674  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_old_div); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1505, __pyx_L1_error)
44675  __Pyx_GOTREF(__pyx_t_3);
44676  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Ustar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1505, __pyx_L1_error)
44677  __Pyx_GOTREF(__pyx_t_2);
44678  __pyx_t_6 = NULL;
44679  __pyx_t_7 = 0;
44680  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
44681  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
44682  if (likely(__pyx_t_6)) {
44683  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
44684  __Pyx_INCREF(__pyx_t_6);
44685  __Pyx_INCREF(function);
44686  __Pyx_DECREF_SET(__pyx_t_3, function);
44687  __pyx_t_7 = 1;
44688  }
44689  }
44690  #if CYTHON_FAST_PYCALL
44691  if (PyFunction_Check(__pyx_t_3)) {
44692  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_Up, __pyx_t_2};
44693  __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1505, __pyx_L1_error)
44694  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
44695  __Pyx_GOTREF(__pyx_t_8);
44696  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44697  } else
44698  #endif
44699  #if CYTHON_FAST_PYCCALL
44700  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
44701  PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_Up, __pyx_t_2};
44702  __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1505, __pyx_L1_error)
44703  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
44704  __Pyx_GOTREF(__pyx_t_8);
44705  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
44706  } else
44707  #endif
44708  {
44709  __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1505, __pyx_L1_error)
44710  __Pyx_GOTREF(__pyx_t_10);
44711  if (__pyx_t_6) {
44712  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL;
44713  }
44714  __Pyx_INCREF(__pyx_v_Up);
44715  __Pyx_GIVEREF(__pyx_v_Up);
44716  PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_v_Up);
44717  __Pyx_GIVEREF(__pyx_t_2);
44718  PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_t_2);
44719  __pyx_t_2 = 0;
44720  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1505, __pyx_L1_error)
44721  __Pyx_GOTREF(__pyx_t_8);
44722  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
44723  }
44724  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44725  __pyx_t_3 = NULL;
44726  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
44727  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
44728  if (likely(__pyx_t_3)) {
44729  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
44730  __Pyx_INCREF(__pyx_t_3);
44731  __Pyx_INCREF(function);
44732  __Pyx_DECREF_SET(__pyx_t_1, function);
44733  }
44734  }
44735  __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8);
44736  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44737  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44738  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1505, __pyx_L1_error)
44739  __Pyx_GOTREF(__pyx_t_4);
44740  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44741  __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
44742  __Pyx_GOTREF(__pyx_t_1);
44743  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44744  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44745  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_utAbs, __pyx_t_1) < 0) __PYX_ERR(0, 1505, __pyx_L1_error)
44746  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44747 
44748  /* "mprans/BoundaryConditions.py":1507
44749  * self.utAbs = self.utStar * np.sqrt(old_div(Up, self.Ustar))
44750  * # Velocity vector and velocity gradient multiplied by the tangential vector unit
44751  * self.gradU = (old_div(self.utAbs, (self.K * self.Y))) * self.tV # <<<<<<<<<<<<<<
44752  * # Linear approximation for velocity at the wall (using the gradU of the logLaw)
44753  * self.uDir = self.tanU - (self.gradU * self.Y)
44754  */
44755  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_old_div); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error)
44756  __Pyx_GOTREF(__pyx_t_4);
44757  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utAbs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error)
44758  __Pyx_GOTREF(__pyx_t_5);
44759  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_K); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1507, __pyx_L1_error)
44760  __Pyx_GOTREF(__pyx_t_8);
44761  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1507, __pyx_L1_error)
44762  __Pyx_GOTREF(__pyx_t_3);
44763  __pyx_t_10 = PyNumber_Multiply(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1507, __pyx_L1_error)
44764  __Pyx_GOTREF(__pyx_t_10);
44765  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44766  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44767  __pyx_t_3 = NULL;
44768  __pyx_t_7 = 0;
44769  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
44770  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
44771  if (likely(__pyx_t_3)) {
44772  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
44773  __Pyx_INCREF(__pyx_t_3);
44774  __Pyx_INCREF(function);
44775  __Pyx_DECREF_SET(__pyx_t_4, function);
44776  __pyx_t_7 = 1;
44777  }
44778  }
44779  #if CYTHON_FAST_PYCALL
44780  if (PyFunction_Check(__pyx_t_4)) {
44781  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_10};
44782  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
44783  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44784  __Pyx_GOTREF(__pyx_t_1);
44785  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44786  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
44787  } else
44788  #endif
44789  #if CYTHON_FAST_PYCCALL
44790  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
44791  PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_10};
44792  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
44793  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
44794  __Pyx_GOTREF(__pyx_t_1);
44795  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
44796  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
44797  } else
44798  #endif
44799  {
44800  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1507, __pyx_L1_error)
44801  __Pyx_GOTREF(__pyx_t_8);
44802  if (__pyx_t_3) {
44803  __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
44804  }
44805  __Pyx_GIVEREF(__pyx_t_5);
44806  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_5);
44807  __Pyx_GIVEREF(__pyx_t_10);
44808  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_10);
44809  __pyx_t_5 = 0;
44810  __pyx_t_10 = 0;
44811  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
44812  __Pyx_GOTREF(__pyx_t_1);
44813  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44814  }
44815  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44816  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tV); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error)
44817  __Pyx_GOTREF(__pyx_t_4);
44818  __pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1507, __pyx_L1_error)
44819  __Pyx_GOTREF(__pyx_t_8);
44820  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44821  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44822  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_gradU, __pyx_t_8) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
44823  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44824 
44825  /* "mprans/BoundaryConditions.py":1509
44826  * self.gradU = (old_div(self.utAbs, (self.K * self.Y))) * self.tV
44827  * # Linear approximation for velocity at the wall (using the gradU of the logLaw)
44828  * self.uDir = self.tanU - (self.gradU * self.Y) # <<<<<<<<<<<<<<
44829  *
44830  * def get_u_dirichlet(self, x, t, n):
44831  */
44832  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tanU); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1509, __pyx_L1_error)
44833  __Pyx_GOTREF(__pyx_t_8);
44834  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_gradU); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1509, __pyx_L1_error)
44835  __Pyx_GOTREF(__pyx_t_4);
44836  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1509, __pyx_L1_error)
44837  __Pyx_GOTREF(__pyx_t_1);
44838  __pyx_t_10 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1509, __pyx_L1_error)
44839  __Pyx_GOTREF(__pyx_t_10);
44840  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
44841  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44842  __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1509, __pyx_L1_error)
44843  __Pyx_GOTREF(__pyx_t_1);
44844  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
44845  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
44846  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_uDir, __pyx_t_1) < 0) __PYX_ERR(0, 1509, __pyx_L1_error)
44847  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44848  }
44849  __pyx_L3:;
44850 
44851  /* "mprans/BoundaryConditions.py":1481
44852  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2)))
44853  *
44854  * def getVariables(self, x, t): # <<<<<<<<<<<<<<
44855  * """
44856  * Calculates velocity, gradient of the velocity and
44857  */
44858 
44859  /* function exit code */
44860  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44861  goto __pyx_L0;
44862  __pyx_L1_error:;
44863  __Pyx_XDECREF(__pyx_t_1);
44864  __Pyx_XDECREF(__pyx_t_2);
44865  __Pyx_XDECREF(__pyx_t_3);
44866  __Pyx_XDECREF(__pyx_t_4);
44867  __Pyx_XDECREF(__pyx_t_5);
44868  __Pyx_XDECREF(__pyx_t_6);
44869  __Pyx_XDECREF(__pyx_t_8);
44870  __Pyx_XDECREF(__pyx_t_10);
44871  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.getVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
44872  __pyx_r = NULL;
44873  __pyx_L0:;
44874  __Pyx_XDECREF(__pyx_v_comm);
44875  __Pyx_XDECREF(__pyx_v_Up);
44876  __Pyx_XDECREF(__pyx_v_E);
44877  __Pyx_XGIVEREF(__pyx_r);
44878  __Pyx_TraceReturn(__pyx_r, 0);
44879  __Pyx_RefNannyFinishContext();
44880  return __pyx_r;
44881 }
44882 
44883 /* "mprans/BoundaryConditions.py":1511
44884  * self.uDir = self.tanU - (self.gradU * self.Y)
44885  *
44886  * def get_u_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
44887  * if t > 0.:
44888  * uInit = False
44889  */
44890 
44891 /* Python wrapper */
44892 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_27get_u_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44893 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_26get_u_dirichlet[] = "WallFunctions.get_u_dirichlet(self, x, t, n)";
44894 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_27get_u_dirichlet = {"get_u_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_27get_u_dirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_26get_u_dirichlet};
44895 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_27get_u_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44896  PyObject *__pyx_v_self = 0;
44897  PyObject *__pyx_v_x = 0;
44898  PyObject *__pyx_v_t = 0;
44899  PyObject *__pyx_v_n = 0;
44900  int __pyx_lineno = 0;
44901  const char *__pyx_filename = NULL;
44902  int __pyx_clineno = 0;
44903  PyObject *__pyx_r = 0;
44904  __Pyx_RefNannyDeclarations
44905  __Pyx_RefNannySetupContext("get_u_dirichlet (wrapper)", 0);
44906  {
44907  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
44908  PyObject* values[4] = {0,0,0,0};
44909  if (unlikely(__pyx_kwds)) {
44910  Py_ssize_t kw_args;
44911  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
44912  switch (pos_args) {
44913  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
44914  CYTHON_FALLTHROUGH;
44915  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
44916  CYTHON_FALLTHROUGH;
44917  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44918  CYTHON_FALLTHROUGH;
44919  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44920  CYTHON_FALLTHROUGH;
44921  case 0: break;
44922  default: goto __pyx_L5_argtuple_error;
44923  }
44924  kw_args = PyDict_Size(__pyx_kwds);
44925  switch (pos_args) {
44926  case 0:
44927  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
44928  else goto __pyx_L5_argtuple_error;
44929  CYTHON_FALLTHROUGH;
44930  case 1:
44931  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
44932  else {
44933  __Pyx_RaiseArgtupleInvalid("get_u_dirichlet", 1, 4, 4, 1); __PYX_ERR(0, 1511, __pyx_L3_error)
44934  }
44935  CYTHON_FALLTHROUGH;
44936  case 2:
44937  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
44938  else {
44939  __Pyx_RaiseArgtupleInvalid("get_u_dirichlet", 1, 4, 4, 2); __PYX_ERR(0, 1511, __pyx_L3_error)
44940  }
44941  CYTHON_FALLTHROUGH;
44942  case 3:
44943  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
44944  else {
44945  __Pyx_RaiseArgtupleInvalid("get_u_dirichlet", 1, 4, 4, 3); __PYX_ERR(0, 1511, __pyx_L3_error)
44946  }
44947  }
44948  if (unlikely(kw_args > 0)) {
44949  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_u_dirichlet") < 0)) __PYX_ERR(0, 1511, __pyx_L3_error)
44950  }
44951  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
44952  goto __pyx_L5_argtuple_error;
44953  } else {
44954  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44955  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44956  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
44957  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
44958  }
44959  __pyx_v_self = values[0];
44960  __pyx_v_x = values[1];
44961  __pyx_v_t = values[2];
44962  __pyx_v_n = values[3];
44963  }
44964  goto __pyx_L4_argument_unpacking_done;
44965  __pyx_L5_argtuple_error:;
44966  __Pyx_RaiseArgtupleInvalid("get_u_dirichlet", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1511, __pyx_L3_error)
44967  __pyx_L3_error:;
44968  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_u_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
44969  __Pyx_RefNannyFinishContext();
44970  return NULL;
44971  __pyx_L4_argument_unpacking_done:;
44972  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_26get_u_dirichlet(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
44973 
44974  /* function exit code */
44975  __Pyx_RefNannyFinishContext();
44976  return __pyx_r;
44977 }
44978 
44979 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_26get_u_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
44980  int __pyx_v_uInit;
44981  PyObject *__pyx_r = NULL;
44982  __Pyx_TraceDeclarations
44983  __Pyx_RefNannyDeclarations
44984  PyObject *__pyx_t_1 = NULL;
44985  int __pyx_t_2;
44986  PyObject *__pyx_t_3 = NULL;
44987  PyObject *__pyx_t_4 = NULL;
44988  PyObject *__pyx_t_5 = NULL;
44989  int __pyx_t_6;
44990  PyObject *__pyx_t_7 = NULL;
44991  int __pyx_lineno = 0;
44992  const char *__pyx_filename = NULL;
44993  int __pyx_clineno = 0;
44994  __Pyx_TraceFrameInit(__pyx_codeobj__121)
44995  __Pyx_RefNannySetupContext("get_u_dirichlet", 0);
44996  __Pyx_TraceCall("get_u_dirichlet", __pyx_f[0], 1511, 0, __PYX_ERR(0, 1511, __pyx_L1_error));
44997 
44998  /* "mprans/BoundaryConditions.py":1512
44999  *
45000  * def get_u_dirichlet(self, x, t, n):
45001  * if t > 0.: # <<<<<<<<<<<<<<
45002  * uInit = False
45003  * else:
45004  */
45005  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1512, __pyx_L1_error)
45006  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1512, __pyx_L1_error)
45007  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45008  if (__pyx_t_2) {
45009 
45010  /* "mprans/BoundaryConditions.py":1513
45011  * def get_u_dirichlet(self, x, t, n):
45012  * if t > 0.:
45013  * uInit = False # <<<<<<<<<<<<<<
45014  * else:
45015  * uInit = True
45016  */
45017  __pyx_v_uInit = 0;
45018 
45019  /* "mprans/BoundaryConditions.py":1512
45020  *
45021  * def get_u_dirichlet(self, x, t, n):
45022  * if t > 0.: # <<<<<<<<<<<<<<
45023  * uInit = False
45024  * else:
45025  */
45026  goto __pyx_L3;
45027  }
45028 
45029  /* "mprans/BoundaryConditions.py":1515
45030  * uInit = False
45031  * else:
45032  * uInit = True # <<<<<<<<<<<<<<
45033  * self.tangentialVelocity(x, t, n, uInit)
45034  * self.getVariables(x, t)
45035  */
45036  /*else*/ {
45037  __pyx_v_uInit = 1;
45038  }
45039  __pyx_L3:;
45040 
45041  /* "mprans/BoundaryConditions.py":1516
45042  * else:
45043  * uInit = True
45044  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
45045  * self.getVariables(x, t)
45046  * return self.uDir[0]
45047  */
45048  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1516, __pyx_L1_error)
45049  __Pyx_GOTREF(__pyx_t_3);
45050  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1516, __pyx_L1_error)
45051  __Pyx_GOTREF(__pyx_t_4);
45052  __pyx_t_5 = NULL;
45053  __pyx_t_6 = 0;
45054  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45055  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
45056  if (likely(__pyx_t_5)) {
45057  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45058  __Pyx_INCREF(__pyx_t_5);
45059  __Pyx_INCREF(function);
45060  __Pyx_DECREF_SET(__pyx_t_3, function);
45061  __pyx_t_6 = 1;
45062  }
45063  }
45064  #if CYTHON_FAST_PYCALL
45065  if (PyFunction_Check(__pyx_t_3)) {
45066  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45067  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L1_error)
45068  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45069  __Pyx_GOTREF(__pyx_t_1);
45070  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45071  } else
45072  #endif
45073  #if CYTHON_FAST_PYCCALL
45074  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45075  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45076  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L1_error)
45077  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45078  __Pyx_GOTREF(__pyx_t_1);
45079  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45080  } else
45081  #endif
45082  {
45083  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1516, __pyx_L1_error)
45084  __Pyx_GOTREF(__pyx_t_7);
45085  if (__pyx_t_5) {
45086  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
45087  }
45088  __Pyx_INCREF(__pyx_v_x);
45089  __Pyx_GIVEREF(__pyx_v_x);
45090  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
45091  __Pyx_INCREF(__pyx_v_t);
45092  __Pyx_GIVEREF(__pyx_v_t);
45093  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
45094  __Pyx_INCREF(__pyx_v_n);
45095  __Pyx_GIVEREF(__pyx_v_n);
45096  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
45097  __Pyx_GIVEREF(__pyx_t_4);
45098  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
45099  __pyx_t_4 = 0;
45100  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L1_error)
45101  __Pyx_GOTREF(__pyx_t_1);
45102  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
45103  }
45104  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45105  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45106 
45107  /* "mprans/BoundaryConditions.py":1517
45108  * uInit = True
45109  * self.tangentialVelocity(x, t, n, uInit)
45110  * self.getVariables(x, t) # <<<<<<<<<<<<<<
45111  * return self.uDir[0]
45112  *
45113  */
45114  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1517, __pyx_L1_error)
45115  __Pyx_GOTREF(__pyx_t_3);
45116  __pyx_t_7 = NULL;
45117  __pyx_t_6 = 0;
45118  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45119  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
45120  if (likely(__pyx_t_7)) {
45121  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45122  __Pyx_INCREF(__pyx_t_7);
45123  __Pyx_INCREF(function);
45124  __Pyx_DECREF_SET(__pyx_t_3, function);
45125  __pyx_t_6 = 1;
45126  }
45127  }
45128  #if CYTHON_FAST_PYCALL
45129  if (PyFunction_Check(__pyx_t_3)) {
45130  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45131  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1517, __pyx_L1_error)
45132  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45133  __Pyx_GOTREF(__pyx_t_1);
45134  } else
45135  #endif
45136  #if CYTHON_FAST_PYCCALL
45137  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45138  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45139  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1517, __pyx_L1_error)
45140  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45141  __Pyx_GOTREF(__pyx_t_1);
45142  } else
45143  #endif
45144  {
45145  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1517, __pyx_L1_error)
45146  __Pyx_GOTREF(__pyx_t_4);
45147  if (__pyx_t_7) {
45148  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
45149  }
45150  __Pyx_INCREF(__pyx_v_x);
45151  __Pyx_GIVEREF(__pyx_v_x);
45152  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
45153  __Pyx_INCREF(__pyx_v_t);
45154  __Pyx_GIVEREF(__pyx_v_t);
45155  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
45156  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1517, __pyx_L1_error)
45157  __Pyx_GOTREF(__pyx_t_1);
45158  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45159  }
45160  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45161  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45162 
45163  /* "mprans/BoundaryConditions.py":1518
45164  * self.tangentialVelocity(x, t, n, uInit)
45165  * self.getVariables(x, t)
45166  * return self.uDir[0] # <<<<<<<<<<<<<<
45167  *
45168  * def get_v_dirichlet(self, x, t, n):
45169  */
45170  __Pyx_XDECREF(__pyx_r);
45171  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_uDir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1518, __pyx_L1_error)
45172  __Pyx_GOTREF(__pyx_t_1);
45173  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1518, __pyx_L1_error)
45174  __Pyx_GOTREF(__pyx_t_3);
45175  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45176  __pyx_r = __pyx_t_3;
45177  __pyx_t_3 = 0;
45178  goto __pyx_L0;
45179 
45180  /* "mprans/BoundaryConditions.py":1511
45181  * self.uDir = self.tanU - (self.gradU * self.Y)
45182  *
45183  * def get_u_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45184  * if t > 0.:
45185  * uInit = False
45186  */
45187 
45188  /* function exit code */
45189  __pyx_L1_error:;
45190  __Pyx_XDECREF(__pyx_t_1);
45191  __Pyx_XDECREF(__pyx_t_3);
45192  __Pyx_XDECREF(__pyx_t_4);
45193  __Pyx_XDECREF(__pyx_t_5);
45194  __Pyx_XDECREF(__pyx_t_7);
45195  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_u_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45196  __pyx_r = NULL;
45197  __pyx_L0:;
45198  __Pyx_XGIVEREF(__pyx_r);
45199  __Pyx_TraceReturn(__pyx_r, 0);
45200  __Pyx_RefNannyFinishContext();
45201  return __pyx_r;
45202 }
45203 
45204 /* "mprans/BoundaryConditions.py":1520
45205  * return self.uDir[0]
45206  *
45207  * def get_v_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45208  * if t > 0.:
45209  * uInit = False
45210  */
45211 
45212 /* Python wrapper */
45213 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_29get_v_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45214 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_28get_v_dirichlet[] = "WallFunctions.get_v_dirichlet(self, x, t, n)";
45215 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_29get_v_dirichlet = {"get_v_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_29get_v_dirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_28get_v_dirichlet};
45216 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_29get_v_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45217  PyObject *__pyx_v_self = 0;
45218  PyObject *__pyx_v_x = 0;
45219  PyObject *__pyx_v_t = 0;
45220  PyObject *__pyx_v_n = 0;
45221  int __pyx_lineno = 0;
45222  const char *__pyx_filename = NULL;
45223  int __pyx_clineno = 0;
45224  PyObject *__pyx_r = 0;
45225  __Pyx_RefNannyDeclarations
45226  __Pyx_RefNannySetupContext("get_v_dirichlet (wrapper)", 0);
45227  {
45228  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
45229  PyObject* values[4] = {0,0,0,0};
45230  if (unlikely(__pyx_kwds)) {
45231  Py_ssize_t kw_args;
45232  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
45233  switch (pos_args) {
45234  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45235  CYTHON_FALLTHROUGH;
45236  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45237  CYTHON_FALLTHROUGH;
45238  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45239  CYTHON_FALLTHROUGH;
45240  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45241  CYTHON_FALLTHROUGH;
45242  case 0: break;
45243  default: goto __pyx_L5_argtuple_error;
45244  }
45245  kw_args = PyDict_Size(__pyx_kwds);
45246  switch (pos_args) {
45247  case 0:
45248  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
45249  else goto __pyx_L5_argtuple_error;
45250  CYTHON_FALLTHROUGH;
45251  case 1:
45252  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
45253  else {
45254  __Pyx_RaiseArgtupleInvalid("get_v_dirichlet", 1, 4, 4, 1); __PYX_ERR(0, 1520, __pyx_L3_error)
45255  }
45256  CYTHON_FALLTHROUGH;
45257  case 2:
45258  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
45259  else {
45260  __Pyx_RaiseArgtupleInvalid("get_v_dirichlet", 1, 4, 4, 2); __PYX_ERR(0, 1520, __pyx_L3_error)
45261  }
45262  CYTHON_FALLTHROUGH;
45263  case 3:
45264  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
45265  else {
45266  __Pyx_RaiseArgtupleInvalid("get_v_dirichlet", 1, 4, 4, 3); __PYX_ERR(0, 1520, __pyx_L3_error)
45267  }
45268  }
45269  if (unlikely(kw_args > 0)) {
45270  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_v_dirichlet") < 0)) __PYX_ERR(0, 1520, __pyx_L3_error)
45271  }
45272  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
45273  goto __pyx_L5_argtuple_error;
45274  } else {
45275  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45276  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45277  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45278  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45279  }
45280  __pyx_v_self = values[0];
45281  __pyx_v_x = values[1];
45282  __pyx_v_t = values[2];
45283  __pyx_v_n = values[3];
45284  }
45285  goto __pyx_L4_argument_unpacking_done;
45286  __pyx_L5_argtuple_error:;
45287  __Pyx_RaiseArgtupleInvalid("get_v_dirichlet", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1520, __pyx_L3_error)
45288  __pyx_L3_error:;
45289  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_v_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45290  __Pyx_RefNannyFinishContext();
45291  return NULL;
45292  __pyx_L4_argument_unpacking_done:;
45293  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_28get_v_dirichlet(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
45294 
45295  /* function exit code */
45296  __Pyx_RefNannyFinishContext();
45297  return __pyx_r;
45298 }
45299 
45300 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_28get_v_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
45301  int __pyx_v_uInit;
45302  PyObject *__pyx_r = NULL;
45303  __Pyx_TraceDeclarations
45304  __Pyx_RefNannyDeclarations
45305  PyObject *__pyx_t_1 = NULL;
45306  int __pyx_t_2;
45307  PyObject *__pyx_t_3 = NULL;
45308  PyObject *__pyx_t_4 = NULL;
45309  PyObject *__pyx_t_5 = NULL;
45310  int __pyx_t_6;
45311  PyObject *__pyx_t_7 = NULL;
45312  int __pyx_lineno = 0;
45313  const char *__pyx_filename = NULL;
45314  int __pyx_clineno = 0;
45315  __Pyx_TraceFrameInit(__pyx_codeobj__122)
45316  __Pyx_RefNannySetupContext("get_v_dirichlet", 0);
45317  __Pyx_TraceCall("get_v_dirichlet", __pyx_f[0], 1520, 0, __PYX_ERR(0, 1520, __pyx_L1_error));
45318 
45319  /* "mprans/BoundaryConditions.py":1521
45320  *
45321  * def get_v_dirichlet(self, x, t, n):
45322  * if t > 0.: # <<<<<<<<<<<<<<
45323  * uInit = False
45324  * else:
45325  */
45326  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1521, __pyx_L1_error)
45327  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1521, __pyx_L1_error)
45328  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45329  if (__pyx_t_2) {
45330 
45331  /* "mprans/BoundaryConditions.py":1522
45332  * def get_v_dirichlet(self, x, t, n):
45333  * if t > 0.:
45334  * uInit = False # <<<<<<<<<<<<<<
45335  * else:
45336  * uInit = True
45337  */
45338  __pyx_v_uInit = 0;
45339 
45340  /* "mprans/BoundaryConditions.py":1521
45341  *
45342  * def get_v_dirichlet(self, x, t, n):
45343  * if t > 0.: # <<<<<<<<<<<<<<
45344  * uInit = False
45345  * else:
45346  */
45347  goto __pyx_L3;
45348  }
45349 
45350  /* "mprans/BoundaryConditions.py":1524
45351  * uInit = False
45352  * else:
45353  * uInit = True # <<<<<<<<<<<<<<
45354  * self.tangentialVelocity(x, t, n, uInit)
45355  * self.getVariables(x, t)
45356  */
45357  /*else*/ {
45358  __pyx_v_uInit = 1;
45359  }
45360  __pyx_L3:;
45361 
45362  /* "mprans/BoundaryConditions.py":1525
45363  * else:
45364  * uInit = True
45365  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
45366  * self.getVariables(x, t)
45367  * return self.uDir[1]
45368  */
45369  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error)
45370  __Pyx_GOTREF(__pyx_t_3);
45371  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1525, __pyx_L1_error)
45372  __Pyx_GOTREF(__pyx_t_4);
45373  __pyx_t_5 = NULL;
45374  __pyx_t_6 = 0;
45375  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45376  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
45377  if (likely(__pyx_t_5)) {
45378  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45379  __Pyx_INCREF(__pyx_t_5);
45380  __Pyx_INCREF(function);
45381  __Pyx_DECREF_SET(__pyx_t_3, function);
45382  __pyx_t_6 = 1;
45383  }
45384  }
45385  #if CYTHON_FAST_PYCALL
45386  if (PyFunction_Check(__pyx_t_3)) {
45387  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45388  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
45389  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45390  __Pyx_GOTREF(__pyx_t_1);
45391  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45392  } else
45393  #endif
45394  #if CYTHON_FAST_PYCCALL
45395  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45396  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45397  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
45398  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45399  __Pyx_GOTREF(__pyx_t_1);
45400  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45401  } else
45402  #endif
45403  {
45404  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1525, __pyx_L1_error)
45405  __Pyx_GOTREF(__pyx_t_7);
45406  if (__pyx_t_5) {
45407  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
45408  }
45409  __Pyx_INCREF(__pyx_v_x);
45410  __Pyx_GIVEREF(__pyx_v_x);
45411  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
45412  __Pyx_INCREF(__pyx_v_t);
45413  __Pyx_GIVEREF(__pyx_v_t);
45414  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
45415  __Pyx_INCREF(__pyx_v_n);
45416  __Pyx_GIVEREF(__pyx_v_n);
45417  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
45418  __Pyx_GIVEREF(__pyx_t_4);
45419  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
45420  __pyx_t_4 = 0;
45421  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
45422  __Pyx_GOTREF(__pyx_t_1);
45423  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
45424  }
45425  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45426  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45427 
45428  /* "mprans/BoundaryConditions.py":1526
45429  * uInit = True
45430  * self.tangentialVelocity(x, t, n, uInit)
45431  * self.getVariables(x, t) # <<<<<<<<<<<<<<
45432  * return self.uDir[1]
45433  *
45434  */
45435  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1526, __pyx_L1_error)
45436  __Pyx_GOTREF(__pyx_t_3);
45437  __pyx_t_7 = NULL;
45438  __pyx_t_6 = 0;
45439  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45440  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
45441  if (likely(__pyx_t_7)) {
45442  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45443  __Pyx_INCREF(__pyx_t_7);
45444  __Pyx_INCREF(function);
45445  __Pyx_DECREF_SET(__pyx_t_3, function);
45446  __pyx_t_6 = 1;
45447  }
45448  }
45449  #if CYTHON_FAST_PYCALL
45450  if (PyFunction_Check(__pyx_t_3)) {
45451  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45452  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L1_error)
45453  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45454  __Pyx_GOTREF(__pyx_t_1);
45455  } else
45456  #endif
45457  #if CYTHON_FAST_PYCCALL
45458  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45459  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45460  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L1_error)
45461  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45462  __Pyx_GOTREF(__pyx_t_1);
45463  } else
45464  #endif
45465  {
45466  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1526, __pyx_L1_error)
45467  __Pyx_GOTREF(__pyx_t_4);
45468  if (__pyx_t_7) {
45469  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
45470  }
45471  __Pyx_INCREF(__pyx_v_x);
45472  __Pyx_GIVEREF(__pyx_v_x);
45473  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
45474  __Pyx_INCREF(__pyx_v_t);
45475  __Pyx_GIVEREF(__pyx_v_t);
45476  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
45477  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L1_error)
45478  __Pyx_GOTREF(__pyx_t_1);
45479  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45480  }
45481  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45482  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45483 
45484  /* "mprans/BoundaryConditions.py":1527
45485  * self.tangentialVelocity(x, t, n, uInit)
45486  * self.getVariables(x, t)
45487  * return self.uDir[1] # <<<<<<<<<<<<<<
45488  *
45489  * def get_w_dirichlet(self, x, t, n):
45490  */
45491  __Pyx_XDECREF(__pyx_r);
45492  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_uDir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1527, __pyx_L1_error)
45493  __Pyx_GOTREF(__pyx_t_1);
45494  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1527, __pyx_L1_error)
45495  __Pyx_GOTREF(__pyx_t_3);
45496  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45497  __pyx_r = __pyx_t_3;
45498  __pyx_t_3 = 0;
45499  goto __pyx_L0;
45500 
45501  /* "mprans/BoundaryConditions.py":1520
45502  * return self.uDir[0]
45503  *
45504  * def get_v_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45505  * if t > 0.:
45506  * uInit = False
45507  */
45508 
45509  /* function exit code */
45510  __pyx_L1_error:;
45511  __Pyx_XDECREF(__pyx_t_1);
45512  __Pyx_XDECREF(__pyx_t_3);
45513  __Pyx_XDECREF(__pyx_t_4);
45514  __Pyx_XDECREF(__pyx_t_5);
45515  __Pyx_XDECREF(__pyx_t_7);
45516  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_v_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45517  __pyx_r = NULL;
45518  __pyx_L0:;
45519  __Pyx_XGIVEREF(__pyx_r);
45520  __Pyx_TraceReturn(__pyx_r, 0);
45521  __Pyx_RefNannyFinishContext();
45522  return __pyx_r;
45523 }
45524 
45525 /* "mprans/BoundaryConditions.py":1529
45526  * return self.uDir[1]
45527  *
45528  * def get_w_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45529  * if t > 0.:
45530  * uInit = False
45531  */
45532 
45533 /* Python wrapper */
45534 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_31get_w_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45535 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_30get_w_dirichlet[] = "WallFunctions.get_w_dirichlet(self, x, t, n)";
45536 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_31get_w_dirichlet = {"get_w_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_31get_w_dirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_30get_w_dirichlet};
45537 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_31get_w_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45538  PyObject *__pyx_v_self = 0;
45539  PyObject *__pyx_v_x = 0;
45540  PyObject *__pyx_v_t = 0;
45541  PyObject *__pyx_v_n = 0;
45542  int __pyx_lineno = 0;
45543  const char *__pyx_filename = NULL;
45544  int __pyx_clineno = 0;
45545  PyObject *__pyx_r = 0;
45546  __Pyx_RefNannyDeclarations
45547  __Pyx_RefNannySetupContext("get_w_dirichlet (wrapper)", 0);
45548  {
45549  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
45550  PyObject* values[4] = {0,0,0,0};
45551  if (unlikely(__pyx_kwds)) {
45552  Py_ssize_t kw_args;
45553  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
45554  switch (pos_args) {
45555  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45556  CYTHON_FALLTHROUGH;
45557  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45558  CYTHON_FALLTHROUGH;
45559  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45560  CYTHON_FALLTHROUGH;
45561  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45562  CYTHON_FALLTHROUGH;
45563  case 0: break;
45564  default: goto __pyx_L5_argtuple_error;
45565  }
45566  kw_args = PyDict_Size(__pyx_kwds);
45567  switch (pos_args) {
45568  case 0:
45569  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
45570  else goto __pyx_L5_argtuple_error;
45571  CYTHON_FALLTHROUGH;
45572  case 1:
45573  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
45574  else {
45575  __Pyx_RaiseArgtupleInvalid("get_w_dirichlet", 1, 4, 4, 1); __PYX_ERR(0, 1529, __pyx_L3_error)
45576  }
45577  CYTHON_FALLTHROUGH;
45578  case 2:
45579  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
45580  else {
45581  __Pyx_RaiseArgtupleInvalid("get_w_dirichlet", 1, 4, 4, 2); __PYX_ERR(0, 1529, __pyx_L3_error)
45582  }
45583  CYTHON_FALLTHROUGH;
45584  case 3:
45585  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
45586  else {
45587  __Pyx_RaiseArgtupleInvalid("get_w_dirichlet", 1, 4, 4, 3); __PYX_ERR(0, 1529, __pyx_L3_error)
45588  }
45589  }
45590  if (unlikely(kw_args > 0)) {
45591  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_w_dirichlet") < 0)) __PYX_ERR(0, 1529, __pyx_L3_error)
45592  }
45593  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
45594  goto __pyx_L5_argtuple_error;
45595  } else {
45596  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45597  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45598  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45599  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45600  }
45601  __pyx_v_self = values[0];
45602  __pyx_v_x = values[1];
45603  __pyx_v_t = values[2];
45604  __pyx_v_n = values[3];
45605  }
45606  goto __pyx_L4_argument_unpacking_done;
45607  __pyx_L5_argtuple_error:;
45608  __Pyx_RaiseArgtupleInvalid("get_w_dirichlet", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1529, __pyx_L3_error)
45609  __pyx_L3_error:;
45610  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_w_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45611  __Pyx_RefNannyFinishContext();
45612  return NULL;
45613  __pyx_L4_argument_unpacking_done:;
45614  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_30get_w_dirichlet(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
45615 
45616  /* function exit code */
45617  __Pyx_RefNannyFinishContext();
45618  return __pyx_r;
45619 }
45620 
45621 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_30get_w_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
45622  int __pyx_v_uInit;
45623  PyObject *__pyx_r = NULL;
45624  __Pyx_TraceDeclarations
45625  __Pyx_RefNannyDeclarations
45626  PyObject *__pyx_t_1 = NULL;
45627  int __pyx_t_2;
45628  PyObject *__pyx_t_3 = NULL;
45629  PyObject *__pyx_t_4 = NULL;
45630  PyObject *__pyx_t_5 = NULL;
45631  int __pyx_t_6;
45632  PyObject *__pyx_t_7 = NULL;
45633  int __pyx_lineno = 0;
45634  const char *__pyx_filename = NULL;
45635  int __pyx_clineno = 0;
45636  __Pyx_TraceFrameInit(__pyx_codeobj__123)
45637  __Pyx_RefNannySetupContext("get_w_dirichlet", 0);
45638  __Pyx_TraceCall("get_w_dirichlet", __pyx_f[0], 1529, 0, __PYX_ERR(0, 1529, __pyx_L1_error));
45639 
45640  /* "mprans/BoundaryConditions.py":1530
45641  *
45642  * def get_w_dirichlet(self, x, t, n):
45643  * if t > 0.: # <<<<<<<<<<<<<<
45644  * uInit = False
45645  * else:
45646  */
45647  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1530, __pyx_L1_error)
45648  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1530, __pyx_L1_error)
45649  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45650  if (__pyx_t_2) {
45651 
45652  /* "mprans/BoundaryConditions.py":1531
45653  * def get_w_dirichlet(self, x, t, n):
45654  * if t > 0.:
45655  * uInit = False # <<<<<<<<<<<<<<
45656  * else:
45657  * uInit = True
45658  */
45659  __pyx_v_uInit = 0;
45660 
45661  /* "mprans/BoundaryConditions.py":1530
45662  *
45663  * def get_w_dirichlet(self, x, t, n):
45664  * if t > 0.: # <<<<<<<<<<<<<<
45665  * uInit = False
45666  * else:
45667  */
45668  goto __pyx_L3;
45669  }
45670 
45671  /* "mprans/BoundaryConditions.py":1533
45672  * uInit = False
45673  * else:
45674  * uInit = True # <<<<<<<<<<<<<<
45675  * self.tangentialVelocity(x, t, n, uInit)
45676  * self.getVariables(x, t)
45677  */
45678  /*else*/ {
45679  __pyx_v_uInit = 1;
45680  }
45681  __pyx_L3:;
45682 
45683  /* "mprans/BoundaryConditions.py":1534
45684  * else:
45685  * uInit = True
45686  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
45687  * self.getVariables(x, t)
45688  * return self.uDir[2]
45689  */
45690  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1534, __pyx_L1_error)
45691  __Pyx_GOTREF(__pyx_t_3);
45692  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1534, __pyx_L1_error)
45693  __Pyx_GOTREF(__pyx_t_4);
45694  __pyx_t_5 = NULL;
45695  __pyx_t_6 = 0;
45696  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45697  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
45698  if (likely(__pyx_t_5)) {
45699  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45700  __Pyx_INCREF(__pyx_t_5);
45701  __Pyx_INCREF(function);
45702  __Pyx_DECREF_SET(__pyx_t_3, function);
45703  __pyx_t_6 = 1;
45704  }
45705  }
45706  #if CYTHON_FAST_PYCALL
45707  if (PyFunction_Check(__pyx_t_3)) {
45708  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45709  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1534, __pyx_L1_error)
45710  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45711  __Pyx_GOTREF(__pyx_t_1);
45712  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45713  } else
45714  #endif
45715  #if CYTHON_FAST_PYCCALL
45716  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45717  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
45718  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1534, __pyx_L1_error)
45719  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
45720  __Pyx_GOTREF(__pyx_t_1);
45721  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45722  } else
45723  #endif
45724  {
45725  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1534, __pyx_L1_error)
45726  __Pyx_GOTREF(__pyx_t_7);
45727  if (__pyx_t_5) {
45728  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
45729  }
45730  __Pyx_INCREF(__pyx_v_x);
45731  __Pyx_GIVEREF(__pyx_v_x);
45732  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
45733  __Pyx_INCREF(__pyx_v_t);
45734  __Pyx_GIVEREF(__pyx_v_t);
45735  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
45736  __Pyx_INCREF(__pyx_v_n);
45737  __Pyx_GIVEREF(__pyx_v_n);
45738  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
45739  __Pyx_GIVEREF(__pyx_t_4);
45740  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
45741  __pyx_t_4 = 0;
45742  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1534, __pyx_L1_error)
45743  __Pyx_GOTREF(__pyx_t_1);
45744  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
45745  }
45746  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45747  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45748 
45749  /* "mprans/BoundaryConditions.py":1535
45750  * uInit = True
45751  * self.tangentialVelocity(x, t, n, uInit)
45752  * self.getVariables(x, t) # <<<<<<<<<<<<<<
45753  * return self.uDir[2]
45754  *
45755  */
45756  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1535, __pyx_L1_error)
45757  __Pyx_GOTREF(__pyx_t_3);
45758  __pyx_t_7 = NULL;
45759  __pyx_t_6 = 0;
45760  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
45761  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
45762  if (likely(__pyx_t_7)) {
45763  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
45764  __Pyx_INCREF(__pyx_t_7);
45765  __Pyx_INCREF(function);
45766  __Pyx_DECREF_SET(__pyx_t_3, function);
45767  __pyx_t_6 = 1;
45768  }
45769  }
45770  #if CYTHON_FAST_PYCALL
45771  if (PyFunction_Check(__pyx_t_3)) {
45772  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45773  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
45774  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45775  __Pyx_GOTREF(__pyx_t_1);
45776  } else
45777  #endif
45778  #if CYTHON_FAST_PYCCALL
45779  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
45780  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
45781  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
45782  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
45783  __Pyx_GOTREF(__pyx_t_1);
45784  } else
45785  #endif
45786  {
45787  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1535, __pyx_L1_error)
45788  __Pyx_GOTREF(__pyx_t_4);
45789  if (__pyx_t_7) {
45790  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
45791  }
45792  __Pyx_INCREF(__pyx_v_x);
45793  __Pyx_GIVEREF(__pyx_v_x);
45794  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
45795  __Pyx_INCREF(__pyx_v_t);
45796  __Pyx_GIVEREF(__pyx_v_t);
45797  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
45798  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
45799  __Pyx_GOTREF(__pyx_t_1);
45800  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
45801  }
45802  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45803  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45804 
45805  /* "mprans/BoundaryConditions.py":1536
45806  * self.tangentialVelocity(x, t, n, uInit)
45807  * self.getVariables(x, t)
45808  * return self.uDir[2] # <<<<<<<<<<<<<<
45809  *
45810  * def get_k_dirichlet(self, x, t, n):
45811  */
45812  __Pyx_XDECREF(__pyx_r);
45813  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_uDir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1536, __pyx_L1_error)
45814  __Pyx_GOTREF(__pyx_t_1);
45815  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1536, __pyx_L1_error)
45816  __Pyx_GOTREF(__pyx_t_3);
45817  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45818  __pyx_r = __pyx_t_3;
45819  __pyx_t_3 = 0;
45820  goto __pyx_L0;
45821 
45822  /* "mprans/BoundaryConditions.py":1529
45823  * return self.uDir[1]
45824  *
45825  * def get_w_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45826  * if t > 0.:
45827  * uInit = False
45828  */
45829 
45830  /* function exit code */
45831  __pyx_L1_error:;
45832  __Pyx_XDECREF(__pyx_t_1);
45833  __Pyx_XDECREF(__pyx_t_3);
45834  __Pyx_XDECREF(__pyx_t_4);
45835  __Pyx_XDECREF(__pyx_t_5);
45836  __Pyx_XDECREF(__pyx_t_7);
45837  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_w_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45838  __pyx_r = NULL;
45839  __pyx_L0:;
45840  __Pyx_XGIVEREF(__pyx_r);
45841  __Pyx_TraceReturn(__pyx_r, 0);
45842  __Pyx_RefNannyFinishContext();
45843  return __pyx_r;
45844 }
45845 
45846 /* "mprans/BoundaryConditions.py":1538
45847  * return self.uDir[2]
45848  *
45849  * def get_k_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
45850  * if t > 0.:
45851  * uInit = False
45852  */
45853 
45854 /* Python wrapper */
45855 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_33get_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45856 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_32get_k_dirichlet[] = "WallFunctions.get_k_dirichlet(self, x, t, n)";
45857 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_33get_k_dirichlet = {"get_k_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_33get_k_dirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_32get_k_dirichlet};
45858 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_33get_k_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45859  PyObject *__pyx_v_self = 0;
45860  PyObject *__pyx_v_x = 0;
45861  PyObject *__pyx_v_t = 0;
45862  PyObject *__pyx_v_n = 0;
45863  int __pyx_lineno = 0;
45864  const char *__pyx_filename = NULL;
45865  int __pyx_clineno = 0;
45866  PyObject *__pyx_r = 0;
45867  __Pyx_RefNannyDeclarations
45868  __Pyx_RefNannySetupContext("get_k_dirichlet (wrapper)", 0);
45869  {
45870  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
45871  PyObject* values[4] = {0,0,0,0};
45872  if (unlikely(__pyx_kwds)) {
45873  Py_ssize_t kw_args;
45874  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
45875  switch (pos_args) {
45876  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45877  CYTHON_FALLTHROUGH;
45878  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45879  CYTHON_FALLTHROUGH;
45880  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45881  CYTHON_FALLTHROUGH;
45882  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45883  CYTHON_FALLTHROUGH;
45884  case 0: break;
45885  default: goto __pyx_L5_argtuple_error;
45886  }
45887  kw_args = PyDict_Size(__pyx_kwds);
45888  switch (pos_args) {
45889  case 0:
45890  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
45891  else goto __pyx_L5_argtuple_error;
45892  CYTHON_FALLTHROUGH;
45893  case 1:
45894  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
45895  else {
45896  __Pyx_RaiseArgtupleInvalid("get_k_dirichlet", 1, 4, 4, 1); __PYX_ERR(0, 1538, __pyx_L3_error)
45897  }
45898  CYTHON_FALLTHROUGH;
45899  case 2:
45900  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
45901  else {
45902  __Pyx_RaiseArgtupleInvalid("get_k_dirichlet", 1, 4, 4, 2); __PYX_ERR(0, 1538, __pyx_L3_error)
45903  }
45904  CYTHON_FALLTHROUGH;
45905  case 3:
45906  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
45907  else {
45908  __Pyx_RaiseArgtupleInvalid("get_k_dirichlet", 1, 4, 4, 3); __PYX_ERR(0, 1538, __pyx_L3_error)
45909  }
45910  }
45911  if (unlikely(kw_args > 0)) {
45912  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_k_dirichlet") < 0)) __PYX_ERR(0, 1538, __pyx_L3_error)
45913  }
45914  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
45915  goto __pyx_L5_argtuple_error;
45916  } else {
45917  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45918  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
45919  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
45920  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
45921  }
45922  __pyx_v_self = values[0];
45923  __pyx_v_x = values[1];
45924  __pyx_v_t = values[2];
45925  __pyx_v_n = values[3];
45926  }
45927  goto __pyx_L4_argument_unpacking_done;
45928  __pyx_L5_argtuple_error:;
45929  __Pyx_RaiseArgtupleInvalid("get_k_dirichlet", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1538, __pyx_L3_error)
45930  __pyx_L3_error:;
45931  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
45932  __Pyx_RefNannyFinishContext();
45933  return NULL;
45934  __pyx_L4_argument_unpacking_done:;
45935  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_32get_k_dirichlet(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
45936 
45937  /* function exit code */
45938  __Pyx_RefNannyFinishContext();
45939  return __pyx_r;
45940 }
45941 
45942 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_32get_k_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
45943  int __pyx_v_uInit;
45944  PyObject *__pyx_r = NULL;
45945  __Pyx_TraceDeclarations
45946  __Pyx_RefNannyDeclarations
45947  PyObject *__pyx_t_1 = NULL;
45948  int __pyx_t_2;
45949  PyObject *__pyx_t_3 = NULL;
45950  PyObject *__pyx_t_4 = NULL;
45951  PyObject *__pyx_t_5 = NULL;
45952  int __pyx_t_6;
45953  PyObject *__pyx_t_7 = NULL;
45954  int __pyx_lineno = 0;
45955  const char *__pyx_filename = NULL;
45956  int __pyx_clineno = 0;
45957  __Pyx_TraceFrameInit(__pyx_codeobj__124)
45958  __Pyx_RefNannySetupContext("get_k_dirichlet", 0);
45959  __Pyx_TraceCall("get_k_dirichlet", __pyx_f[0], 1538, 0, __PYX_ERR(0, 1538, __pyx_L1_error));
45960 
45961  /* "mprans/BoundaryConditions.py":1539
45962  *
45963  * def get_k_dirichlet(self, x, t, n):
45964  * if t > 0.: # <<<<<<<<<<<<<<
45965  * uInit = False
45966  * else:
45967  */
45968  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1539, __pyx_L1_error)
45969  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1539, __pyx_L1_error)
45970  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45971  if (__pyx_t_2) {
45972 
45973  /* "mprans/BoundaryConditions.py":1540
45974  * def get_k_dirichlet(self, x, t, n):
45975  * if t > 0.:
45976  * uInit = False # <<<<<<<<<<<<<<
45977  * else:
45978  * uInit = True
45979  */
45980  __pyx_v_uInit = 0;
45981 
45982  /* "mprans/BoundaryConditions.py":1539
45983  *
45984  * def get_k_dirichlet(self, x, t, n):
45985  * if t > 0.: # <<<<<<<<<<<<<<
45986  * uInit = False
45987  * else:
45988  */
45989  goto __pyx_L3;
45990  }
45991 
45992  /* "mprans/BoundaryConditions.py":1542
45993  * uInit = False
45994  * else:
45995  * uInit = True # <<<<<<<<<<<<<<
45996  * self.tangentialVelocity(x, t,n, uInit)
45997  * self.getVariables(x, t)
45998  */
45999  /*else*/ {
46000  __pyx_v_uInit = 1;
46001  }
46002  __pyx_L3:;
46003 
46004  /* "mprans/BoundaryConditions.py":1543
46005  * else:
46006  * uInit = True
46007  * self.tangentialVelocity(x, t,n, uInit) # <<<<<<<<<<<<<<
46008  * self.getVariables(x, t)
46009  * return self.kappa
46010  */
46011  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1543, __pyx_L1_error)
46012  __Pyx_GOTREF(__pyx_t_3);
46013  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1543, __pyx_L1_error)
46014  __Pyx_GOTREF(__pyx_t_4);
46015  __pyx_t_5 = NULL;
46016  __pyx_t_6 = 0;
46017  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46018  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
46019  if (likely(__pyx_t_5)) {
46020  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46021  __Pyx_INCREF(__pyx_t_5);
46022  __Pyx_INCREF(function);
46023  __Pyx_DECREF_SET(__pyx_t_3, function);
46024  __pyx_t_6 = 1;
46025  }
46026  }
46027  #if CYTHON_FAST_PYCALL
46028  if (PyFunction_Check(__pyx_t_3)) {
46029  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46030  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
46031  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46032  __Pyx_GOTREF(__pyx_t_1);
46033  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46034  } else
46035  #endif
46036  #if CYTHON_FAST_PYCCALL
46037  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46038  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46039  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
46040  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46041  __Pyx_GOTREF(__pyx_t_1);
46042  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46043  } else
46044  #endif
46045  {
46046  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1543, __pyx_L1_error)
46047  __Pyx_GOTREF(__pyx_t_7);
46048  if (__pyx_t_5) {
46049  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
46050  }
46051  __Pyx_INCREF(__pyx_v_x);
46052  __Pyx_GIVEREF(__pyx_v_x);
46053  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
46054  __Pyx_INCREF(__pyx_v_t);
46055  __Pyx_GIVEREF(__pyx_v_t);
46056  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
46057  __Pyx_INCREF(__pyx_v_n);
46058  __Pyx_GIVEREF(__pyx_v_n);
46059  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
46060  __Pyx_GIVEREF(__pyx_t_4);
46061  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
46062  __pyx_t_4 = 0;
46063  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
46064  __Pyx_GOTREF(__pyx_t_1);
46065  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46066  }
46067  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46068  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46069 
46070  /* "mprans/BoundaryConditions.py":1544
46071  * uInit = True
46072  * self.tangentialVelocity(x, t,n, uInit)
46073  * self.getVariables(x, t) # <<<<<<<<<<<<<<
46074  * return self.kappa
46075  *
46076  */
46077  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1544, __pyx_L1_error)
46078  __Pyx_GOTREF(__pyx_t_3);
46079  __pyx_t_7 = NULL;
46080  __pyx_t_6 = 0;
46081  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46082  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
46083  if (likely(__pyx_t_7)) {
46084  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46085  __Pyx_INCREF(__pyx_t_7);
46086  __Pyx_INCREF(function);
46087  __Pyx_DECREF_SET(__pyx_t_3, function);
46088  __pyx_t_6 = 1;
46089  }
46090  }
46091  #if CYTHON_FAST_PYCALL
46092  if (PyFunction_Check(__pyx_t_3)) {
46093  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46094  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1544, __pyx_L1_error)
46095  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46096  __Pyx_GOTREF(__pyx_t_1);
46097  } else
46098  #endif
46099  #if CYTHON_FAST_PYCCALL
46100  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46101  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46102  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1544, __pyx_L1_error)
46103  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46104  __Pyx_GOTREF(__pyx_t_1);
46105  } else
46106  #endif
46107  {
46108  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1544, __pyx_L1_error)
46109  __Pyx_GOTREF(__pyx_t_4);
46110  if (__pyx_t_7) {
46111  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
46112  }
46113  __Pyx_INCREF(__pyx_v_x);
46114  __Pyx_GIVEREF(__pyx_v_x);
46115  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
46116  __Pyx_INCREF(__pyx_v_t);
46117  __Pyx_GIVEREF(__pyx_v_t);
46118  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
46119  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1544, __pyx_L1_error)
46120  __Pyx_GOTREF(__pyx_t_1);
46121  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46122  }
46123  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46124  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46125 
46126  /* "mprans/BoundaryConditions.py":1545
46127  * self.tangentialVelocity(x, t,n, uInit)
46128  * self.getVariables(x, t)
46129  * return self.kappa # <<<<<<<<<<<<<<
46130  *
46131  * def get_dissipation_dirichlet(self, x, t, n):
46132  */
46133  __Pyx_XDECREF(__pyx_r);
46134  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1545, __pyx_L1_error)
46135  __Pyx_GOTREF(__pyx_t_1);
46136  __pyx_r = __pyx_t_1;
46137  __pyx_t_1 = 0;
46138  goto __pyx_L0;
46139 
46140  /* "mprans/BoundaryConditions.py":1538
46141  * return self.uDir[2]
46142  *
46143  * def get_k_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
46144  * if t > 0.:
46145  * uInit = False
46146  */
46147 
46148  /* function exit code */
46149  __pyx_L1_error:;
46150  __Pyx_XDECREF(__pyx_t_1);
46151  __Pyx_XDECREF(__pyx_t_3);
46152  __Pyx_XDECREF(__pyx_t_4);
46153  __Pyx_XDECREF(__pyx_t_5);
46154  __Pyx_XDECREF(__pyx_t_7);
46155  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_k_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
46156  __pyx_r = NULL;
46157  __pyx_L0:;
46158  __Pyx_XGIVEREF(__pyx_r);
46159  __Pyx_TraceReturn(__pyx_r, 0);
46160  __Pyx_RefNannyFinishContext();
46161  return __pyx_r;
46162 }
46163 
46164 /* "mprans/BoundaryConditions.py":1547
46165  * return self.kappa
46166  *
46167  * def get_dissipation_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
46168  * if t > 0.:
46169  * uInit = False
46170  */
46171 
46172 /* Python wrapper */
46173 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_35get_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46174 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_34get_dissipation_dirichlet[] = "WallFunctions.get_dissipation_dirichlet(self, x, t, n)";
46175 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_35get_dissipation_dirichlet = {"get_dissipation_dirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_35get_dissipation_dirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_34get_dissipation_dirichlet};
46176 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_35get_dissipation_dirichlet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46177  PyObject *__pyx_v_self = 0;
46178  PyObject *__pyx_v_x = 0;
46179  PyObject *__pyx_v_t = 0;
46180  PyObject *__pyx_v_n = 0;
46181  int __pyx_lineno = 0;
46182  const char *__pyx_filename = NULL;
46183  int __pyx_clineno = 0;
46184  PyObject *__pyx_r = 0;
46185  __Pyx_RefNannyDeclarations
46186  __Pyx_RefNannySetupContext("get_dissipation_dirichlet (wrapper)", 0);
46187  {
46188  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
46189  PyObject* values[4] = {0,0,0,0};
46190  if (unlikely(__pyx_kwds)) {
46191  Py_ssize_t kw_args;
46192  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
46193  switch (pos_args) {
46194  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
46195  CYTHON_FALLTHROUGH;
46196  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
46197  CYTHON_FALLTHROUGH;
46198  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46199  CYTHON_FALLTHROUGH;
46200  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46201  CYTHON_FALLTHROUGH;
46202  case 0: break;
46203  default: goto __pyx_L5_argtuple_error;
46204  }
46205  kw_args = PyDict_Size(__pyx_kwds);
46206  switch (pos_args) {
46207  case 0:
46208  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
46209  else goto __pyx_L5_argtuple_error;
46210  CYTHON_FALLTHROUGH;
46211  case 1:
46212  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
46213  else {
46214  __Pyx_RaiseArgtupleInvalid("get_dissipation_dirichlet", 1, 4, 4, 1); __PYX_ERR(0, 1547, __pyx_L3_error)
46215  }
46216  CYTHON_FALLTHROUGH;
46217  case 2:
46218  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
46219  else {
46220  __Pyx_RaiseArgtupleInvalid("get_dissipation_dirichlet", 1, 4, 4, 2); __PYX_ERR(0, 1547, __pyx_L3_error)
46221  }
46222  CYTHON_FALLTHROUGH;
46223  case 3:
46224  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
46225  else {
46226  __Pyx_RaiseArgtupleInvalid("get_dissipation_dirichlet", 1, 4, 4, 3); __PYX_ERR(0, 1547, __pyx_L3_error)
46227  }
46228  }
46229  if (unlikely(kw_args > 0)) {
46230  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_dissipation_dirichlet") < 0)) __PYX_ERR(0, 1547, __pyx_L3_error)
46231  }
46232  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
46233  goto __pyx_L5_argtuple_error;
46234  } else {
46235  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46236  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46237  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
46238  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
46239  }
46240  __pyx_v_self = values[0];
46241  __pyx_v_x = values[1];
46242  __pyx_v_t = values[2];
46243  __pyx_v_n = values[3];
46244  }
46245  goto __pyx_L4_argument_unpacking_done;
46246  __pyx_L5_argtuple_error:;
46247  __Pyx_RaiseArgtupleInvalid("get_dissipation_dirichlet", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1547, __pyx_L3_error)
46248  __pyx_L3_error:;
46249  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
46250  __Pyx_RefNannyFinishContext();
46251  return NULL;
46252  __pyx_L4_argument_unpacking_done:;
46253  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_34get_dissipation_dirichlet(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
46254 
46255  /* function exit code */
46256  __Pyx_RefNannyFinishContext();
46257  return __pyx_r;
46258 }
46259 
46260 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_34get_dissipation_dirichlet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
46261  int __pyx_v_uInit;
46262  PyObject *__pyx_v_d = NULL;
46263  PyObject *__pyx_r = NULL;
46264  __Pyx_TraceDeclarations
46265  __Pyx_RefNannyDeclarations
46266  PyObject *__pyx_t_1 = NULL;
46267  int __pyx_t_2;
46268  PyObject *__pyx_t_3 = NULL;
46269  PyObject *__pyx_t_4 = NULL;
46270  PyObject *__pyx_t_5 = NULL;
46271  int __pyx_t_6;
46272  PyObject *__pyx_t_7 = NULL;
46273  PyObject *__pyx_t_8 = NULL;
46274  int __pyx_t_9;
46275  int __pyx_lineno = 0;
46276  const char *__pyx_filename = NULL;
46277  int __pyx_clineno = 0;
46278  __Pyx_TraceFrameInit(__pyx_codeobj__125)
46279  __Pyx_RefNannySetupContext("get_dissipation_dirichlet", 0);
46280  __Pyx_TraceCall("get_dissipation_dirichlet", __pyx_f[0], 1547, 0, __PYX_ERR(0, 1547, __pyx_L1_error));
46281 
46282  /* "mprans/BoundaryConditions.py":1548
46283  *
46284  * def get_dissipation_dirichlet(self, x, t, n):
46285  * if t > 0.: # <<<<<<<<<<<<<<
46286  * uInit = False
46287  * else:
46288  */
46289  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1548, __pyx_L1_error)
46290  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1548, __pyx_L1_error)
46291  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46292  if (__pyx_t_2) {
46293 
46294  /* "mprans/BoundaryConditions.py":1549
46295  * def get_dissipation_dirichlet(self, x, t, n):
46296  * if t > 0.:
46297  * uInit = False # <<<<<<<<<<<<<<
46298  * else:
46299  * uInit = True
46300  */
46301  __pyx_v_uInit = 0;
46302 
46303  /* "mprans/BoundaryConditions.py":1548
46304  *
46305  * def get_dissipation_dirichlet(self, x, t, n):
46306  * if t > 0.: # <<<<<<<<<<<<<<
46307  * uInit = False
46308  * else:
46309  */
46310  goto __pyx_L3;
46311  }
46312 
46313  /* "mprans/BoundaryConditions.py":1551
46314  * uInit = False
46315  * else:
46316  * uInit = True # <<<<<<<<<<<<<<
46317  * self.tangentialVelocity(x, t, n, uInit)
46318  * self.getVariables(x, t)
46319  */
46320  /*else*/ {
46321  __pyx_v_uInit = 1;
46322  }
46323  __pyx_L3:;
46324 
46325  /* "mprans/BoundaryConditions.py":1552
46326  * else:
46327  * uInit = True
46328  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
46329  * self.getVariables(x, t)
46330  * d = 0.
46331  */
46332  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1552, __pyx_L1_error)
46333  __Pyx_GOTREF(__pyx_t_3);
46334  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1552, __pyx_L1_error)
46335  __Pyx_GOTREF(__pyx_t_4);
46336  __pyx_t_5 = NULL;
46337  __pyx_t_6 = 0;
46338  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46339  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
46340  if (likely(__pyx_t_5)) {
46341  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46342  __Pyx_INCREF(__pyx_t_5);
46343  __Pyx_INCREF(function);
46344  __Pyx_DECREF_SET(__pyx_t_3, function);
46345  __pyx_t_6 = 1;
46346  }
46347  }
46348  #if CYTHON_FAST_PYCALL
46349  if (PyFunction_Check(__pyx_t_3)) {
46350  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46351  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1552, __pyx_L1_error)
46352  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46353  __Pyx_GOTREF(__pyx_t_1);
46354  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46355  } else
46356  #endif
46357  #if CYTHON_FAST_PYCCALL
46358  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46359  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46360  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1552, __pyx_L1_error)
46361  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46362  __Pyx_GOTREF(__pyx_t_1);
46363  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46364  } else
46365  #endif
46366  {
46367  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1552, __pyx_L1_error)
46368  __Pyx_GOTREF(__pyx_t_7);
46369  if (__pyx_t_5) {
46370  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
46371  }
46372  __Pyx_INCREF(__pyx_v_x);
46373  __Pyx_GIVEREF(__pyx_v_x);
46374  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
46375  __Pyx_INCREF(__pyx_v_t);
46376  __Pyx_GIVEREF(__pyx_v_t);
46377  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
46378  __Pyx_INCREF(__pyx_v_n);
46379  __Pyx_GIVEREF(__pyx_v_n);
46380  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
46381  __Pyx_GIVEREF(__pyx_t_4);
46382  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
46383  __pyx_t_4 = 0;
46384  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1552, __pyx_L1_error)
46385  __Pyx_GOTREF(__pyx_t_1);
46386  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46387  }
46388  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46389  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46390 
46391  /* "mprans/BoundaryConditions.py":1553
46392  * uInit = True
46393  * self.tangentialVelocity(x, t, n, uInit)
46394  * self.getVariables(x, t) # <<<<<<<<<<<<<<
46395  * d = 0.
46396  * if self.turbModel == 'ke':
46397  */
46398  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1553, __pyx_L1_error)
46399  __Pyx_GOTREF(__pyx_t_3);
46400  __pyx_t_7 = NULL;
46401  __pyx_t_6 = 0;
46402  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46403  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
46404  if (likely(__pyx_t_7)) {
46405  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46406  __Pyx_INCREF(__pyx_t_7);
46407  __Pyx_INCREF(function);
46408  __Pyx_DECREF_SET(__pyx_t_3, function);
46409  __pyx_t_6 = 1;
46410  }
46411  }
46412  #if CYTHON_FAST_PYCALL
46413  if (PyFunction_Check(__pyx_t_3)) {
46414  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46415  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
46416  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46417  __Pyx_GOTREF(__pyx_t_1);
46418  } else
46419  #endif
46420  #if CYTHON_FAST_PYCCALL
46421  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46422  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46423  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
46424  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46425  __Pyx_GOTREF(__pyx_t_1);
46426  } else
46427  #endif
46428  {
46429  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1553, __pyx_L1_error)
46430  __Pyx_GOTREF(__pyx_t_4);
46431  if (__pyx_t_7) {
46432  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
46433  }
46434  __Pyx_INCREF(__pyx_v_x);
46435  __Pyx_GIVEREF(__pyx_v_x);
46436  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
46437  __Pyx_INCREF(__pyx_v_t);
46438  __Pyx_GIVEREF(__pyx_v_t);
46439  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
46440  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
46441  __Pyx_GOTREF(__pyx_t_1);
46442  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46443  }
46444  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46445  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46446 
46447  /* "mprans/BoundaryConditions.py":1554
46448  * self.tangentialVelocity(x, t, n, uInit)
46449  * self.getVariables(x, t)
46450  * d = 0. # <<<<<<<<<<<<<<
46451  * if self.turbModel == 'ke':
46452  * d = old_div((self.utStar**3), (self.K * self.Y))
46453  */
46454  __Pyx_INCREF(__pyx_float_0_);
46455  __pyx_v_d = __pyx_float_0_;
46456 
46457  /* "mprans/BoundaryConditions.py":1555
46458  * self.getVariables(x, t)
46459  * d = 0.
46460  * if self.turbModel == 'ke': # <<<<<<<<<<<<<<
46461  * d = old_div((self.utStar**3), (self.K * self.Y))
46462  * elif self.turbModel == 'kw' and self.kappa > 0.:
46463  */
46464  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_turbModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1555, __pyx_L1_error)
46465  __Pyx_GOTREF(__pyx_t_1);
46466  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_ke, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1555, __pyx_L1_error)
46467  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46468  if (__pyx_t_2) {
46469 
46470  /* "mprans/BoundaryConditions.py":1556
46471  * d = 0.
46472  * if self.turbModel == 'ke':
46473  * d = old_div((self.utStar**3), (self.K * self.Y)) # <<<<<<<<<<<<<<
46474  * elif self.turbModel == 'kw' and self.kappa > 0.:
46475  * d = old_div(np.sqrt(self.kappa), (self.K * self.Y * (self.Cmu**0.25)))
46476  */
46477  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_old_div); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1556, __pyx_L1_error)
46478  __Pyx_GOTREF(__pyx_t_3);
46479  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_utStar); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1556, __pyx_L1_error)
46480  __Pyx_GOTREF(__pyx_t_4);
46481  __pyx_t_7 = PyNumber_Power(__pyx_t_4, __pyx_int_3, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1556, __pyx_L1_error)
46482  __Pyx_GOTREF(__pyx_t_7);
46483  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46484  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_K); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1556, __pyx_L1_error)
46485  __Pyx_GOTREF(__pyx_t_4);
46486  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1556, __pyx_L1_error)
46487  __Pyx_GOTREF(__pyx_t_5);
46488  __pyx_t_8 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1556, __pyx_L1_error)
46489  __Pyx_GOTREF(__pyx_t_8);
46490  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46491  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
46492  __pyx_t_5 = NULL;
46493  __pyx_t_6 = 0;
46494  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
46495  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
46496  if (likely(__pyx_t_5)) {
46497  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46498  __Pyx_INCREF(__pyx_t_5);
46499  __Pyx_INCREF(function);
46500  __Pyx_DECREF_SET(__pyx_t_3, function);
46501  __pyx_t_6 = 1;
46502  }
46503  }
46504  #if CYTHON_FAST_PYCALL
46505  if (PyFunction_Check(__pyx_t_3)) {
46506  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_t_8};
46507  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
46508  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46509  __Pyx_GOTREF(__pyx_t_1);
46510  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46511  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46512  } else
46513  #endif
46514  #if CYTHON_FAST_PYCCALL
46515  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46516  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_t_8};
46517  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
46518  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46519  __Pyx_GOTREF(__pyx_t_1);
46520  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46521  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46522  } else
46523  #endif
46524  {
46525  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1556, __pyx_L1_error)
46526  __Pyx_GOTREF(__pyx_t_4);
46527  if (__pyx_t_5) {
46528  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
46529  }
46530  __Pyx_GIVEREF(__pyx_t_7);
46531  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7);
46532  __Pyx_GIVEREF(__pyx_t_8);
46533  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_8);
46534  __pyx_t_7 = 0;
46535  __pyx_t_8 = 0;
46536  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
46537  __Pyx_GOTREF(__pyx_t_1);
46538  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46539  }
46540  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46541  __Pyx_DECREF_SET(__pyx_v_d, __pyx_t_1);
46542  __pyx_t_1 = 0;
46543 
46544  /* "mprans/BoundaryConditions.py":1555
46545  * self.getVariables(x, t)
46546  * d = 0.
46547  * if self.turbModel == 'ke': # <<<<<<<<<<<<<<
46548  * d = old_div((self.utStar**3), (self.K * self.Y))
46549  * elif self.turbModel == 'kw' and self.kappa > 0.:
46550  */
46551  goto __pyx_L4;
46552  }
46553 
46554  /* "mprans/BoundaryConditions.py":1557
46555  * if self.turbModel == 'ke':
46556  * d = old_div((self.utStar**3), (self.K * self.Y))
46557  * elif self.turbModel == 'kw' and self.kappa > 0.: # <<<<<<<<<<<<<<
46558  * d = old_div(np.sqrt(self.kappa), (self.K * self.Y * (self.Cmu**0.25)))
46559  * return d
46560  */
46561  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_turbModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1557, __pyx_L1_error)
46562  __Pyx_GOTREF(__pyx_t_1);
46563  __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_kw, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1557, __pyx_L1_error)
46564  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46565  if (__pyx_t_9) {
46566  } else {
46567  __pyx_t_2 = __pyx_t_9;
46568  goto __pyx_L5_bool_binop_done;
46569  }
46570  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1557, __pyx_L1_error)
46571  __Pyx_GOTREF(__pyx_t_1);
46572  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1557, __pyx_L1_error)
46573  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46574  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1557, __pyx_L1_error)
46575  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46576  __pyx_t_2 = __pyx_t_9;
46577  __pyx_L5_bool_binop_done:;
46578  if (__pyx_t_2) {
46579 
46580  /* "mprans/BoundaryConditions.py":1558
46581  * d = old_div((self.utStar**3), (self.K * self.Y))
46582  * elif self.turbModel == 'kw' and self.kappa > 0.:
46583  * d = old_div(np.sqrt(self.kappa), (self.K * self.Y * (self.Cmu**0.25))) # <<<<<<<<<<<<<<
46584  * return d
46585  *
46586  */
46587  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_old_div); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1558, __pyx_L1_error)
46588  __Pyx_GOTREF(__pyx_t_1);
46589  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1558, __pyx_L1_error)
46590  __Pyx_GOTREF(__pyx_t_8);
46591  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1558, __pyx_L1_error)
46592  __Pyx_GOTREF(__pyx_t_7);
46593  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46594  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappa); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1558, __pyx_L1_error)
46595  __Pyx_GOTREF(__pyx_t_8);
46596  __pyx_t_5 = NULL;
46597  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
46598  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
46599  if (likely(__pyx_t_5)) {
46600  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
46601  __Pyx_INCREF(__pyx_t_5);
46602  __Pyx_INCREF(function);
46603  __Pyx_DECREF_SET(__pyx_t_7, function);
46604  }
46605  }
46606  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
46607  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46608  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46609  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1558, __pyx_L1_error)
46610  __Pyx_GOTREF(__pyx_t_4);
46611  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46612  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_K); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1558, __pyx_L1_error)
46613  __Pyx_GOTREF(__pyx_t_7);
46614  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1558, __pyx_L1_error)
46615  __Pyx_GOTREF(__pyx_t_8);
46616  __pyx_t_5 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1558, __pyx_L1_error)
46617  __Pyx_GOTREF(__pyx_t_5);
46618  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46619  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46620  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Cmu); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1558, __pyx_L1_error)
46621  __Pyx_GOTREF(__pyx_t_8);
46622  __pyx_t_7 = PyNumber_Power(__pyx_t_8, __pyx_float_0_25, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1558, __pyx_L1_error)
46623  __Pyx_GOTREF(__pyx_t_7);
46624  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46625  __pyx_t_8 = PyNumber_Multiply(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1558, __pyx_L1_error)
46626  __Pyx_GOTREF(__pyx_t_8);
46627  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
46628  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46629  __pyx_t_7 = NULL;
46630  __pyx_t_6 = 0;
46631  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
46632  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
46633  if (likely(__pyx_t_7)) {
46634  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
46635  __Pyx_INCREF(__pyx_t_7);
46636  __Pyx_INCREF(function);
46637  __Pyx_DECREF_SET(__pyx_t_1, function);
46638  __pyx_t_6 = 1;
46639  }
46640  }
46641  #if CYTHON_FAST_PYCALL
46642  if (PyFunction_Check(__pyx_t_1)) {
46643  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_8};
46644  __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
46645  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46646  __Pyx_GOTREF(__pyx_t_3);
46647  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46648  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46649  } else
46650  #endif
46651  #if CYTHON_FAST_PYCCALL
46652  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
46653  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_8};
46654  __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
46655  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46656  __Pyx_GOTREF(__pyx_t_3);
46657  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46658  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
46659  } else
46660  #endif
46661  {
46662  __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1558, __pyx_L1_error)
46663  __Pyx_GOTREF(__pyx_t_5);
46664  if (__pyx_t_7) {
46665  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
46666  }
46667  __Pyx_GIVEREF(__pyx_t_4);
46668  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_4);
46669  __Pyx_GIVEREF(__pyx_t_8);
46670  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_8);
46671  __pyx_t_4 = 0;
46672  __pyx_t_8 = 0;
46673  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
46674  __Pyx_GOTREF(__pyx_t_3);
46675  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
46676  }
46677  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46678  __Pyx_DECREF_SET(__pyx_v_d, __pyx_t_3);
46679  __pyx_t_3 = 0;
46680 
46681  /* "mprans/BoundaryConditions.py":1557
46682  * if self.turbModel == 'ke':
46683  * d = old_div((self.utStar**3), (self.K * self.Y))
46684  * elif self.turbModel == 'kw' and self.kappa > 0.: # <<<<<<<<<<<<<<
46685  * d = old_div(np.sqrt(self.kappa), (self.K * self.Y * (self.Cmu**0.25)))
46686  * return d
46687  */
46688  }
46689  __pyx_L4:;
46690 
46691  /* "mprans/BoundaryConditions.py":1559
46692  * elif self.turbModel == 'kw' and self.kappa > 0.:
46693  * d = old_div(np.sqrt(self.kappa), (self.K * self.Y * (self.Cmu**0.25)))
46694  * return d # <<<<<<<<<<<<<<
46695  *
46696  * def get_u_diffusive(self, x, t, n):
46697  */
46698  __Pyx_XDECREF(__pyx_r);
46699  __Pyx_INCREF(__pyx_v_d);
46700  __pyx_r = __pyx_v_d;
46701  goto __pyx_L0;
46702 
46703  /* "mprans/BoundaryConditions.py":1547
46704  * return self.kappa
46705  *
46706  * def get_dissipation_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
46707  * if t > 0.:
46708  * uInit = False
46709  */
46710 
46711  /* function exit code */
46712  __pyx_L1_error:;
46713  __Pyx_XDECREF(__pyx_t_1);
46714  __Pyx_XDECREF(__pyx_t_3);
46715  __Pyx_XDECREF(__pyx_t_4);
46716  __Pyx_XDECREF(__pyx_t_5);
46717  __Pyx_XDECREF(__pyx_t_7);
46718  __Pyx_XDECREF(__pyx_t_8);
46719  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_dissipation_dirichlet", __pyx_clineno, __pyx_lineno, __pyx_filename);
46720  __pyx_r = NULL;
46721  __pyx_L0:;
46722  __Pyx_XDECREF(__pyx_v_d);
46723  __Pyx_XGIVEREF(__pyx_r);
46724  __Pyx_TraceReturn(__pyx_r, 0);
46725  __Pyx_RefNannyFinishContext();
46726  return __pyx_r;
46727 }
46728 
46729 /* "mprans/BoundaryConditions.py":1561
46730  * return d
46731  *
46732  * def get_u_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
46733  * if t > 0.:
46734  * uInit = False
46735  */
46736 
46737 /* Python wrapper */
46738 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_37get_u_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46739 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_36get_u_diffusive[] = "WallFunctions.get_u_diffusive(self, x, t, n)";
46740 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_37get_u_diffusive = {"get_u_diffusive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_37get_u_diffusive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_36get_u_diffusive};
46741 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_37get_u_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46742  PyObject *__pyx_v_self = 0;
46743  PyObject *__pyx_v_x = 0;
46744  PyObject *__pyx_v_t = 0;
46745  PyObject *__pyx_v_n = 0;
46746  int __pyx_lineno = 0;
46747  const char *__pyx_filename = NULL;
46748  int __pyx_clineno = 0;
46749  PyObject *__pyx_r = 0;
46750  __Pyx_RefNannyDeclarations
46751  __Pyx_RefNannySetupContext("get_u_diffusive (wrapper)", 0);
46752  {
46753  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
46754  PyObject* values[4] = {0,0,0,0};
46755  if (unlikely(__pyx_kwds)) {
46756  Py_ssize_t kw_args;
46757  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
46758  switch (pos_args) {
46759  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
46760  CYTHON_FALLTHROUGH;
46761  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
46762  CYTHON_FALLTHROUGH;
46763  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46764  CYTHON_FALLTHROUGH;
46765  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46766  CYTHON_FALLTHROUGH;
46767  case 0: break;
46768  default: goto __pyx_L5_argtuple_error;
46769  }
46770  kw_args = PyDict_Size(__pyx_kwds);
46771  switch (pos_args) {
46772  case 0:
46773  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
46774  else goto __pyx_L5_argtuple_error;
46775  CYTHON_FALLTHROUGH;
46776  case 1:
46777  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
46778  else {
46779  __Pyx_RaiseArgtupleInvalid("get_u_diffusive", 1, 4, 4, 1); __PYX_ERR(0, 1561, __pyx_L3_error)
46780  }
46781  CYTHON_FALLTHROUGH;
46782  case 2:
46783  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
46784  else {
46785  __Pyx_RaiseArgtupleInvalid("get_u_diffusive", 1, 4, 4, 2); __PYX_ERR(0, 1561, __pyx_L3_error)
46786  }
46787  CYTHON_FALLTHROUGH;
46788  case 3:
46789  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
46790  else {
46791  __Pyx_RaiseArgtupleInvalid("get_u_diffusive", 1, 4, 4, 3); __PYX_ERR(0, 1561, __pyx_L3_error)
46792  }
46793  }
46794  if (unlikely(kw_args > 0)) {
46795  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_u_diffusive") < 0)) __PYX_ERR(0, 1561, __pyx_L3_error)
46796  }
46797  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
46798  goto __pyx_L5_argtuple_error;
46799  } else {
46800  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46801  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46802  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
46803  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
46804  }
46805  __pyx_v_self = values[0];
46806  __pyx_v_x = values[1];
46807  __pyx_v_t = values[2];
46808  __pyx_v_n = values[3];
46809  }
46810  goto __pyx_L4_argument_unpacking_done;
46811  __pyx_L5_argtuple_error:;
46812  __Pyx_RaiseArgtupleInvalid("get_u_diffusive", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1561, __pyx_L3_error)
46813  __pyx_L3_error:;
46814  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_u_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
46815  __Pyx_RefNannyFinishContext();
46816  return NULL;
46817  __pyx_L4_argument_unpacking_done:;
46818  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_36get_u_diffusive(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
46819 
46820  /* function exit code */
46821  __Pyx_RefNannyFinishContext();
46822  return __pyx_r;
46823 }
46824 
46825 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_36get_u_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
46826  int __pyx_v_uInit;
46827  PyObject *__pyx_v_gradU = NULL;
46828  PyObject *__pyx_r = NULL;
46829  __Pyx_TraceDeclarations
46830  __Pyx_RefNannyDeclarations
46831  PyObject *__pyx_t_1 = NULL;
46832  int __pyx_t_2;
46833  PyObject *__pyx_t_3 = NULL;
46834  PyObject *__pyx_t_4 = NULL;
46835  PyObject *__pyx_t_5 = NULL;
46836  int __pyx_t_6;
46837  PyObject *__pyx_t_7 = NULL;
46838  int __pyx_lineno = 0;
46839  const char *__pyx_filename = NULL;
46840  int __pyx_clineno = 0;
46841  __Pyx_TraceFrameInit(__pyx_codeobj__126)
46842  __Pyx_RefNannySetupContext("get_u_diffusive", 0);
46843  __Pyx_TraceCall("get_u_diffusive", __pyx_f[0], 1561, 0, __PYX_ERR(0, 1561, __pyx_L1_error));
46844 
46845  /* "mprans/BoundaryConditions.py":1562
46846  *
46847  * def get_u_diffusive(self, x, t, n):
46848  * if t > 0.: # <<<<<<<<<<<<<<
46849  * uInit = False
46850  * else:
46851  */
46852  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1562, __pyx_L1_error)
46853  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1562, __pyx_L1_error)
46854  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46855  if (__pyx_t_2) {
46856 
46857  /* "mprans/BoundaryConditions.py":1563
46858  * def get_u_diffusive(self, x, t, n):
46859  * if t > 0.:
46860  * uInit = False # <<<<<<<<<<<<<<
46861  * else:
46862  * uInit = True
46863  */
46864  __pyx_v_uInit = 0;
46865 
46866  /* "mprans/BoundaryConditions.py":1562
46867  *
46868  * def get_u_diffusive(self, x, t, n):
46869  * if t > 0.: # <<<<<<<<<<<<<<
46870  * uInit = False
46871  * else:
46872  */
46873  goto __pyx_L3;
46874  }
46875 
46876  /* "mprans/BoundaryConditions.py":1565
46877  * uInit = False
46878  * else:
46879  * uInit = True # <<<<<<<<<<<<<<
46880  * self.tangentialVelocity(x, t, n, uInit)
46881  * self.getVariables(x, t)
46882  */
46883  /*else*/ {
46884  __pyx_v_uInit = 1;
46885  }
46886  __pyx_L3:;
46887 
46888  /* "mprans/BoundaryConditions.py":1566
46889  * else:
46890  * uInit = True
46891  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
46892  * self.getVariables(x, t)
46893  * gradU = self.gradU[0]
46894  */
46895  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1566, __pyx_L1_error)
46896  __Pyx_GOTREF(__pyx_t_3);
46897  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1566, __pyx_L1_error)
46898  __Pyx_GOTREF(__pyx_t_4);
46899  __pyx_t_5 = NULL;
46900  __pyx_t_6 = 0;
46901  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46902  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
46903  if (likely(__pyx_t_5)) {
46904  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46905  __Pyx_INCREF(__pyx_t_5);
46906  __Pyx_INCREF(function);
46907  __Pyx_DECREF_SET(__pyx_t_3, function);
46908  __pyx_t_6 = 1;
46909  }
46910  }
46911  #if CYTHON_FAST_PYCALL
46912  if (PyFunction_Check(__pyx_t_3)) {
46913  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46914  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1566, __pyx_L1_error)
46915  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46916  __Pyx_GOTREF(__pyx_t_1);
46917  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46918  } else
46919  #endif
46920  #if CYTHON_FAST_PYCCALL
46921  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46922  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
46923  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1566, __pyx_L1_error)
46924  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
46925  __Pyx_GOTREF(__pyx_t_1);
46926  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
46927  } else
46928  #endif
46929  {
46930  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1566, __pyx_L1_error)
46931  __Pyx_GOTREF(__pyx_t_7);
46932  if (__pyx_t_5) {
46933  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
46934  }
46935  __Pyx_INCREF(__pyx_v_x);
46936  __Pyx_GIVEREF(__pyx_v_x);
46937  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
46938  __Pyx_INCREF(__pyx_v_t);
46939  __Pyx_GIVEREF(__pyx_v_t);
46940  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
46941  __Pyx_INCREF(__pyx_v_n);
46942  __Pyx_GIVEREF(__pyx_v_n);
46943  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
46944  __Pyx_GIVEREF(__pyx_t_4);
46945  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
46946  __pyx_t_4 = 0;
46947  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1566, __pyx_L1_error)
46948  __Pyx_GOTREF(__pyx_t_1);
46949  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
46950  }
46951  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46952  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46953 
46954  /* "mprans/BoundaryConditions.py":1567
46955  * uInit = True
46956  * self.tangentialVelocity(x, t, n, uInit)
46957  * self.getVariables(x, t) # <<<<<<<<<<<<<<
46958  * gradU = self.gradU[0]
46959  * return gradU
46960  */
46961  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1567, __pyx_L1_error)
46962  __Pyx_GOTREF(__pyx_t_3);
46963  __pyx_t_7 = NULL;
46964  __pyx_t_6 = 0;
46965  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
46966  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
46967  if (likely(__pyx_t_7)) {
46968  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
46969  __Pyx_INCREF(__pyx_t_7);
46970  __Pyx_INCREF(function);
46971  __Pyx_DECREF_SET(__pyx_t_3, function);
46972  __pyx_t_6 = 1;
46973  }
46974  }
46975  #if CYTHON_FAST_PYCALL
46976  if (PyFunction_Check(__pyx_t_3)) {
46977  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46978  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1567, __pyx_L1_error)
46979  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46980  __Pyx_GOTREF(__pyx_t_1);
46981  } else
46982  #endif
46983  #if CYTHON_FAST_PYCCALL
46984  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
46985  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
46986  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1567, __pyx_L1_error)
46987  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
46988  __Pyx_GOTREF(__pyx_t_1);
46989  } else
46990  #endif
46991  {
46992  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1567, __pyx_L1_error)
46993  __Pyx_GOTREF(__pyx_t_4);
46994  if (__pyx_t_7) {
46995  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
46996  }
46997  __Pyx_INCREF(__pyx_v_x);
46998  __Pyx_GIVEREF(__pyx_v_x);
46999  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
47000  __Pyx_INCREF(__pyx_v_t);
47001  __Pyx_GIVEREF(__pyx_v_t);
47002  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
47003  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1567, __pyx_L1_error)
47004  __Pyx_GOTREF(__pyx_t_1);
47005  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47006  }
47007  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
47008  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47009 
47010  /* "mprans/BoundaryConditions.py":1568
47011  * self.tangentialVelocity(x, t, n, uInit)
47012  * self.getVariables(x, t)
47013  * gradU = self.gradU[0] # <<<<<<<<<<<<<<
47014  * return gradU
47015  *
47016  */
47017  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_gradU); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1568, __pyx_L1_error)
47018  __Pyx_GOTREF(__pyx_t_1);
47019  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1568, __pyx_L1_error)
47020  __Pyx_GOTREF(__pyx_t_3);
47021  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47022  __pyx_v_gradU = __pyx_t_3;
47023  __pyx_t_3 = 0;
47024 
47025  /* "mprans/BoundaryConditions.py":1569
47026  * self.getVariables(x, t)
47027  * gradU = self.gradU[0]
47028  * return gradU # <<<<<<<<<<<<<<
47029  *
47030  * def get_v_diffusive(self, x, t, n ):
47031  */
47032  __Pyx_XDECREF(__pyx_r);
47033  __Pyx_INCREF(__pyx_v_gradU);
47034  __pyx_r = __pyx_v_gradU;
47035  goto __pyx_L0;
47036 
47037  /* "mprans/BoundaryConditions.py":1561
47038  * return d
47039  *
47040  * def get_u_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
47041  * if t > 0.:
47042  * uInit = False
47043  */
47044 
47045  /* function exit code */
47046  __pyx_L1_error:;
47047  __Pyx_XDECREF(__pyx_t_1);
47048  __Pyx_XDECREF(__pyx_t_3);
47049  __Pyx_XDECREF(__pyx_t_4);
47050  __Pyx_XDECREF(__pyx_t_5);
47051  __Pyx_XDECREF(__pyx_t_7);
47052  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_u_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
47053  __pyx_r = NULL;
47054  __pyx_L0:;
47055  __Pyx_XDECREF(__pyx_v_gradU);
47056  __Pyx_XGIVEREF(__pyx_r);
47057  __Pyx_TraceReturn(__pyx_r, 0);
47058  __Pyx_RefNannyFinishContext();
47059  return __pyx_r;
47060 }
47061 
47062 /* "mprans/BoundaryConditions.py":1571
47063  * return gradU
47064  *
47065  * def get_v_diffusive(self, x, t, n ): # <<<<<<<<<<<<<<
47066  * if t > 0.:
47067  * uInit = False
47068  */
47069 
47070 /* Python wrapper */
47071 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_39get_v_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47072 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_38get_v_diffusive[] = "WallFunctions.get_v_diffusive(self, x, t, n)";
47073 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_39get_v_diffusive = {"get_v_diffusive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_39get_v_diffusive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_38get_v_diffusive};
47074 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_39get_v_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47075  PyObject *__pyx_v_self = 0;
47076  PyObject *__pyx_v_x = 0;
47077  PyObject *__pyx_v_t = 0;
47078  PyObject *__pyx_v_n = 0;
47079  int __pyx_lineno = 0;
47080  const char *__pyx_filename = NULL;
47081  int __pyx_clineno = 0;
47082  PyObject *__pyx_r = 0;
47083  __Pyx_RefNannyDeclarations
47084  __Pyx_RefNannySetupContext("get_v_diffusive (wrapper)", 0);
47085  {
47086  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
47087  PyObject* values[4] = {0,0,0,0};
47088  if (unlikely(__pyx_kwds)) {
47089  Py_ssize_t kw_args;
47090  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
47091  switch (pos_args) {
47092  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47093  CYTHON_FALLTHROUGH;
47094  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47095  CYTHON_FALLTHROUGH;
47096  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47097  CYTHON_FALLTHROUGH;
47098  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47099  CYTHON_FALLTHROUGH;
47100  case 0: break;
47101  default: goto __pyx_L5_argtuple_error;
47102  }
47103  kw_args = PyDict_Size(__pyx_kwds);
47104  switch (pos_args) {
47105  case 0:
47106  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
47107  else goto __pyx_L5_argtuple_error;
47108  CYTHON_FALLTHROUGH;
47109  case 1:
47110  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
47111  else {
47112  __Pyx_RaiseArgtupleInvalid("get_v_diffusive", 1, 4, 4, 1); __PYX_ERR(0, 1571, __pyx_L3_error)
47113  }
47114  CYTHON_FALLTHROUGH;
47115  case 2:
47116  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
47117  else {
47118  __Pyx_RaiseArgtupleInvalid("get_v_diffusive", 1, 4, 4, 2); __PYX_ERR(0, 1571, __pyx_L3_error)
47119  }
47120  CYTHON_FALLTHROUGH;
47121  case 3:
47122  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
47123  else {
47124  __Pyx_RaiseArgtupleInvalid("get_v_diffusive", 1, 4, 4, 3); __PYX_ERR(0, 1571, __pyx_L3_error)
47125  }
47126  }
47127  if (unlikely(kw_args > 0)) {
47128  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_v_diffusive") < 0)) __PYX_ERR(0, 1571, __pyx_L3_error)
47129  }
47130  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
47131  goto __pyx_L5_argtuple_error;
47132  } else {
47133  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47134  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47135  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47136  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47137  }
47138  __pyx_v_self = values[0];
47139  __pyx_v_x = values[1];
47140  __pyx_v_t = values[2];
47141  __pyx_v_n = values[3];
47142  }
47143  goto __pyx_L4_argument_unpacking_done;
47144  __pyx_L5_argtuple_error:;
47145  __Pyx_RaiseArgtupleInvalid("get_v_diffusive", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1571, __pyx_L3_error)
47146  __pyx_L3_error:;
47147  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_v_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
47148  __Pyx_RefNannyFinishContext();
47149  return NULL;
47150  __pyx_L4_argument_unpacking_done:;
47151  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_38get_v_diffusive(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
47152 
47153  /* function exit code */
47154  __Pyx_RefNannyFinishContext();
47155  return __pyx_r;
47156 }
47157 
47158 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_38get_v_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
47159  int __pyx_v_uInit;
47160  PyObject *__pyx_v_gradU = NULL;
47161  PyObject *__pyx_r = NULL;
47162  __Pyx_TraceDeclarations
47163  __Pyx_RefNannyDeclarations
47164  PyObject *__pyx_t_1 = NULL;
47165  int __pyx_t_2;
47166  PyObject *__pyx_t_3 = NULL;
47167  PyObject *__pyx_t_4 = NULL;
47168  PyObject *__pyx_t_5 = NULL;
47169  int __pyx_t_6;
47170  PyObject *__pyx_t_7 = NULL;
47171  int __pyx_lineno = 0;
47172  const char *__pyx_filename = NULL;
47173  int __pyx_clineno = 0;
47174  __Pyx_TraceFrameInit(__pyx_codeobj__127)
47175  __Pyx_RefNannySetupContext("get_v_diffusive", 0);
47176  __Pyx_TraceCall("get_v_diffusive", __pyx_f[0], 1571, 0, __PYX_ERR(0, 1571, __pyx_L1_error));
47177 
47178  /* "mprans/BoundaryConditions.py":1572
47179  *
47180  * def get_v_diffusive(self, x, t, n ):
47181  * if t > 0.: # <<<<<<<<<<<<<<
47182  * uInit = False
47183  * else:
47184  */
47185  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
47186  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1572, __pyx_L1_error)
47187  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47188  if (__pyx_t_2) {
47189 
47190  /* "mprans/BoundaryConditions.py":1573
47191  * def get_v_diffusive(self, x, t, n ):
47192  * if t > 0.:
47193  * uInit = False # <<<<<<<<<<<<<<
47194  * else:
47195  * uInit = True
47196  */
47197  __pyx_v_uInit = 0;
47198 
47199  /* "mprans/BoundaryConditions.py":1572
47200  *
47201  * def get_v_diffusive(self, x, t, n ):
47202  * if t > 0.: # <<<<<<<<<<<<<<
47203  * uInit = False
47204  * else:
47205  */
47206  goto __pyx_L3;
47207  }
47208 
47209  /* "mprans/BoundaryConditions.py":1575
47210  * uInit = False
47211  * else:
47212  * uInit = True # <<<<<<<<<<<<<<
47213  * self.tangentialVelocity(x, t, n, uInit)
47214  * self.getVariables(x, t)
47215  */
47216  /*else*/ {
47217  __pyx_v_uInit = 1;
47218  }
47219  __pyx_L3:;
47220 
47221  /* "mprans/BoundaryConditions.py":1576
47222  * else:
47223  * uInit = True
47224  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
47225  * self.getVariables(x, t)
47226  * gradU = self.gradU[1]
47227  */
47228  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1576, __pyx_L1_error)
47229  __Pyx_GOTREF(__pyx_t_3);
47230  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1576, __pyx_L1_error)
47231  __Pyx_GOTREF(__pyx_t_4);
47232  __pyx_t_5 = NULL;
47233  __pyx_t_6 = 0;
47234  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
47235  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
47236  if (likely(__pyx_t_5)) {
47237  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
47238  __Pyx_INCREF(__pyx_t_5);
47239  __Pyx_INCREF(function);
47240  __Pyx_DECREF_SET(__pyx_t_3, function);
47241  __pyx_t_6 = 1;
47242  }
47243  }
47244  #if CYTHON_FAST_PYCALL
47245  if (PyFunction_Check(__pyx_t_3)) {
47246  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
47247  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1576, __pyx_L1_error)
47248  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
47249  __Pyx_GOTREF(__pyx_t_1);
47250  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47251  } else
47252  #endif
47253  #if CYTHON_FAST_PYCCALL
47254  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
47255  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
47256  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1576, __pyx_L1_error)
47257  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
47258  __Pyx_GOTREF(__pyx_t_1);
47259  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47260  } else
47261  #endif
47262  {
47263  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1576, __pyx_L1_error)
47264  __Pyx_GOTREF(__pyx_t_7);
47265  if (__pyx_t_5) {
47266  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
47267  }
47268  __Pyx_INCREF(__pyx_v_x);
47269  __Pyx_GIVEREF(__pyx_v_x);
47270  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
47271  __Pyx_INCREF(__pyx_v_t);
47272  __Pyx_GIVEREF(__pyx_v_t);
47273  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
47274  __Pyx_INCREF(__pyx_v_n);
47275  __Pyx_GIVEREF(__pyx_v_n);
47276  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
47277  __Pyx_GIVEREF(__pyx_t_4);
47278  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
47279  __pyx_t_4 = 0;
47280  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1576, __pyx_L1_error)
47281  __Pyx_GOTREF(__pyx_t_1);
47282  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
47283  }
47284  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
47285  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47286 
47287  /* "mprans/BoundaryConditions.py":1577
47288  * uInit = True
47289  * self.tangentialVelocity(x, t, n, uInit)
47290  * self.getVariables(x, t) # <<<<<<<<<<<<<<
47291  * gradU = self.gradU[1]
47292  * return gradU
47293  */
47294  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1577, __pyx_L1_error)
47295  __Pyx_GOTREF(__pyx_t_3);
47296  __pyx_t_7 = NULL;
47297  __pyx_t_6 = 0;
47298  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
47299  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
47300  if (likely(__pyx_t_7)) {
47301  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
47302  __Pyx_INCREF(__pyx_t_7);
47303  __Pyx_INCREF(function);
47304  __Pyx_DECREF_SET(__pyx_t_3, function);
47305  __pyx_t_6 = 1;
47306  }
47307  }
47308  #if CYTHON_FAST_PYCALL
47309  if (PyFunction_Check(__pyx_t_3)) {
47310  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
47311  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
47312  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
47313  __Pyx_GOTREF(__pyx_t_1);
47314  } else
47315  #endif
47316  #if CYTHON_FAST_PYCCALL
47317  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
47318  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
47319  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
47320  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
47321  __Pyx_GOTREF(__pyx_t_1);
47322  } else
47323  #endif
47324  {
47325  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1577, __pyx_L1_error)
47326  __Pyx_GOTREF(__pyx_t_4);
47327  if (__pyx_t_7) {
47328  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
47329  }
47330  __Pyx_INCREF(__pyx_v_x);
47331  __Pyx_GIVEREF(__pyx_v_x);
47332  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
47333  __Pyx_INCREF(__pyx_v_t);
47334  __Pyx_GIVEREF(__pyx_v_t);
47335  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
47336  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
47337  __Pyx_GOTREF(__pyx_t_1);
47338  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47339  }
47340  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
47341  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47342 
47343  /* "mprans/BoundaryConditions.py":1578
47344  * self.tangentialVelocity(x, t, n, uInit)
47345  * self.getVariables(x, t)
47346  * gradU = self.gradU[1] # <<<<<<<<<<<<<<
47347  * return gradU
47348  *
47349  */
47350  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_gradU); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1578, __pyx_L1_error)
47351  __Pyx_GOTREF(__pyx_t_1);
47352  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1578, __pyx_L1_error)
47353  __Pyx_GOTREF(__pyx_t_3);
47354  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47355  __pyx_v_gradU = __pyx_t_3;
47356  __pyx_t_3 = 0;
47357 
47358  /* "mprans/BoundaryConditions.py":1579
47359  * self.getVariables(x, t)
47360  * gradU = self.gradU[1]
47361  * return gradU # <<<<<<<<<<<<<<
47362  *
47363  * def get_w_diffusive(self, x, t, n):
47364  */
47365  __Pyx_XDECREF(__pyx_r);
47366  __Pyx_INCREF(__pyx_v_gradU);
47367  __pyx_r = __pyx_v_gradU;
47368  goto __pyx_L0;
47369 
47370  /* "mprans/BoundaryConditions.py":1571
47371  * return gradU
47372  *
47373  * def get_v_diffusive(self, x, t, n ): # <<<<<<<<<<<<<<
47374  * if t > 0.:
47375  * uInit = False
47376  */
47377 
47378  /* function exit code */
47379  __pyx_L1_error:;
47380  __Pyx_XDECREF(__pyx_t_1);
47381  __Pyx_XDECREF(__pyx_t_3);
47382  __Pyx_XDECREF(__pyx_t_4);
47383  __Pyx_XDECREF(__pyx_t_5);
47384  __Pyx_XDECREF(__pyx_t_7);
47385  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_v_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
47386  __pyx_r = NULL;
47387  __pyx_L0:;
47388  __Pyx_XDECREF(__pyx_v_gradU);
47389  __Pyx_XGIVEREF(__pyx_r);
47390  __Pyx_TraceReturn(__pyx_r, 0);
47391  __Pyx_RefNannyFinishContext();
47392  return __pyx_r;
47393 }
47394 
47395 /* "mprans/BoundaryConditions.py":1581
47396  * return gradU
47397  *
47398  * def get_w_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
47399  * if t > 0.:
47400  * uInit = False
47401  */
47402 
47403 /* Python wrapper */
47404 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_41get_w_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47405 static char __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_40get_w_diffusive[] = "WallFunctions.get_w_diffusive(self, x, t, n)";
47406 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_41get_w_diffusive = {"get_w_diffusive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_41get_w_diffusive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_13WallFunctions_40get_w_diffusive};
47407 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_13WallFunctions_41get_w_diffusive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47408  PyObject *__pyx_v_self = 0;
47409  PyObject *__pyx_v_x = 0;
47410  PyObject *__pyx_v_t = 0;
47411  PyObject *__pyx_v_n = 0;
47412  int __pyx_lineno = 0;
47413  const char *__pyx_filename = NULL;
47414  int __pyx_clineno = 0;
47415  PyObject *__pyx_r = 0;
47416  __Pyx_RefNannyDeclarations
47417  __Pyx_RefNannySetupContext("get_w_diffusive (wrapper)", 0);
47418  {
47419  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_n,0};
47420  PyObject* values[4] = {0,0,0,0};
47421  if (unlikely(__pyx_kwds)) {
47422  Py_ssize_t kw_args;
47423  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
47424  switch (pos_args) {
47425  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47426  CYTHON_FALLTHROUGH;
47427  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47428  CYTHON_FALLTHROUGH;
47429  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47430  CYTHON_FALLTHROUGH;
47431  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47432  CYTHON_FALLTHROUGH;
47433  case 0: break;
47434  default: goto __pyx_L5_argtuple_error;
47435  }
47436  kw_args = PyDict_Size(__pyx_kwds);
47437  switch (pos_args) {
47438  case 0:
47439  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
47440  else goto __pyx_L5_argtuple_error;
47441  CYTHON_FALLTHROUGH;
47442  case 1:
47443  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
47444  else {
47445  __Pyx_RaiseArgtupleInvalid("get_w_diffusive", 1, 4, 4, 1); __PYX_ERR(0, 1581, __pyx_L3_error)
47446  }
47447  CYTHON_FALLTHROUGH;
47448  case 2:
47449  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
47450  else {
47451  __Pyx_RaiseArgtupleInvalid("get_w_diffusive", 1, 4, 4, 2); __PYX_ERR(0, 1581, __pyx_L3_error)
47452  }
47453  CYTHON_FALLTHROUGH;
47454  case 3:
47455  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
47456  else {
47457  __Pyx_RaiseArgtupleInvalid("get_w_diffusive", 1, 4, 4, 3); __PYX_ERR(0, 1581, __pyx_L3_error)
47458  }
47459  }
47460  if (unlikely(kw_args > 0)) {
47461  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_w_diffusive") < 0)) __PYX_ERR(0, 1581, __pyx_L3_error)
47462  }
47463  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
47464  goto __pyx_L5_argtuple_error;
47465  } else {
47466  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47467  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47468  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47469  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47470  }
47471  __pyx_v_self = values[0];
47472  __pyx_v_x = values[1];
47473  __pyx_v_t = values[2];
47474  __pyx_v_n = values[3];
47475  }
47476  goto __pyx_L4_argument_unpacking_done;
47477  __pyx_L5_argtuple_error:;
47478  __Pyx_RaiseArgtupleInvalid("get_w_diffusive", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1581, __pyx_L3_error)
47479  __pyx_L3_error:;
47480  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_w_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
47481  __Pyx_RefNannyFinishContext();
47482  return NULL;
47483  __pyx_L4_argument_unpacking_done:;
47484  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_40get_w_diffusive(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_n);
47485 
47486  /* function exit code */
47487  __Pyx_RefNannyFinishContext();
47488  return __pyx_r;
47489 }
47490 
47491 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_13WallFunctions_40get_w_diffusive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_n) {
47492  int __pyx_v_uInit;
47493  PyObject *__pyx_v_gradU = NULL;
47494  PyObject *__pyx_r = NULL;
47495  __Pyx_TraceDeclarations
47496  __Pyx_RefNannyDeclarations
47497  PyObject *__pyx_t_1 = NULL;
47498  int __pyx_t_2;
47499  PyObject *__pyx_t_3 = NULL;
47500  PyObject *__pyx_t_4 = NULL;
47501  PyObject *__pyx_t_5 = NULL;
47502  int __pyx_t_6;
47503  PyObject *__pyx_t_7 = NULL;
47504  int __pyx_lineno = 0;
47505  const char *__pyx_filename = NULL;
47506  int __pyx_clineno = 0;
47507  __Pyx_TraceFrameInit(__pyx_codeobj__128)
47508  __Pyx_RefNannySetupContext("get_w_diffusive", 0);
47509  __Pyx_TraceCall("get_w_diffusive", __pyx_f[0], 1581, 0, __PYX_ERR(0, 1581, __pyx_L1_error));
47510 
47511  /* "mprans/BoundaryConditions.py":1582
47512  *
47513  * def get_w_diffusive(self, x, t, n):
47514  * if t > 0.: # <<<<<<<<<<<<<<
47515  * uInit = False
47516  * else:
47517  */
47518  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1582, __pyx_L1_error)
47519  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1582, __pyx_L1_error)
47520  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47521  if (__pyx_t_2) {
47522 
47523  /* "mprans/BoundaryConditions.py":1583
47524  * def get_w_diffusive(self, x, t, n):
47525  * if t > 0.:
47526  * uInit = False # <<<<<<<<<<<<<<
47527  * else:
47528  * uInit = True
47529  */
47530  __pyx_v_uInit = 0;
47531 
47532  /* "mprans/BoundaryConditions.py":1582
47533  *
47534  * def get_w_diffusive(self, x, t, n):
47535  * if t > 0.: # <<<<<<<<<<<<<<
47536  * uInit = False
47537  * else:
47538  */
47539  goto __pyx_L3;
47540  }
47541 
47542  /* "mprans/BoundaryConditions.py":1585
47543  * uInit = False
47544  * else:
47545  * uInit = True # <<<<<<<<<<<<<<
47546  * self.tangentialVelocity(x, t, n, uInit)
47547  * self.getVariables(x, t)
47548  */
47549  /*else*/ {
47550  __pyx_v_uInit = 1;
47551  }
47552  __pyx_L3:;
47553 
47554  /* "mprans/BoundaryConditions.py":1586
47555  * else:
47556  * uInit = True
47557  * self.tangentialVelocity(x, t, n, uInit) # <<<<<<<<<<<<<<
47558  * self.getVariables(x, t)
47559  * gradU = self.gradU[2]
47560  */
47561  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tangentialVelocity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1586, __pyx_L1_error)
47562  __Pyx_GOTREF(__pyx_t_3);
47563  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_uInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1586, __pyx_L1_error)
47564  __Pyx_GOTREF(__pyx_t_4);
47565  __pyx_t_5 = NULL;
47566  __pyx_t_6 = 0;
47567  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
47568  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
47569  if (likely(__pyx_t_5)) {
47570  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
47571  __Pyx_INCREF(__pyx_t_5);
47572  __Pyx_INCREF(function);
47573  __Pyx_DECREF_SET(__pyx_t_3, function);
47574  __pyx_t_6 = 1;
47575  }
47576  }
47577  #if CYTHON_FAST_PYCALL
47578  if (PyFunction_Check(__pyx_t_3)) {
47579  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
47580  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1586, __pyx_L1_error)
47581  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
47582  __Pyx_GOTREF(__pyx_t_1);
47583  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47584  } else
47585  #endif
47586  #if CYTHON_FAST_PYCCALL
47587  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
47588  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_x, __pyx_v_t, __pyx_v_n, __pyx_t_4};
47589  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1586, __pyx_L1_error)
47590  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
47591  __Pyx_GOTREF(__pyx_t_1);
47592  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47593  } else
47594  #endif
47595  {
47596  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1586, __pyx_L1_error)
47597  __Pyx_GOTREF(__pyx_t_7);
47598  if (__pyx_t_5) {
47599  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
47600  }
47601  __Pyx_INCREF(__pyx_v_x);
47602  __Pyx_GIVEREF(__pyx_v_x);
47603  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x);
47604  __Pyx_INCREF(__pyx_v_t);
47605  __Pyx_GIVEREF(__pyx_v_t);
47606  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_t);
47607  __Pyx_INCREF(__pyx_v_n);
47608  __Pyx_GIVEREF(__pyx_v_n);
47609  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n);
47610  __Pyx_GIVEREF(__pyx_t_4);
47611  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
47612  __pyx_t_4 = 0;
47613  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1586, __pyx_L1_error)
47614  __Pyx_GOTREF(__pyx_t_1);
47615  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
47616  }
47617  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
47618  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47619 
47620  /* "mprans/BoundaryConditions.py":1587
47621  * uInit = True
47622  * self.tangentialVelocity(x, t, n, uInit)
47623  * self.getVariables(x, t) # <<<<<<<<<<<<<<
47624  * gradU = self.gradU[2]
47625  * return gradU
47626  */
47627  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1587, __pyx_L1_error)
47628  __Pyx_GOTREF(__pyx_t_3);
47629  __pyx_t_7 = NULL;
47630  __pyx_t_6 = 0;
47631  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
47632  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
47633  if (likely(__pyx_t_7)) {
47634  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
47635  __Pyx_INCREF(__pyx_t_7);
47636  __Pyx_INCREF(function);
47637  __Pyx_DECREF_SET(__pyx_t_3, function);
47638  __pyx_t_6 = 1;
47639  }
47640  }
47641  #if CYTHON_FAST_PYCALL
47642  if (PyFunction_Check(__pyx_t_3)) {
47643  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
47644  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
47645  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
47646  __Pyx_GOTREF(__pyx_t_1);
47647  } else
47648  #endif
47649  #if CYTHON_FAST_PYCCALL
47650  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
47651  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_x, __pyx_v_t};
47652  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
47653  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
47654  __Pyx_GOTREF(__pyx_t_1);
47655  } else
47656  #endif
47657  {
47658  __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1587, __pyx_L1_error)
47659  __Pyx_GOTREF(__pyx_t_4);
47660  if (__pyx_t_7) {
47661  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL;
47662  }
47663  __Pyx_INCREF(__pyx_v_x);
47664  __Pyx_GIVEREF(__pyx_v_x);
47665  PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_x);
47666  __Pyx_INCREF(__pyx_v_t);
47667  __Pyx_GIVEREF(__pyx_v_t);
47668  PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_t);
47669  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
47670  __Pyx_GOTREF(__pyx_t_1);
47671  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
47672  }
47673  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
47674  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47675 
47676  /* "mprans/BoundaryConditions.py":1588
47677  * self.tangentialVelocity(x, t, n, uInit)
47678  * self.getVariables(x, t)
47679  * gradU = self.gradU[2] # <<<<<<<<<<<<<<
47680  * return gradU
47681  *
47682  */
47683  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_gradU); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
47684  __Pyx_GOTREF(__pyx_t_1);
47685  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1588, __pyx_L1_error)
47686  __Pyx_GOTREF(__pyx_t_3);
47687  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47688  __pyx_v_gradU = __pyx_t_3;
47689  __pyx_t_3 = 0;
47690 
47691  /* "mprans/BoundaryConditions.py":1589
47692  * self.getVariables(x, t)
47693  * gradU = self.gradU[2]
47694  * return gradU # <<<<<<<<<<<<<<
47695  *
47696  *
47697  */
47698  __Pyx_XDECREF(__pyx_r);
47699  __Pyx_INCREF(__pyx_v_gradU);
47700  __pyx_r = __pyx_v_gradU;
47701  goto __pyx_L0;
47702 
47703  /* "mprans/BoundaryConditions.py":1581
47704  * return gradU
47705  *
47706  * def get_w_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
47707  * if t > 0.:
47708  * uInit = False
47709  */
47710 
47711  /* function exit code */
47712  __pyx_L1_error:;
47713  __Pyx_XDECREF(__pyx_t_1);
47714  __Pyx_XDECREF(__pyx_t_3);
47715  __Pyx_XDECREF(__pyx_t_4);
47716  __Pyx_XDECREF(__pyx_t_5);
47717  __Pyx_XDECREF(__pyx_t_7);
47718  __Pyx_AddTraceback("mprans.BoundaryConditions.WallFunctions.get_w_diffusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
47719  __pyx_r = NULL;
47720  __pyx_L0:;
47721  __Pyx_XDECREF(__pyx_v_gradU);
47722  __Pyx_XGIVEREF(__pyx_r);
47723  __Pyx_TraceReturn(__pyx_r, 0);
47724  __Pyx_RefNannyFinishContext();
47725  return __pyx_r;
47726 }
47727 
47728 /* "mprans/BoundaryConditions.py":1598
47729  * """
47730  *
47731  * def __init__(self, Y, Yplus, nu=1.004e-6, Cmu=0.09): # <<<<<<<<<<<<<<
47732  * """
47733  * Sets turbulent boundaries for wall treatment.
47734  */
47735 
47736 /* Python wrapper */
47737 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47738 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall___init__[] = "kWall.__init__(self, Y, Yplus, nu=1.004e-6, Cmu=0.09)\n\n Sets turbulent boundaries for wall treatment.\n ";
47739 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_1__init__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall___init__};
47740 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47741  PyObject *__pyx_v_self = 0;
47742  PyObject *__pyx_v_Y = 0;
47743  PyObject *__pyx_v_Yplus = 0;
47744  PyObject *__pyx_v_nu = 0;
47745  PyObject *__pyx_v_Cmu = 0;
47746  int __pyx_lineno = 0;
47747  const char *__pyx_filename = NULL;
47748  int __pyx_clineno = 0;
47749  PyObject *__pyx_r = 0;
47750  __Pyx_RefNannyDeclarations
47751  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
47752  {
47753  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_Y,&__pyx_n_s_Yplus,&__pyx_n_s_nu,&__pyx_n_s_Cmu,0};
47754  PyObject* values[5] = {0,0,0,0,0};
47755  values[3] = ((PyObject *)((PyObject*)__pyx_float_1_004eneg_6));
47756  values[4] = ((PyObject *)((PyObject*)__pyx_float_0_09));
47757  if (unlikely(__pyx_kwds)) {
47758  Py_ssize_t kw_args;
47759  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
47760  switch (pos_args) {
47761  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
47762  CYTHON_FALLTHROUGH;
47763  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47764  CYTHON_FALLTHROUGH;
47765  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47766  CYTHON_FALLTHROUGH;
47767  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47768  CYTHON_FALLTHROUGH;
47769  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47770  CYTHON_FALLTHROUGH;
47771  case 0: break;
47772  default: goto __pyx_L5_argtuple_error;
47773  }
47774  kw_args = PyDict_Size(__pyx_kwds);
47775  switch (pos_args) {
47776  case 0:
47777  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
47778  else goto __pyx_L5_argtuple_error;
47779  CYTHON_FALLTHROUGH;
47780  case 1:
47781  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Y)) != 0)) kw_args--;
47782  else {
47783  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 1); __PYX_ERR(0, 1598, __pyx_L3_error)
47784  }
47785  CYTHON_FALLTHROUGH;
47786  case 2:
47787  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Yplus)) != 0)) kw_args--;
47788  else {
47789  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 2); __PYX_ERR(0, 1598, __pyx_L3_error)
47790  }
47791  CYTHON_FALLTHROUGH;
47792  case 3:
47793  if (kw_args > 0) {
47794  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu);
47795  if (value) { values[3] = value; kw_args--; }
47796  }
47797  CYTHON_FALLTHROUGH;
47798  case 4:
47799  if (kw_args > 0) {
47800  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Cmu);
47801  if (value) { values[4] = value; kw_args--; }
47802  }
47803  }
47804  if (unlikely(kw_args > 0)) {
47805  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1598, __pyx_L3_error)
47806  }
47807  } else {
47808  switch (PyTuple_GET_SIZE(__pyx_args)) {
47809  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
47810  CYTHON_FALLTHROUGH;
47811  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
47812  CYTHON_FALLTHROUGH;
47813  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47814  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47815  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47816  break;
47817  default: goto __pyx_L5_argtuple_error;
47818  }
47819  }
47820  __pyx_v_self = values[0];
47821  __pyx_v_Y = values[1];
47822  __pyx_v_Yplus = values[2];
47823  __pyx_v_nu = values[3];
47824  __pyx_v_Cmu = values[4];
47825  }
47826  goto __pyx_L4_argument_unpacking_done;
47827  __pyx_L5_argtuple_error:;
47828  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1598, __pyx_L3_error)
47829  __pyx_L3_error:;
47830  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
47831  __Pyx_RefNannyFinishContext();
47832  return NULL;
47833  __pyx_L4_argument_unpacking_done:;
47834  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall___init__(__pyx_self, __pyx_v_self, __pyx_v_Y, __pyx_v_Yplus, __pyx_v_nu, __pyx_v_Cmu);
47835 
47836  /* function exit code */
47837  __Pyx_RefNannyFinishContext();
47838  return __pyx_r;
47839 }
47840 
47841 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_Y, PyObject *__pyx_v_Yplus, PyObject *__pyx_v_nu, PyObject *__pyx_v_Cmu) {
47842  PyObject *__pyx_r = NULL;
47843  __Pyx_TraceDeclarations
47844  __Pyx_RefNannyDeclarations
47845  int __pyx_lineno = 0;
47846  const char *__pyx_filename = NULL;
47847  int __pyx_clineno = 0;
47848  __Pyx_TraceFrameInit(__pyx_codeobj__129)
47849  __Pyx_RefNannySetupContext("__init__", 0);
47850  __Pyx_TraceCall("__init__", __pyx_f[0], 1598, 0, __PYX_ERR(0, 1598, __pyx_L1_error));
47851 
47852  /* "mprans/BoundaryConditions.py":1602
47853  * Sets turbulent boundaries for wall treatment.
47854  * """
47855  * self.kappa = 1e-10 # <<<<<<<<<<<<<<
47856  * self.Y = Y
47857  * self.Yplus = Yplus
47858  */
47859  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kappa, __pyx_float_1eneg_10) < 0) __PYX_ERR(0, 1602, __pyx_L1_error)
47860 
47861  /* "mprans/BoundaryConditions.py":1603
47862  * """
47863  * self.kappa = 1e-10
47864  * self.Y = Y # <<<<<<<<<<<<<<
47865  * self.Yplus = Yplus
47866  * self.nu = nu
47867  */
47868  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Y, __pyx_v_Y) < 0) __PYX_ERR(0, 1603, __pyx_L1_error)
47869 
47870  /* "mprans/BoundaryConditions.py":1604
47871  * self.kappa = 1e-10
47872  * self.Y = Y
47873  * self.Yplus = Yplus # <<<<<<<<<<<<<<
47874  * self.nu = nu
47875  * self.model = None
47876  */
47877  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Yplus, __pyx_v_Yplus) < 0) __PYX_ERR(0, 1604, __pyx_L1_error)
47878 
47879  /* "mprans/BoundaryConditions.py":1605
47880  * self.Y = Y
47881  * self.Yplus = Yplus
47882  * self.nu = nu # <<<<<<<<<<<<<<
47883  * self.model = None
47884  * self.Cmu = Cmu
47885  */
47886  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_nu, __pyx_v_nu) < 0) __PYX_ERR(0, 1605, __pyx_L1_error)
47887 
47888  /* "mprans/BoundaryConditions.py":1606
47889  * self.Yplus = Yplus
47890  * self.nu = nu
47891  * self.model = None # <<<<<<<<<<<<<<
47892  * self.Cmu = Cmu
47893  *
47894  */
47895  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_model, Py_None) < 0) __PYX_ERR(0, 1606, __pyx_L1_error)
47896 
47897  /* "mprans/BoundaryConditions.py":1607
47898  * self.nu = nu
47899  * self.model = None
47900  * self.Cmu = Cmu # <<<<<<<<<<<<<<
47901  *
47902  * def attachModel(self, model, ar):
47903  */
47904  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Cmu, __pyx_v_Cmu) < 0) __PYX_ERR(0, 1607, __pyx_L1_error)
47905 
47906  /* "mprans/BoundaryConditions.py":1598
47907  * """
47908  *
47909  * def __init__(self, Y, Yplus, nu=1.004e-6, Cmu=0.09): # <<<<<<<<<<<<<<
47910  * """
47911  * Sets turbulent boundaries for wall treatment.
47912  */
47913 
47914  /* function exit code */
47915  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47916  goto __pyx_L0;
47917  __pyx_L1_error:;
47918  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
47919  __pyx_r = NULL;
47920  __pyx_L0:;
47921  __Pyx_XGIVEREF(__pyx_r);
47922  __Pyx_TraceReturn(__pyx_r, 0);
47923  __Pyx_RefNannyFinishContext();
47924  return __pyx_r;
47925 }
47926 
47927 /* "mprans/BoundaryConditions.py":1609
47928  * self.Cmu = Cmu
47929  *
47930  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
47931  * """
47932  * Attaches model to auxiliary variable
47933  */
47934 
47935 /* Python wrapper */
47936 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_3attachModel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47937 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_2attachModel[] = "kWall.attachModel(self, model, ar)\n\n Attaches model to auxiliary variable\n ";
47938 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_3attachModel = {"attachModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_3attachModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall_2attachModel};
47939 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_3attachModel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47940  PyObject *__pyx_v_self = 0;
47941  PyObject *__pyx_v_model = 0;
47942  PyObject *__pyx_v_ar = 0;
47943  int __pyx_lineno = 0;
47944  const char *__pyx_filename = NULL;
47945  int __pyx_clineno = 0;
47946  PyObject *__pyx_r = 0;
47947  __Pyx_RefNannyDeclarations
47948  __Pyx_RefNannySetupContext("attachModel (wrapper)", 0);
47949  {
47950  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_ar,0};
47951  PyObject* values[3] = {0,0,0};
47952  if (unlikely(__pyx_kwds)) {
47953  Py_ssize_t kw_args;
47954  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
47955  switch (pos_args) {
47956  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47957  CYTHON_FALLTHROUGH;
47958  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47959  CYTHON_FALLTHROUGH;
47960  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47961  CYTHON_FALLTHROUGH;
47962  case 0: break;
47963  default: goto __pyx_L5_argtuple_error;
47964  }
47965  kw_args = PyDict_Size(__pyx_kwds);
47966  switch (pos_args) {
47967  case 0:
47968  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
47969  else goto __pyx_L5_argtuple_error;
47970  CYTHON_FALLTHROUGH;
47971  case 1:
47972  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model)) != 0)) kw_args--;
47973  else {
47974  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, 1); __PYX_ERR(0, 1609, __pyx_L3_error)
47975  }
47976  CYTHON_FALLTHROUGH;
47977  case 2:
47978  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ar)) != 0)) kw_args--;
47979  else {
47980  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, 2); __PYX_ERR(0, 1609, __pyx_L3_error)
47981  }
47982  }
47983  if (unlikely(kw_args > 0)) {
47984  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachModel") < 0)) __PYX_ERR(0, 1609, __pyx_L3_error)
47985  }
47986  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
47987  goto __pyx_L5_argtuple_error;
47988  } else {
47989  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47990  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47991  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
47992  }
47993  __pyx_v_self = values[0];
47994  __pyx_v_model = values[1];
47995  __pyx_v_ar = values[2];
47996  }
47997  goto __pyx_L4_argument_unpacking_done;
47998  __pyx_L5_argtuple_error:;
47999  __Pyx_RaiseArgtupleInvalid("attachModel", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1609, __pyx_L3_error)
48000  __pyx_L3_error:;
48001  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
48002  __Pyx_RefNannyFinishContext();
48003  return NULL;
48004  __pyx_L4_argument_unpacking_done:;
48005  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_2attachModel(__pyx_self, __pyx_v_self, __pyx_v_model, __pyx_v_ar);
48006 
48007  /* function exit code */
48008  __Pyx_RefNannyFinishContext();
48009  return __pyx_r;
48010 }
48011 
48012 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_2attachModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_ar) {
48013  PyObject *__pyx_r = NULL;
48014  __Pyx_TraceDeclarations
48015  __Pyx_RefNannyDeclarations
48016  PyObject *__pyx_t_1 = NULL;
48017  PyObject *__pyx_t_2 = NULL;
48018  int __pyx_lineno = 0;
48019  const char *__pyx_filename = NULL;
48020  int __pyx_clineno = 0;
48021  __Pyx_TraceFrameInit(__pyx_codeobj__130)
48022  __Pyx_RefNannySetupContext("attachModel", 0);
48023  __Pyx_TraceCall("attachModel", __pyx_f[0], 1609, 0, __PYX_ERR(0, 1609, __pyx_L1_error));
48024 
48025  /* "mprans/BoundaryConditions.py":1613
48026  * Attaches model to auxiliary variable
48027  * """
48028  * self.model = model # <<<<<<<<<<<<<<
48029  * self.ar = ar
48030  * self.nd = model.levelModelList[0].nSpace_global
48031  */
48032  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_model, __pyx_v_model) < 0) __PYX_ERR(0, 1613, __pyx_L1_error)
48033 
48034  /* "mprans/BoundaryConditions.py":1614
48035  * """
48036  * self.model = model
48037  * self.ar = ar # <<<<<<<<<<<<<<
48038  * self.nd = model.levelModelList[0].nSpace_global
48039  * return self
48040  */
48041  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ar, __pyx_v_ar) < 0) __PYX_ERR(0, 1614, __pyx_L1_error)
48042 
48043  /* "mprans/BoundaryConditions.py":1615
48044  * self.model = model
48045  * self.ar = ar
48046  * self.nd = model.levelModelList[0].nSpace_global # <<<<<<<<<<<<<<
48047  * return self
48048  *
48049  */
48050  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1615, __pyx_L1_error)
48051  __Pyx_GOTREF(__pyx_t_1);
48052  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1615, __pyx_L1_error)
48053  __Pyx_GOTREF(__pyx_t_2);
48054  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48055  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nSpace_global); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1615, __pyx_L1_error)
48056  __Pyx_GOTREF(__pyx_t_1);
48057  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48058  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_nd, __pyx_t_1) < 0) __PYX_ERR(0, 1615, __pyx_L1_error)
48059  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48060 
48061  /* "mprans/BoundaryConditions.py":1616
48062  * self.ar = ar
48063  * self.nd = model.levelModelList[0].nSpace_global
48064  * return self # <<<<<<<<<<<<<<
48065  *
48066  * def attachAuxiliaryVariables(self, avDict):
48067  */
48068  __Pyx_XDECREF(__pyx_r);
48069  __Pyx_INCREF(__pyx_v_self);
48070  __pyx_r = __pyx_v_self;
48071  goto __pyx_L0;
48072 
48073  /* "mprans/BoundaryConditions.py":1609
48074  * self.Cmu = Cmu
48075  *
48076  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
48077  * """
48078  * Attaches model to auxiliary variable
48079  */
48080 
48081  /* function exit code */
48082  __pyx_L1_error:;
48083  __Pyx_XDECREF(__pyx_t_1);
48084  __Pyx_XDECREF(__pyx_t_2);
48085  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.attachModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
48086  __pyx_r = NULL;
48087  __pyx_L0:;
48088  __Pyx_XGIVEREF(__pyx_r);
48089  __Pyx_TraceReturn(__pyx_r, 0);
48090  __Pyx_RefNannyFinishContext();
48091  return __pyx_r;
48092 }
48093 
48094 /* "mprans/BoundaryConditions.py":1618
48095  * return self
48096  *
48097  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
48098  * pass
48099  *
48100  */
48101 
48102 /* Python wrapper */
48103 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_5attachAuxiliaryVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48104 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_4attachAuxiliaryVariables[] = "kWall.attachAuxiliaryVariables(self, avDict)";
48105 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_5attachAuxiliaryVariables = {"attachAuxiliaryVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_5attachAuxiliaryVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall_4attachAuxiliaryVariables};
48106 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_5attachAuxiliaryVariables(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48107  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
48108  CYTHON_UNUSED PyObject *__pyx_v_avDict = 0;
48109  int __pyx_lineno = 0;
48110  const char *__pyx_filename = NULL;
48111  int __pyx_clineno = 0;
48112  PyObject *__pyx_r = 0;
48113  __Pyx_RefNannyDeclarations
48114  __Pyx_RefNannySetupContext("attachAuxiliaryVariables (wrapper)", 0);
48115  {
48116  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_avDict,0};
48117  PyObject* values[2] = {0,0};
48118  if (unlikely(__pyx_kwds)) {
48119  Py_ssize_t kw_args;
48120  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
48121  switch (pos_args) {
48122  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48123  CYTHON_FALLTHROUGH;
48124  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48125  CYTHON_FALLTHROUGH;
48126  case 0: break;
48127  default: goto __pyx_L5_argtuple_error;
48128  }
48129  kw_args = PyDict_Size(__pyx_kwds);
48130  switch (pos_args) {
48131  case 0:
48132  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
48133  else goto __pyx_L5_argtuple_error;
48134  CYTHON_FALLTHROUGH;
48135  case 1:
48136  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_avDict)) != 0)) kw_args--;
48137  else {
48138  __Pyx_RaiseArgtupleInvalid("attachAuxiliaryVariables", 1, 2, 2, 1); __PYX_ERR(0, 1618, __pyx_L3_error)
48139  }
48140  }
48141  if (unlikely(kw_args > 0)) {
48142  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachAuxiliaryVariables") < 0)) __PYX_ERR(0, 1618, __pyx_L3_error)
48143  }
48144  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
48145  goto __pyx_L5_argtuple_error;
48146  } else {
48147  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48148  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48149  }
48150  __pyx_v_self = values[0];
48151  __pyx_v_avDict = values[1];
48152  }
48153  goto __pyx_L4_argument_unpacking_done;
48154  __pyx_L5_argtuple_error:;
48155  __Pyx_RaiseArgtupleInvalid("attachAuxiliaryVariables", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1618, __pyx_L3_error)
48156  __pyx_L3_error:;
48157  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.attachAuxiliaryVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
48158  __Pyx_RefNannyFinishContext();
48159  return NULL;
48160  __pyx_L4_argument_unpacking_done:;
48161  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_4attachAuxiliaryVariables(__pyx_self, __pyx_v_self, __pyx_v_avDict);
48162 
48163  /* function exit code */
48164  __Pyx_RefNannyFinishContext();
48165  return __pyx_r;
48166 }
48167 
48168 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_4attachAuxiliaryVariables(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_avDict) {
48169  PyObject *__pyx_r = NULL;
48170  __Pyx_TraceDeclarations
48171  __Pyx_RefNannyDeclarations
48172  int __pyx_lineno = 0;
48173  const char *__pyx_filename = NULL;
48174  int __pyx_clineno = 0;
48175  __Pyx_TraceFrameInit(__pyx_codeobj__131)
48176  __Pyx_RefNannySetupContext("attachAuxiliaryVariables", 0);
48177  __Pyx_TraceCall("attachAuxiliaryVariables", __pyx_f[0], 1618, 0, __PYX_ERR(0, 1618, __pyx_L1_error));
48178 
48179  /* function exit code */
48180  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48181  goto __pyx_L0;
48182  __pyx_L1_error:;
48183  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.attachAuxiliaryVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
48184  __pyx_r = NULL;
48185  __pyx_L0:;
48186  __Pyx_XGIVEREF(__pyx_r);
48187  __Pyx_TraceReturn(__pyx_r, 0);
48188  __Pyx_RefNannyFinishContext();
48189  return __pyx_r;
48190 }
48191 
48192 /* "mprans/BoundaryConditions.py":1621
48193  * pass
48194  *
48195  * def calculate_init(self): # <<<<<<<<<<<<<<
48196  * pass
48197  *
48198  */
48199 
48200 /* Python wrapper */
48201 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_7calculate_init(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
48202 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_6calculate_init[] = "kWall.calculate_init(self)";
48203 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_7calculate_init = {"calculate_init", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_5kWall_7calculate_init, METH_O, __pyx_doc_6mprans_18BoundaryConditions_5kWall_6calculate_init};
48204 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_7calculate_init(PyObject *__pyx_self, PyObject *__pyx_v_self) {
48205  PyObject *__pyx_r = 0;
48206  __Pyx_RefNannyDeclarations
48207  __Pyx_RefNannySetupContext("calculate_init (wrapper)", 0);
48208  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_6calculate_init(__pyx_self, ((PyObject *)__pyx_v_self));
48209 
48210  /* function exit code */
48211  __Pyx_RefNannyFinishContext();
48212  return __pyx_r;
48213 }
48214 
48215 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_6calculate_init(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
48216  PyObject *__pyx_r = NULL;
48217  __Pyx_TraceDeclarations
48218  __Pyx_RefNannyDeclarations
48219  int __pyx_lineno = 0;
48220  const char *__pyx_filename = NULL;
48221  int __pyx_clineno = 0;
48222  __Pyx_TraceFrameInit(__pyx_codeobj__132)
48223  __Pyx_RefNannySetupContext("calculate_init", 0);
48224  __Pyx_TraceCall("calculate_init", __pyx_f[0], 1621, 0, __PYX_ERR(0, 1621, __pyx_L1_error));
48225 
48226  /* function exit code */
48227  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48228  goto __pyx_L0;
48229  __pyx_L1_error:;
48230  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.calculate_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
48231  __pyx_r = NULL;
48232  __pyx_L0:;
48233  __Pyx_XGIVEREF(__pyx_r);
48234  __Pyx_TraceReturn(__pyx_r, 0);
48235  __Pyx_RefNannyFinishContext();
48236  return __pyx_r;
48237 }
48238 
48239 /* "mprans/BoundaryConditions.py":1624
48240  * pass
48241  *
48242  * def calculate(self): # <<<<<<<<<<<<<<
48243  * pass
48244  *
48245  */
48246 
48247 /* Python wrapper */
48248 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_9calculate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
48249 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_8calculate[] = "kWall.calculate(self)";
48250 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_9calculate = {"calculate", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_5kWall_9calculate, METH_O, __pyx_doc_6mprans_18BoundaryConditions_5kWall_8calculate};
48251 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_9calculate(PyObject *__pyx_self, PyObject *__pyx_v_self) {
48252  PyObject *__pyx_r = 0;
48253  __Pyx_RefNannyDeclarations
48254  __Pyx_RefNannySetupContext("calculate (wrapper)", 0);
48255  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_8calculate(__pyx_self, ((PyObject *)__pyx_v_self));
48256 
48257  /* function exit code */
48258  __Pyx_RefNannyFinishContext();
48259  return __pyx_r;
48260 }
48261 
48262 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_8calculate(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
48263  PyObject *__pyx_r = NULL;
48264  __Pyx_TraceDeclarations
48265  __Pyx_RefNannyDeclarations
48266  int __pyx_lineno = 0;
48267  const char *__pyx_filename = NULL;
48268  int __pyx_clineno = 0;
48269  __Pyx_TraceFrameInit(__pyx_codeobj__133)
48270  __Pyx_RefNannySetupContext("calculate", 0);
48271  __Pyx_TraceCall("calculate", __pyx_f[0], 1624, 0, __PYX_ERR(0, 1624, __pyx_L1_error));
48272 
48273  /* function exit code */
48274  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48275  goto __pyx_L0;
48276  __pyx_L1_error:;
48277  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.calculate", __pyx_clineno, __pyx_lineno, __pyx_filename);
48278  __pyx_r = NULL;
48279  __pyx_L0:;
48280  __Pyx_XGIVEREF(__pyx_r);
48281  __Pyx_TraceReturn(__pyx_r, 0);
48282  __Pyx_RefNannyFinishContext();
48283  return __pyx_r;
48284 }
48285 
48286 /* "mprans/BoundaryConditions.py":1627
48287  * pass
48288  *
48289  * def getFluidKappaLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
48290  * """
48291  *
48292  */
48293 
48294 /* Python wrapper */
48295 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_11getFluidKappaLocalCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48296 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_10getFluidKappaLocalCoords[] = "kWall.getFluidKappaLocalCoords(self, xi, element, rank)\n\n\n Parameters\n ----------\n xi:\n local coords in element\n element: int\n element number (local to processor 'rank')\n rank: int\n rank of processor owning the element\n ";
48297 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_11getFluidKappaLocalCoords = {"getFluidKappaLocalCoords", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_11getFluidKappaLocalCoords, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall_10getFluidKappaLocalCoords};
48298 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_11getFluidKappaLocalCoords(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48299  PyObject *__pyx_v_self = 0;
48300  PyObject *__pyx_v_xi = 0;
48301  PyObject *__pyx_v_element = 0;
48302  PyObject *__pyx_v_rank = 0;
48303  int __pyx_lineno = 0;
48304  const char *__pyx_filename = NULL;
48305  int __pyx_clineno = 0;
48306  PyObject *__pyx_r = 0;
48307  __Pyx_RefNannyDeclarations
48308  __Pyx_RefNannySetupContext("getFluidKappaLocalCoords (wrapper)", 0);
48309  {
48310  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xi,&__pyx_n_s_element,&__pyx_n_s_rank,0};
48311  PyObject* values[4] = {0,0,0,0};
48312  if (unlikely(__pyx_kwds)) {
48313  Py_ssize_t kw_args;
48314  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
48315  switch (pos_args) {
48316  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
48317  CYTHON_FALLTHROUGH;
48318  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
48319  CYTHON_FALLTHROUGH;
48320  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48321  CYTHON_FALLTHROUGH;
48322  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48323  CYTHON_FALLTHROUGH;
48324  case 0: break;
48325  default: goto __pyx_L5_argtuple_error;
48326  }
48327  kw_args = PyDict_Size(__pyx_kwds);
48328  switch (pos_args) {
48329  case 0:
48330  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
48331  else goto __pyx_L5_argtuple_error;
48332  CYTHON_FALLTHROUGH;
48333  case 1:
48334  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xi)) != 0)) kw_args--;
48335  else {
48336  __Pyx_RaiseArgtupleInvalid("getFluidKappaLocalCoords", 1, 4, 4, 1); __PYX_ERR(0, 1627, __pyx_L3_error)
48337  }
48338  CYTHON_FALLTHROUGH;
48339  case 2:
48340  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_element)) != 0)) kw_args--;
48341  else {
48342  __Pyx_RaiseArgtupleInvalid("getFluidKappaLocalCoords", 1, 4, 4, 2); __PYX_ERR(0, 1627, __pyx_L3_error)
48343  }
48344  CYTHON_FALLTHROUGH;
48345  case 3:
48346  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rank)) != 0)) kw_args--;
48347  else {
48348  __Pyx_RaiseArgtupleInvalid("getFluidKappaLocalCoords", 1, 4, 4, 3); __PYX_ERR(0, 1627, __pyx_L3_error)
48349  }
48350  }
48351  if (unlikely(kw_args > 0)) {
48352  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFluidKappaLocalCoords") < 0)) __PYX_ERR(0, 1627, __pyx_L3_error)
48353  }
48354  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
48355  goto __pyx_L5_argtuple_error;
48356  } else {
48357  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48358  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48359  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
48360  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
48361  }
48362  __pyx_v_self = values[0];
48363  __pyx_v_xi = values[1];
48364  __pyx_v_element = values[2];
48365  __pyx_v_rank = values[3];
48366  }
48367  goto __pyx_L4_argument_unpacking_done;
48368  __pyx_L5_argtuple_error:;
48369  __Pyx_RaiseArgtupleInvalid("getFluidKappaLocalCoords", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1627, __pyx_L3_error)
48370  __pyx_L3_error:;
48371  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.getFluidKappaLocalCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
48372  __Pyx_RefNannyFinishContext();
48373  return NULL;
48374  __pyx_L4_argument_unpacking_done:;
48375  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_10getFluidKappaLocalCoords(__pyx_self, __pyx_v_self, __pyx_v_xi, __pyx_v_element, __pyx_v_rank);
48376 
48377  /* function exit code */
48378  __Pyx_RefNannyFinishContext();
48379  return __pyx_r;
48380 }
48381 
48382 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_10getFluidKappaLocalCoords(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank) {
48383  PyObject *__pyx_v_comm = NULL;
48384  PyObject *__pyx_v_kappa = NULL;
48385  PyObject *__pyx_r = NULL;
48386  __Pyx_TraceDeclarations
48387  __Pyx_RefNannyDeclarations
48388  PyObject *__pyx_t_1 = NULL;
48389  PyObject *__pyx_t_2 = NULL;
48390  PyObject *__pyx_t_3 = NULL;
48391  PyObject *__pyx_t_4 = NULL;
48392  int __pyx_t_5;
48393  int __pyx_t_6;
48394  int __pyx_lineno = 0;
48395  const char *__pyx_filename = NULL;
48396  int __pyx_clineno = 0;
48397  __Pyx_TraceFrameInit(__pyx_codeobj__134)
48398  __Pyx_RefNannySetupContext("getFluidKappaLocalCoords", 0);
48399  __Pyx_TraceCall("getFluidKappaLocalCoords", __pyx_f[0], 1627, 0, __PYX_ERR(0, 1627, __pyx_L1_error));
48400 
48401  /* "mprans/BoundaryConditions.py":1639
48402  * rank of processor owning the element
48403  * """
48404  * comm = Comm.get().comm.tompi4py() # <<<<<<<<<<<<<<
48405  * # solution of the selected model
48406  * self.u = self.model.levelModelList[0].u
48407  */
48408  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1639, __pyx_L1_error)
48409  __Pyx_GOTREF(__pyx_t_3);
48410  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1639, __pyx_L1_error)
48411  __Pyx_GOTREF(__pyx_t_4);
48412  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
48413  __pyx_t_3 = NULL;
48414  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
48415  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
48416  if (likely(__pyx_t_3)) {
48417  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
48418  __Pyx_INCREF(__pyx_t_3);
48419  __Pyx_INCREF(function);
48420  __Pyx_DECREF_SET(__pyx_t_4, function);
48421  }
48422  }
48423  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
48424  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
48425  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
48426  __Pyx_GOTREF(__pyx_t_2);
48427  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48428  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_comm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1639, __pyx_L1_error)
48429  __Pyx_GOTREF(__pyx_t_4);
48430  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48431  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tompi4py); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
48432  __Pyx_GOTREF(__pyx_t_2);
48433  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48434  __pyx_t_4 = NULL;
48435  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
48436  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
48437  if (likely(__pyx_t_4)) {
48438  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
48439  __Pyx_INCREF(__pyx_t_4);
48440  __Pyx_INCREF(function);
48441  __Pyx_DECREF_SET(__pyx_t_2, function);
48442  }
48443  }
48444  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
48445  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
48446  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1639, __pyx_L1_error)
48447  __Pyx_GOTREF(__pyx_t_1);
48448  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48449  __pyx_v_comm = __pyx_t_1;
48450  __pyx_t_1 = 0;
48451 
48452  /* "mprans/BoundaryConditions.py":1641
48453  * comm = Comm.get().comm.tompi4py()
48454  * # solution of the selected model
48455  * self.u = self.model.levelModelList[0].u # <<<<<<<<<<<<<<
48456  * #self.femSpace_kappa = self.u[0].femSpace
48457  * if comm.rank == rank:
48458  */
48459  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1641, __pyx_L1_error)
48460  __Pyx_GOTREF(__pyx_t_1);
48461  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_levelModelList); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1641, __pyx_L1_error)
48462  __Pyx_GOTREF(__pyx_t_2);
48463  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48464  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1641, __pyx_L1_error)
48465  __Pyx_GOTREF(__pyx_t_1);
48466  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48467  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1641, __pyx_L1_error)
48468  __Pyx_GOTREF(__pyx_t_2);
48469  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48470  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_u, __pyx_t_2) < 0) __PYX_ERR(0, 1641, __pyx_L1_error)
48471  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48472 
48473  /* "mprans/BoundaryConditions.py":1643
48474  * self.u = self.model.levelModelList[0].u
48475  * #self.femSpace_kappa = self.u[0].femSpace
48476  * if comm.rank == rank: # <<<<<<<<<<<<<<
48477  * kappa = self.u[0].getValue(element, xi)
48478  * else:
48479  */
48480  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_rank); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1643, __pyx_L1_error)
48481  __Pyx_GOTREF(__pyx_t_2);
48482  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_rank, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1643, __pyx_L1_error)
48483  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48484  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1643, __pyx_L1_error)
48485  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48486  if (__pyx_t_5) {
48487 
48488  /* "mprans/BoundaryConditions.py":1644
48489  * #self.femSpace_kappa = self.u[0].femSpace
48490  * if comm.rank == rank:
48491  * kappa = self.u[0].getValue(element, xi) # <<<<<<<<<<<<<<
48492  * else:
48493  * kappa = None
48494  */
48495  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1644, __pyx_L1_error)
48496  __Pyx_GOTREF(__pyx_t_2);
48497  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1644, __pyx_L1_error)
48498  __Pyx_GOTREF(__pyx_t_4);
48499  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48500  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1644, __pyx_L1_error)
48501  __Pyx_GOTREF(__pyx_t_2);
48502  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48503  __pyx_t_4 = NULL;
48504  __pyx_t_6 = 0;
48505  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
48506  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
48507  if (likely(__pyx_t_4)) {
48508  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
48509  __Pyx_INCREF(__pyx_t_4);
48510  __Pyx_INCREF(function);
48511  __Pyx_DECREF_SET(__pyx_t_2, function);
48512  __pyx_t_6 = 1;
48513  }
48514  }
48515  #if CYTHON_FAST_PYCALL
48516  if (PyFunction_Check(__pyx_t_2)) {
48517  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
48518  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1644, __pyx_L1_error)
48519  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
48520  __Pyx_GOTREF(__pyx_t_1);
48521  } else
48522  #endif
48523  #if CYTHON_FAST_PYCCALL
48524  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
48525  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_element, __pyx_v_xi};
48526  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1644, __pyx_L1_error)
48527  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
48528  __Pyx_GOTREF(__pyx_t_1);
48529  } else
48530  #endif
48531  {
48532  __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1644, __pyx_L1_error)
48533  __Pyx_GOTREF(__pyx_t_3);
48534  if (__pyx_t_4) {
48535  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
48536  }
48537  __Pyx_INCREF(__pyx_v_element);
48538  __Pyx_GIVEREF(__pyx_v_element);
48539  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_element);
48540  __Pyx_INCREF(__pyx_v_xi);
48541  __Pyx_GIVEREF(__pyx_v_xi);
48542  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_xi);
48543  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1644, __pyx_L1_error)
48544  __Pyx_GOTREF(__pyx_t_1);
48545  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
48546  }
48547  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48548  __pyx_v_kappa = __pyx_t_1;
48549  __pyx_t_1 = 0;
48550 
48551  /* "mprans/BoundaryConditions.py":1643
48552  * self.u = self.model.levelModelList[0].u
48553  * #self.femSpace_kappa = self.u[0].femSpace
48554  * if comm.rank == rank: # <<<<<<<<<<<<<<
48555  * kappa = self.u[0].getValue(element, xi)
48556  * else:
48557  */
48558  goto __pyx_L3;
48559  }
48560 
48561  /* "mprans/BoundaryConditions.py":1646
48562  * kappa = self.u[0].getValue(element, xi)
48563  * else:
48564  * kappa = None # <<<<<<<<<<<<<<
48565  * return kappa
48566  *
48567  */
48568  /*else*/ {
48569  __Pyx_INCREF(Py_None);
48570  __pyx_v_kappa = Py_None;
48571  }
48572  __pyx_L3:;
48573 
48574  /* "mprans/BoundaryConditions.py":1647
48575  * else:
48576  * kappa = None
48577  * return kappa # <<<<<<<<<<<<<<
48578  *
48579  * def kappaNearWall(self, xi, element, rank, kInit=None):
48580  */
48581  __Pyx_XDECREF(__pyx_r);
48582  __Pyx_INCREF(__pyx_v_kappa);
48583  __pyx_r = __pyx_v_kappa;
48584  goto __pyx_L0;
48585 
48586  /* "mprans/BoundaryConditions.py":1627
48587  * pass
48588  *
48589  * def getFluidKappaLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
48590  * """
48591  *
48592  */
48593 
48594  /* function exit code */
48595  __pyx_L1_error:;
48596  __Pyx_XDECREF(__pyx_t_1);
48597  __Pyx_XDECREF(__pyx_t_2);
48598  __Pyx_XDECREF(__pyx_t_3);
48599  __Pyx_XDECREF(__pyx_t_4);
48600  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.getFluidKappaLocalCoords", __pyx_clineno, __pyx_lineno, __pyx_filename);
48601  __pyx_r = NULL;
48602  __pyx_L0:;
48603  __Pyx_XDECREF(__pyx_v_comm);
48604  __Pyx_XDECREF(__pyx_v_kappa);
48605  __Pyx_XGIVEREF(__pyx_r);
48606  __Pyx_TraceReturn(__pyx_r, 0);
48607  __Pyx_RefNannyFinishContext();
48608  return __pyx_r;
48609 }
48610 
48611 /* "mprans/BoundaryConditions.py":1649
48612  * return kappa
48613  *
48614  * def kappaNearWall(self, xi, element, rank, kInit=None): # <<<<<<<<<<<<<<
48615  * if kInit is True or self.model is None:
48616  * self.ut = self.Yplus * self.nu / self.Y
48617  */
48618 
48619 /* Python wrapper */
48620 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_13kappaNearWall(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48621 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_12kappaNearWall[] = "kWall.kappaNearWall(self, xi, element, rank, kInit=None)";
48622 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_13kappaNearWall = {"kappaNearWall", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_13kappaNearWall, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall_12kappaNearWall};
48623 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_13kappaNearWall(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48624  PyObject *__pyx_v_self = 0;
48625  PyObject *__pyx_v_xi = 0;
48626  PyObject *__pyx_v_element = 0;
48627  PyObject *__pyx_v_rank = 0;
48628  PyObject *__pyx_v_kInit = 0;
48629  int __pyx_lineno = 0;
48630  const char *__pyx_filename = NULL;
48631  int __pyx_clineno = 0;
48632  PyObject *__pyx_r = 0;
48633  __Pyx_RefNannyDeclarations
48634  __Pyx_RefNannySetupContext("kappaNearWall (wrapper)", 0);
48635  {
48636  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xi,&__pyx_n_s_element,&__pyx_n_s_rank,&__pyx_n_s_kInit,0};
48637  PyObject* values[5] = {0,0,0,0,0};
48638  values[4] = ((PyObject *)((PyObject *)Py_None));
48639  if (unlikely(__pyx_kwds)) {
48640  Py_ssize_t kw_args;
48641  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
48642  switch (pos_args) {
48643  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
48644  CYTHON_FALLTHROUGH;
48645  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
48646  CYTHON_FALLTHROUGH;
48647  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
48648  CYTHON_FALLTHROUGH;
48649  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48650  CYTHON_FALLTHROUGH;
48651  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48652  CYTHON_FALLTHROUGH;
48653  case 0: break;
48654  default: goto __pyx_L5_argtuple_error;
48655  }
48656  kw_args = PyDict_Size(__pyx_kwds);
48657  switch (pos_args) {
48658  case 0:
48659  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
48660  else goto __pyx_L5_argtuple_error;
48661  CYTHON_FALLTHROUGH;
48662  case 1:
48663  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xi)) != 0)) kw_args--;
48664  else {
48665  __Pyx_RaiseArgtupleInvalid("kappaNearWall", 0, 4, 5, 1); __PYX_ERR(0, 1649, __pyx_L3_error)
48666  }
48667  CYTHON_FALLTHROUGH;
48668  case 2:
48669  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_element)) != 0)) kw_args--;
48670  else {
48671  __Pyx_RaiseArgtupleInvalid("kappaNearWall", 0, 4, 5, 2); __PYX_ERR(0, 1649, __pyx_L3_error)
48672  }
48673  CYTHON_FALLTHROUGH;
48674  case 3:
48675  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rank)) != 0)) kw_args--;
48676  else {
48677  __Pyx_RaiseArgtupleInvalid("kappaNearWall", 0, 4, 5, 3); __PYX_ERR(0, 1649, __pyx_L3_error)
48678  }
48679  CYTHON_FALLTHROUGH;
48680  case 4:
48681  if (kw_args > 0) {
48682  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kInit);
48683  if (value) { values[4] = value; kw_args--; }
48684  }
48685  }
48686  if (unlikely(kw_args > 0)) {
48687  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "kappaNearWall") < 0)) __PYX_ERR(0, 1649, __pyx_L3_error)
48688  }
48689  } else {
48690  switch (PyTuple_GET_SIZE(__pyx_args)) {
48691  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
48692  CYTHON_FALLTHROUGH;
48693  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
48694  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
48695  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48696  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48697  break;
48698  default: goto __pyx_L5_argtuple_error;
48699  }
48700  }
48701  __pyx_v_self = values[0];
48702  __pyx_v_xi = values[1];
48703  __pyx_v_element = values[2];
48704  __pyx_v_rank = values[3];
48705  __pyx_v_kInit = values[4];
48706  }
48707  goto __pyx_L4_argument_unpacking_done;
48708  __pyx_L5_argtuple_error:;
48709  __Pyx_RaiseArgtupleInvalid("kappaNearWall", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1649, __pyx_L3_error)
48710  __pyx_L3_error:;
48711  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.kappaNearWall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48712  __Pyx_RefNannyFinishContext();
48713  return NULL;
48714  __pyx_L4_argument_unpacking_done:;
48715  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_12kappaNearWall(__pyx_self, __pyx_v_self, __pyx_v_xi, __pyx_v_element, __pyx_v_rank, __pyx_v_kInit);
48716 
48717  /* function exit code */
48718  __Pyx_RefNannyFinishContext();
48719  return __pyx_r;
48720 }
48721 
48722 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_12kappaNearWall(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank, PyObject *__pyx_v_kInit) {
48723  PyObject *__pyx_r = NULL;
48724  __Pyx_TraceDeclarations
48725  __Pyx_RefNannyDeclarations
48726  int __pyx_t_1;
48727  int __pyx_t_2;
48728  int __pyx_t_3;
48729  PyObject *__pyx_t_4 = NULL;
48730  PyObject *__pyx_t_5 = NULL;
48731  PyObject *__pyx_t_6 = NULL;
48732  PyObject *__pyx_t_7 = NULL;
48733  PyObject *__pyx_t_8 = NULL;
48734  PyObject *__pyx_t_9 = NULL;
48735  PyObject *__pyx_t_10 = NULL;
48736  int __pyx_t_11;
48737  int __pyx_lineno = 0;
48738  const char *__pyx_filename = NULL;
48739  int __pyx_clineno = 0;
48740  __Pyx_TraceFrameInit(__pyx_codeobj__135)
48741  __Pyx_RefNannySetupContext("kappaNearWall", 0);
48742  __Pyx_TraceCall("kappaNearWall", __pyx_f[0], 1649, 0, __PYX_ERR(0, 1649, __pyx_L1_error));
48743 
48744  /* "mprans/BoundaryConditions.py":1650
48745  *
48746  * def kappaNearWall(self, xi, element, rank, kInit=None):
48747  * if kInit is True or self.model is None: # <<<<<<<<<<<<<<
48748  * self.ut = self.Yplus * self.nu / self.Y
48749  * self.kappa = old_div((self.ut**2), np.sqrt(self.Cmu))
48750  */
48751  __pyx_t_2 = (__pyx_v_kInit == Py_True);
48752  __pyx_t_3 = (__pyx_t_2 != 0);
48753  if (!__pyx_t_3) {
48754  } else {
48755  __pyx_t_1 = __pyx_t_3;
48756  goto __pyx_L4_bool_binop_done;
48757  }
48758  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1650, __pyx_L1_error)
48759  __Pyx_GOTREF(__pyx_t_4);
48760  __pyx_t_3 = (__pyx_t_4 == Py_None);
48761  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48762  __pyx_t_2 = (__pyx_t_3 != 0);
48763  __pyx_t_1 = __pyx_t_2;
48764  __pyx_L4_bool_binop_done:;
48765  if (__pyx_t_1) {
48766 
48767  /* "mprans/BoundaryConditions.py":1651
48768  * def kappaNearWall(self, xi, element, rank, kInit=None):
48769  * if kInit is True or self.model is None:
48770  * self.ut = self.Yplus * self.nu / self.Y # <<<<<<<<<<<<<<
48771  * self.kappa = old_div((self.ut**2), np.sqrt(self.Cmu))
48772  * else:
48773  */
48774  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Yplus); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1651, __pyx_L1_error)
48775  __Pyx_GOTREF(__pyx_t_4);
48776  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nu); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1651, __pyx_L1_error)
48777  __Pyx_GOTREF(__pyx_t_5);
48778  __pyx_t_6 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1651, __pyx_L1_error)
48779  __Pyx_GOTREF(__pyx_t_6);
48780  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48781  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
48782  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1651, __pyx_L1_error)
48783  __Pyx_GOTREF(__pyx_t_5);
48784  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1651, __pyx_L1_error)
48785  __Pyx_GOTREF(__pyx_t_4);
48786  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
48787  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
48788  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ut, __pyx_t_4) < 0) __PYX_ERR(0, 1651, __pyx_L1_error)
48789  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48790 
48791  /* "mprans/BoundaryConditions.py":1652
48792  * if kInit is True or self.model is None:
48793  * self.ut = self.Yplus * self.nu / self.Y
48794  * self.kappa = old_div((self.ut**2), np.sqrt(self.Cmu)) # <<<<<<<<<<<<<<
48795  * else:
48796  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank)
48797  */
48798  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1652, __pyx_L1_error)
48799  __Pyx_GOTREF(__pyx_t_5);
48800  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ut); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1652, __pyx_L1_error)
48801  __Pyx_GOTREF(__pyx_t_6);
48802  __pyx_t_7 = PyNumber_Power(__pyx_t_6, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1652, __pyx_L1_error)
48803  __Pyx_GOTREF(__pyx_t_7);
48804  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
48805  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1652, __pyx_L1_error)
48806  __Pyx_GOTREF(__pyx_t_8);
48807  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1652, __pyx_L1_error)
48808  __Pyx_GOTREF(__pyx_t_9);
48809  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
48810  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Cmu); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1652, __pyx_L1_error)
48811  __Pyx_GOTREF(__pyx_t_8);
48812  __pyx_t_10 = NULL;
48813  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
48814  __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
48815  if (likely(__pyx_t_10)) {
48816  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
48817  __Pyx_INCREF(__pyx_t_10);
48818  __Pyx_INCREF(function);
48819  __Pyx_DECREF_SET(__pyx_t_9, function);
48820  }
48821  }
48822  __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
48823  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
48824  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
48825  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1652, __pyx_L1_error)
48826  __Pyx_GOTREF(__pyx_t_6);
48827  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
48828  __pyx_t_9 = NULL;
48829  __pyx_t_11 = 0;
48830  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
48831  __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
48832  if (likely(__pyx_t_9)) {
48833  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
48834  __Pyx_INCREF(__pyx_t_9);
48835  __Pyx_INCREF(function);
48836  __Pyx_DECREF_SET(__pyx_t_5, function);
48837  __pyx_t_11 = 1;
48838  }
48839  }
48840  #if CYTHON_FAST_PYCALL
48841  if (PyFunction_Check(__pyx_t_5)) {
48842  PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6};
48843  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1652, __pyx_L1_error)
48844  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
48845  __Pyx_GOTREF(__pyx_t_4);
48846  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
48847  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
48848  } else
48849  #endif
48850  #if CYTHON_FAST_PYCCALL
48851  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
48852  PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6};
48853  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1652, __pyx_L1_error)
48854  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
48855  __Pyx_GOTREF(__pyx_t_4);
48856  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
48857  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
48858  } else
48859  #endif
48860  {
48861  __pyx_t_8 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1652, __pyx_L1_error)
48862  __Pyx_GOTREF(__pyx_t_8);
48863  if (__pyx_t_9) {
48864  __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL;
48865  }
48866  __Pyx_GIVEREF(__pyx_t_7);
48867  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_11, __pyx_t_7);
48868  __Pyx_GIVEREF(__pyx_t_6);
48869  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_11, __pyx_t_6);
48870  __pyx_t_7 = 0;
48871  __pyx_t_6 = 0;
48872  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1652, __pyx_L1_error)
48873  __Pyx_GOTREF(__pyx_t_4);
48874  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
48875  }
48876  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
48877  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kappa, __pyx_t_4) < 0) __PYX_ERR(0, 1652, __pyx_L1_error)
48878  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48879 
48880  /* "mprans/BoundaryConditions.py":1650
48881  *
48882  * def kappaNearWall(self, xi, element, rank, kInit=None):
48883  * if kInit is True or self.model is None: # <<<<<<<<<<<<<<
48884  * self.ut = self.Yplus * self.nu / self.Y
48885  * self.kappa = old_div((self.ut**2), np.sqrt(self.Cmu))
48886  */
48887  goto __pyx_L3;
48888  }
48889 
48890  /* "mprans/BoundaryConditions.py":1654
48891  * self.kappa = old_div((self.ut**2), np.sqrt(self.Cmu))
48892  * else:
48893  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank) # <<<<<<<<<<<<<<
48894  *
48895  * def getKappa(self, x, t, xi, element, rank):
48896  */
48897  /*else*/ {
48898  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getFluidKappaLocalCoords); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1654, __pyx_L1_error)
48899  __Pyx_GOTREF(__pyx_t_5);
48900  __pyx_t_8 = NULL;
48901  __pyx_t_11 = 0;
48902  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
48903  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
48904  if (likely(__pyx_t_8)) {
48905  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
48906  __Pyx_INCREF(__pyx_t_8);
48907  __Pyx_INCREF(function);
48908  __Pyx_DECREF_SET(__pyx_t_5, function);
48909  __pyx_t_11 = 1;
48910  }
48911  }
48912  #if CYTHON_FAST_PYCALL
48913  if (PyFunction_Check(__pyx_t_5)) {
48914  PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_xi, __pyx_v_element, __pyx_v_rank};
48915  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1654, __pyx_L1_error)
48916  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
48917  __Pyx_GOTREF(__pyx_t_4);
48918  } else
48919  #endif
48920  #if CYTHON_FAST_PYCCALL
48921  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
48922  PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_xi, __pyx_v_element, __pyx_v_rank};
48923  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1654, __pyx_L1_error)
48924  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
48925  __Pyx_GOTREF(__pyx_t_4);
48926  } else
48927  #endif
48928  {
48929  __pyx_t_6 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1654, __pyx_L1_error)
48930  __Pyx_GOTREF(__pyx_t_6);
48931  if (__pyx_t_8) {
48932  __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
48933  }
48934  __Pyx_INCREF(__pyx_v_xi);
48935  __Pyx_GIVEREF(__pyx_v_xi);
48936  PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_v_xi);
48937  __Pyx_INCREF(__pyx_v_element);
48938  __Pyx_GIVEREF(__pyx_v_element);
48939  PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_v_element);
48940  __Pyx_INCREF(__pyx_v_rank);
48941  __Pyx_GIVEREF(__pyx_v_rank);
48942  PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_11, __pyx_v_rank);
48943  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1654, __pyx_L1_error)
48944  __Pyx_GOTREF(__pyx_t_4);
48945  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
48946  }
48947  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
48948  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kappa, __pyx_t_4) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
48949  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
48950  }
48951  __pyx_L3:;
48952 
48953  /* "mprans/BoundaryConditions.py":1649
48954  * return kappa
48955  *
48956  * def kappaNearWall(self, xi, element, rank, kInit=None): # <<<<<<<<<<<<<<
48957  * if kInit is True or self.model is None:
48958  * self.ut = self.Yplus * self.nu / self.Y
48959  */
48960 
48961  /* function exit code */
48962  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48963  goto __pyx_L0;
48964  __pyx_L1_error:;
48965  __Pyx_XDECREF(__pyx_t_4);
48966  __Pyx_XDECREF(__pyx_t_5);
48967  __Pyx_XDECREF(__pyx_t_6);
48968  __Pyx_XDECREF(__pyx_t_7);
48969  __Pyx_XDECREF(__pyx_t_8);
48970  __Pyx_XDECREF(__pyx_t_9);
48971  __Pyx_XDECREF(__pyx_t_10);
48972  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.kappaNearWall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48973  __pyx_r = NULL;
48974  __pyx_L0:;
48975  __Pyx_XGIVEREF(__pyx_r);
48976  __Pyx_TraceReturn(__pyx_r, 0);
48977  __Pyx_RefNannyFinishContext();
48978  return __pyx_r;
48979 }
48980 
48981 /* "mprans/BoundaryConditions.py":1656
48982  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank)
48983  *
48984  * def getKappa(self, x, t, xi, element, rank): # <<<<<<<<<<<<<<
48985  * if t > 0.:
48986  * kInit = False
48987  */
48988 
48989 /* Python wrapper */
48990 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_15getKappa(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48991 static char __pyx_doc_6mprans_18BoundaryConditions_5kWall_14getKappa[] = "kWall.getKappa(self, x, t, xi, element, rank)";
48992 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5kWall_15getKappa = {"getKappa", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5kWall_15getKappa, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_5kWall_14getKappa};
48993 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5kWall_15getKappa(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48994  PyObject *__pyx_v_self = 0;
48995  CYTHON_UNUSED PyObject *__pyx_v_x = 0;
48996  PyObject *__pyx_v_t = 0;
48997  PyObject *__pyx_v_xi = 0;
48998  PyObject *__pyx_v_element = 0;
48999  PyObject *__pyx_v_rank = 0;
49000  int __pyx_lineno = 0;
49001  const char *__pyx_filename = NULL;
49002  int __pyx_clineno = 0;
49003  PyObject *__pyx_r = 0;
49004  __Pyx_RefNannyDeclarations
49005  __Pyx_RefNannySetupContext("getKappa (wrapper)", 0);
49006  {
49007  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_x,&__pyx_n_s_t,&__pyx_n_s_xi,&__pyx_n_s_element,&__pyx_n_s_rank,0};
49008  PyObject* values[6] = {0,0,0,0,0,0};
49009  if (unlikely(__pyx_kwds)) {
49010  Py_ssize_t kw_args;
49011  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
49012  switch (pos_args) {
49013  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
49014  CYTHON_FALLTHROUGH;
49015  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
49016  CYTHON_FALLTHROUGH;
49017  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
49018  CYTHON_FALLTHROUGH;
49019  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
49020  CYTHON_FALLTHROUGH;
49021  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49022  CYTHON_FALLTHROUGH;
49023  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49024  CYTHON_FALLTHROUGH;
49025  case 0: break;
49026  default: goto __pyx_L5_argtuple_error;
49027  }
49028  kw_args = PyDict_Size(__pyx_kwds);
49029  switch (pos_args) {
49030  case 0:
49031  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
49032  else goto __pyx_L5_argtuple_error;
49033  CYTHON_FALLTHROUGH;
49034  case 1:
49035  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
49036  else {
49037  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, 1); __PYX_ERR(0, 1656, __pyx_L3_error)
49038  }
49039  CYTHON_FALLTHROUGH;
49040  case 2:
49041  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
49042  else {
49043  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, 2); __PYX_ERR(0, 1656, __pyx_L3_error)
49044  }
49045  CYTHON_FALLTHROUGH;
49046  case 3:
49047  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xi)) != 0)) kw_args--;
49048  else {
49049  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, 3); __PYX_ERR(0, 1656, __pyx_L3_error)
49050  }
49051  CYTHON_FALLTHROUGH;
49052  case 4:
49053  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_element)) != 0)) kw_args--;
49054  else {
49055  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, 4); __PYX_ERR(0, 1656, __pyx_L3_error)
49056  }
49057  CYTHON_FALLTHROUGH;
49058  case 5:
49059  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rank)) != 0)) kw_args--;
49060  else {
49061  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, 5); __PYX_ERR(0, 1656, __pyx_L3_error)
49062  }
49063  }
49064  if (unlikely(kw_args > 0)) {
49065  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getKappa") < 0)) __PYX_ERR(0, 1656, __pyx_L3_error)
49066  }
49067  } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
49068  goto __pyx_L5_argtuple_error;
49069  } else {
49070  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49071  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49072  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
49073  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
49074  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
49075  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
49076  }
49077  __pyx_v_self = values[0];
49078  __pyx_v_x = values[1];
49079  __pyx_v_t = values[2];
49080  __pyx_v_xi = values[3];
49081  __pyx_v_element = values[4];
49082  __pyx_v_rank = values[5];
49083  }
49084  goto __pyx_L4_argument_unpacking_done;
49085  __pyx_L5_argtuple_error:;
49086  __Pyx_RaiseArgtupleInvalid("getKappa", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1656, __pyx_L3_error)
49087  __pyx_L3_error:;
49088  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.getKappa", __pyx_clineno, __pyx_lineno, __pyx_filename);
49089  __Pyx_RefNannyFinishContext();
49090  return NULL;
49091  __pyx_L4_argument_unpacking_done:;
49092  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_5kWall_14getKappa(__pyx_self, __pyx_v_self, __pyx_v_x, __pyx_v_t, __pyx_v_xi, __pyx_v_element, __pyx_v_rank);
49093 
49094  /* function exit code */
49095  __Pyx_RefNannyFinishContext();
49096  return __pyx_r;
49097 }
49098 
49099 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_5kWall_14getKappa(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_x, PyObject *__pyx_v_t, PyObject *__pyx_v_xi, PyObject *__pyx_v_element, PyObject *__pyx_v_rank) {
49100  int __pyx_v_kInit;
49101  PyObject *__pyx_r = NULL;
49102  __Pyx_TraceDeclarations
49103  __Pyx_RefNannyDeclarations
49104  PyObject *__pyx_t_1 = NULL;
49105  int __pyx_t_2;
49106  PyObject *__pyx_t_3 = NULL;
49107  PyObject *__pyx_t_4 = NULL;
49108  PyObject *__pyx_t_5 = NULL;
49109  int __pyx_t_6;
49110  PyObject *__pyx_t_7 = NULL;
49111  int __pyx_lineno = 0;
49112  const char *__pyx_filename = NULL;
49113  int __pyx_clineno = 0;
49114  __Pyx_TraceFrameInit(__pyx_codeobj__136)
49115  __Pyx_RefNannySetupContext("getKappa", 0);
49116  __Pyx_TraceCall("getKappa", __pyx_f[0], 1656, 0, __PYX_ERR(0, 1656, __pyx_L1_error));
49117 
49118  /* "mprans/BoundaryConditions.py":1657
49119  *
49120  * def getKappa(self, x, t, xi, element, rank):
49121  * if t > 0.: # <<<<<<<<<<<<<<
49122  * kInit = False
49123  * else:
49124  */
49125  __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1657, __pyx_L1_error)
49126  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1657, __pyx_L1_error)
49127  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49128  if (__pyx_t_2) {
49129 
49130  /* "mprans/BoundaryConditions.py":1658
49131  * def getKappa(self, x, t, xi, element, rank):
49132  * if t > 0.:
49133  * kInit = False # <<<<<<<<<<<<<<
49134  * else:
49135  * kInit = True
49136  */
49137  __pyx_v_kInit = 0;
49138 
49139  /* "mprans/BoundaryConditions.py":1657
49140  *
49141  * def getKappa(self, x, t, xi, element, rank):
49142  * if t > 0.: # <<<<<<<<<<<<<<
49143  * kInit = False
49144  * else:
49145  */
49146  goto __pyx_L3;
49147  }
49148 
49149  /* "mprans/BoundaryConditions.py":1660
49150  * kInit = False
49151  * else:
49152  * kInit = True # <<<<<<<<<<<<<<
49153  * self.kappaNearWall(xi, element, rank, kInit)
49154  * return abs(self.kappa)
49155  */
49156  /*else*/ {
49157  __pyx_v_kInit = 1;
49158  }
49159  __pyx_L3:;
49160 
49161  /* "mprans/BoundaryConditions.py":1661
49162  * else:
49163  * kInit = True
49164  * self.kappaNearWall(xi, element, rank, kInit) # <<<<<<<<<<<<<<
49165  * return abs(self.kappa)
49166  */
49167  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappaNearWall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1661, __pyx_L1_error)
49168  __Pyx_GOTREF(__pyx_t_3);
49169  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_kInit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1661, __pyx_L1_error)
49170  __Pyx_GOTREF(__pyx_t_4);
49171  __pyx_t_5 = NULL;
49172  __pyx_t_6 = 0;
49173  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
49174  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
49175  if (likely(__pyx_t_5)) {
49176  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
49177  __Pyx_INCREF(__pyx_t_5);
49178  __Pyx_INCREF(function);
49179  __Pyx_DECREF_SET(__pyx_t_3, function);
49180  __pyx_t_6 = 1;
49181  }
49182  }
49183  #if CYTHON_FAST_PYCALL
49184  if (PyFunction_Check(__pyx_t_3)) {
49185  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_xi, __pyx_v_element, __pyx_v_rank, __pyx_t_4};
49186  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1661, __pyx_L1_error)
49187  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
49188  __Pyx_GOTREF(__pyx_t_1);
49189  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
49190  } else
49191  #endif
49192  #if CYTHON_FAST_PYCCALL
49193  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
49194  PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_xi, __pyx_v_element, __pyx_v_rank, __pyx_t_4};
49195  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1661, __pyx_L1_error)
49196  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
49197  __Pyx_GOTREF(__pyx_t_1);
49198  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
49199  } else
49200  #endif
49201  {
49202  __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1661, __pyx_L1_error)
49203  __Pyx_GOTREF(__pyx_t_7);
49204  if (__pyx_t_5) {
49205  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
49206  }
49207  __Pyx_INCREF(__pyx_v_xi);
49208  __Pyx_GIVEREF(__pyx_v_xi);
49209  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_xi);
49210  __Pyx_INCREF(__pyx_v_element);
49211  __Pyx_GIVEREF(__pyx_v_element);
49212  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_element);
49213  __Pyx_INCREF(__pyx_v_rank);
49214  __Pyx_GIVEREF(__pyx_v_rank);
49215  PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_rank);
49216  __Pyx_GIVEREF(__pyx_t_4);
49217  PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
49218  __pyx_t_4 = 0;
49219  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1661, __pyx_L1_error)
49220  __Pyx_GOTREF(__pyx_t_1);
49221  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
49222  }
49223  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
49224  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49225 
49226  /* "mprans/BoundaryConditions.py":1662
49227  * kInit = True
49228  * self.kappaNearWall(xi, element, rank, kInit)
49229  * return abs(self.kappa) # <<<<<<<<<<<<<<
49230  */
49231  __Pyx_XDECREF(__pyx_r);
49232  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kappa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1662, __pyx_L1_error)
49233  __Pyx_GOTREF(__pyx_t_1);
49234  __pyx_t_3 = __Pyx_PyNumber_Absolute(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1662, __pyx_L1_error)
49235  __Pyx_GOTREF(__pyx_t_3);
49236  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49237  __pyx_r = __pyx_t_3;
49238  __pyx_t_3 = 0;
49239  goto __pyx_L0;
49240 
49241  /* "mprans/BoundaryConditions.py":1656
49242  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank)
49243  *
49244  * def getKappa(self, x, t, xi, element, rank): # <<<<<<<<<<<<<<
49245  * if t > 0.:
49246  * kInit = False
49247  */
49248 
49249  /* function exit code */
49250  __pyx_L1_error:;
49251  __Pyx_XDECREF(__pyx_t_1);
49252  __Pyx_XDECREF(__pyx_t_3);
49253  __Pyx_XDECREF(__pyx_t_4);
49254  __Pyx_XDECREF(__pyx_t_5);
49255  __Pyx_XDECREF(__pyx_t_7);
49256  __Pyx_AddTraceback("mprans.BoundaryConditions.kWall.getKappa", __pyx_clineno, __pyx_lineno, __pyx_filename);
49257  __pyx_r = NULL;
49258  __pyx_L0:;
49259  __Pyx_XGIVEREF(__pyx_r);
49260  __Pyx_TraceReturn(__pyx_r, 0);
49261  __Pyx_RefNannyFinishContext();
49262  return __pyx_r;
49263 }
49264 
49265 /* "(tree fragment)":1
49266  * def __pyx_unpickle_BC_RANS(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
49267  * cdef object __pyx_PickleError
49268  * cdef object __pyx_result
49269  */
49270 
49271 /* Python wrapper */
49272 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_1__pyx_unpickle_BC_RANS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49273 static char __pyx_doc_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS[] = "__pyx_unpickle_BC_RANS(__pyx_type, long __pyx_checksum, __pyx_state)";
49274 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_1__pyx_unpickle_BC_RANS = {"__pyx_unpickle_BC_RANS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_1__pyx_unpickle_BC_RANS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS};
49275 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_1__pyx_unpickle_BC_RANS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49276  PyObject *__pyx_v___pyx_type = 0;
49277  long __pyx_v___pyx_checksum;
49278  PyObject *__pyx_v___pyx_state = 0;
49279  int __pyx_lineno = 0;
49280  const char *__pyx_filename = NULL;
49281  int __pyx_clineno = 0;
49282  PyObject *__pyx_r = 0;
49283  __Pyx_RefNannyDeclarations
49284  __Pyx_RefNannySetupContext("__pyx_unpickle_BC_RANS (wrapper)", 0);
49285  {
49286  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
49287  PyObject* values[3] = {0,0,0};
49288  if (unlikely(__pyx_kwds)) {
49289  Py_ssize_t kw_args;
49290  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
49291  switch (pos_args) {
49292  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
49293  CYTHON_FALLTHROUGH;
49294  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49295  CYTHON_FALLTHROUGH;
49296  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49297  CYTHON_FALLTHROUGH;
49298  case 0: break;
49299  default: goto __pyx_L5_argtuple_error;
49300  }
49301  kw_args = PyDict_Size(__pyx_kwds);
49302  switch (pos_args) {
49303  case 0:
49304  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
49305  else goto __pyx_L5_argtuple_error;
49306  CYTHON_FALLTHROUGH;
49307  case 1:
49308  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
49309  else {
49310  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BC_RANS", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
49311  }
49312  CYTHON_FALLTHROUGH;
49313  case 2:
49314  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
49315  else {
49316  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BC_RANS", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
49317  }
49318  }
49319  if (unlikely(kw_args > 0)) {
49320  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_BC_RANS") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
49321  }
49322  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
49323  goto __pyx_L5_argtuple_error;
49324  } else {
49325  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49326  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49327  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
49328  }
49329  __pyx_v___pyx_type = values[0];
49330  __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
49331  __pyx_v___pyx_state = values[2];
49332  }
49333  goto __pyx_L4_argument_unpacking_done;
49334  __pyx_L5_argtuple_error:;
49335  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BC_RANS", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
49336  __pyx_L3_error:;
49337  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_BC_RANS", __pyx_clineno, __pyx_lineno, __pyx_filename);
49338  __Pyx_RefNannyFinishContext();
49339  return NULL;
49340  __pyx_L4_argument_unpacking_done:;
49341  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
49342 
49343  /* function exit code */
49344  __Pyx_RefNannyFinishContext();
49345  return __pyx_r;
49346 }
49347 
49348 static PyObject *__pyx_pf_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
49349  PyObject *__pyx_v___pyx_PickleError = 0;
49350  PyObject *__pyx_v___pyx_result = 0;
49351  PyObject *__pyx_r = NULL;
49352  __Pyx_TraceDeclarations
49353  __Pyx_RefNannyDeclarations
49354  PyObject *__pyx_t_1 = NULL;
49355  int __pyx_t_2;
49356  int __pyx_t_3;
49357  PyObject *__pyx_t_4 = NULL;
49358  PyObject *__pyx_t_5 = NULL;
49359  PyObject *__pyx_t_6 = NULL;
49360  int __pyx_lineno = 0;
49361  const char *__pyx_filename = NULL;
49362  int __pyx_clineno = 0;
49363  __Pyx_TraceFrameInit(__pyx_codeobj__137)
49364  __Pyx_RefNannySetupContext("__pyx_unpickle_BC_RANS", 0);
49365  __Pyx_TraceCall("__pyx_unpickle_BC_RANS", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
49366 
49367  /* "(tree fragment)":4
49368  * cdef object __pyx_PickleError
49369  * cdef object __pyx_result
49370  * if __pyx_checksum not in (0xb56ce2c, 0x5b1bad8, 0xceba269): # <<<<<<<<<<<<<<
49371  * from pickle import PickleError as __pyx_PickleError
49372  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49373  */
49374  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
49375  __Pyx_GOTREF(__pyx_t_1);
49376  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__138, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error)
49377  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49378  __pyx_t_3 = (__pyx_t_2 != 0);
49379  if (__pyx_t_3) {
49380 
49381  /* "(tree fragment)":5
49382  * cdef object __pyx_result
49383  * if __pyx_checksum not in (0xb56ce2c, 0x5b1bad8, 0xceba269):
49384  * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<<
49385  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49386  * __pyx_result = BC_RANS.__new__(__pyx_type)
49387  */
49388  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
49389  __Pyx_GOTREF(__pyx_t_1);
49390  __Pyx_INCREF(__pyx_n_s_PickleError);
49391  __Pyx_GIVEREF(__pyx_n_s_PickleError);
49392  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError);
49393  __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
49394  __Pyx_GOTREF(__pyx_t_4);
49395  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49396  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
49397  __Pyx_GOTREF(__pyx_t_1);
49398  __Pyx_INCREF(__pyx_t_1);
49399  __pyx_v___pyx_PickleError = __pyx_t_1;
49400  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49401  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
49402 
49403  /* "(tree fragment)":6
49404  * if __pyx_checksum not in (0xb56ce2c, 0x5b1bad8, 0xceba269):
49405  * from pickle import PickleError as __pyx_PickleError
49406  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum) # <<<<<<<<<<<<<<
49407  * __pyx_result = BC_RANS.__new__(__pyx_type)
49408  * if __pyx_state is not None:
49409  */
49410  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
49411  __Pyx_GOTREF(__pyx_t_1);
49412  __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
49413  __Pyx_GOTREF(__pyx_t_5);
49414  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49415  __Pyx_INCREF(__pyx_v___pyx_PickleError);
49416  __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL;
49417  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
49418  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
49419  if (likely(__pyx_t_6)) {
49420  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
49421  __Pyx_INCREF(__pyx_t_6);
49422  __Pyx_INCREF(function);
49423  __Pyx_DECREF_SET(__pyx_t_1, function);
49424  }
49425  }
49426  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5);
49427  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
49428  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
49429  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
49430  __Pyx_GOTREF(__pyx_t_4);
49431  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49432  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
49433  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
49434  __PYX_ERR(1, 6, __pyx_L1_error)
49435 
49436  /* "(tree fragment)":4
49437  * cdef object __pyx_PickleError
49438  * cdef object __pyx_result
49439  * if __pyx_checksum not in (0xb56ce2c, 0x5b1bad8, 0xceba269): # <<<<<<<<<<<<<<
49440  * from pickle import PickleError as __pyx_PickleError
49441  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49442  */
49443  }
49444 
49445  /* "(tree fragment)":7
49446  * from pickle import PickleError as __pyx_PickleError
49447  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49448  * __pyx_result = BC_RANS.__new__(__pyx_type) # <<<<<<<<<<<<<<
49449  * if __pyx_state is not None:
49450  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
49451  */
49452  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
49453  __Pyx_GOTREF(__pyx_t_1);
49454  __pyx_t_5 = NULL;
49455  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
49456  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
49457  if (likely(__pyx_t_5)) {
49458  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
49459  __Pyx_INCREF(__pyx_t_5);
49460  __Pyx_INCREF(function);
49461  __Pyx_DECREF_SET(__pyx_t_1, function);
49462  }
49463  }
49464  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type);
49465  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
49466  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error)
49467  __Pyx_GOTREF(__pyx_t_4);
49468  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49469  __pyx_v___pyx_result = __pyx_t_4;
49470  __pyx_t_4 = 0;
49471 
49472  /* "(tree fragment)":8
49473  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49474  * __pyx_result = BC_RANS.__new__(__pyx_type)
49475  * if __pyx_state is not None: # <<<<<<<<<<<<<<
49476  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
49477  * return __pyx_result
49478  */
49479  __pyx_t_3 = (__pyx_v___pyx_state != Py_None);
49480  __pyx_t_2 = (__pyx_t_3 != 0);
49481  if (__pyx_t_2) {
49482 
49483  /* "(tree fragment)":9
49484  * __pyx_result = BC_RANS.__new__(__pyx_type)
49485  * if __pyx_state is not None:
49486  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state) # <<<<<<<<<<<<<<
49487  * return __pyx_result
49488  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state):
49489  */
49490  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
49491  __pyx_t_4 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS__set_state(((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
49492  __Pyx_GOTREF(__pyx_t_4);
49493  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
49494 
49495  /* "(tree fragment)":8
49496  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
49497  * __pyx_result = BC_RANS.__new__(__pyx_type)
49498  * if __pyx_state is not None: # <<<<<<<<<<<<<<
49499  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
49500  * return __pyx_result
49501  */
49502  }
49503 
49504  /* "(tree fragment)":10
49505  * if __pyx_state is not None:
49506  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
49507  * return __pyx_result # <<<<<<<<<<<<<<
49508  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state):
49509  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
49510  */
49511  __Pyx_XDECREF(__pyx_r);
49512  __Pyx_INCREF(__pyx_v___pyx_result);
49513  __pyx_r = __pyx_v___pyx_result;
49514  goto __pyx_L0;
49515 
49516  /* "(tree fragment)":1
49517  * def __pyx_unpickle_BC_RANS(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
49518  * cdef object __pyx_PickleError
49519  * cdef object __pyx_result
49520  */
49521 
49522  /* function exit code */
49523  __pyx_L1_error:;
49524  __Pyx_XDECREF(__pyx_t_1);
49525  __Pyx_XDECREF(__pyx_t_4);
49526  __Pyx_XDECREF(__pyx_t_5);
49527  __Pyx_XDECREF(__pyx_t_6);
49528  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_BC_RANS", __pyx_clineno, __pyx_lineno, __pyx_filename);
49529  __pyx_r = NULL;
49530  __pyx_L0:;
49531  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
49532  __Pyx_XDECREF(__pyx_v___pyx_result);
49533  __Pyx_XGIVEREF(__pyx_r);
49534  __Pyx_TraceReturn(__pyx_r, 0);
49535  __Pyx_RefNannyFinishContext();
49536  return __pyx_r;
49537 }
49538 
49539 /* "(tree fragment)":11
49540  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
49541  * return __pyx_result
49542  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
49543  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
49544  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'):
49545  */
49546 
49547 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_BC_RANS__set_state(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
49548  PyObject *__pyx_r = NULL;
49549  __Pyx_TraceDeclarations
49550  __Pyx_RefNannyDeclarations
49551  PyObject *__pyx_t_1 = NULL;
49552  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
49553  __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
49554  double __pyx_t_4;
49555  int __pyx_t_5;
49556  int __pyx_t_6;
49557  Py_ssize_t __pyx_t_7;
49558  int __pyx_t_8;
49559  int __pyx_t_9;
49560  PyObject *__pyx_t_10 = NULL;
49561  PyObject *__pyx_t_11 = NULL;
49562  int __pyx_lineno = 0;
49563  const char *__pyx_filename = NULL;
49564  int __pyx_clineno = 0;
49565  __Pyx_RefNannySetupContext("__pyx_unpickle_BC_RANS__set_state", 0);
49566  __Pyx_TraceCall("__pyx_unpickle_BC_RANS__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));
49567 
49568  /* "(tree fragment)":12
49569  * return __pyx_result
49570  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state):
49571  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60] # <<<<<<<<<<<<<<
49572  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'):
49573  * __pyx_result.__dict__.update(__pyx_state[61])
49574  */
49575  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49576  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49577  __PYX_ERR(1, 12, __pyx_L1_error)
49578  }
49579  if (!(likely(PyString_CheckExact(PyTuple_GET_ITEM(__pyx_v___pyx_state, 0)))||((PyTuple_GET_ITEM(__pyx_v___pyx_state, 0)) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(PyTuple_GET_ITEM(__pyx_v___pyx_state, 0))->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
49580  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
49581  __Pyx_INCREF(__pyx_t_1);
49582  __Pyx_GIVEREF(__pyx_t_1);
49583  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.BC_type);
49584  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.BC_type);
49585  __pyx_v___pyx_result->__pyx_base.BC_type = ((PyObject*)__pyx_t_1);
49586  __pyx_t_1 = 0;
49587  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49588  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49589  __PYX_ERR(1, 12, __pyx_L1_error)
49590  }
49591  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
49592  __Pyx_INCREF(__pyx_t_1);
49593  __Pyx_GIVEREF(__pyx_t_1);
49594  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.Shape);
49595  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.Shape);
49596  __pyx_v___pyx_result->__pyx_base.Shape = __pyx_t_1;
49597  __pyx_t_1 = 0;
49598  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49599  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49600  __PYX_ERR(1, 12, __pyx_L1_error)
49601  }
49602  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
49603  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->__pyx_base._b_or, 0);
49604  __pyx_v___pyx_result->__pyx_base._b_or = __pyx_t_2;
49605  __pyx_t_2.memview = NULL;
49606  __pyx_t_2.data = NULL;
49607  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49608  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49609  __PYX_ERR(1, 12, __pyx_L1_error)
49610  }
49611  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 3);
49612  __Pyx_INCREF(__pyx_t_1);
49613  __Pyx_GIVEREF(__pyx_t_1);
49614  __Pyx_GOTREF(__pyx_v___pyx_result->body);
49615  __Pyx_DECREF(__pyx_v___pyx_result->body);
49616  __pyx_v___pyx_result->body = __pyx_t_1;
49617  __pyx_t_1 = 0;
49618  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49619  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49620  __PYX_ERR(1, 12, __pyx_L1_error)
49621  }
49622  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 4), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
49623  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->body_python_h, 0);
49624  __pyx_v___pyx_result->body_python_h = __pyx_t_2;
49625  __pyx_t_2.memview = NULL;
49626  __pyx_t_2.data = NULL;
49627  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49628  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49629  __PYX_ERR(1, 12, __pyx_L1_error)
49630  }
49631  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 5), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
49632  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->body_python_last_pos, 0);
49633  __pyx_v___pyx_result->body_python_last_pos = __pyx_t_2;
49634  __pyx_t_2.memview = NULL;
49635  __pyx_t_2.data = NULL;
49636  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49637  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49638  __PYX_ERR(1, 12, __pyx_L1_error)
49639  }
49640  __pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 6), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
49641  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->body_python_rot_matrix, 0);
49642  __pyx_v___pyx_result->body_python_rot_matrix = __pyx_t_3;
49643  __pyx_t_3.memview = NULL;
49644  __pyx_t_3.data = NULL;
49645  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49646  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49647  __PYX_ERR(1, 12, __pyx_L1_error)
49648  }
49649  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 7)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 7), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49650  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 7);
49651  __Pyx_INCREF(__pyx_t_1);
49652  __Pyx_GIVEREF(__pyx_t_1);
49653  __Pyx_GOTREF(__pyx_v___pyx_result->clsvof_advective);
49654  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->clsvof_advective));
49655  __pyx_v___pyx_result->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49656  __pyx_t_1 = 0;
49657  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49658  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49659  __PYX_ERR(1, 12, __pyx_L1_error)
49660  }
49661  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 8)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 8), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49662  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 8);
49663  __Pyx_INCREF(__pyx_t_1);
49664  __Pyx_GIVEREF(__pyx_t_1);
49665  __Pyx_GOTREF(__pyx_v___pyx_result->clsvof_diffusive);
49666  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->clsvof_diffusive));
49667  __pyx_v___pyx_result->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49668  __pyx_t_1 = 0;
49669  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49670  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49671  __PYX_ERR(1, 12, __pyx_L1_error)
49672  }
49673  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 9)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 9), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49674  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 9);
49675  __Pyx_INCREF(__pyx_t_1);
49676  __Pyx_GIVEREF(__pyx_t_1);
49677  __Pyx_GOTREF(__pyx_v___pyx_result->clsvof_dirichlet);
49678  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->clsvof_dirichlet));
49679  __pyx_v___pyx_result->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49680  __pyx_t_1 = 0;
49681  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49682  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49683  __PYX_ERR(1, 12, __pyx_L1_error)
49684  }
49685  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 10);
49686  __Pyx_INCREF(__pyx_t_1);
49687  __Pyx_GIVEREF(__pyx_t_1);
49688  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ct);
49689  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ct);
49690  __pyx_v___pyx_result->__pyx_base.ct = __pyx_t_1;
49691  __pyx_t_1 = 0;
49692  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49693  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49694  __PYX_ERR(1, 12, __pyx_L1_error)
49695  }
49696  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 11)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 11), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49697  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 11);
49698  __Pyx_INCREF(__pyx_t_1);
49699  __Pyx_GIVEREF(__pyx_t_1);
49700  __Pyx_GOTREF(__pyx_v___pyx_result->dissipation_advective);
49701  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dissipation_advective));
49702  __pyx_v___pyx_result->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49703  __pyx_t_1 = 0;
49704  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49705  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49706  __PYX_ERR(1, 12, __pyx_L1_error)
49707  }
49708  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 12)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 12), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49709  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 12);
49710  __Pyx_INCREF(__pyx_t_1);
49711  __Pyx_GIVEREF(__pyx_t_1);
49712  __Pyx_GOTREF(__pyx_v___pyx_result->dissipation_diffusive);
49713  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dissipation_diffusive));
49714  __pyx_v___pyx_result->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49715  __pyx_t_1 = 0;
49716  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49717  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49718  __PYX_ERR(1, 12, __pyx_L1_error)
49719  }
49720  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 13)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 13), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49721  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 13);
49722  __Pyx_INCREF(__pyx_t_1);
49723  __Pyx_GIVEREF(__pyx_t_1);
49724  __Pyx_GOTREF(__pyx_v___pyx_result->dissipation_dirichlet);
49725  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dissipation_dirichlet));
49726  __pyx_v___pyx_result->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49727  __pyx_t_1 = 0;
49728  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49729  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49730  __PYX_ERR(1, 12, __pyx_L1_error)
49731  }
49732  __pyx_t_4 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_v___pyx_state, 14)); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
49733  __pyx_v___pyx_result->f = __pyx_t_4;
49734  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49735  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49736  __PYX_ERR(1, 12, __pyx_L1_error)
49737  }
49738  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 15)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 15), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49739  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 15);
49740  __Pyx_INCREF(__pyx_t_1);
49741  __Pyx_GIVEREF(__pyx_t_1);
49742  __Pyx_GOTREF(__pyx_v___pyx_result->hx_dirichlet);
49743  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->hx_dirichlet));
49744  __pyx_v___pyx_result->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49745  __pyx_t_1 = 0;
49746  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49747  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49748  __PYX_ERR(1, 12, __pyx_L1_error)
49749  }
49750  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 16)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 16), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49751  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 16);
49752  __Pyx_INCREF(__pyx_t_1);
49753  __Pyx_GIVEREF(__pyx_t_1);
49754  __Pyx_GOTREF(__pyx_v___pyx_result->hy_dirichlet);
49755  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->hy_dirichlet));
49756  __pyx_v___pyx_result->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49757  __pyx_t_1 = 0;
49758  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49759  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49760  __PYX_ERR(1, 12, __pyx_L1_error)
49761  }
49762  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 17)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 17), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49763  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 17);
49764  __Pyx_INCREF(__pyx_t_1);
49765  __Pyx_GIVEREF(__pyx_t_1);
49766  __Pyx_GOTREF(__pyx_v___pyx_result->hz_dirichlet);
49767  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->hz_dirichlet));
49768  __pyx_v___pyx_result->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49769  __pyx_t_1 = 0;
49770  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49771  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49772  __PYX_ERR(1, 12, __pyx_L1_error)
49773  }
49774  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 18)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 18), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49775  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 18);
49776  __Pyx_INCREF(__pyx_t_1);
49777  __Pyx_GIVEREF(__pyx_t_1);
49778  __Pyx_GOTREF(__pyx_v___pyx_result->k_advective);
49779  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->k_advective));
49780  __pyx_v___pyx_result->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49781  __pyx_t_1 = 0;
49782  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49783  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49784  __PYX_ERR(1, 12, __pyx_L1_error)
49785  }
49786  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 19)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 19), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49787  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 19);
49788  __Pyx_INCREF(__pyx_t_1);
49789  __Pyx_GIVEREF(__pyx_t_1);
49790  __Pyx_GOTREF(__pyx_v___pyx_result->k_diffusive);
49791  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->k_diffusive));
49792  __pyx_v___pyx_result->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49793  __pyx_t_1 = 0;
49794  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49795  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49796  __PYX_ERR(1, 12, __pyx_L1_error)
49797  }
49798  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 20)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 20), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49799  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 20);
49800  __Pyx_INCREF(__pyx_t_1);
49801  __Pyx_GIVEREF(__pyx_t_1);
49802  __Pyx_GOTREF(__pyx_v___pyx_result->k_dirichlet);
49803  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->k_dirichlet));
49804  __pyx_v___pyx_result->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49805  __pyx_t_1 = 0;
49806  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49807  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49808  __PYX_ERR(1, 12, __pyx_L1_error)
49809  }
49810  if (!(likely(PyString_CheckExact(PyTuple_GET_ITEM(__pyx_v___pyx_state, 21)))||((PyTuple_GET_ITEM(__pyx_v___pyx_state, 21)) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(PyTuple_GET_ITEM(__pyx_v___pyx_state, 21))->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
49811  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 21);
49812  __Pyx_INCREF(__pyx_t_1);
49813  __Pyx_GIVEREF(__pyx_t_1);
49814  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
49815  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
49816  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
49817  __pyx_t_1 = 0;
49818  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49819  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49820  __PYX_ERR(1, 12, __pyx_L1_error)
49821  }
49822  __pyx_t_5 = __Pyx_PyInt_As_int(PyTuple_GET_ITEM(__pyx_v___pyx_state, 22)); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
49823  __pyx_v___pyx_result->__pyx_base.nd = __pyx_t_5;
49824  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49825  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49826  __PYX_ERR(1, 12, __pyx_L1_error)
49827  }
49828  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 23)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 23), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49829  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 23);
49830  __Pyx_INCREF(__pyx_t_1);
49831  __Pyx_GIVEREF(__pyx_t_1);
49832  __Pyx_GOTREF(__pyx_v___pyx_result->pAddedMass_dirichlet);
49833  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pAddedMass_dirichlet));
49834  __pyx_v___pyx_result->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49835  __pyx_t_1 = 0;
49836  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49837  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49838  __PYX_ERR(1, 12, __pyx_L1_error)
49839  }
49840  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 24)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 24), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49841  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 24);
49842  __Pyx_INCREF(__pyx_t_1);
49843  __Pyx_GIVEREF(__pyx_t_1);
49844  __Pyx_GOTREF(__pyx_v___pyx_result->pInc_advective);
49845  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInc_advective));
49846  __pyx_v___pyx_result->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49847  __pyx_t_1 = 0;
49848  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49849  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49850  __PYX_ERR(1, 12, __pyx_L1_error)
49851  }
49852  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 25)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 25), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49853  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 25);
49854  __Pyx_INCREF(__pyx_t_1);
49855  __Pyx_GIVEREF(__pyx_t_1);
49856  __Pyx_GOTREF(__pyx_v___pyx_result->pInc_diffusive);
49857  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInc_diffusive));
49858  __pyx_v___pyx_result->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49859  __pyx_t_1 = 0;
49860  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49861  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49862  __PYX_ERR(1, 12, __pyx_L1_error)
49863  }
49864  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 26)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 26), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49865  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 26);
49866  __Pyx_INCREF(__pyx_t_1);
49867  __Pyx_GIVEREF(__pyx_t_1);
49868  __Pyx_GOTREF(__pyx_v___pyx_result->pInc_dirichlet);
49869  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInc_dirichlet));
49870  __pyx_v___pyx_result->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49871  __pyx_t_1 = 0;
49872  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49873  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49874  __PYX_ERR(1, 12, __pyx_L1_error)
49875  }
49876  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 27)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 27), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49877  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 27);
49878  __Pyx_INCREF(__pyx_t_1);
49879  __Pyx_GIVEREF(__pyx_t_1);
49880  __Pyx_GOTREF(__pyx_v___pyx_result->pInit_advective);
49881  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInit_advective));
49882  __pyx_v___pyx_result->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49883  __pyx_t_1 = 0;
49884  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49885  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49886  __PYX_ERR(1, 12, __pyx_L1_error)
49887  }
49888  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 28)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 28), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49889  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 28);
49890  __Pyx_INCREF(__pyx_t_1);
49891  __Pyx_GIVEREF(__pyx_t_1);
49892  __Pyx_GOTREF(__pyx_v___pyx_result->pInit_diffusive);
49893  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInit_diffusive));
49894  __pyx_v___pyx_result->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49895  __pyx_t_1 = 0;
49896  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49897  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49898  __PYX_ERR(1, 12, __pyx_L1_error)
49899  }
49900  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 29)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 29), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49901  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 29);
49902  __Pyx_INCREF(__pyx_t_1);
49903  __Pyx_GIVEREF(__pyx_t_1);
49904  __Pyx_GOTREF(__pyx_v___pyx_result->pInit_dirichlet);
49905  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pInit_dirichlet));
49906  __pyx_v___pyx_result->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49907  __pyx_t_1 = 0;
49908  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49909  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49910  __PYX_ERR(1, 12, __pyx_L1_error)
49911  }
49912  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 30)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 30), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49913  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 30);
49914  __Pyx_INCREF(__pyx_t_1);
49915  __Pyx_GIVEREF(__pyx_t_1);
49916  __Pyx_GOTREF(__pyx_v___pyx_result->p_advective);
49917  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->p_advective));
49918  __pyx_v___pyx_result->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49919  __pyx_t_1 = 0;
49920  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49921  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49922  __PYX_ERR(1, 12, __pyx_L1_error)
49923  }
49924  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 31)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 31), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49925  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 31);
49926  __Pyx_INCREF(__pyx_t_1);
49927  __Pyx_GIVEREF(__pyx_t_1);
49928  __Pyx_GOTREF(__pyx_v___pyx_result->p_dirichlet);
49929  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->p_dirichlet));
49930  __pyx_v___pyx_result->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49931  __pyx_t_1 = 0;
49932  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49933  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49934  __PYX_ERR(1, 12, __pyx_L1_error)
49935  }
49936  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 32)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 32), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49937  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 32);
49938  __Pyx_INCREF(__pyx_t_1);
49939  __Pyx_GIVEREF(__pyx_t_1);
49940  __Pyx_GOTREF(__pyx_v___pyx_result->phi_dirichlet);
49941  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->phi_dirichlet));
49942  __pyx_v___pyx_result->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49943  __pyx_t_1 = 0;
49944  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49945  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49946  __PYX_ERR(1, 12, __pyx_L1_error)
49947  }
49948  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 33)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 33), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49949  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 33);
49950  __Pyx_INCREF(__pyx_t_1);
49951  __Pyx_GIVEREF(__pyx_t_1);
49952  __Pyx_GOTREF(__pyx_v___pyx_result->u_advective);
49953  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->u_advective));
49954  __pyx_v___pyx_result->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49955  __pyx_t_1 = 0;
49956  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49957  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49958  __PYX_ERR(1, 12, __pyx_L1_error)
49959  }
49960  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 34)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 34), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49961  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 34);
49962  __Pyx_INCREF(__pyx_t_1);
49963  __Pyx_GIVEREF(__pyx_t_1);
49964  __Pyx_GOTREF(__pyx_v___pyx_result->u_diffusive);
49965  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->u_diffusive));
49966  __pyx_v___pyx_result->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49967  __pyx_t_1 = 0;
49968  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49969  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49970  __PYX_ERR(1, 12, __pyx_L1_error)
49971  }
49972  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 35)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 35), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49973  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 35);
49974  __Pyx_INCREF(__pyx_t_1);
49975  __Pyx_GIVEREF(__pyx_t_1);
49976  __Pyx_GOTREF(__pyx_v___pyx_result->u_dirichlet);
49977  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->u_dirichlet));
49978  __pyx_v___pyx_result->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49979  __pyx_t_1 = 0;
49980  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49981  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49982  __PYX_ERR(1, 12, __pyx_L1_error)
49983  }
49984  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 36)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 36), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49985  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 36);
49986  __Pyx_INCREF(__pyx_t_1);
49987  __Pyx_GIVEREF(__pyx_t_1);
49988  __Pyx_GOTREF(__pyx_v___pyx_result->u_stress);
49989  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->u_stress));
49990  __pyx_v___pyx_result->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
49991  __pyx_t_1 = 0;
49992  if (unlikely(__pyx_v___pyx_state == Py_None)) {
49993  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
49994  __PYX_ERR(1, 12, __pyx_L1_error)
49995  }
49996  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 37)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 37), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
49997  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 37);
49998  __Pyx_INCREF(__pyx_t_1);
49999  __Pyx_GIVEREF(__pyx_t_1);
50000  __Pyx_GOTREF(__pyx_v___pyx_result->us_advective);
50001  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->us_advective));
50002  __pyx_v___pyx_result->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50003  __pyx_t_1 = 0;
50004  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50005  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50006  __PYX_ERR(1, 12, __pyx_L1_error)
50007  }
50008  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 38)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 38), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50009  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 38);
50010  __Pyx_INCREF(__pyx_t_1);
50011  __Pyx_GIVEREF(__pyx_t_1);
50012  __Pyx_GOTREF(__pyx_v___pyx_result->us_diffusive);
50013  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->us_diffusive));
50014  __pyx_v___pyx_result->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50015  __pyx_t_1 = 0;
50016  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50017  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50018  __PYX_ERR(1, 12, __pyx_L1_error)
50019  }
50020  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 39)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 39), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50021  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 39);
50022  __Pyx_INCREF(__pyx_t_1);
50023  __Pyx_GIVEREF(__pyx_t_1);
50024  __Pyx_GOTREF(__pyx_v___pyx_result->us_dirichlet);
50025  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->us_dirichlet));
50026  __pyx_v___pyx_result->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50027  __pyx_t_1 = 0;
50028  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50029  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50030  __PYX_ERR(1, 12, __pyx_L1_error)
50031  }
50032  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 40)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 40), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50033  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 40);
50034  __Pyx_INCREF(__pyx_t_1);
50035  __Pyx_GIVEREF(__pyx_t_1);
50036  __Pyx_GOTREF(__pyx_v___pyx_result->v_advective);
50037  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->v_advective));
50038  __pyx_v___pyx_result->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50039  __pyx_t_1 = 0;
50040  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50041  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50042  __PYX_ERR(1, 12, __pyx_L1_error)
50043  }
50044  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 41)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 41), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50045  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 41);
50046  __Pyx_INCREF(__pyx_t_1);
50047  __Pyx_GIVEREF(__pyx_t_1);
50048  __Pyx_GOTREF(__pyx_v___pyx_result->v_diffusive);
50049  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->v_diffusive));
50050  __pyx_v___pyx_result->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50051  __pyx_t_1 = 0;
50052  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50053  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50054  __PYX_ERR(1, 12, __pyx_L1_error)
50055  }
50056  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 42)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 42), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50057  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 42);
50058  __Pyx_INCREF(__pyx_t_1);
50059  __Pyx_GIVEREF(__pyx_t_1);
50060  __Pyx_GOTREF(__pyx_v___pyx_result->v_dirichlet);
50061  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->v_dirichlet));
50062  __pyx_v___pyx_result->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50063  __pyx_t_1 = 0;
50064  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50065  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50066  __PYX_ERR(1, 12, __pyx_L1_error)
50067  }
50068  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 43)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 43), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50069  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 43);
50070  __Pyx_INCREF(__pyx_t_1);
50071  __Pyx_GIVEREF(__pyx_t_1);
50072  __Pyx_GOTREF(__pyx_v___pyx_result->v_stress);
50073  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->v_stress));
50074  __pyx_v___pyx_result->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50075  __pyx_t_1 = 0;
50076  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50077  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50078  __PYX_ERR(1, 12, __pyx_L1_error)
50079  }
50080  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 44)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 44), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50081  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 44);
50082  __Pyx_INCREF(__pyx_t_1);
50083  __Pyx_GIVEREF(__pyx_t_1);
50084  __Pyx_GOTREF(__pyx_v___pyx_result->vof_advective);
50085  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vof_advective));
50086  __pyx_v___pyx_result->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50087  __pyx_t_1 = 0;
50088  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50089  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50090  __PYX_ERR(1, 12, __pyx_L1_error)
50091  }
50092  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 45)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 45), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50093  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 45);
50094  __Pyx_INCREF(__pyx_t_1);
50095  __Pyx_GIVEREF(__pyx_t_1);
50096  __Pyx_GOTREF(__pyx_v___pyx_result->vof_dirichlet);
50097  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vof_dirichlet));
50098  __pyx_v___pyx_result->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50099  __pyx_t_1 = 0;
50100  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50101  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50102  __PYX_ERR(1, 12, __pyx_L1_error)
50103  }
50104  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 46)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 46), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50105  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 46);
50106  __Pyx_INCREF(__pyx_t_1);
50107  __Pyx_GIVEREF(__pyx_t_1);
50108  __Pyx_GOTREF(__pyx_v___pyx_result->vos_advective);
50109  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vos_advective));
50110  __pyx_v___pyx_result->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50111  __pyx_t_1 = 0;
50112  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50113  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50114  __PYX_ERR(1, 12, __pyx_L1_error)
50115  }
50116  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 47)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 47), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50117  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 47);
50118  __Pyx_INCREF(__pyx_t_1);
50119  __Pyx_GIVEREF(__pyx_t_1);
50120  __Pyx_GOTREF(__pyx_v___pyx_result->vos_dirichlet);
50121  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vos_dirichlet));
50122  __pyx_v___pyx_result->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50123  __pyx_t_1 = 0;
50124  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50125  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50126  __PYX_ERR(1, 12, __pyx_L1_error)
50127  }
50128  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 48)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 48), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50129  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 48);
50130  __Pyx_INCREF(__pyx_t_1);
50131  __Pyx_GIVEREF(__pyx_t_1);
50132  __Pyx_GOTREF(__pyx_v___pyx_result->vs_advective);
50133  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vs_advective));
50134  __pyx_v___pyx_result->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50135  __pyx_t_1 = 0;
50136  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50137  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50138  __PYX_ERR(1, 12, __pyx_L1_error)
50139  }
50140  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 49)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 49), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50141  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 49);
50142  __Pyx_INCREF(__pyx_t_1);
50143  __Pyx_GIVEREF(__pyx_t_1);
50144  __Pyx_GOTREF(__pyx_v___pyx_result->vs_diffusive);
50145  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vs_diffusive));
50146  __pyx_v___pyx_result->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50147  __pyx_t_1 = 0;
50148  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50149  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50150  __PYX_ERR(1, 12, __pyx_L1_error)
50151  }
50152  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 50)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 50), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50153  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 50);
50154  __Pyx_INCREF(__pyx_t_1);
50155  __Pyx_GIVEREF(__pyx_t_1);
50156  __Pyx_GOTREF(__pyx_v___pyx_result->vs_dirichlet);
50157  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->vs_dirichlet));
50158  __pyx_v___pyx_result->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50159  __pyx_t_1 = 0;
50160  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50161  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50162  __PYX_ERR(1, 12, __pyx_L1_error)
50163  }
50164  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 51)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 51), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50165  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 51);
50166  __Pyx_INCREF(__pyx_t_1);
50167  __Pyx_GIVEREF(__pyx_t_1);
50168  __Pyx_GOTREF(__pyx_v___pyx_result->w_advective);
50169  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->w_advective));
50170  __pyx_v___pyx_result->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50171  __pyx_t_1 = 0;
50172  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50173  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50174  __PYX_ERR(1, 12, __pyx_L1_error)
50175  }
50176  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 52)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 52), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50177  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 52);
50178  __Pyx_INCREF(__pyx_t_1);
50179  __Pyx_GIVEREF(__pyx_t_1);
50180  __Pyx_GOTREF(__pyx_v___pyx_result->w_diffusive);
50181  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->w_diffusive));
50182  __pyx_v___pyx_result->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50183  __pyx_t_1 = 0;
50184  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50185  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50186  __PYX_ERR(1, 12, __pyx_L1_error)
50187  }
50188  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 53)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 53), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50189  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 53);
50190  __Pyx_INCREF(__pyx_t_1);
50191  __Pyx_GIVEREF(__pyx_t_1);
50192  __Pyx_GOTREF(__pyx_v___pyx_result->w_dirichlet);
50193  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->w_dirichlet));
50194  __pyx_v___pyx_result->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50195  __pyx_t_1 = 0;
50196  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50197  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50198  __PYX_ERR(1, 12, __pyx_L1_error)
50199  }
50200  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 54)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 54), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50201  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 54);
50202  __Pyx_INCREF(__pyx_t_1);
50203  __Pyx_GIVEREF(__pyx_t_1);
50204  __Pyx_GOTREF(__pyx_v___pyx_result->w_stress);
50205  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->w_stress));
50206  __pyx_v___pyx_result->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50207  __pyx_t_1 = 0;
50208  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50209  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50210  __PYX_ERR(1, 12, __pyx_L1_error)
50211  }
50212  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 55)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 55), __pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics))))) __PYX_ERR(1, 12, __pyx_L1_error)
50213  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 55);
50214  __Pyx_INCREF(__pyx_t_1);
50215  __Pyx_GIVEREF(__pyx_t_1);
50216  __Pyx_GOTREF(__pyx_v___pyx_result->waves);
50217  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->waves));
50218  __pyx_v___pyx_result->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_t_1);
50219  __pyx_t_1 = 0;
50220  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50221  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50222  __PYX_ERR(1, 12, __pyx_L1_error)
50223  }
50224  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 56), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
50225  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->wind_speed, 0);
50226  __pyx_v___pyx_result->wind_speed = __pyx_t_2;
50227  __pyx_t_2.memview = NULL;
50228  __pyx_t_2.data = NULL;
50229  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50230  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50231  __PYX_ERR(1, 12, __pyx_L1_error)
50232  }
50233  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 57)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 57), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50234  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 57);
50235  __Pyx_INCREF(__pyx_t_1);
50236  __Pyx_GIVEREF(__pyx_t_1);
50237  __Pyx_GOTREF(__pyx_v___pyx_result->ws_advective);
50238  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->ws_advective));
50239  __pyx_v___pyx_result->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50240  __pyx_t_1 = 0;
50241  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50242  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50243  __PYX_ERR(1, 12, __pyx_L1_error)
50244  }
50245  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 58)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 58), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50246  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 58);
50247  __Pyx_INCREF(__pyx_t_1);
50248  __Pyx_GIVEREF(__pyx_t_1);
50249  __Pyx_GOTREF(__pyx_v___pyx_result->ws_diffusive);
50250  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->ws_diffusive));
50251  __pyx_v___pyx_result->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50252  __pyx_t_1 = 0;
50253  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50254  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50255  __PYX_ERR(1, 12, __pyx_L1_error)
50256  }
50257  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 59)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 59), __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition))))) __PYX_ERR(1, 12, __pyx_L1_error)
50258  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 59);
50259  __Pyx_INCREF(__pyx_t_1);
50260  __Pyx_GIVEREF(__pyx_t_1);
50261  __Pyx_GOTREF(__pyx_v___pyx_result->ws_dirichlet);
50262  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->ws_dirichlet));
50263  __pyx_v___pyx_result->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)__pyx_t_1);
50264  __pyx_t_1 = 0;
50265  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50266  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50267  __PYX_ERR(1, 12, __pyx_L1_error)
50268  }
50269  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 60), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
50270  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->zero_array, 0);
50271  __pyx_v___pyx_result->zero_array = __pyx_t_2;
50272  __pyx_t_2.memview = NULL;
50273  __pyx_t_2.data = NULL;
50274 
50275  /* "(tree fragment)":13
50276  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state):
50277  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
50278  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
50279  * __pyx_result.__dict__.update(__pyx_state[61])
50280  */
50281  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50282  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
50283  __PYX_ERR(1, 13, __pyx_L1_error)
50284  }
50285  __pyx_t_7 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
50286  __pyx_t_8 = ((__pyx_t_7 > 61) != 0);
50287  if (__pyx_t_8) {
50288  } else {
50289  __pyx_t_6 = __pyx_t_8;
50290  goto __pyx_L4_bool_binop_done;
50291  }
50292  __pyx_t_8 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
50293  __pyx_t_9 = (__pyx_t_8 != 0);
50294  __pyx_t_6 = __pyx_t_9;
50295  __pyx_L4_bool_binop_done:;
50296  if (__pyx_t_6) {
50297 
50298  /* "(tree fragment)":14
50299  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
50300  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'):
50301  * __pyx_result.__dict__.update(__pyx_state[61]) # <<<<<<<<<<<<<<
50302  */
50303  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 14, __pyx_L1_error)
50304  __Pyx_GOTREF(__pyx_t_10);
50305  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_update); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 14, __pyx_L1_error)
50306  __Pyx_GOTREF(__pyx_t_11);
50307  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
50308  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50309  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50310  __PYX_ERR(1, 14, __pyx_L1_error)
50311  }
50312  __pyx_t_10 = NULL;
50313  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
50314  __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
50315  if (likely(__pyx_t_10)) {
50316  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
50317  __Pyx_INCREF(__pyx_t_10);
50318  __Pyx_INCREF(function);
50319  __Pyx_DECREF_SET(__pyx_t_11, function);
50320  }
50321  }
50322  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, PyTuple_GET_ITEM(__pyx_v___pyx_state, 61)) : __Pyx_PyObject_CallOneArg(__pyx_t_11, PyTuple_GET_ITEM(__pyx_v___pyx_state, 61));
50323  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
50324  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
50325  __Pyx_GOTREF(__pyx_t_1);
50326  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
50327  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50328 
50329  /* "(tree fragment)":13
50330  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state):
50331  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
50332  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
50333  * __pyx_result.__dict__.update(__pyx_state[61])
50334  */
50335  }
50336 
50337  /* "(tree fragment)":11
50338  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
50339  * return __pyx_result
50340  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
50341  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
50342  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'):
50343  */
50344 
50345  /* function exit code */
50346  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50347  goto __pyx_L0;
50348  __pyx_L1_error:;
50349  __Pyx_XDECREF(__pyx_t_1);
50350  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
50351  __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
50352  __Pyx_XDECREF(__pyx_t_10);
50353  __Pyx_XDECREF(__pyx_t_11);
50354  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_BC_RANS__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
50355  __pyx_r = 0;
50356  __pyx_L0:;
50357  __Pyx_XGIVEREF(__pyx_r);
50358  __Pyx_TraceReturn(__pyx_r, 0);
50359  __Pyx_RefNannyFinishContext();
50360  return __pyx_r;
50361 }
50362 
50363 /* "(tree fragment)":1
50364  * def __pyx_unpickle_RelaxationZoneWaveGenerator(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
50365  * cdef object __pyx_PickleError
50366  * cdef object __pyx_result
50367  */
50368 
50369 /* Python wrapper */
50370 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_3__pyx_unpickle_RelaxationZoneWaveGenerator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50371 static char __pyx_doc_6mprans_18BoundaryConditions_2__pyx_unpickle_RelaxationZoneWaveGenerator[] = "__pyx_unpickle_RelaxationZoneWaveGenerator(__pyx_type, long __pyx_checksum, __pyx_state)";
50372 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_3__pyx_unpickle_RelaxationZoneWaveGenerator = {"__pyx_unpickle_RelaxationZoneWaveGenerator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_3__pyx_unpickle_RelaxationZoneWaveGenerator, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_2__pyx_unpickle_RelaxationZoneWaveGenerator};
50373 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_3__pyx_unpickle_RelaxationZoneWaveGenerator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50374  PyObject *__pyx_v___pyx_type = 0;
50375  long __pyx_v___pyx_checksum;
50376  PyObject *__pyx_v___pyx_state = 0;
50377  int __pyx_lineno = 0;
50378  const char *__pyx_filename = NULL;
50379  int __pyx_clineno = 0;
50380  PyObject *__pyx_r = 0;
50381  __Pyx_RefNannyDeclarations
50382  __Pyx_RefNannySetupContext("__pyx_unpickle_RelaxationZoneWaveGenerator (wrapper)", 0);
50383  {
50384  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
50385  PyObject* values[3] = {0,0,0};
50386  if (unlikely(__pyx_kwds)) {
50387  Py_ssize_t kw_args;
50388  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
50389  switch (pos_args) {
50390  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50391  CYTHON_FALLTHROUGH;
50392  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50393  CYTHON_FALLTHROUGH;
50394  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50395  CYTHON_FALLTHROUGH;
50396  case 0: break;
50397  default: goto __pyx_L5_argtuple_error;
50398  }
50399  kw_args = PyDict_Size(__pyx_kwds);
50400  switch (pos_args) {
50401  case 0:
50402  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
50403  else goto __pyx_L5_argtuple_error;
50404  CYTHON_FALLTHROUGH;
50405  case 1:
50406  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
50407  else {
50408  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RelaxationZoneWaveGenerator", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
50409  }
50410  CYTHON_FALLTHROUGH;
50411  case 2:
50412  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
50413  else {
50414  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RelaxationZoneWaveGenerator", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
50415  }
50416  }
50417  if (unlikely(kw_args > 0)) {
50418  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_RelaxationZoneWaveGenerator") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
50419  }
50420  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
50421  goto __pyx_L5_argtuple_error;
50422  } else {
50423  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50424  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50425  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50426  }
50427  __pyx_v___pyx_type = values[0];
50428  __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
50429  __pyx_v___pyx_state = values[2];
50430  }
50431  goto __pyx_L4_argument_unpacking_done;
50432  __pyx_L5_argtuple_error:;
50433  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RelaxationZoneWaveGenerator", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
50434  __pyx_L3_error:;
50435  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_RelaxationZoneWaveGenerator", __pyx_clineno, __pyx_lineno, __pyx_filename);
50436  __Pyx_RefNannyFinishContext();
50437  return NULL;
50438  __pyx_L4_argument_unpacking_done:;
50439  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_2__pyx_unpickle_RelaxationZoneWaveGenerator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
50440 
50441  /* function exit code */
50442  __Pyx_RefNannyFinishContext();
50443  return __pyx_r;
50444 }
50445 
50446 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_2__pyx_unpickle_RelaxationZoneWaveGenerator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
50447  PyObject *__pyx_v___pyx_PickleError = 0;
50448  PyObject *__pyx_v___pyx_result = 0;
50449  PyObject *__pyx_r = NULL;
50450  __Pyx_TraceDeclarations
50451  __Pyx_RefNannyDeclarations
50452  PyObject *__pyx_t_1 = NULL;
50453  int __pyx_t_2;
50454  int __pyx_t_3;
50455  PyObject *__pyx_t_4 = NULL;
50456  PyObject *__pyx_t_5 = NULL;
50457  PyObject *__pyx_t_6 = NULL;
50458  int __pyx_lineno = 0;
50459  const char *__pyx_filename = NULL;
50460  int __pyx_clineno = 0;
50461  __Pyx_TraceFrameInit(__pyx_codeobj__139)
50462  __Pyx_RefNannySetupContext("__pyx_unpickle_RelaxationZoneWaveGenerator", 0);
50463  __Pyx_TraceCall("__pyx_unpickle_RelaxationZoneWaveGenerator", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
50464 
50465  /* "(tree fragment)":4
50466  * cdef object __pyx_PickleError
50467  * cdef object __pyx_result
50468  * if __pyx_checksum not in (0x03213e4, 0xc570c34, 0xedef97b): # <<<<<<<<<<<<<<
50469  * from pickle import PickleError as __pyx_PickleError
50470  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50471  */
50472  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
50473  __Pyx_GOTREF(__pyx_t_1);
50474  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__140, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error)
50475  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50476  __pyx_t_3 = (__pyx_t_2 != 0);
50477  if (__pyx_t_3) {
50478 
50479  /* "(tree fragment)":5
50480  * cdef object __pyx_result
50481  * if __pyx_checksum not in (0x03213e4, 0xc570c34, 0xedef97b):
50482  * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<<
50483  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50484  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type)
50485  */
50486  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
50487  __Pyx_GOTREF(__pyx_t_1);
50488  __Pyx_INCREF(__pyx_n_s_PickleError);
50489  __Pyx_GIVEREF(__pyx_n_s_PickleError);
50490  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError);
50491  __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
50492  __Pyx_GOTREF(__pyx_t_4);
50493  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50494  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
50495  __Pyx_GOTREF(__pyx_t_1);
50496  __Pyx_INCREF(__pyx_t_1);
50497  __pyx_v___pyx_PickleError = __pyx_t_1;
50498  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50499  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
50500 
50501  /* "(tree fragment)":6
50502  * if __pyx_checksum not in (0x03213e4, 0xc570c34, 0xedef97b):
50503  * from pickle import PickleError as __pyx_PickleError
50504  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum) # <<<<<<<<<<<<<<
50505  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type)
50506  * if __pyx_state is not None:
50507  */
50508  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
50509  __Pyx_GOTREF(__pyx_t_1);
50510  __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
50511  __Pyx_GOTREF(__pyx_t_5);
50512  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50513  __Pyx_INCREF(__pyx_v___pyx_PickleError);
50514  __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL;
50515  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
50516  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
50517  if (likely(__pyx_t_6)) {
50518  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
50519  __Pyx_INCREF(__pyx_t_6);
50520  __Pyx_INCREF(function);
50521  __Pyx_DECREF_SET(__pyx_t_1, function);
50522  }
50523  }
50524  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5);
50525  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
50526  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
50527  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
50528  __Pyx_GOTREF(__pyx_t_4);
50529  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50530  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
50531  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
50532  __PYX_ERR(1, 6, __pyx_L1_error)
50533 
50534  /* "(tree fragment)":4
50535  * cdef object __pyx_PickleError
50536  * cdef object __pyx_result
50537  * if __pyx_checksum not in (0x03213e4, 0xc570c34, 0xedef97b): # <<<<<<<<<<<<<<
50538  * from pickle import PickleError as __pyx_PickleError
50539  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50540  */
50541  }
50542 
50543  /* "(tree fragment)":7
50544  * from pickle import PickleError as __pyx_PickleError
50545  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50546  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type) # <<<<<<<<<<<<<<
50547  * if __pyx_state is not None:
50548  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50549  */
50550  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
50551  __Pyx_GOTREF(__pyx_t_1);
50552  __pyx_t_5 = NULL;
50553  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
50554  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
50555  if (likely(__pyx_t_5)) {
50556  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
50557  __Pyx_INCREF(__pyx_t_5);
50558  __Pyx_INCREF(function);
50559  __Pyx_DECREF_SET(__pyx_t_1, function);
50560  }
50561  }
50562  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type);
50563  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
50564  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error)
50565  __Pyx_GOTREF(__pyx_t_4);
50566  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50567  __pyx_v___pyx_result = __pyx_t_4;
50568  __pyx_t_4 = 0;
50569 
50570  /* "(tree fragment)":8
50571  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50572  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type)
50573  * if __pyx_state is not None: # <<<<<<<<<<<<<<
50574  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50575  * return __pyx_result
50576  */
50577  __pyx_t_3 = (__pyx_v___pyx_state != Py_None);
50578  __pyx_t_2 = (__pyx_t_3 != 0);
50579  if (__pyx_t_2) {
50580 
50581  /* "(tree fragment)":9
50582  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type)
50583  * if __pyx_state is not None:
50584  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state) # <<<<<<<<<<<<<<
50585  * return __pyx_result
50586  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state):
50587  */
50588  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
50589  __pyx_t_4 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_RelaxationZoneWaveGenerator__set_state(((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
50590  __Pyx_GOTREF(__pyx_t_4);
50591  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
50592 
50593  /* "(tree fragment)":8
50594  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x03213e4, 0xc570c34, 0xedef97b) = (ar, max_flag, model, nd, zones, zones_array))" % __pyx_checksum)
50595  * __pyx_result = RelaxationZoneWaveGenerator.__new__(__pyx_type)
50596  * if __pyx_state is not None: # <<<<<<<<<<<<<<
50597  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50598  * return __pyx_result
50599  */
50600  }
50601 
50602  /* "(tree fragment)":10
50603  * if __pyx_state is not None:
50604  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50605  * return __pyx_result # <<<<<<<<<<<<<<
50606  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state):
50607  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50608  */
50609  __Pyx_XDECREF(__pyx_r);
50610  __Pyx_INCREF(__pyx_v___pyx_result);
50611  __pyx_r = __pyx_v___pyx_result;
50612  goto __pyx_L0;
50613 
50614  /* "(tree fragment)":1
50615  * def __pyx_unpickle_RelaxationZoneWaveGenerator(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
50616  * cdef object __pyx_PickleError
50617  * cdef object __pyx_result
50618  */
50619 
50620  /* function exit code */
50621  __pyx_L1_error:;
50622  __Pyx_XDECREF(__pyx_t_1);
50623  __Pyx_XDECREF(__pyx_t_4);
50624  __Pyx_XDECREF(__pyx_t_5);
50625  __Pyx_XDECREF(__pyx_t_6);
50626  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_RelaxationZoneWaveGenerator", __pyx_clineno, __pyx_lineno, __pyx_filename);
50627  __pyx_r = NULL;
50628  __pyx_L0:;
50629  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
50630  __Pyx_XDECREF(__pyx_v___pyx_result);
50631  __Pyx_XGIVEREF(__pyx_r);
50632  __Pyx_TraceReturn(__pyx_r, 0);
50633  __Pyx_RefNannyFinishContext();
50634  return __pyx_r;
50635 }
50636 
50637 /* "(tree fragment)":11
50638  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50639  * return __pyx_result
50640  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
50641  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50642  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
50643  */
50644 
50645 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle_RelaxationZoneWaveGenerator__set_state(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
50646  PyObject *__pyx_r = NULL;
50647  __Pyx_TraceDeclarations
50648  __Pyx_RefNannyDeclarations
50649  PyObject *__pyx_t_1 = NULL;
50650  int __pyx_t_2;
50651  int __pyx_t_3;
50652  Py_ssize_t __pyx_t_4;
50653  int __pyx_t_5;
50654  int __pyx_t_6;
50655  PyObject *__pyx_t_7 = NULL;
50656  PyObject *__pyx_t_8 = NULL;
50657  int __pyx_lineno = 0;
50658  const char *__pyx_filename = NULL;
50659  int __pyx_clineno = 0;
50660  __Pyx_RefNannySetupContext("__pyx_unpickle_RelaxationZoneWaveGenerator__set_state", 0);
50661  __Pyx_TraceCall("__pyx_unpickle_RelaxationZoneWaveGenerator__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));
50662 
50663  /* "(tree fragment)":12
50664  * return __pyx_result
50665  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state):
50666  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5] # <<<<<<<<<<<<<<
50667  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
50668  * __pyx_result.__dict__.update(__pyx_state[6])
50669  */
50670  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50671  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50672  __PYX_ERR(1, 12, __pyx_L1_error)
50673  }
50674  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
50675  __Pyx_INCREF(__pyx_t_1);
50676  __Pyx_GIVEREF(__pyx_t_1);
50677  __Pyx_GOTREF(__pyx_v___pyx_result->ar);
50678  __Pyx_DECREF(__pyx_v___pyx_result->ar);
50679  __pyx_v___pyx_result->ar = __pyx_t_1;
50680  __pyx_t_1 = 0;
50681  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50682  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50683  __PYX_ERR(1, 12, __pyx_L1_error)
50684  }
50685  __pyx_t_2 = __Pyx_PyInt_As_int(PyTuple_GET_ITEM(__pyx_v___pyx_state, 1)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
50686  __pyx_v___pyx_result->max_flag = __pyx_t_2;
50687  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50688  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50689  __PYX_ERR(1, 12, __pyx_L1_error)
50690  }
50691  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
50692  __Pyx_INCREF(__pyx_t_1);
50693  __Pyx_GIVEREF(__pyx_t_1);
50694  __Pyx_GOTREF(__pyx_v___pyx_result->model);
50695  __Pyx_DECREF(__pyx_v___pyx_result->model);
50696  __pyx_v___pyx_result->model = __pyx_t_1;
50697  __pyx_t_1 = 0;
50698  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50699  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50700  __PYX_ERR(1, 12, __pyx_L1_error)
50701  }
50702  __pyx_t_2 = __Pyx_PyInt_As_int(PyTuple_GET_ITEM(__pyx_v___pyx_state, 3)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
50703  __pyx_v___pyx_result->nd = __pyx_t_2;
50704  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50705  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50706  __PYX_ERR(1, 12, __pyx_L1_error)
50707  }
50708  if (!(likely(PyDict_CheckExact(PyTuple_GET_ITEM(__pyx_v___pyx_state, 4)))||((PyTuple_GET_ITEM(__pyx_v___pyx_state, 4)) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(PyTuple_GET_ITEM(__pyx_v___pyx_state, 4))->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
50709  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 4);
50710  __Pyx_INCREF(__pyx_t_1);
50711  __Pyx_GIVEREF(__pyx_t_1);
50712  __Pyx_GOTREF(__pyx_v___pyx_result->zones);
50713  __Pyx_DECREF(__pyx_v___pyx_result->zones);
50714  __pyx_v___pyx_result->zones = ((PyObject*)__pyx_t_1);
50715  __pyx_t_1 = 0;
50716  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50717  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50718  __PYX_ERR(1, 12, __pyx_L1_error)
50719  }
50720  if (!(likely(((PyTuple_GET_ITEM(__pyx_v___pyx_state, 5)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_v___pyx_state, 5), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(1, 12, __pyx_L1_error)
50721  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 5);
50722  __Pyx_INCREF(__pyx_t_1);
50723  __Pyx_GIVEREF(__pyx_t_1);
50724  __Pyx_GOTREF(__pyx_v___pyx_result->zones_array);
50725  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->zones_array));
50726  __pyx_v___pyx_result->zones_array = ((PyArrayObject *)__pyx_t_1);
50727  __pyx_t_1 = 0;
50728 
50729  /* "(tree fragment)":13
50730  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state):
50731  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50732  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
50733  * __pyx_result.__dict__.update(__pyx_state[6])
50734  */
50735  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50736  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
50737  __PYX_ERR(1, 13, __pyx_L1_error)
50738  }
50739  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
50740  __pyx_t_5 = ((__pyx_t_4 > 6) != 0);
50741  if (__pyx_t_5) {
50742  } else {
50743  __pyx_t_3 = __pyx_t_5;
50744  goto __pyx_L4_bool_binop_done;
50745  }
50746  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
50747  __pyx_t_6 = (__pyx_t_5 != 0);
50748  __pyx_t_3 = __pyx_t_6;
50749  __pyx_L4_bool_binop_done:;
50750  if (__pyx_t_3) {
50751 
50752  /* "(tree fragment)":14
50753  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50754  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
50755  * __pyx_result.__dict__.update(__pyx_state[6]) # <<<<<<<<<<<<<<
50756  */
50757  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
50758  __Pyx_GOTREF(__pyx_t_7);
50759  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
50760  __Pyx_GOTREF(__pyx_t_8);
50761  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
50762  if (unlikely(__pyx_v___pyx_state == Py_None)) {
50763  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
50764  __PYX_ERR(1, 14, __pyx_L1_error)
50765  }
50766  __pyx_t_7 = NULL;
50767  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
50768  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
50769  if (likely(__pyx_t_7)) {
50770  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
50771  __Pyx_INCREF(__pyx_t_7);
50772  __Pyx_INCREF(function);
50773  __Pyx_DECREF_SET(__pyx_t_8, function);
50774  }
50775  }
50776  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, PyTuple_GET_ITEM(__pyx_v___pyx_state, 6)) : __Pyx_PyObject_CallOneArg(__pyx_t_8, PyTuple_GET_ITEM(__pyx_v___pyx_state, 6));
50777  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
50778  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
50779  __Pyx_GOTREF(__pyx_t_1);
50780  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
50781  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50782 
50783  /* "(tree fragment)":13
50784  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state):
50785  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50786  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
50787  * __pyx_result.__dict__.update(__pyx_state[6])
50788  */
50789  }
50790 
50791  /* "(tree fragment)":11
50792  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(<RelaxationZoneWaveGenerator> __pyx_result, __pyx_state)
50793  * return __pyx_result
50794  * cdef __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(RelaxationZoneWaveGenerator __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
50795  * __pyx_result.ar = __pyx_state[0]; __pyx_result.max_flag = __pyx_state[1]; __pyx_result.model = __pyx_state[2]; __pyx_result.nd = __pyx_state[3]; __pyx_result.zones = __pyx_state[4]; __pyx_result.zones_array = __pyx_state[5]
50796  * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
50797  */
50798 
50799  /* function exit code */
50800  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50801  goto __pyx_L0;
50802  __pyx_L1_error:;
50803  __Pyx_XDECREF(__pyx_t_1);
50804  __Pyx_XDECREF(__pyx_t_7);
50805  __Pyx_XDECREF(__pyx_t_8);
50806  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle_RelaxationZoneWaveGenerator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
50807  __pyx_r = 0;
50808  __pyx_L0:;
50809  __Pyx_XGIVEREF(__pyx_r);
50810  __Pyx_TraceReturn(__pyx_r, 0);
50811  __Pyx_RefNannyFinishContext();
50812  return __pyx_r;
50813 }
50814 
50815 /* "(tree fragment)":1
50816  * def __pyx_unpickle___cppClass_WavesCharacteristics(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
50817  * cdef object __pyx_PickleError
50818  * cdef object __pyx_result
50819  */
50820 
50821 /* Python wrapper */
50822 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5__pyx_unpickle___cppClass_WavesCharacteristics(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50823 static char __pyx_doc_6mprans_18BoundaryConditions_4__pyx_unpickle___cppClass_WavesCharacteristics[] = "__pyx_unpickle___cppClass_WavesCharacteristics(__pyx_type, long __pyx_checksum, __pyx_state)";
50824 static PyMethodDef __pyx_mdef_6mprans_18BoundaryConditions_5__pyx_unpickle___cppClass_WavesCharacteristics = {"__pyx_unpickle___cppClass_WavesCharacteristics", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_5__pyx_unpickle___cppClass_WavesCharacteristics, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_4__pyx_unpickle___cppClass_WavesCharacteristics};
50825 static PyObject *__pyx_pw_6mprans_18BoundaryConditions_5__pyx_unpickle___cppClass_WavesCharacteristics(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50826  PyObject *__pyx_v___pyx_type = 0;
50827  long __pyx_v___pyx_checksum;
50828  PyObject *__pyx_v___pyx_state = 0;
50829  int __pyx_lineno = 0;
50830  const char *__pyx_filename = NULL;
50831  int __pyx_clineno = 0;
50832  PyObject *__pyx_r = 0;
50833  __Pyx_RefNannyDeclarations
50834  __Pyx_RefNannySetupContext("__pyx_unpickle___cppClass_WavesCharacteristics (wrapper)", 0);
50835  {
50836  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
50837  PyObject* values[3] = {0,0,0};
50838  if (unlikely(__pyx_kwds)) {
50839  Py_ssize_t kw_args;
50840  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
50841  switch (pos_args) {
50842  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50843  CYTHON_FALLTHROUGH;
50844  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50845  CYTHON_FALLTHROUGH;
50846  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50847  CYTHON_FALLTHROUGH;
50848  case 0: break;
50849  default: goto __pyx_L5_argtuple_error;
50850  }
50851  kw_args = PyDict_Size(__pyx_kwds);
50852  switch (pos_args) {
50853  case 0:
50854  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
50855  else goto __pyx_L5_argtuple_error;
50856  CYTHON_FALLTHROUGH;
50857  case 1:
50858  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
50859  else {
50860  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle___cppClass_WavesCharacteristics", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
50861  }
50862  CYTHON_FALLTHROUGH;
50863  case 2:
50864  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
50865  else {
50866  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle___cppClass_WavesCharacteristics", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
50867  }
50868  }
50869  if (unlikely(kw_args > 0)) {
50870  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle___cppClass_WavesCharacteristics") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
50871  }
50872  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
50873  goto __pyx_L5_argtuple_error;
50874  } else {
50875  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50876  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50877  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50878  }
50879  __pyx_v___pyx_type = values[0];
50880  __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
50881  __pyx_v___pyx_state = values[2];
50882  }
50883  goto __pyx_L4_argument_unpacking_done;
50884  __pyx_L5_argtuple_error:;
50885  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle___cppClass_WavesCharacteristics", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
50886  __pyx_L3_error:;
50887  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle___cppClass_WavesCharacteristics", __pyx_clineno, __pyx_lineno, __pyx_filename);
50888  __Pyx_RefNannyFinishContext();
50889  return NULL;
50890  __pyx_L4_argument_unpacking_done:;
50891  __pyx_r = __pyx_pf_6mprans_18BoundaryConditions_4__pyx_unpickle___cppClass_WavesCharacteristics(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
50892 
50893  /* function exit code */
50894  __Pyx_RefNannyFinishContext();
50895  return __pyx_r;
50896 }
50897 
50898 static PyObject *__pyx_pf_6mprans_18BoundaryConditions_4__pyx_unpickle___cppClass_WavesCharacteristics(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
50899  PyObject *__pyx_v___pyx_PickleError = 0;
50900  PyObject *__pyx_v___pyx_result = 0;
50901  PyObject *__pyx_r = NULL;
50902  __Pyx_TraceDeclarations
50903  __Pyx_RefNannyDeclarations
50904  PyObject *__pyx_t_1 = NULL;
50905  int __pyx_t_2;
50906  int __pyx_t_3;
50907  PyObject *__pyx_t_4 = NULL;
50908  PyObject *__pyx_t_5 = NULL;
50909  PyObject *__pyx_t_6 = NULL;
50910  int __pyx_lineno = 0;
50911  const char *__pyx_filename = NULL;
50912  int __pyx_clineno = 0;
50913  __Pyx_TraceFrameInit(__pyx_codeobj__141)
50914  __Pyx_RefNannySetupContext("__pyx_unpickle___cppClass_WavesCharacteristics", 0);
50915  __Pyx_TraceCall("__pyx_unpickle___cppClass_WavesCharacteristics", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
50916 
50917  /* "(tree fragment)":4
50918  * cdef object __pyx_PickleError
50919  * cdef object __pyx_result
50920  * if __pyx_checksum not in (0x17beb7a, 0x99c0f35, 0x23a708e): # <<<<<<<<<<<<<<
50921  * from pickle import PickleError as __pyx_PickleError
50922  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
50923  */
50924  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
50925  __Pyx_GOTREF(__pyx_t_1);
50926  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__142, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error)
50927  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50928  __pyx_t_3 = (__pyx_t_2 != 0);
50929  if (__pyx_t_3) {
50930 
50931  /* "(tree fragment)":5
50932  * cdef object __pyx_result
50933  * if __pyx_checksum not in (0x17beb7a, 0x99c0f35, 0x23a708e):
50934  * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<<
50935  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
50936  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type)
50937  */
50938  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
50939  __Pyx_GOTREF(__pyx_t_1);
50940  __Pyx_INCREF(__pyx_n_s_PickleError);
50941  __Pyx_GIVEREF(__pyx_n_s_PickleError);
50942  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError);
50943  __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
50944  __Pyx_GOTREF(__pyx_t_4);
50945  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50946  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
50947  __Pyx_GOTREF(__pyx_t_1);
50948  __Pyx_INCREF(__pyx_t_1);
50949  __pyx_v___pyx_PickleError = __pyx_t_1;
50950  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50951  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
50952 
50953  /* "(tree fragment)":6
50954  * if __pyx_checksum not in (0x17beb7a, 0x99c0f35, 0x23a708e):
50955  * from pickle import PickleError as __pyx_PickleError
50956  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum) # <<<<<<<<<<<<<<
50957  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type)
50958  * if __pyx_state is not None:
50959  */
50960  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
50961  __Pyx_GOTREF(__pyx_t_1);
50962  __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
50963  __Pyx_GOTREF(__pyx_t_5);
50964  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50965  __Pyx_INCREF(__pyx_v___pyx_PickleError);
50966  __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL;
50967  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
50968  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
50969  if (likely(__pyx_t_6)) {
50970  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
50971  __Pyx_INCREF(__pyx_t_6);
50972  __Pyx_INCREF(function);
50973  __Pyx_DECREF_SET(__pyx_t_1, function);
50974  }
50975  }
50976  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5);
50977  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
50978  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
50979  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
50980  __Pyx_GOTREF(__pyx_t_4);
50981  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50982  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
50983  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
50984  __PYX_ERR(1, 6, __pyx_L1_error)
50985 
50986  /* "(tree fragment)":4
50987  * cdef object __pyx_PickleError
50988  * cdef object __pyx_result
50989  * if __pyx_checksum not in (0x17beb7a, 0x99c0f35, 0x23a708e): # <<<<<<<<<<<<<<
50990  * from pickle import PickleError as __pyx_PickleError
50991  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
50992  */
50993  }
50994 
50995  /* "(tree fragment)":7
50996  * from pickle import PickleError as __pyx_PickleError
50997  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
50998  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type) # <<<<<<<<<<<<<<
50999  * if __pyx_state is not None:
51000  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51001  */
51002  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
51003  __Pyx_GOTREF(__pyx_t_1);
51004  __pyx_t_5 = NULL;
51005  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
51006  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
51007  if (likely(__pyx_t_5)) {
51008  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
51009  __Pyx_INCREF(__pyx_t_5);
51010  __Pyx_INCREF(function);
51011  __Pyx_DECREF_SET(__pyx_t_1, function);
51012  }
51013  }
51014  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type);
51015  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
51016  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error)
51017  __Pyx_GOTREF(__pyx_t_4);
51018  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51019  __pyx_v___pyx_result = __pyx_t_4;
51020  __pyx_t_4 = 0;
51021 
51022  /* "(tree fragment)":8
51023  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
51024  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type)
51025  * if __pyx_state is not None: # <<<<<<<<<<<<<<
51026  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51027  * return __pyx_result
51028  */
51029  __pyx_t_3 = (__pyx_v___pyx_state != Py_None);
51030  __pyx_t_2 = (__pyx_t_3 != 0);
51031  if (__pyx_t_2) {
51032 
51033  /* "(tree fragment)":9
51034  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type)
51035  * if __pyx_state is not None:
51036  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state) # <<<<<<<<<<<<<<
51037  * return __pyx_result
51038  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state):
51039  */
51040  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
51041  __pyx_t_4 = __pyx_f_6mprans_18BoundaryConditions___pyx_unpickle___cppClass_WavesCharacteristics__set_state(((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
51042  __Pyx_GOTREF(__pyx_t_4);
51043  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
51044 
51045  /* "(tree fragment)":8
51046  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x17beb7a, 0x99c0f35, 0x23a708e) = (WT, _b_or, center, orientation, smoothing, vert_axis, vof_air, vof_water, wind_speed, zero_vel))" % __pyx_checksum)
51047  * __pyx_result = __cppClass_WavesCharacteristics.__new__(__pyx_type)
51048  * if __pyx_state is not None: # <<<<<<<<<<<<<<
51049  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51050  * return __pyx_result
51051  */
51052  }
51053 
51054  /* "(tree fragment)":10
51055  * if __pyx_state is not None:
51056  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51057  * return __pyx_result # <<<<<<<<<<<<<<
51058  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state):
51059  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51060  */
51061  __Pyx_XDECREF(__pyx_r);
51062  __Pyx_INCREF(__pyx_v___pyx_result);
51063  __pyx_r = __pyx_v___pyx_result;
51064  goto __pyx_L0;
51065 
51066  /* "(tree fragment)":1
51067  * def __pyx_unpickle___cppClass_WavesCharacteristics(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
51068  * cdef object __pyx_PickleError
51069  * cdef object __pyx_result
51070  */
51071 
51072  /* function exit code */
51073  __pyx_L1_error:;
51074  __Pyx_XDECREF(__pyx_t_1);
51075  __Pyx_XDECREF(__pyx_t_4);
51076  __Pyx_XDECREF(__pyx_t_5);
51077  __Pyx_XDECREF(__pyx_t_6);
51078  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle___cppClass_WavesCharacteristics", __pyx_clineno, __pyx_lineno, __pyx_filename);
51079  __pyx_r = NULL;
51080  __pyx_L0:;
51081  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
51082  __Pyx_XDECREF(__pyx_v___pyx_result);
51083  __Pyx_XGIVEREF(__pyx_r);
51084  __Pyx_TraceReturn(__pyx_r, 0);
51085  __Pyx_RefNannyFinishContext();
51086  return __pyx_r;
51087 }
51088 
51089 /* "(tree fragment)":11
51090  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51091  * return __pyx_result
51092  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
51093  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51094  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
51095  */
51096 
51097 static PyObject *__pyx_f_6mprans_18BoundaryConditions___pyx_unpickle___cppClass_WavesCharacteristics__set_state(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
51098  PyObject *__pyx_r = NULL;
51099  __Pyx_TraceDeclarations
51100  __Pyx_RefNannyDeclarations
51101  PyObject *__pyx_t_1 = NULL;
51102  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
51103  double __pyx_t_3;
51104  int __pyx_t_4;
51105  int __pyx_t_5;
51106  Py_ssize_t __pyx_t_6;
51107  int __pyx_t_7;
51108  int __pyx_t_8;
51109  PyObject *__pyx_t_9 = NULL;
51110  PyObject *__pyx_t_10 = NULL;
51111  int __pyx_lineno = 0;
51112  const char *__pyx_filename = NULL;
51113  int __pyx_clineno = 0;
51114  __Pyx_RefNannySetupContext("__pyx_unpickle___cppClass_WavesCharacteristics__set_state", 0);
51115  __Pyx_TraceCall("__pyx_unpickle___cppClass_WavesCharacteristics__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));
51116 
51117  /* "(tree fragment)":12
51118  * return __pyx_result
51119  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state):
51120  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9] # <<<<<<<<<<<<<<
51121  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
51122  * __pyx_result.__dict__.update(__pyx_state[10])
51123  */
51124  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51125  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51126  __PYX_ERR(1, 12, __pyx_L1_error)
51127  }
51128  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
51129  __Pyx_INCREF(__pyx_t_1);
51130  __Pyx_GIVEREF(__pyx_t_1);
51131  __Pyx_GOTREF(__pyx_v___pyx_result->WT);
51132  __Pyx_DECREF(__pyx_v___pyx_result->WT);
51133  __pyx_v___pyx_result->WT = __pyx_t_1;
51134  __pyx_t_1 = 0;
51135  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51136  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51137  __PYX_ERR(1, 12, __pyx_L1_error)
51138  }
51139  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 1), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
51140  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->_b_or, 0);
51141  __pyx_v___pyx_result->_b_or = __pyx_t_2;
51142  __pyx_t_2.memview = NULL;
51143  __pyx_t_2.data = NULL;
51144  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51145  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51146  __PYX_ERR(1, 12, __pyx_L1_error)
51147  }
51148  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
51149  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->center, 0);
51150  __pyx_v___pyx_result->center = __pyx_t_2;
51151  __pyx_t_2.memview = NULL;
51152  __pyx_t_2.data = NULL;
51153  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51154  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51155  __PYX_ERR(1, 12, __pyx_L1_error)
51156  }
51157  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 3), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
51158  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->orientation, 0);
51159  __pyx_v___pyx_result->orientation = __pyx_t_2;
51160  __pyx_t_2.memview = NULL;
51161  __pyx_t_2.data = NULL;
51162  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51163  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51164  __PYX_ERR(1, 12, __pyx_L1_error)
51165  }
51166  __pyx_t_3 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_v___pyx_state, 4)); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
51167  __pyx_v___pyx_result->smoothing = __pyx_t_3;
51168  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51169  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51170  __PYX_ERR(1, 12, __pyx_L1_error)
51171  }
51172  __pyx_t_4 = __Pyx_PyInt_As_int(PyTuple_GET_ITEM(__pyx_v___pyx_state, 5)); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
51173  __pyx_v___pyx_result->vert_axis = __pyx_t_4;
51174  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51175  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51176  __PYX_ERR(1, 12, __pyx_L1_error)
51177  }
51178  __pyx_t_3 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_v___pyx_state, 6)); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
51179  __pyx_v___pyx_result->vof_air = __pyx_t_3;
51180  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51181  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51182  __PYX_ERR(1, 12, __pyx_L1_error)
51183  }
51184  __pyx_t_3 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_v___pyx_state, 7)); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
51185  __pyx_v___pyx_result->vof_water = __pyx_t_3;
51186  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51187  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51188  __PYX_ERR(1, 12, __pyx_L1_error)
51189  }
51190  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 8), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
51191  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->wind_speed, 0);
51192  __pyx_v___pyx_result->wind_speed = __pyx_t_2;
51193  __pyx_t_2.memview = NULL;
51194  __pyx_t_2.data = NULL;
51195  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51196  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51197  __PYX_ERR(1, 12, __pyx_L1_error)
51198  }
51199  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyTuple_GET_ITEM(__pyx_v___pyx_state, 9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(1, 12, __pyx_L1_error)
51200  __PYX_XDEC_MEMVIEW(&__pyx_v___pyx_result->zero_vel, 0);
51201  __pyx_v___pyx_result->zero_vel = __pyx_t_2;
51202  __pyx_t_2.memview = NULL;
51203  __pyx_t_2.data = NULL;
51204 
51205  /* "(tree fragment)":13
51206  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state):
51207  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51208  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
51209  * __pyx_result.__dict__.update(__pyx_state[10])
51210  */
51211  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51212  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
51213  __PYX_ERR(1, 13, __pyx_L1_error)
51214  }
51215  __pyx_t_6 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
51216  __pyx_t_7 = ((__pyx_t_6 > 10) != 0);
51217  if (__pyx_t_7) {
51218  } else {
51219  __pyx_t_5 = __pyx_t_7;
51220  goto __pyx_L4_bool_binop_done;
51221  }
51222  __pyx_t_7 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
51223  __pyx_t_8 = (__pyx_t_7 != 0);
51224  __pyx_t_5 = __pyx_t_8;
51225  __pyx_L4_bool_binop_done:;
51226  if (__pyx_t_5) {
51227 
51228  /* "(tree fragment)":14
51229  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51230  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
51231  * __pyx_result.__dict__.update(__pyx_state[10]) # <<<<<<<<<<<<<<
51232  */
51233  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 14, __pyx_L1_error)
51234  __Pyx_GOTREF(__pyx_t_9);
51235  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_update); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 14, __pyx_L1_error)
51236  __Pyx_GOTREF(__pyx_t_10);
51237  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
51238  if (unlikely(__pyx_v___pyx_state == Py_None)) {
51239  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
51240  __PYX_ERR(1, 14, __pyx_L1_error)
51241  }
51242  __pyx_t_9 = NULL;
51243  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
51244  __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
51245  if (likely(__pyx_t_9)) {
51246  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
51247  __Pyx_INCREF(__pyx_t_9);
51248  __Pyx_INCREF(function);
51249  __Pyx_DECREF_SET(__pyx_t_10, function);
51250  }
51251  }
51252  __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, PyTuple_GET_ITEM(__pyx_v___pyx_state, 10)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, PyTuple_GET_ITEM(__pyx_v___pyx_state, 10));
51253  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
51254  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
51255  __Pyx_GOTREF(__pyx_t_1);
51256  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
51257  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51258 
51259  /* "(tree fragment)":13
51260  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state):
51261  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51262  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
51263  * __pyx_result.__dict__.update(__pyx_state[10])
51264  */
51265  }
51266 
51267  /* "(tree fragment)":11
51268  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(<__cppClass_WavesCharacteristics> __pyx_result, __pyx_state)
51269  * return __pyx_result
51270  * cdef __pyx_unpickle___cppClass_WavesCharacteristics__set_state(__cppClass_WavesCharacteristics __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
51271  * __pyx_result.WT = __pyx_state[0]; __pyx_result._b_or = __pyx_state[1]; __pyx_result.center = __pyx_state[2]; __pyx_result.orientation = __pyx_state[3]; __pyx_result.smoothing = __pyx_state[4]; __pyx_result.vert_axis = __pyx_state[5]; __pyx_result.vof_air = __pyx_state[6]; __pyx_result.vof_water = __pyx_state[7]; __pyx_result.wind_speed = __pyx_state[8]; __pyx_result.zero_vel = __pyx_state[9]
51272  * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
51273  */
51274 
51275  /* function exit code */
51276  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51277  goto __pyx_L0;
51278  __pyx_L1_error:;
51279  __Pyx_XDECREF(__pyx_t_1);
51280  __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
51281  __Pyx_XDECREF(__pyx_t_9);
51282  __Pyx_XDECREF(__pyx_t_10);
51283  __Pyx_AddTraceback("mprans.BoundaryConditions.__pyx_unpickle___cppClass_WavesCharacteristics__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
51284  __pyx_r = 0;
51285  __pyx_L0:;
51286  __Pyx_XGIVEREF(__pyx_r);
51287  __Pyx_TraceReturn(__pyx_r, 0);
51288  __Pyx_RefNannyFinishContext();
51289  return __pyx_r;
51290 }
51291 
51292 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":735
51293  * ctypedef npy_cdouble complex_t
51294  *
51295  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
51296  * return PyArray_MultiIterNew(1, <void*>a)
51297  *
51298  */
51299 
51300 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
51301  PyObject *__pyx_r = NULL;
51302  __Pyx_TraceDeclarations
51303  __Pyx_RefNannyDeclarations
51304  PyObject *__pyx_t_1 = NULL;
51305  int __pyx_lineno = 0;
51306  const char *__pyx_filename = NULL;
51307  int __pyx_clineno = 0;
51308  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
51309  __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[3], 735, 0, __PYX_ERR(3, 735, __pyx_L1_error));
51310 
51311  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":736
51312  *
51313  * cdef inline object PyArray_MultiIterNew1(a):
51314  * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
51315  *
51316  * cdef inline object PyArray_MultiIterNew2(a, b):
51317  */
51318  __Pyx_XDECREF(__pyx_r);
51319  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 736, __pyx_L1_error)
51320  __Pyx_GOTREF(__pyx_t_1);
51321  __pyx_r = __pyx_t_1;
51322  __pyx_t_1 = 0;
51323  goto __pyx_L0;
51324 
51325  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":735
51326  * ctypedef npy_cdouble complex_t
51327  *
51328  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
51329  * return PyArray_MultiIterNew(1, <void*>a)
51330  *
51331  */
51332 
51333  /* function exit code */
51334  __pyx_L1_error:;
51335  __Pyx_XDECREF(__pyx_t_1);
51336  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
51337  __pyx_r = 0;
51338  __pyx_L0:;
51339  __Pyx_XGIVEREF(__pyx_r);
51340  __Pyx_TraceReturn(__pyx_r, 0);
51341  __Pyx_RefNannyFinishContext();
51342  return __pyx_r;
51343 }
51344 
51345 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":738
51346  * return PyArray_MultiIterNew(1, <void*>a)
51347  *
51348  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
51349  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
51350  *
51351  */
51352 
51353 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
51354  PyObject *__pyx_r = NULL;
51355  __Pyx_TraceDeclarations
51356  __Pyx_RefNannyDeclarations
51357  PyObject *__pyx_t_1 = NULL;
51358  int __pyx_lineno = 0;
51359  const char *__pyx_filename = NULL;
51360  int __pyx_clineno = 0;
51361  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
51362  __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[3], 738, 0, __PYX_ERR(3, 738, __pyx_L1_error));
51363 
51364  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":739
51365  *
51366  * cdef inline object PyArray_MultiIterNew2(a, b):
51367  * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
51368  *
51369  * cdef inline object PyArray_MultiIterNew3(a, b, c):
51370  */
51371  __Pyx_XDECREF(__pyx_r);
51372  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 739, __pyx_L1_error)
51373  __Pyx_GOTREF(__pyx_t_1);
51374  __pyx_r = __pyx_t_1;
51375  __pyx_t_1 = 0;
51376  goto __pyx_L0;
51377 
51378  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":738
51379  * return PyArray_MultiIterNew(1, <void*>a)
51380  *
51381  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
51382  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
51383  *
51384  */
51385 
51386  /* function exit code */
51387  __pyx_L1_error:;
51388  __Pyx_XDECREF(__pyx_t_1);
51389  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
51390  __pyx_r = 0;
51391  __pyx_L0:;
51392  __Pyx_XGIVEREF(__pyx_r);
51393  __Pyx_TraceReturn(__pyx_r, 0);
51394  __Pyx_RefNannyFinishContext();
51395  return __pyx_r;
51396 }
51397 
51398 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":741
51399  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
51400  *
51401  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
51402  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
51403  *
51404  */
51405 
51406 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
51407  PyObject *__pyx_r = NULL;
51408  __Pyx_TraceDeclarations
51409  __Pyx_RefNannyDeclarations
51410  PyObject *__pyx_t_1 = NULL;
51411  int __pyx_lineno = 0;
51412  const char *__pyx_filename = NULL;
51413  int __pyx_clineno = 0;
51414  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
51415  __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[3], 741, 0, __PYX_ERR(3, 741, __pyx_L1_error));
51416 
51417  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":742
51418  *
51419  * cdef inline object PyArray_MultiIterNew3(a, b, c):
51420  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
51421  *
51422  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
51423  */
51424  __Pyx_XDECREF(__pyx_r);
51425  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 742, __pyx_L1_error)
51426  __Pyx_GOTREF(__pyx_t_1);
51427  __pyx_r = __pyx_t_1;
51428  __pyx_t_1 = 0;
51429  goto __pyx_L0;
51430 
51431  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":741
51432  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
51433  *
51434  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
51435  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
51436  *
51437  */
51438 
51439  /* function exit code */
51440  __pyx_L1_error:;
51441  __Pyx_XDECREF(__pyx_t_1);
51442  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
51443  __pyx_r = 0;
51444  __pyx_L0:;
51445  __Pyx_XGIVEREF(__pyx_r);
51446  __Pyx_TraceReturn(__pyx_r, 0);
51447  __Pyx_RefNannyFinishContext();
51448  return __pyx_r;
51449 }
51450 
51451 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":744
51452  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
51453  *
51454  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
51455  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
51456  *
51457  */
51458 
51459 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
51460  PyObject *__pyx_r = NULL;
51461  __Pyx_TraceDeclarations
51462  __Pyx_RefNannyDeclarations
51463  PyObject *__pyx_t_1 = NULL;
51464  int __pyx_lineno = 0;
51465  const char *__pyx_filename = NULL;
51466  int __pyx_clineno = 0;
51467  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
51468  __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[3], 744, 0, __PYX_ERR(3, 744, __pyx_L1_error));
51469 
51470  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":745
51471  *
51472  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
51473  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
51474  *
51475  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
51476  */
51477  __Pyx_XDECREF(__pyx_r);
51478  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 745, __pyx_L1_error)
51479  __Pyx_GOTREF(__pyx_t_1);
51480  __pyx_r = __pyx_t_1;
51481  __pyx_t_1 = 0;
51482  goto __pyx_L0;
51483 
51484  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":744
51485  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
51486  *
51487  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
51488  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
51489  *
51490  */
51491 
51492  /* function exit code */
51493  __pyx_L1_error:;
51494  __Pyx_XDECREF(__pyx_t_1);
51495  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
51496  __pyx_r = 0;
51497  __pyx_L0:;
51498  __Pyx_XGIVEREF(__pyx_r);
51499  __Pyx_TraceReturn(__pyx_r, 0);
51500  __Pyx_RefNannyFinishContext();
51501  return __pyx_r;
51502 }
51503 
51504 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":747
51505  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
51506  *
51507  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
51508  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
51509  *
51510  */
51511 
51512 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
51513  PyObject *__pyx_r = NULL;
51514  __Pyx_TraceDeclarations
51515  __Pyx_RefNannyDeclarations
51516  PyObject *__pyx_t_1 = NULL;
51517  int __pyx_lineno = 0;
51518  const char *__pyx_filename = NULL;
51519  int __pyx_clineno = 0;
51520  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
51521  __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[3], 747, 0, __PYX_ERR(3, 747, __pyx_L1_error));
51522 
51523  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":748
51524  *
51525  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
51526  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
51527  *
51528  * cdef inline tuple PyDataType_SHAPE(dtype d):
51529  */
51530  __Pyx_XDECREF(__pyx_r);
51531  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 748, __pyx_L1_error)
51532  __Pyx_GOTREF(__pyx_t_1);
51533  __pyx_r = __pyx_t_1;
51534  __pyx_t_1 = 0;
51535  goto __pyx_L0;
51536 
51537  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":747
51538  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
51539  *
51540  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
51541  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
51542  *
51543  */
51544 
51545  /* function exit code */
51546  __pyx_L1_error:;
51547  __Pyx_XDECREF(__pyx_t_1);
51548  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
51549  __pyx_r = 0;
51550  __pyx_L0:;
51551  __Pyx_XGIVEREF(__pyx_r);
51552  __Pyx_TraceReturn(__pyx_r, 0);
51553  __Pyx_RefNannyFinishContext();
51554  return __pyx_r;
51555 }
51556 
51557 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":750
51558  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
51559  *
51560  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
51561  * if PyDataType_HASSUBARRAY(d):
51562  * return <tuple>d.subarray.shape
51563  */
51564 
51565 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
51566  PyObject *__pyx_r = NULL;
51567  __Pyx_TraceDeclarations
51568  __Pyx_RefNannyDeclarations
51569  int __pyx_t_1;
51570  int __pyx_lineno = 0;
51571  const char *__pyx_filename = NULL;
51572  int __pyx_clineno = 0;
51573  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
51574  __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[3], 750, 0, __PYX_ERR(3, 750, __pyx_L1_error));
51575 
51576  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":751
51577  *
51578  * cdef inline tuple PyDataType_SHAPE(dtype d):
51579  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
51580  * return <tuple>d.subarray.shape
51581  * else:
51582  */
51583  __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
51584  if (__pyx_t_1) {
51585 
51586  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":752
51587  * cdef inline tuple PyDataType_SHAPE(dtype d):
51588  * if PyDataType_HASSUBARRAY(d):
51589  * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
51590  * else:
51591  * return ()
51592  */
51593  __Pyx_XDECREF(__pyx_r);
51594  __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
51595  __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
51596  goto __pyx_L0;
51597 
51598  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":751
51599  *
51600  * cdef inline tuple PyDataType_SHAPE(dtype d):
51601  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
51602  * return <tuple>d.subarray.shape
51603  * else:
51604  */
51605  }
51606 
51607  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":754
51608  * return <tuple>d.subarray.shape
51609  * else:
51610  * return () # <<<<<<<<<<<<<<
51611  *
51612  *
51613  */
51614  /*else*/ {
51615  __Pyx_XDECREF(__pyx_r);
51616  __Pyx_INCREF(__pyx_empty_tuple);
51617  __pyx_r = __pyx_empty_tuple;
51618  goto __pyx_L0;
51619  }
51620 
51621  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":750
51622  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
51623  *
51624  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
51625  * if PyDataType_HASSUBARRAY(d):
51626  * return <tuple>d.subarray.shape
51627  */
51628 
51629  /* function exit code */
51630  __pyx_L1_error:;
51631  __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
51632  __pyx_r = 0;
51633  __pyx_L0:;
51634  __Pyx_XGIVEREF(__pyx_r);
51635  __Pyx_TraceReturn(__pyx_r, 0);
51636  __Pyx_RefNannyFinishContext();
51637  return __pyx_r;
51638 }
51639 
51640 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":929
51641  * int _import_umath() except -1
51642  *
51643  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
51644  * Py_INCREF(base) # important to do this before stealing the reference below!
51645  * PyArray_SetBaseObject(arr, base)
51646  */
51647 
51648 static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
51649  __Pyx_TraceDeclarations
51650  __Pyx_RefNannyDeclarations
51651  int __pyx_lineno = 0;
51652  const char *__pyx_filename = NULL;
51653  int __pyx_clineno = 0;
51654  __Pyx_RefNannySetupContext("set_array_base", 0);
51655  __Pyx_TraceCall("set_array_base", __pyx_f[3], 929, 0, __PYX_ERR(3, 929, __pyx_L1_error));
51656 
51657  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":930
51658  *
51659  * cdef inline void set_array_base(ndarray arr, object base):
51660  * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
51661  * PyArray_SetBaseObject(arr, base)
51662  *
51663  */
51664  Py_INCREF(__pyx_v_base);
51665 
51666  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":931
51667  * cdef inline void set_array_base(ndarray arr, object base):
51668  * Py_INCREF(base) # important to do this before stealing the reference below!
51669  * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
51670  *
51671  * cdef inline object get_array_base(ndarray arr):
51672  */
51673  (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));
51674 
51675  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":929
51676  * int _import_umath() except -1
51677  *
51678  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
51679  * Py_INCREF(base) # important to do this before stealing the reference below!
51680  * PyArray_SetBaseObject(arr, base)
51681  */
51682 
51683  /* function exit code */
51684  goto __pyx_L0;
51685  __pyx_L1_error:;
51686  __Pyx_WriteUnraisable("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
51687  __pyx_L0:;
51688  __Pyx_TraceReturn(Py_None, 0);
51689  __Pyx_RefNannyFinishContext();
51690 }
51691 
51692 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":933
51693  * PyArray_SetBaseObject(arr, base)
51694  *
51695  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
51696  * base = PyArray_BASE(arr)
51697  * if base is NULL:
51698  */
51699 
51700 static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
51701  PyObject *__pyx_v_base;
51702  PyObject *__pyx_r = NULL;
51703  __Pyx_TraceDeclarations
51704  __Pyx_RefNannyDeclarations
51705  int __pyx_t_1;
51706  int __pyx_lineno = 0;
51707  const char *__pyx_filename = NULL;
51708  int __pyx_clineno = 0;
51709  __Pyx_RefNannySetupContext("get_array_base", 0);
51710  __Pyx_TraceCall("get_array_base", __pyx_f[3], 933, 0, __PYX_ERR(3, 933, __pyx_L1_error));
51711 
51712  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":934
51713  *
51714  * cdef inline object get_array_base(ndarray arr):
51715  * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
51716  * if base is NULL:
51717  * return None
51718  */
51719  __pyx_v_base = PyArray_BASE(__pyx_v_arr);
51720 
51721  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":935
51722  * cdef inline object get_array_base(ndarray arr):
51723  * base = PyArray_BASE(arr)
51724  * if base is NULL: # <<<<<<<<<<<<<<
51725  * return None
51726  * return <object>base
51727  */
51728  __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
51729  if (__pyx_t_1) {
51730 
51731  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":936
51732  * base = PyArray_BASE(arr)
51733  * if base is NULL:
51734  * return None # <<<<<<<<<<<<<<
51735  * return <object>base
51736  *
51737  */
51738  __Pyx_XDECREF(__pyx_r);
51739  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51740  goto __pyx_L0;
51741 
51742  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":935
51743  * cdef inline object get_array_base(ndarray arr):
51744  * base = PyArray_BASE(arr)
51745  * if base is NULL: # <<<<<<<<<<<<<<
51746  * return None
51747  * return <object>base
51748  */
51749  }
51750 
51751  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":937
51752  * if base is NULL:
51753  * return None
51754  * return <object>base # <<<<<<<<<<<<<<
51755  *
51756  * # Versions of the import_* functions which are more suitable for
51757  */
51758  __Pyx_XDECREF(__pyx_r);
51759  __Pyx_INCREF(((PyObject *)__pyx_v_base));
51760  __pyx_r = ((PyObject *)__pyx_v_base);
51761  goto __pyx_L0;
51762 
51763  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":933
51764  * PyArray_SetBaseObject(arr, base)
51765  *
51766  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
51767  * base = PyArray_BASE(arr)
51768  * if base is NULL:
51769  */
51770 
51771  /* function exit code */
51772  __pyx_L1_error:;
51773  __Pyx_AddTraceback("numpy.get_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
51774  __pyx_r = 0;
51775  __pyx_L0:;
51776  __Pyx_XGIVEREF(__pyx_r);
51777  __Pyx_TraceReturn(__pyx_r, 0);
51778  __Pyx_RefNannyFinishContext();
51779  return __pyx_r;
51780 }
51781 
51782 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":941
51783  * # Versions of the import_* functions which are more suitable for
51784  * # Cython code.
51785  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
51786  * try:
51787  * __pyx_import_array()
51788  */
51789 
51790 static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
51791  int __pyx_r;
51792  __Pyx_TraceDeclarations
51793  __Pyx_RefNannyDeclarations
51794  PyObject *__pyx_t_1 = NULL;
51795  PyObject *__pyx_t_2 = NULL;
51796  PyObject *__pyx_t_3 = NULL;
51797  int __pyx_t_4;
51798  PyObject *__pyx_t_5 = NULL;
51799  PyObject *__pyx_t_6 = NULL;
51800  PyObject *__pyx_t_7 = NULL;
51801  PyObject *__pyx_t_8 = NULL;
51802  int __pyx_lineno = 0;
51803  const char *__pyx_filename = NULL;
51804  int __pyx_clineno = 0;
51805  __Pyx_RefNannySetupContext("import_array", 0);
51806  __Pyx_TraceCall("import_array", __pyx_f[3], 941, 0, __PYX_ERR(3, 941, __pyx_L1_error));
51807 
51808  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
51809  * # Cython code.
51810  * cdef inline int import_array() except -1:
51811  * try: # <<<<<<<<<<<<<<
51812  * __pyx_import_array()
51813  * except Exception:
51814  */
51815  {
51816  __Pyx_PyThreadState_declare
51817  __Pyx_PyThreadState_assign
51818  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
51819  __Pyx_XGOTREF(__pyx_t_1);
51820  __Pyx_XGOTREF(__pyx_t_2);
51821  __Pyx_XGOTREF(__pyx_t_3);
51822  /*try:*/ {
51823 
51824  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":943
51825  * cdef inline int import_array() except -1:
51826  * try:
51827  * __pyx_import_array() # <<<<<<<<<<<<<<
51828  * except Exception:
51829  * raise ImportError("numpy.core.multiarray failed to import")
51830  */
51831  __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 943, __pyx_L3_error)
51832 
51833  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
51834  * # Cython code.
51835  * cdef inline int import_array() except -1:
51836  * try: # <<<<<<<<<<<<<<
51837  * __pyx_import_array()
51838  * except Exception:
51839  */
51840  }
51841  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
51842  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
51843  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
51844  goto __pyx_L8_try_end;
51845  __pyx_L3_error:;
51846 
51847  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":944
51848  * try:
51849  * __pyx_import_array()
51850  * except Exception: # <<<<<<<<<<<<<<
51851  * raise ImportError("numpy.core.multiarray failed to import")
51852  *
51853  */
51854  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
51855  if (__pyx_t_4) {
51856  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
51857  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 944, __pyx_L5_except_error)
51858  __Pyx_GOTREF(__pyx_t_5);
51859  __Pyx_GOTREF(__pyx_t_6);
51860  __Pyx_GOTREF(__pyx_t_7);
51861 
51862  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":945
51863  * __pyx_import_array()
51864  * except Exception:
51865  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
51866  *
51867  * cdef inline int import_umath() except -1:
51868  */
51869  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__143, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 945, __pyx_L5_except_error)
51870  __Pyx_GOTREF(__pyx_t_8);
51871  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
51872  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
51873  __PYX_ERR(3, 945, __pyx_L5_except_error)
51874  }
51875  goto __pyx_L5_except_error;
51876  __pyx_L5_except_error:;
51877 
51878  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
51879  * # Cython code.
51880  * cdef inline int import_array() except -1:
51881  * try: # <<<<<<<<<<<<<<
51882  * __pyx_import_array()
51883  * except Exception:
51884  */
51885  __Pyx_XGIVEREF(__pyx_t_1);
51886  __Pyx_XGIVEREF(__pyx_t_2);
51887  __Pyx_XGIVEREF(__pyx_t_3);
51888  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
51889  goto __pyx_L1_error;
51890  __pyx_L8_try_end:;
51891  }
51892 
51893  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":941
51894  * # Versions of the import_* functions which are more suitable for
51895  * # Cython code.
51896  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
51897  * try:
51898  * __pyx_import_array()
51899  */
51900 
51901  /* function exit code */
51902  __pyx_r = 0;
51903  goto __pyx_L0;
51904  __pyx_L1_error:;
51905  __Pyx_XDECREF(__pyx_t_5);
51906  __Pyx_XDECREF(__pyx_t_6);
51907  __Pyx_XDECREF(__pyx_t_7);
51908  __Pyx_XDECREF(__pyx_t_8);
51909  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
51910  __pyx_r = -1;
51911  __pyx_L0:;
51912  __Pyx_TraceReturn(Py_None, 0);
51913  __Pyx_RefNannyFinishContext();
51914  return __pyx_r;
51915 }
51916 
51917 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":947
51918  * raise ImportError("numpy.core.multiarray failed to import")
51919  *
51920  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
51921  * try:
51922  * _import_umath()
51923  */
51924 
51925 static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
51926  int __pyx_r;
51927  __Pyx_TraceDeclarations
51928  __Pyx_RefNannyDeclarations
51929  PyObject *__pyx_t_1 = NULL;
51930  PyObject *__pyx_t_2 = NULL;
51931  PyObject *__pyx_t_3 = NULL;
51932  int __pyx_t_4;
51933  PyObject *__pyx_t_5 = NULL;
51934  PyObject *__pyx_t_6 = NULL;
51935  PyObject *__pyx_t_7 = NULL;
51936  PyObject *__pyx_t_8 = NULL;
51937  int __pyx_lineno = 0;
51938  const char *__pyx_filename = NULL;
51939  int __pyx_clineno = 0;
51940  __Pyx_RefNannySetupContext("import_umath", 0);
51941  __Pyx_TraceCall("import_umath", __pyx_f[3], 947, 0, __PYX_ERR(3, 947, __pyx_L1_error));
51942 
51943  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
51944  *
51945  * cdef inline int import_umath() except -1:
51946  * try: # <<<<<<<<<<<<<<
51947  * _import_umath()
51948  * except Exception:
51949  */
51950  {
51951  __Pyx_PyThreadState_declare
51952  __Pyx_PyThreadState_assign
51953  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
51954  __Pyx_XGOTREF(__pyx_t_1);
51955  __Pyx_XGOTREF(__pyx_t_2);
51956  __Pyx_XGOTREF(__pyx_t_3);
51957  /*try:*/ {
51958 
51959  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":949
51960  * cdef inline int import_umath() except -1:
51961  * try:
51962  * _import_umath() # <<<<<<<<<<<<<<
51963  * except Exception:
51964  * raise ImportError("numpy.core.umath failed to import")
51965  */
51966  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 949, __pyx_L3_error)
51967 
51968  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
51969  *
51970  * cdef inline int import_umath() except -1:
51971  * try: # <<<<<<<<<<<<<<
51972  * _import_umath()
51973  * except Exception:
51974  */
51975  }
51976  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
51977  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
51978  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
51979  goto __pyx_L8_try_end;
51980  __pyx_L3_error:;
51981 
51982  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":950
51983  * try:
51984  * _import_umath()
51985  * except Exception: # <<<<<<<<<<<<<<
51986  * raise ImportError("numpy.core.umath failed to import")
51987  *
51988  */
51989  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
51990  if (__pyx_t_4) {
51991  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
51992  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 950, __pyx_L5_except_error)
51993  __Pyx_GOTREF(__pyx_t_5);
51994  __Pyx_GOTREF(__pyx_t_6);
51995  __Pyx_GOTREF(__pyx_t_7);
51996 
51997  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":951
51998  * _import_umath()
51999  * except Exception:
52000  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
52001  *
52002  * cdef inline int import_ufunc() except -1:
52003  */
52004  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__144, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 951, __pyx_L5_except_error)
52005  __Pyx_GOTREF(__pyx_t_8);
52006  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
52007  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
52008  __PYX_ERR(3, 951, __pyx_L5_except_error)
52009  }
52010  goto __pyx_L5_except_error;
52011  __pyx_L5_except_error:;
52012 
52013  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
52014  *
52015  * cdef inline int import_umath() except -1:
52016  * try: # <<<<<<<<<<<<<<
52017  * _import_umath()
52018  * except Exception:
52019  */
52020  __Pyx_XGIVEREF(__pyx_t_1);
52021  __Pyx_XGIVEREF(__pyx_t_2);
52022  __Pyx_XGIVEREF(__pyx_t_3);
52023  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
52024  goto __pyx_L1_error;
52025  __pyx_L8_try_end:;
52026  }
52027 
52028  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":947
52029  * raise ImportError("numpy.core.multiarray failed to import")
52030  *
52031  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
52032  * try:
52033  * _import_umath()
52034  */
52035 
52036  /* function exit code */
52037  __pyx_r = 0;
52038  goto __pyx_L0;
52039  __pyx_L1_error:;
52040  __Pyx_XDECREF(__pyx_t_5);
52041  __Pyx_XDECREF(__pyx_t_6);
52042  __Pyx_XDECREF(__pyx_t_7);
52043  __Pyx_XDECREF(__pyx_t_8);
52044  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
52045  __pyx_r = -1;
52046  __pyx_L0:;
52047  __Pyx_TraceReturn(Py_None, 0);
52048  __Pyx_RefNannyFinishContext();
52049  return __pyx_r;
52050 }
52051 
52052 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":953
52053  * raise ImportError("numpy.core.umath failed to import")
52054  *
52055  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
52056  * try:
52057  * _import_umath()
52058  */
52059 
52060 static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
52061  int __pyx_r;
52062  __Pyx_TraceDeclarations
52063  __Pyx_RefNannyDeclarations
52064  PyObject *__pyx_t_1 = NULL;
52065  PyObject *__pyx_t_2 = NULL;
52066  PyObject *__pyx_t_3 = NULL;
52067  int __pyx_t_4;
52068  PyObject *__pyx_t_5 = NULL;
52069  PyObject *__pyx_t_6 = NULL;
52070  PyObject *__pyx_t_7 = NULL;
52071  PyObject *__pyx_t_8 = NULL;
52072  int __pyx_lineno = 0;
52073  const char *__pyx_filename = NULL;
52074  int __pyx_clineno = 0;
52075  __Pyx_RefNannySetupContext("import_ufunc", 0);
52076  __Pyx_TraceCall("import_ufunc", __pyx_f[3], 953, 0, __PYX_ERR(3, 953, __pyx_L1_error));
52077 
52078  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
52079  *
52080  * cdef inline int import_ufunc() except -1:
52081  * try: # <<<<<<<<<<<<<<
52082  * _import_umath()
52083  * except Exception:
52084  */
52085  {
52086  __Pyx_PyThreadState_declare
52087  __Pyx_PyThreadState_assign
52088  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
52089  __Pyx_XGOTREF(__pyx_t_1);
52090  __Pyx_XGOTREF(__pyx_t_2);
52091  __Pyx_XGOTREF(__pyx_t_3);
52092  /*try:*/ {
52093 
52094  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":955
52095  * cdef inline int import_ufunc() except -1:
52096  * try:
52097  * _import_umath() # <<<<<<<<<<<<<<
52098  * except Exception:
52099  * raise ImportError("numpy.core.umath failed to import")
52100  */
52101  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 955, __pyx_L3_error)
52102 
52103  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
52104  *
52105  * cdef inline int import_ufunc() except -1:
52106  * try: # <<<<<<<<<<<<<<
52107  * _import_umath()
52108  * except Exception:
52109  */
52110  }
52111  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
52112  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
52113  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
52114  goto __pyx_L8_try_end;
52115  __pyx_L3_error:;
52116 
52117  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":956
52118  * try:
52119  * _import_umath()
52120  * except Exception: # <<<<<<<<<<<<<<
52121  * raise ImportError("numpy.core.umath failed to import")
52122  *
52123  */
52124  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
52125  if (__pyx_t_4) {
52126  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
52127  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 956, __pyx_L5_except_error)
52128  __Pyx_GOTREF(__pyx_t_5);
52129  __Pyx_GOTREF(__pyx_t_6);
52130  __Pyx_GOTREF(__pyx_t_7);
52131 
52132  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":957
52133  * _import_umath()
52134  * except Exception:
52135  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
52136  *
52137  * cdef extern from *:
52138  */
52139  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__144, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 957, __pyx_L5_except_error)
52140  __Pyx_GOTREF(__pyx_t_8);
52141  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
52142  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
52143  __PYX_ERR(3, 957, __pyx_L5_except_error)
52144  }
52145  goto __pyx_L5_except_error;
52146  __pyx_L5_except_error:;
52147 
52148  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
52149  *
52150  * cdef inline int import_ufunc() except -1:
52151  * try: # <<<<<<<<<<<<<<
52152  * _import_umath()
52153  * except Exception:
52154  */
52155  __Pyx_XGIVEREF(__pyx_t_1);
52156  __Pyx_XGIVEREF(__pyx_t_2);
52157  __Pyx_XGIVEREF(__pyx_t_3);
52158  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
52159  goto __pyx_L1_error;
52160  __pyx_L8_try_end:;
52161  }
52162 
52163  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":953
52164  * raise ImportError("numpy.core.umath failed to import")
52165  *
52166  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
52167  * try:
52168  * _import_umath()
52169  */
52170 
52171  /* function exit code */
52172  __pyx_r = 0;
52173  goto __pyx_L0;
52174  __pyx_L1_error:;
52175  __Pyx_XDECREF(__pyx_t_5);
52176  __Pyx_XDECREF(__pyx_t_6);
52177  __Pyx_XDECREF(__pyx_t_7);
52178  __Pyx_XDECREF(__pyx_t_8);
52179  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
52180  __pyx_r = -1;
52181  __pyx_L0:;
52182  __Pyx_TraceReturn(Py_None, 0);
52183  __Pyx_RefNannyFinishContext();
52184  return __pyx_r;
52185 }
52186 
52187 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":967
52188  *
52189  *
52190  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
52191  * """
52192  * Cython equivalent of `isinstance(obj, np.timedelta64)`
52193  */
52194 
52195 static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
52196  int __pyx_r;
52197  __Pyx_TraceDeclarations
52198  __Pyx_RefNannyDeclarations
52199  int __pyx_lineno = 0;
52200  const char *__pyx_filename = NULL;
52201  int __pyx_clineno = 0;
52202  __Pyx_RefNannySetupContext("is_timedelta64_object", 0);
52203  __Pyx_TraceCall("is_timedelta64_object", __pyx_f[3], 967, 0, __PYX_ERR(3, 967, __pyx_L1_error));
52204 
52205  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":979
52206  * bool
52207  * """
52208  * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
52209  *
52210  *
52211  */
52212  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
52213  goto __pyx_L0;
52214 
52215  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":967
52216  *
52217  *
52218  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
52219  * """
52220  * Cython equivalent of `isinstance(obj, np.timedelta64)`
52221  */
52222 
52223  /* function exit code */
52224  __pyx_L1_error:;
52225  __Pyx_WriteUnraisable("numpy.is_timedelta64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
52226  __pyx_r = 0;
52227  __pyx_L0:;
52228  __Pyx_TraceReturn(Py_None, 0);
52229  __Pyx_RefNannyFinishContext();
52230  return __pyx_r;
52231 }
52232 
52233 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":982
52234  *
52235  *
52236  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
52237  * """
52238  * Cython equivalent of `isinstance(obj, np.datetime64)`
52239  */
52240 
52241 static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
52242  int __pyx_r;
52243  __Pyx_TraceDeclarations
52244  __Pyx_RefNannyDeclarations
52245  int __pyx_lineno = 0;
52246  const char *__pyx_filename = NULL;
52247  int __pyx_clineno = 0;
52248  __Pyx_RefNannySetupContext("is_datetime64_object", 0);
52249  __Pyx_TraceCall("is_datetime64_object", __pyx_f[3], 982, 0, __PYX_ERR(3, 982, __pyx_L1_error));
52250 
52251  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":994
52252  * bool
52253  * """
52254  * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
52255  *
52256  *
52257  */
52258  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
52259  goto __pyx_L0;
52260 
52261  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":982
52262  *
52263  *
52264  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
52265  * """
52266  * Cython equivalent of `isinstance(obj, np.datetime64)`
52267  */
52268 
52269  /* function exit code */
52270  __pyx_L1_error:;
52271  __Pyx_WriteUnraisable("numpy.is_datetime64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
52272  __pyx_r = 0;
52273  __pyx_L0:;
52274  __Pyx_TraceReturn(Py_None, 0);
52275  __Pyx_RefNannyFinishContext();
52276  return __pyx_r;
52277 }
52278 
52279 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":997
52280  *
52281  *
52282  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
52283  * """
52284  * returns the int64 value underlying scalar numpy datetime64 object
52285  */
52286 
52287 static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
52288  npy_datetime __pyx_r;
52289  __Pyx_TraceDeclarations
52290  int __pyx_lineno = 0;
52291  const char *__pyx_filename = NULL;
52292  int __pyx_clineno = 0;
52293  __Pyx_TraceCall("get_datetime64_value", __pyx_f[3], 997, 1, __PYX_ERR(3, 997, __pyx_L1_error));
52294 
52295  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1004
52296  * also needed. That can be found using `get_datetime64_unit`.
52297  * """
52298  * return (<PyDatetimeScalarObject*>obj).obval # <<<<<<<<<<<<<<
52299  *
52300  *
52301  */
52302  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
52303  goto __pyx_L0;
52304 
52305  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":997
52306  *
52307  *
52308  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
52309  * """
52310  * returns the int64 value underlying scalar numpy datetime64 object
52311  */
52312 
52313  /* function exit code */
52314  __pyx_L1_error:;
52315  __Pyx_WriteUnraisable("numpy.get_datetime64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
52316  __pyx_r = 0;
52317  __pyx_L0:;
52318  __Pyx_TraceReturn(Py_None, 1);
52319  return __pyx_r;
52320 }
52321 
52322 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1007
52323  *
52324  *
52325  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
52326  * """
52327  * returns the int64 value underlying scalar numpy timedelta64 object
52328  */
52329 
52330 static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
52331  npy_timedelta __pyx_r;
52332  __Pyx_TraceDeclarations
52333  int __pyx_lineno = 0;
52334  const char *__pyx_filename = NULL;
52335  int __pyx_clineno = 0;
52336  __Pyx_TraceCall("get_timedelta64_value", __pyx_f[3], 1007, 1, __PYX_ERR(3, 1007, __pyx_L1_error));
52337 
52338  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1011
52339  * returns the int64 value underlying scalar numpy timedelta64 object
52340  * """
52341  * return (<PyTimedeltaScalarObject*>obj).obval # <<<<<<<<<<<<<<
52342  *
52343  *
52344  */
52345  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
52346  goto __pyx_L0;
52347 
52348  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1007
52349  *
52350  *
52351  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
52352  * """
52353  * returns the int64 value underlying scalar numpy timedelta64 object
52354  */
52355 
52356  /* function exit code */
52357  __pyx_L1_error:;
52358  __Pyx_WriteUnraisable("numpy.get_timedelta64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
52359  __pyx_r = 0;
52360  __pyx_L0:;
52361  __Pyx_TraceReturn(Py_None, 1);
52362  return __pyx_r;
52363 }
52364 
52365 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1014
52366  *
52367  *
52368  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
52369  * """
52370  * returns the unit part of the dtype for a numpy datetime64 object.
52371  */
52372 
52373 static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
52374  NPY_DATETIMEUNIT __pyx_r;
52375  __Pyx_TraceDeclarations
52376  int __pyx_lineno = 0;
52377  const char *__pyx_filename = NULL;
52378  int __pyx_clineno = 0;
52379  __Pyx_TraceCall("get_datetime64_unit", __pyx_f[3], 1014, 1, __PYX_ERR(3, 1014, __pyx_L1_error));
52380 
52381  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1018
52382  * returns the unit part of the dtype for a numpy datetime64 object.
52383  * """
52384  * return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base # <<<<<<<<<<<<<<
52385  */
52386  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
52387  goto __pyx_L0;
52388 
52389  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1014
52390  *
52391  *
52392  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
52393  * """
52394  * returns the unit part of the dtype for a numpy datetime64 object.
52395  */
52396 
52397  /* function exit code */
52398  __pyx_L1_error:;
52399  __Pyx_WriteUnraisable("numpy.get_datetime64_unit", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
52400  __pyx_r = (NPY_DATETIMEUNIT) 0;
52401  __pyx_L0:;
52402  __Pyx_TraceReturn(Py_None, 1);
52403  return __pyx_r;
52404 }
52405 
52406 /* "carray.to_py":112
52407  *
52408  * @cname("__Pyx_carray_to_py_double")
52409  * cdef inline list __Pyx_carray_to_py_double(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<<
52410  * cdef size_t i
52411  * cdef object value
52412  */
52413 
52414 static CYTHON_INLINE PyObject *__Pyx_carray_to_py_double(double *__pyx_v_v, Py_ssize_t __pyx_v_length) {
52415  size_t __pyx_v_i;
52416  PyObject *__pyx_v_value = 0;
52417  PyObject *__pyx_v_l = NULL;
52418  PyObject *__pyx_r = NULL;
52419  __Pyx_TraceDeclarations
52420  __Pyx_RefNannyDeclarations
52421  PyObject *__pyx_t_1 = NULL;
52422  PyObject *__pyx_t_2 = NULL;
52423  PyObject *__pyx_t_3 = NULL;
52424  PyObject *__pyx_t_4 = NULL;
52425  Py_ssize_t __pyx_t_5;
52426  PyObject *(*__pyx_t_6)(PyObject *);
52427  size_t __pyx_t_7;
52428  int __pyx_lineno = 0;
52429  const char *__pyx_filename = NULL;
52430  int __pyx_clineno = 0;
52431  __Pyx_RefNannySetupContext("__Pyx_carray_to_py_double", 0);
52432  __Pyx_TraceCall("__Pyx_carray_to_py_double", __pyx_f[1], 112, 0, __PYX_ERR(1, 112, __pyx_L1_error));
52433 
52434  /* "carray.to_py":115
52435  * cdef size_t i
52436  * cdef object value
52437  * l = PyList_New(length) # <<<<<<<<<<<<<<
52438  * for i in range(<size_t>length):
52439  * value = v[i]
52440  */
52441  __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
52442  __Pyx_GOTREF(__pyx_t_1);
52443  __pyx_v_l = ((PyObject*)__pyx_t_1);
52444  __pyx_t_1 = 0;
52445 
52446  /* "carray.to_py":116
52447  * cdef object value
52448  * l = PyList_New(length)
52449  * for i in range(<size_t>length): # <<<<<<<<<<<<<<
52450  * value = v[i]
52451  * Py_INCREF(value)
52452  */
52453  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 116, __pyx_L1_error)
52454  __Pyx_GOTREF(__pyx_t_2);
52455  __pyx_t_3 = __Pyx_PyInt_FromSize_t(((size_t)__pyx_v_length)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 116, __pyx_L1_error)
52456  __Pyx_GOTREF(__pyx_t_3);
52457  __pyx_t_4 = NULL;
52458  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
52459  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
52460  if (likely(__pyx_t_4)) {
52461  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
52462  __Pyx_INCREF(__pyx_t_4);
52463  __Pyx_INCREF(function);
52464  __Pyx_DECREF_SET(__pyx_t_2, function);
52465  }
52466  }
52467  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
52468  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
52469  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52470  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
52471  __Pyx_GOTREF(__pyx_t_1);
52472  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
52473  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
52474  __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
52475  __pyx_t_6 = NULL;
52476  } else {
52477  __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 116, __pyx_L1_error)
52478  __Pyx_GOTREF(__pyx_t_2);
52479  __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 116, __pyx_L1_error)
52480  }
52481  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52482  for (;;) {
52483  if (likely(!__pyx_t_6)) {
52484  if (likely(PyList_CheckExact(__pyx_t_2))) {
52485  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
52486  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52487  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 116, __pyx_L1_error)
52488  #else
52489  __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
52490  __Pyx_GOTREF(__pyx_t_1);
52491  #endif
52492  } else {
52493  if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
52494  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52495  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 116, __pyx_L1_error)
52496  #else
52497  __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
52498  __Pyx_GOTREF(__pyx_t_1);
52499  #endif
52500  }
52501  } else {
52502  __pyx_t_1 = __pyx_t_6(__pyx_t_2);
52503  if (unlikely(!__pyx_t_1)) {
52504  PyObject* exc_type = PyErr_Occurred();
52505  if (exc_type) {
52506  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
52507  else __PYX_ERR(1, 116, __pyx_L1_error)
52508  }
52509  break;
52510  }
52511  __Pyx_GOTREF(__pyx_t_1);
52512  }
52513  __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 116, __pyx_L1_error)
52514  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52515  __pyx_v_i = __pyx_t_7;
52516 
52517  /* "carray.to_py":117
52518  * l = PyList_New(length)
52519  * for i in range(<size_t>length):
52520  * value = v[i] # <<<<<<<<<<<<<<
52521  * Py_INCREF(value)
52522  * PyList_SET_ITEM(l, i, value)
52523  */
52524  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
52525  __Pyx_GOTREF(__pyx_t_1);
52526  __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
52527  __pyx_t_1 = 0;
52528 
52529  /* "carray.to_py":118
52530  * for i in range(<size_t>length):
52531  * value = v[i]
52532  * Py_INCREF(value) # <<<<<<<<<<<<<<
52533  * PyList_SET_ITEM(l, i, value)
52534  * return l
52535  */
52536  Py_INCREF(__pyx_v_value);
52537 
52538  /* "carray.to_py":119
52539  * value = v[i]
52540  * Py_INCREF(value)
52541  * PyList_SET_ITEM(l, i, value) # <<<<<<<<<<<<<<
52542  * return l
52543  *
52544  */
52545  PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value);
52546 
52547  /* "carray.to_py":116
52548  * cdef object value
52549  * l = PyList_New(length)
52550  * for i in range(<size_t>length): # <<<<<<<<<<<<<<
52551  * value = v[i]
52552  * Py_INCREF(value)
52553  */
52554  }
52555  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
52556 
52557  /* "carray.to_py":120
52558  * Py_INCREF(value)
52559  * PyList_SET_ITEM(l, i, value)
52560  * return l # <<<<<<<<<<<<<<
52561  *
52562  *
52563  */
52564  __Pyx_XDECREF(__pyx_r);
52565  __Pyx_INCREF(__pyx_v_l);
52566  __pyx_r = __pyx_v_l;
52567  goto __pyx_L0;
52568 
52569  /* "carray.to_py":112
52570  *
52571  * @cname("__Pyx_carray_to_py_double")
52572  * cdef inline list __Pyx_carray_to_py_double(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<<
52573  * cdef size_t i
52574  * cdef object value
52575  */
52576 
52577  /* function exit code */
52578  __pyx_L1_error:;
52579  __Pyx_XDECREF(__pyx_t_1);
52580  __Pyx_XDECREF(__pyx_t_2);
52581  __Pyx_XDECREF(__pyx_t_3);
52582  __Pyx_XDECREF(__pyx_t_4);
52583  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
52584  __pyx_r = 0;
52585  __pyx_L0:;
52586  __Pyx_XDECREF(__pyx_v_value);
52587  __Pyx_XDECREF(__pyx_v_l);
52588  __Pyx_XGIVEREF(__pyx_r);
52589  __Pyx_TraceReturn(__pyx_r, 0);
52590  __Pyx_RefNannyFinishContext();
52591  return __pyx_r;
52592 }
52593 
52594 /* "carray.to_py":124
52595  *
52596  * @cname("__Pyx_carray_to_tuple_double")
52597  * cdef inline tuple __Pyx_carray_to_tuple_double(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<<
52598  * cdef size_t i
52599  * cdef object value
52600  */
52601 
52602 static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple_double(double *__pyx_v_v, Py_ssize_t __pyx_v_length) {
52603  size_t __pyx_v_i;
52604  PyObject *__pyx_v_value = 0;
52605  PyObject *__pyx_v_t = NULL;
52606  PyObject *__pyx_r = NULL;
52607  __Pyx_TraceDeclarations
52608  __Pyx_RefNannyDeclarations
52609  PyObject *__pyx_t_1 = NULL;
52610  PyObject *__pyx_t_2 = NULL;
52611  PyObject *__pyx_t_3 = NULL;
52612  PyObject *__pyx_t_4 = NULL;
52613  Py_ssize_t __pyx_t_5;
52614  PyObject *(*__pyx_t_6)(PyObject *);
52615  size_t __pyx_t_7;
52616  int __pyx_lineno = 0;
52617  const char *__pyx_filename = NULL;
52618  int __pyx_clineno = 0;
52619  __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple_double", 0);
52620  __Pyx_TraceCall("__Pyx_carray_to_tuple_double", __pyx_f[1], 124, 0, __PYX_ERR(1, 124, __pyx_L1_error));
52621 
52622  /* "carray.to_py":127
52623  * cdef size_t i
52624  * cdef object value
52625  * t = PyTuple_New(length) # <<<<<<<<<<<<<<
52626  * for i in range(<size_t>length):
52627  * value = v[i]
52628  */
52629  __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
52630  __Pyx_GOTREF(__pyx_t_1);
52631  __pyx_v_t = ((PyObject*)__pyx_t_1);
52632  __pyx_t_1 = 0;
52633 
52634  /* "carray.to_py":128
52635  * cdef object value
52636  * t = PyTuple_New(length)
52637  * for i in range(<size_t>length): # <<<<<<<<<<<<<<
52638  * value = v[i]
52639  * Py_INCREF(value)
52640  */
52641  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 128, __pyx_L1_error)
52642  __Pyx_GOTREF(__pyx_t_2);
52643  __pyx_t_3 = __Pyx_PyInt_FromSize_t(((size_t)__pyx_v_length)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 128, __pyx_L1_error)
52644  __Pyx_GOTREF(__pyx_t_3);
52645  __pyx_t_4 = NULL;
52646  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
52647  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
52648  if (likely(__pyx_t_4)) {
52649  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
52650  __Pyx_INCREF(__pyx_t_4);
52651  __Pyx_INCREF(function);
52652  __Pyx_DECREF_SET(__pyx_t_2, function);
52653  }
52654  }
52655  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
52656  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
52657  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52658  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 128, __pyx_L1_error)
52659  __Pyx_GOTREF(__pyx_t_1);
52660  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
52661  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
52662  __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
52663  __pyx_t_6 = NULL;
52664  } else {
52665  __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 128, __pyx_L1_error)
52666  __Pyx_GOTREF(__pyx_t_2);
52667  __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 128, __pyx_L1_error)
52668  }
52669  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52670  for (;;) {
52671  if (likely(!__pyx_t_6)) {
52672  if (likely(PyList_CheckExact(__pyx_t_2))) {
52673  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
52674  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52675  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 128, __pyx_L1_error)
52676  #else
52677  __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 128, __pyx_L1_error)
52678  __Pyx_GOTREF(__pyx_t_1);
52679  #endif
52680  } else {
52681  if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
52682  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52683  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 128, __pyx_L1_error)
52684  #else
52685  __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 128, __pyx_L1_error)
52686  __Pyx_GOTREF(__pyx_t_1);
52687  #endif
52688  }
52689  } else {
52690  __pyx_t_1 = __pyx_t_6(__pyx_t_2);
52691  if (unlikely(!__pyx_t_1)) {
52692  PyObject* exc_type = PyErr_Occurred();
52693  if (exc_type) {
52694  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
52695  else __PYX_ERR(1, 128, __pyx_L1_error)
52696  }
52697  break;
52698  }
52699  __Pyx_GOTREF(__pyx_t_1);
52700  }
52701  __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 128, __pyx_L1_error)
52702  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52703  __pyx_v_i = __pyx_t_7;
52704 
52705  /* "carray.to_py":129
52706  * t = PyTuple_New(length)
52707  * for i in range(<size_t>length):
52708  * value = v[i] # <<<<<<<<<<<<<<
52709  * Py_INCREF(value)
52710  * PyTuple_SET_ITEM(t, i, value)
52711  */
52712  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
52713  __Pyx_GOTREF(__pyx_t_1);
52714  __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
52715  __pyx_t_1 = 0;
52716 
52717  /* "carray.to_py":130
52718  * for i in range(<size_t>length):
52719  * value = v[i]
52720  * Py_INCREF(value) # <<<<<<<<<<<<<<
52721  * PyTuple_SET_ITEM(t, i, value)
52722  * return t
52723  */
52724  Py_INCREF(__pyx_v_value);
52725 
52726  /* "carray.to_py":131
52727  * value = v[i]
52728  * Py_INCREF(value)
52729  * PyTuple_SET_ITEM(t, i, value) # <<<<<<<<<<<<<<
52730  * return t
52731  */
52732  PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value);
52733 
52734  /* "carray.to_py":128
52735  * cdef object value
52736  * t = PyTuple_New(length)
52737  * for i in range(<size_t>length): # <<<<<<<<<<<<<<
52738  * value = v[i]
52739  * Py_INCREF(value)
52740  */
52741  }
52742  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
52743 
52744  /* "carray.to_py":132
52745  * Py_INCREF(value)
52746  * PyTuple_SET_ITEM(t, i, value)
52747  * return t # <<<<<<<<<<<<<<
52748  */
52749  __Pyx_XDECREF(__pyx_r);
52750  __Pyx_INCREF(__pyx_v_t);
52751  __pyx_r = __pyx_v_t;
52752  goto __pyx_L0;
52753 
52754  /* "carray.to_py":124
52755  *
52756  * @cname("__Pyx_carray_to_tuple_double")
52757  * cdef inline tuple __Pyx_carray_to_tuple_double(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<<
52758  * cdef size_t i
52759  * cdef object value
52760  */
52761 
52762  /* function exit code */
52763  __pyx_L1_error:;
52764  __Pyx_XDECREF(__pyx_t_1);
52765  __Pyx_XDECREF(__pyx_t_2);
52766  __Pyx_XDECREF(__pyx_t_3);
52767  __Pyx_XDECREF(__pyx_t_4);
52768  __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
52769  __pyx_r = 0;
52770  __pyx_L0:;
52771  __Pyx_XDECREF(__pyx_v_value);
52772  __Pyx_XDECREF(__pyx_v_t);
52773  __Pyx_XGIVEREF(__pyx_r);
52774  __Pyx_TraceReturn(__pyx_r, 0);
52775  __Pyx_RefNannyFinishContext();
52776  return __pyx_r;
52777 }
52778 
52779 /* "carray.from_py":77
52780  *
52781  * @cname("__Pyx_carray_from_py_double")
52782  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1: # <<<<<<<<<<<<<<
52783  * cdef Py_ssize_t i = length
52784  * try:
52785  */
52786 
52787 static int __Pyx_carray_from_py_double(PyObject *__pyx_v_o, double *__pyx_v_v, Py_ssize_t __pyx_v_length) {
52788  Py_ssize_t __pyx_v_i;
52789  PyObject *__pyx_v_item = NULL;
52790  int __pyx_r;
52791  __Pyx_TraceDeclarations
52792  __Pyx_RefNannyDeclarations
52793  PyObject *__pyx_t_1 = NULL;
52794  PyObject *__pyx_t_2 = NULL;
52795  PyObject *__pyx_t_3 = NULL;
52796  Py_ssize_t __pyx_t_4;
52797  int __pyx_t_5;
52798  int __pyx_t_6;
52799  PyObject *__pyx_t_7 = NULL;
52800  Py_ssize_t __pyx_t_8;
52801  PyObject *(*__pyx_t_9)(PyObject *);
52802  PyObject *__pyx_t_10 = NULL;
52803  double __pyx_t_11;
52804  char const *__pyx_t_12;
52805  int __pyx_lineno = 0;
52806  const char *__pyx_filename = NULL;
52807  int __pyx_clineno = 0;
52808  __Pyx_RefNannySetupContext("__Pyx_carray_from_py_double", 0);
52809  __Pyx_TraceCall("__Pyx_carray_from_py_double", __pyx_f[1], 77, 0, __PYX_ERR(1, 77, __pyx_L1_error));
52810 
52811  /* "carray.from_py":78
52812  * @cname("__Pyx_carray_from_py_double")
52813  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1:
52814  * cdef Py_ssize_t i = length # <<<<<<<<<<<<<<
52815  * try:
52816  * i = len(o)
52817  */
52818  __pyx_v_i = __pyx_v_length;
52819 
52820  /* "carray.from_py":79
52821  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1:
52822  * cdef Py_ssize_t i = length
52823  * try: # <<<<<<<<<<<<<<
52824  * i = len(o)
52825  * except (TypeError, OverflowError):
52826  */
52827  {
52828  __Pyx_PyThreadState_declare
52829  __Pyx_PyThreadState_assign
52830  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
52831  __Pyx_XGOTREF(__pyx_t_1);
52832  __Pyx_XGOTREF(__pyx_t_2);
52833  __Pyx_XGOTREF(__pyx_t_3);
52834  /*try:*/ {
52835 
52836  /* "carray.from_py":80
52837  * cdef Py_ssize_t i = length
52838  * try:
52839  * i = len(o) # <<<<<<<<<<<<<<
52840  * except (TypeError, OverflowError):
52841  * pass
52842  */
52843  __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 80, __pyx_L3_error)
52844  __pyx_v_i = __pyx_t_4;
52845 
52846  /* "carray.from_py":79
52847  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1:
52848  * cdef Py_ssize_t i = length
52849  * try: # <<<<<<<<<<<<<<
52850  * i = len(o)
52851  * except (TypeError, OverflowError):
52852  */
52853  }
52854  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
52855  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
52856  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
52857  goto __pyx_L8_try_end;
52858  __pyx_L3_error:;
52859 
52860  /* "carray.from_py":81
52861  * try:
52862  * i = len(o)
52863  * except (TypeError, OverflowError): # <<<<<<<<<<<<<<
52864  * pass
52865  * if i == length:
52866  */
52867  __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError);
52868  if (__pyx_t_5) {
52869  __Pyx_ErrRestore(0,0,0);
52870  goto __pyx_L4_exception_handled;
52871  }
52872  goto __pyx_L5_except_error;
52873  __pyx_L5_except_error:;
52874 
52875  /* "carray.from_py":79
52876  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1:
52877  * cdef Py_ssize_t i = length
52878  * try: # <<<<<<<<<<<<<<
52879  * i = len(o)
52880  * except (TypeError, OverflowError):
52881  */
52882  __Pyx_XGIVEREF(__pyx_t_1);
52883  __Pyx_XGIVEREF(__pyx_t_2);
52884  __Pyx_XGIVEREF(__pyx_t_3);
52885  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
52886  goto __pyx_L1_error;
52887  __pyx_L4_exception_handled:;
52888  __Pyx_XGIVEREF(__pyx_t_1);
52889  __Pyx_XGIVEREF(__pyx_t_2);
52890  __Pyx_XGIVEREF(__pyx_t_3);
52891  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
52892  __pyx_L8_try_end:;
52893  }
52894 
52895  /* "carray.from_py":83
52896  * except (TypeError, OverflowError):
52897  * pass
52898  * if i == length: # <<<<<<<<<<<<<<
52899  * for i, item in enumerate(o):
52900  * if i >= length:
52901  */
52902  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
52903  if (__pyx_t_6) {
52904 
52905  /* "carray.from_py":84
52906  * pass
52907  * if i == length:
52908  * for i, item in enumerate(o): # <<<<<<<<<<<<<<
52909  * if i >= length:
52910  * break
52911  */
52912  __pyx_t_4 = 0;
52913  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
52914  __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
52915  __pyx_t_9 = NULL;
52916  } else {
52917  __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L1_error)
52918  __Pyx_GOTREF(__pyx_t_7);
52919  __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 84, __pyx_L1_error)
52920  }
52921  for (;;) {
52922  if (likely(!__pyx_t_9)) {
52923  if (likely(PyList_CheckExact(__pyx_t_7))) {
52924  if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
52925  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52926  __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
52927  #else
52928  __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
52929  __Pyx_GOTREF(__pyx_t_10);
52930  #endif
52931  } else {
52932  if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
52933  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
52934  __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
52935  #else
52936  __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
52937  __Pyx_GOTREF(__pyx_t_10);
52938  #endif
52939  }
52940  } else {
52941  __pyx_t_10 = __pyx_t_9(__pyx_t_7);
52942  if (unlikely(!__pyx_t_10)) {
52943  PyObject* exc_type = PyErr_Occurred();
52944  if (exc_type) {
52945  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
52946  else __PYX_ERR(1, 84, __pyx_L1_error)
52947  }
52948  break;
52949  }
52950  __Pyx_GOTREF(__pyx_t_10);
52951  }
52952  __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
52953  __pyx_t_10 = 0;
52954  __pyx_v_i = __pyx_t_4;
52955  __pyx_t_4 = (__pyx_t_4 + 1);
52956 
52957  /* "carray.from_py":85
52958  * if i == length:
52959  * for i, item in enumerate(o):
52960  * if i >= length: # <<<<<<<<<<<<<<
52961  * break
52962  * v[i] = item
52963  */
52964  __pyx_t_6 = ((__pyx_v_i >= __pyx_v_length) != 0);
52965  if (__pyx_t_6) {
52966 
52967  /* "carray.from_py":86
52968  * for i, item in enumerate(o):
52969  * if i >= length:
52970  * break # <<<<<<<<<<<<<<
52971  * v[i] = item
52972  * else:
52973  */
52974  goto __pyx_L11_break;
52975 
52976  /* "carray.from_py":85
52977  * if i == length:
52978  * for i, item in enumerate(o):
52979  * if i >= length: # <<<<<<<<<<<<<<
52980  * break
52981  * v[i] = item
52982  */
52983  }
52984 
52985  /* "carray.from_py":87
52986  * if i >= length:
52987  * break
52988  * v[i] = item # <<<<<<<<<<<<<<
52989  * else:
52990  * i += 1 # convert index to length
52991  */
52992  __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_v_item); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
52993  (__pyx_v_v[__pyx_v_i]) = __pyx_t_11;
52994 
52995  /* "carray.from_py":84
52996  * pass
52997  * if i == length:
52998  * for i, item in enumerate(o): # <<<<<<<<<<<<<<
52999  * if i >= length:
53000  * break
53001  */
53002  }
53003  /*else*/ {
53004 
53005  /* "carray.from_py":89
53006  * v[i] = item
53007  * else:
53008  * i += 1 # convert index to length # <<<<<<<<<<<<<<
53009  * if i == length:
53010  * return 0
53011  */
53012  __pyx_v_i = (__pyx_v_i + 1);
53013 
53014  /* "carray.from_py":90
53015  * else:
53016  * i += 1 # convert index to length
53017  * if i == length: # <<<<<<<<<<<<<<
53018  * return 0
53019  *
53020  */
53021  __pyx_t_6 = ((__pyx_v_i == __pyx_v_length) != 0);
53022  if (__pyx_t_6) {
53023 
53024  /* "carray.from_py":91
53025  * i += 1 # convert index to length
53026  * if i == length:
53027  * return 0 # <<<<<<<<<<<<<<
53028  *
53029  * PyErr_Format(
53030  */
53031  __pyx_r = 0;
53032  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53033  goto __pyx_L0;
53034 
53035  /* "carray.from_py":90
53036  * else:
53037  * i += 1 # convert index to length
53038  * if i == length: # <<<<<<<<<<<<<<
53039  * return 0
53040  *
53041  */
53042  }
53043  }
53044 
53045  /* "carray.from_py":84
53046  * pass
53047  * if i == length:
53048  * for i, item in enumerate(o): # <<<<<<<<<<<<<<
53049  * if i >= length:
53050  * break
53051  */
53052  __pyx_L11_break:;
53053  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53054 
53055  /* "carray.from_py":83
53056  * except (TypeError, OverflowError):
53057  * pass
53058  * if i == length: # <<<<<<<<<<<<<<
53059  * for i, item in enumerate(o):
53060  * if i >= length:
53061  */
53062  }
53063 
53064  /* "carray.from_py":96
53065  * IndexError,
53066  * ("too many values found during array assignment, expected %zd"
53067  * if i >= length else # <<<<<<<<<<<<<<
53068  * "not enough values found during array assignment, expected %zd, got %zd"),
53069  * length, i)
53070  */
53071  if (((__pyx_v_i >= __pyx_v_length) != 0)) {
53072  __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd");
53073  } else {
53074  __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
53075  }
53076 
53077  /* "carray.from_py":93
53078  * return 0
53079  *
53080  * PyErr_Format( # <<<<<<<<<<<<<<
53081  * IndexError,
53082  * ("too many values found during array assignment, expected %zd"
53083  */
53084  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 93, __pyx_L1_error)
53085  __Pyx_GOTREF(__pyx_t_7);
53086  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53087 
53088  /* "carray.from_py":77
53089  *
53090  * @cname("__Pyx_carray_from_py_double")
53091  * cdef int __Pyx_carray_from_py_double(object o, base_type *v, Py_ssize_t length) except -1: # <<<<<<<<<<<<<<
53092  * cdef Py_ssize_t i = length
53093  * try:
53094  */
53095 
53096  /* function exit code */
53097  __pyx_r = 0;
53098  goto __pyx_L0;
53099  __pyx_L1_error:;
53100  __Pyx_XDECREF(__pyx_t_7);
53101  __Pyx_XDECREF(__pyx_t_10);
53102  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
53103  __pyx_r = -1;
53104  __pyx_L0:;
53105  __Pyx_XDECREF(__pyx_v_item);
53106  __Pyx_TraceReturn(Py_None, 0);
53107  __Pyx_RefNannyFinishContext();
53108  return __pyx_r;
53109 }
53110 
53111 /* "View.MemoryView":122
53112  * cdef bint dtype_is_object
53113  *
53114  * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
53115  * mode="c", bint allocate_buffer=True):
53116  *
53117  */
53118 
53119 /* Python wrapper */
53120 static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53121 static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53122  PyObject *__pyx_v_shape = 0;
53123  Py_ssize_t __pyx_v_itemsize;
53124  PyObject *__pyx_v_format = 0;
53125  PyObject *__pyx_v_mode = 0;
53126  int __pyx_v_allocate_buffer;
53127  int __pyx_lineno = 0;
53128  const char *__pyx_filename = NULL;
53129  int __pyx_clineno = 0;
53130  int __pyx_r;
53131  __Pyx_RefNannyDeclarations
53132  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
53133  {
53134  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0};
53135  PyObject* values[5] = {0,0,0,0,0};
53136  values[3] = ((PyObject *)__pyx_n_s_c);
53137  if (unlikely(__pyx_kwds)) {
53138  Py_ssize_t kw_args;
53139  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
53140  switch (pos_args) {
53141  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
53142  CYTHON_FALLTHROUGH;
53143  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
53144  CYTHON_FALLTHROUGH;
53145  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
53146  CYTHON_FALLTHROUGH;
53147  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
53148  CYTHON_FALLTHROUGH;
53149  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
53150  CYTHON_FALLTHROUGH;
53151  case 0: break;
53152  default: goto __pyx_L5_argtuple_error;
53153  }
53154  kw_args = PyDict_Size(__pyx_kwds);
53155  switch (pos_args) {
53156  case 0:
53157  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--;
53158  else goto __pyx_L5_argtuple_error;
53159  CYTHON_FALLTHROUGH;
53160  case 1:
53161  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--;
53162  else {
53163  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(1, 122, __pyx_L3_error)
53164  }
53165  CYTHON_FALLTHROUGH;
53166  case 2:
53167  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--;
53168  else {
53169  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(1, 122, __pyx_L3_error)
53170  }
53171  CYTHON_FALLTHROUGH;
53172  case 3:
53173  if (kw_args > 0) {
53174  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode);
53175  if (value) { values[3] = value; kw_args--; }
53176  }
53177  CYTHON_FALLTHROUGH;
53178  case 4:
53179  if (kw_args > 0) {
53180  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer);
53181  if (value) { values[4] = value; kw_args--; }
53182  }
53183  }
53184  if (unlikely(kw_args > 0)) {
53185  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 122, __pyx_L3_error)
53186  }
53187  } else {
53188  switch (PyTuple_GET_SIZE(__pyx_args)) {
53189  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
53190  CYTHON_FALLTHROUGH;
53191  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
53192  CYTHON_FALLTHROUGH;
53193  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
53194  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
53195  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
53196  break;
53197  default: goto __pyx_L5_argtuple_error;
53198  }
53199  }
53200  __pyx_v_shape = ((PyObject*)values[0]);
53201  __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 122, __pyx_L3_error)
53202  __pyx_v_format = values[2];
53203  __pyx_v_mode = values[3];
53204  if (values[4]) {
53205  __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 123, __pyx_L3_error)
53206  } else {
53207 
53208  /* "View.MemoryView":123
53209  *
53210  * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,
53211  * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<<
53212  *
53213  * cdef int idx
53214  */
53215  __pyx_v_allocate_buffer = ((int)1);
53216  }
53217  }
53218  goto __pyx_L4_argument_unpacking_done;
53219  __pyx_L5_argtuple_error:;
53220  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 122, __pyx_L3_error)
53221  __pyx_L3_error:;
53222  __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
53223  __Pyx_RefNannyFinishContext();
53224  return -1;
53225  __pyx_L4_argument_unpacking_done:;
53226  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(1, 122, __pyx_L1_error)
53227  if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
53228  PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(1, 122, __pyx_L1_error)
53229  }
53230  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer);
53231 
53232  /* "View.MemoryView":122
53233  * cdef bint dtype_is_object
53234  *
53235  * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
53236  * mode="c", bint allocate_buffer=True):
53237  *
53238  */
53239 
53240  /* function exit code */
53241  goto __pyx_L0;
53242  __pyx_L1_error:;
53243  __pyx_r = -1;
53244  __pyx_L0:;
53245  __Pyx_RefNannyFinishContext();
53246  return __pyx_r;
53247 }
53248 
53249 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) {
53250  int __pyx_v_idx;
53251  Py_ssize_t __pyx_v_i;
53252  Py_ssize_t __pyx_v_dim;
53253  PyObject **__pyx_v_p;
53254  char __pyx_v_order;
53255  int __pyx_r;
53256  __Pyx_TraceDeclarations
53257  __Pyx_RefNannyDeclarations
53258  Py_ssize_t __pyx_t_1;
53259  int __pyx_t_2;
53260  PyObject *__pyx_t_3 = NULL;
53261  int __pyx_t_4;
53262  PyObject *__pyx_t_5 = NULL;
53263  PyObject *__pyx_t_6 = NULL;
53264  char *__pyx_t_7;
53265  int __pyx_t_8;
53266  Py_ssize_t __pyx_t_9;
53267  PyObject *__pyx_t_10 = NULL;
53268  Py_ssize_t __pyx_t_11;
53269  int __pyx_lineno = 0;
53270  const char *__pyx_filename = NULL;
53271  int __pyx_clineno = 0;
53272  __Pyx_RefNannySetupContext("__cinit__", 0);
53273  __Pyx_TraceCall("__cinit__", __pyx_f[1], 122, 0, __PYX_ERR(1, 122, __pyx_L1_error));
53274  __Pyx_INCREF(__pyx_v_format);
53275 
53276  /* "View.MemoryView":129
53277  * cdef PyObject **p
53278  *
53279  * self.ndim = <int> len(shape) # <<<<<<<<<<<<<<
53280  * self.itemsize = itemsize
53281  *
53282  */
53283  if (unlikely(__pyx_v_shape == Py_None)) {
53284  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
53285  __PYX_ERR(1, 129, __pyx_L1_error)
53286  }
53287  __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 129, __pyx_L1_error)
53288  __pyx_v_self->ndim = ((int)__pyx_t_1);
53289 
53290  /* "View.MemoryView":130
53291  *
53292  * self.ndim = <int> len(shape)
53293  * self.itemsize = itemsize # <<<<<<<<<<<<<<
53294  *
53295  * if not self.ndim:
53296  */
53297  __pyx_v_self->itemsize = __pyx_v_itemsize;
53298 
53299  /* "View.MemoryView":132
53300  * self.itemsize = itemsize
53301  *
53302  * if not self.ndim: # <<<<<<<<<<<<<<
53303  * raise ValueError("Empty shape tuple for cython.array")
53304  *
53305  */
53306  __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0);
53307  if (unlikely(__pyx_t_2)) {
53308 
53309  /* "View.MemoryView":133
53310  *
53311  * if not self.ndim:
53312  * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<<
53313  *
53314  * if itemsize <= 0:
53315  */
53316  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__145, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error)
53317  __Pyx_GOTREF(__pyx_t_3);
53318  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
53319  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53320  __PYX_ERR(1, 133, __pyx_L1_error)
53321 
53322  /* "View.MemoryView":132
53323  * self.itemsize = itemsize
53324  *
53325  * if not self.ndim: # <<<<<<<<<<<<<<
53326  * raise ValueError("Empty shape tuple for cython.array")
53327  *
53328  */
53329  }
53330 
53331  /* "View.MemoryView":135
53332  * raise ValueError("Empty shape tuple for cython.array")
53333  *
53334  * if itemsize <= 0: # <<<<<<<<<<<<<<
53335  * raise ValueError("itemsize <= 0 for cython.array")
53336  *
53337  */
53338  __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0);
53339  if (unlikely(__pyx_t_2)) {
53340 
53341  /* "View.MemoryView":136
53342  *
53343  * if itemsize <= 0:
53344  * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<<
53345  *
53346  * if not isinstance(format, bytes):
53347  */
53348  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__146, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L1_error)
53349  __Pyx_GOTREF(__pyx_t_3);
53350  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
53351  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53352  __PYX_ERR(1, 136, __pyx_L1_error)
53353 
53354  /* "View.MemoryView":135
53355  * raise ValueError("Empty shape tuple for cython.array")
53356  *
53357  * if itemsize <= 0: # <<<<<<<<<<<<<<
53358  * raise ValueError("itemsize <= 0 for cython.array")
53359  *
53360  */
53361  }
53362 
53363  /* "View.MemoryView":138
53364  * raise ValueError("itemsize <= 0 for cython.array")
53365  *
53366  * if not isinstance(format, bytes): # <<<<<<<<<<<<<<
53367  * format = format.encode('ASCII')
53368  * self._format = format # keep a reference to the byte string
53369  */
53370  __pyx_t_2 = PyBytes_Check(__pyx_v_format);
53371  __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0);
53372  if (__pyx_t_4) {
53373 
53374  /* "View.MemoryView":139
53375  *
53376  * if not isinstance(format, bytes):
53377  * format = format.encode('ASCII') # <<<<<<<<<<<<<<
53378  * self._format = format # keep a reference to the byte string
53379  * self.format = self._format
53380  */
53381  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 139, __pyx_L1_error)
53382  __Pyx_GOTREF(__pyx_t_5);
53383  __pyx_t_6 = NULL;
53384  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
53385  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
53386  if (likely(__pyx_t_6)) {
53387  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
53388  __Pyx_INCREF(__pyx_t_6);
53389  __Pyx_INCREF(function);
53390  __Pyx_DECREF_SET(__pyx_t_5, function);
53391  }
53392  }
53393  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII);
53394  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
53395  if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L1_error)
53396  __Pyx_GOTREF(__pyx_t_3);
53397  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
53398  __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3);
53399  __pyx_t_3 = 0;
53400 
53401  /* "View.MemoryView":138
53402  * raise ValueError("itemsize <= 0 for cython.array")
53403  *
53404  * if not isinstance(format, bytes): # <<<<<<<<<<<<<<
53405  * format = format.encode('ASCII')
53406  * self._format = format # keep a reference to the byte string
53407  */
53408  }
53409 
53410  /* "View.MemoryView":140
53411  * if not isinstance(format, bytes):
53412  * format = format.encode('ASCII')
53413  * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<<
53414  * self.format = self._format
53415  *
53416  */
53417  if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(1, 140, __pyx_L1_error)
53418  __pyx_t_3 = __pyx_v_format;
53419  __Pyx_INCREF(__pyx_t_3);
53420  __Pyx_GIVEREF(__pyx_t_3);
53421  __Pyx_GOTREF(__pyx_v_self->_format);
53422  __Pyx_DECREF(__pyx_v_self->_format);
53423  __pyx_v_self->_format = ((PyObject*)__pyx_t_3);
53424  __pyx_t_3 = 0;
53425 
53426  /* "View.MemoryView":141
53427  * format = format.encode('ASCII')
53428  * self._format = format # keep a reference to the byte string
53429  * self.format = self._format # <<<<<<<<<<<<<<
53430  *
53431  *
53432  */
53433  if (unlikely(__pyx_v_self->_format == Py_None)) {
53434  PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
53435  __PYX_ERR(1, 141, __pyx_L1_error)
53436  }
53437  __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(1, 141, __pyx_L1_error)
53438  __pyx_v_self->format = __pyx_t_7;
53439 
53440  /* "View.MemoryView":144
53441  *
53442  *
53443  * self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<<
53444  * self._strides = self._shape + self.ndim
53445  *
53446  */
53447  __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2)));
53448 
53449  /* "View.MemoryView":145
53450  *
53451  * self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)
53452  * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<<
53453  *
53454  * if not self._shape:
53455  */
53456  __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim);
53457 
53458  /* "View.MemoryView":147
53459  * self._strides = self._shape + self.ndim
53460  *
53461  * if not self._shape: # <<<<<<<<<<<<<<
53462  * raise MemoryError("unable to allocate shape and strides.")
53463  *
53464  */
53465  __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0);
53466  if (unlikely(__pyx_t_4)) {
53467 
53468  /* "View.MemoryView":148
53469  *
53470  * if not self._shape:
53471  * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<<
53472  *
53473  *
53474  */
53475  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__147, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 148, __pyx_L1_error)
53476  __Pyx_GOTREF(__pyx_t_3);
53477  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
53478  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53479  __PYX_ERR(1, 148, __pyx_L1_error)
53480 
53481  /* "View.MemoryView":147
53482  * self._strides = self._shape + self.ndim
53483  *
53484  * if not self._shape: # <<<<<<<<<<<<<<
53485  * raise MemoryError("unable to allocate shape and strides.")
53486  *
53487  */
53488  }
53489 
53490  /* "View.MemoryView":151
53491  *
53492  *
53493  * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<<
53494  * if dim <= 0:
53495  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim))
53496  */
53497  __pyx_t_8 = 0;
53498  __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
53499  for (;;) {
53500  if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
53501  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
53502  __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(1, 151, __pyx_L1_error)
53503  #else
53504  __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 151, __pyx_L1_error)
53505  __Pyx_GOTREF(__pyx_t_5);
53506  #endif
53507  __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 151, __pyx_L1_error)
53508  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
53509  __pyx_v_dim = __pyx_t_9;
53510  __pyx_v_idx = __pyx_t_8;
53511  __pyx_t_8 = (__pyx_t_8 + 1);
53512 
53513  /* "View.MemoryView":152
53514  *
53515  * for idx, dim in enumerate(shape):
53516  * if dim <= 0: # <<<<<<<<<<<<<<
53517  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim))
53518  * self._shape[idx] = dim
53519  */
53520  __pyx_t_4 = ((__pyx_v_dim <= 0) != 0);
53521  if (unlikely(__pyx_t_4)) {
53522 
53523  /* "View.MemoryView":153
53524  * for idx, dim in enumerate(shape):
53525  * if dim <= 0:
53526  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<<
53527  * self._shape[idx] = dim
53528  *
53529  */
53530  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 153, __pyx_L1_error)
53531  __Pyx_GOTREF(__pyx_t_5);
53532  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 153, __pyx_L1_error)
53533  __Pyx_GOTREF(__pyx_t_6);
53534  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 153, __pyx_L1_error)
53535  __Pyx_GOTREF(__pyx_t_10);
53536  __Pyx_GIVEREF(__pyx_t_5);
53537  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5);
53538  __Pyx_GIVEREF(__pyx_t_6);
53539  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6);
53540  __pyx_t_5 = 0;
53541  __pyx_t_6 = 0;
53542  __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 153, __pyx_L1_error)
53543  __Pyx_GOTREF(__pyx_t_6);
53544  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
53545  __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 153, __pyx_L1_error)
53546  __Pyx_GOTREF(__pyx_t_10);
53547  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
53548  __Pyx_Raise(__pyx_t_10, 0, 0, 0);
53549  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
53550  __PYX_ERR(1, 153, __pyx_L1_error)
53551 
53552  /* "View.MemoryView":152
53553  *
53554  * for idx, dim in enumerate(shape):
53555  * if dim <= 0: # <<<<<<<<<<<<<<
53556  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim))
53557  * self._shape[idx] = dim
53558  */
53559  }
53560 
53561  /* "View.MemoryView":154
53562  * if dim <= 0:
53563  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim))
53564  * self._shape[idx] = dim # <<<<<<<<<<<<<<
53565  *
53566  * cdef char order
53567  */
53568  (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim;
53569 
53570  /* "View.MemoryView":151
53571  *
53572  *
53573  * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<<
53574  * if dim <= 0:
53575  * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim))
53576  */
53577  }
53578  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53579 
53580  /* "View.MemoryView":157
53581  *
53582  * cdef char order
53583  * if mode == 'fortran': # <<<<<<<<<<<<<<
53584  * order = b'F'
53585  * self.mode = u'fortran'
53586  */
53587  __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 157, __pyx_L1_error)
53588  if (__pyx_t_4) {
53589 
53590  /* "View.MemoryView":158
53591  * cdef char order
53592  * if mode == 'fortran':
53593  * order = b'F' # <<<<<<<<<<<<<<
53594  * self.mode = u'fortran'
53595  * elif mode == 'c':
53596  */
53597  __pyx_v_order = 'F';
53598 
53599  /* "View.MemoryView":159
53600  * if mode == 'fortran':
53601  * order = b'F'
53602  * self.mode = u'fortran' # <<<<<<<<<<<<<<
53603  * elif mode == 'c':
53604  * order = b'C'
53605  */
53606  __Pyx_INCREF(__pyx_n_u_fortran);
53607  __Pyx_GIVEREF(__pyx_n_u_fortran);
53608  __Pyx_GOTREF(__pyx_v_self->mode);
53609  __Pyx_DECREF(__pyx_v_self->mode);
53610  __pyx_v_self->mode = __pyx_n_u_fortran;
53611 
53612  /* "View.MemoryView":157
53613  *
53614  * cdef char order
53615  * if mode == 'fortran': # <<<<<<<<<<<<<<
53616  * order = b'F'
53617  * self.mode = u'fortran'
53618  */
53619  goto __pyx_L10;
53620  }
53621 
53622  /* "View.MemoryView":160
53623  * order = b'F'
53624  * self.mode = u'fortran'
53625  * elif mode == 'c': # <<<<<<<<<<<<<<
53626  * order = b'C'
53627  * self.mode = u'c'
53628  */
53629  __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 160, __pyx_L1_error)
53630  if (likely(__pyx_t_4)) {
53631 
53632  /* "View.MemoryView":161
53633  * self.mode = u'fortran'
53634  * elif mode == 'c':
53635  * order = b'C' # <<<<<<<<<<<<<<
53636  * self.mode = u'c'
53637  * else:
53638  */
53639  __pyx_v_order = 'C';
53640 
53641  /* "View.MemoryView":162
53642  * elif mode == 'c':
53643  * order = b'C'
53644  * self.mode = u'c' # <<<<<<<<<<<<<<
53645  * else:
53646  * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode)
53647  */
53648  __Pyx_INCREF(__pyx_n_u_c);
53649  __Pyx_GIVEREF(__pyx_n_u_c);
53650  __Pyx_GOTREF(__pyx_v_self->mode);
53651  __Pyx_DECREF(__pyx_v_self->mode);
53652  __pyx_v_self->mode = __pyx_n_u_c;
53653 
53654  /* "View.MemoryView":160
53655  * order = b'F'
53656  * self.mode = u'fortran'
53657  * elif mode == 'c': # <<<<<<<<<<<<<<
53658  * order = b'C'
53659  * self.mode = u'c'
53660  */
53661  goto __pyx_L10;
53662  }
53663 
53664  /* "View.MemoryView":164
53665  * self.mode = u'c'
53666  * else:
53667  * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<<
53668  *
53669  * self.len = fill_contig_strides_array(self._shape, self._strides,
53670  */
53671  /*else*/ {
53672  __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 164, __pyx_L1_error)
53673  __Pyx_GOTREF(__pyx_t_3);
53674  __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 164, __pyx_L1_error)
53675  __Pyx_GOTREF(__pyx_t_10);
53676  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53677  __Pyx_Raise(__pyx_t_10, 0, 0, 0);
53678  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
53679  __PYX_ERR(1, 164, __pyx_L1_error)
53680  }
53681  __pyx_L10:;
53682 
53683  /* "View.MemoryView":166
53684  * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode)
53685  *
53686  * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<<
53687  * itemsize, self.ndim, order)
53688  *
53689  */
53690  __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order);
53691 
53692  /* "View.MemoryView":169
53693  * itemsize, self.ndim, order)
53694  *
53695  * self.free_data = allocate_buffer # <<<<<<<<<<<<<<
53696  * self.dtype_is_object = format == b'O'
53697  * if allocate_buffer:
53698  */
53699  __pyx_v_self->free_data = __pyx_v_allocate_buffer;
53700 
53701  /* "View.MemoryView":170
53702  *
53703  * self.free_data = allocate_buffer
53704  * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<<
53705  * if allocate_buffer:
53706  *
53707  */
53708  __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 170, __pyx_L1_error)
53709  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error)
53710  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
53711  __pyx_v_self->dtype_is_object = __pyx_t_4;
53712 
53713  /* "View.MemoryView":171
53714  * self.free_data = allocate_buffer
53715  * self.dtype_is_object = format == b'O'
53716  * if allocate_buffer: # <<<<<<<<<<<<<<
53717  *
53718  *
53719  */
53720  __pyx_t_4 = (__pyx_v_allocate_buffer != 0);
53721  if (__pyx_t_4) {
53722 
53723  /* "View.MemoryView":174
53724  *
53725  *
53726  * self.data = <char *>malloc(self.len) # <<<<<<<<<<<<<<
53727  * if not self.data:
53728  * raise MemoryError("unable to allocate array data.")
53729  */
53730  __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len));
53731 
53732  /* "View.MemoryView":175
53733  *
53734  * self.data = <char *>malloc(self.len)
53735  * if not self.data: # <<<<<<<<<<<<<<
53736  * raise MemoryError("unable to allocate array data.")
53737  *
53738  */
53739  __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0);
53740  if (unlikely(__pyx_t_4)) {
53741 
53742  /* "View.MemoryView":176
53743  * self.data = <char *>malloc(self.len)
53744  * if not self.data:
53745  * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<<
53746  *
53747  * if self.dtype_is_object:
53748  */
53749  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__148, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 176, __pyx_L1_error)
53750  __Pyx_GOTREF(__pyx_t_10);
53751  __Pyx_Raise(__pyx_t_10, 0, 0, 0);
53752  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
53753  __PYX_ERR(1, 176, __pyx_L1_error)
53754 
53755  /* "View.MemoryView":175
53756  *
53757  * self.data = <char *>malloc(self.len)
53758  * if not self.data: # <<<<<<<<<<<<<<
53759  * raise MemoryError("unable to allocate array data.")
53760  *
53761  */
53762  }
53763 
53764  /* "View.MemoryView":178
53765  * raise MemoryError("unable to allocate array data.")
53766  *
53767  * if self.dtype_is_object: # <<<<<<<<<<<<<<
53768  * p = <PyObject **> self.data
53769  * for i in range(self.len / itemsize):
53770  */
53771  __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0);
53772  if (__pyx_t_4) {
53773 
53774  /* "View.MemoryView":179
53775  *
53776  * if self.dtype_is_object:
53777  * p = <PyObject **> self.data # <<<<<<<<<<<<<<
53778  * for i in range(self.len / itemsize):
53779  * p[i] = Py_None
53780  */
53781  __pyx_v_p = ((PyObject **)__pyx_v_self->data);
53782 
53783  /* "View.MemoryView":180
53784  * if self.dtype_is_object:
53785  * p = <PyObject **> self.data
53786  * for i in range(self.len / itemsize): # <<<<<<<<<<<<<<
53787  * p[i] = Py_None
53788  * Py_INCREF(Py_None)
53789  */
53790  if (unlikely(__pyx_v_itemsize == 0)) {
53791  PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
53792  __PYX_ERR(1, 180, __pyx_L1_error)
53793  }
53794  else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) {
53795  PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
53796  __PYX_ERR(1, 180, __pyx_L1_error)
53797  }
53798  __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize);
53799  __pyx_t_9 = __pyx_t_1;
53800  for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) {
53801  __pyx_v_i = __pyx_t_11;
53802 
53803  /* "View.MemoryView":181
53804  * p = <PyObject **> self.data
53805  * for i in range(self.len / itemsize):
53806  * p[i] = Py_None # <<<<<<<<<<<<<<
53807  * Py_INCREF(Py_None)
53808  *
53809  */
53810  (__pyx_v_p[__pyx_v_i]) = Py_None;
53811 
53812  /* "View.MemoryView":182
53813  * for i in range(self.len / itemsize):
53814  * p[i] = Py_None
53815  * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
53816  *
53817  * @cname('getbuffer')
53818  */
53819  Py_INCREF(Py_None);
53820  }
53821 
53822  /* "View.MemoryView":178
53823  * raise MemoryError("unable to allocate array data.")
53824  *
53825  * if self.dtype_is_object: # <<<<<<<<<<<<<<
53826  * p = <PyObject **> self.data
53827  * for i in range(self.len / itemsize):
53828  */
53829  }
53830 
53831  /* "View.MemoryView":171
53832  * self.free_data = allocate_buffer
53833  * self.dtype_is_object = format == b'O'
53834  * if allocate_buffer: # <<<<<<<<<<<<<<
53835  *
53836  *
53837  */
53838  }
53839 
53840  /* "View.MemoryView":122
53841  * cdef bint dtype_is_object
53842  *
53843  * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
53844  * mode="c", bint allocate_buffer=True):
53845  *
53846  */
53847 
53848  /* function exit code */
53849  __pyx_r = 0;
53850  goto __pyx_L0;
53851  __pyx_L1_error:;
53852  __Pyx_XDECREF(__pyx_t_3);
53853  __Pyx_XDECREF(__pyx_t_5);
53854  __Pyx_XDECREF(__pyx_t_6);
53855  __Pyx_XDECREF(__pyx_t_10);
53856  __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
53857  __pyx_r = -1;
53858  __pyx_L0:;
53859  __Pyx_XDECREF(__pyx_v_format);
53860  __Pyx_TraceReturn(Py_None, 0);
53861  __Pyx_RefNannyFinishContext();
53862  return __pyx_r;
53863 }
53864 
53865 /* "View.MemoryView":185
53866  *
53867  * @cname('getbuffer')
53868  * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<<
53869  * cdef int bufmode = -1
53870  * if self.mode == u"c":
53871  */
53872 
53873 /* Python wrapper */
53874 static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
53875 static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
53876  int __pyx_r;
53877  __Pyx_RefNannyDeclarations
53878  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
53879  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
53880 
53881  /* function exit code */
53882  __Pyx_RefNannyFinishContext();
53883  return __pyx_r;
53884 }
53885 
53886 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
53887  int __pyx_v_bufmode;
53888  int __pyx_r;
53889  __Pyx_TraceDeclarations
53890  __Pyx_RefNannyDeclarations
53891  int __pyx_t_1;
53892  int __pyx_t_2;
53893  PyObject *__pyx_t_3 = NULL;
53894  char *__pyx_t_4;
53895  Py_ssize_t __pyx_t_5;
53896  int __pyx_t_6;
53897  Py_ssize_t *__pyx_t_7;
53898  int __pyx_lineno = 0;
53899  const char *__pyx_filename = NULL;
53900  int __pyx_clineno = 0;
53901  if (__pyx_v_info == NULL) {
53902  PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
53903  return -1;
53904  }
53905  __Pyx_RefNannySetupContext("__getbuffer__", 0);
53906  __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
53907  __Pyx_GIVEREF(__pyx_v_info->obj);
53908  __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 185, 0, __PYX_ERR(1, 185, __pyx_L1_error));
53909 
53910  /* "View.MemoryView":186
53911  * @cname('getbuffer')
53912  * def __getbuffer__(self, Py_buffer *info, int flags):
53913  * cdef int bufmode = -1 # <<<<<<<<<<<<<<
53914  * if self.mode == u"c":
53915  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53916  */
53917  __pyx_v_bufmode = -1;
53918 
53919  /* "View.MemoryView":187
53920  * def __getbuffer__(self, Py_buffer *info, int flags):
53921  * cdef int bufmode = -1
53922  * if self.mode == u"c": # <<<<<<<<<<<<<<
53923  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53924  * elif self.mode == u"fortran":
53925  */
53926  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 187, __pyx_L1_error)
53927  __pyx_t_2 = (__pyx_t_1 != 0);
53928  if (__pyx_t_2) {
53929 
53930  /* "View.MemoryView":188
53931  * cdef int bufmode = -1
53932  * if self.mode == u"c":
53933  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<<
53934  * elif self.mode == u"fortran":
53935  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53936  */
53937  __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
53938 
53939  /* "View.MemoryView":187
53940  * def __getbuffer__(self, Py_buffer *info, int flags):
53941  * cdef int bufmode = -1
53942  * if self.mode == u"c": # <<<<<<<<<<<<<<
53943  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53944  * elif self.mode == u"fortran":
53945  */
53946  goto __pyx_L3;
53947  }
53948 
53949  /* "View.MemoryView":189
53950  * if self.mode == u"c":
53951  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53952  * elif self.mode == u"fortran": # <<<<<<<<<<<<<<
53953  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53954  * if not (flags & bufmode):
53955  */
53956  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 189, __pyx_L1_error)
53957  __pyx_t_1 = (__pyx_t_2 != 0);
53958  if (__pyx_t_1) {
53959 
53960  /* "View.MemoryView":190
53961  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53962  * elif self.mode == u"fortran":
53963  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<<
53964  * if not (flags & bufmode):
53965  * raise ValueError("Can only create a buffer that is contiguous in memory.")
53966  */
53967  __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
53968 
53969  /* "View.MemoryView":189
53970  * if self.mode == u"c":
53971  * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53972  * elif self.mode == u"fortran": # <<<<<<<<<<<<<<
53973  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53974  * if not (flags & bufmode):
53975  */
53976  }
53977  __pyx_L3:;
53978 
53979  /* "View.MemoryView":191
53980  * elif self.mode == u"fortran":
53981  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53982  * if not (flags & bufmode): # <<<<<<<<<<<<<<
53983  * raise ValueError("Can only create a buffer that is contiguous in memory.")
53984  * info.buf = self.data
53985  */
53986  __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0);
53987  if (unlikely(__pyx_t_1)) {
53988 
53989  /* "View.MemoryView":192
53990  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
53991  * if not (flags & bufmode):
53992  * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<<
53993  * info.buf = self.data
53994  * info.len = self.len
53995  */
53996  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__149, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error)
53997  __Pyx_GOTREF(__pyx_t_3);
53998  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
53999  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54000  __PYX_ERR(1, 192, __pyx_L1_error)
54001 
54002  /* "View.MemoryView":191
54003  * elif self.mode == u"fortran":
54004  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
54005  * if not (flags & bufmode): # <<<<<<<<<<<<<<
54006  * raise ValueError("Can only create a buffer that is contiguous in memory.")
54007  * info.buf = self.data
54008  */
54009  }
54010 
54011  /* "View.MemoryView":193
54012  * if not (flags & bufmode):
54013  * raise ValueError("Can only create a buffer that is contiguous in memory.")
54014  * info.buf = self.data # <<<<<<<<<<<<<<
54015  * info.len = self.len
54016  * info.ndim = self.ndim
54017  */
54018  __pyx_t_4 = __pyx_v_self->data;
54019  __pyx_v_info->buf = __pyx_t_4;
54020 
54021  /* "View.MemoryView":194
54022  * raise ValueError("Can only create a buffer that is contiguous in memory.")
54023  * info.buf = self.data
54024  * info.len = self.len # <<<<<<<<<<<<<<
54025  * info.ndim = self.ndim
54026  * info.shape = self._shape
54027  */
54028  __pyx_t_5 = __pyx_v_self->len;
54029  __pyx_v_info->len = __pyx_t_5;
54030 
54031  /* "View.MemoryView":195
54032  * info.buf = self.data
54033  * info.len = self.len
54034  * info.ndim = self.ndim # <<<<<<<<<<<<<<
54035  * info.shape = self._shape
54036  * info.strides = self._strides
54037  */
54038  __pyx_t_6 = __pyx_v_self->ndim;
54039  __pyx_v_info->ndim = __pyx_t_6;
54040 
54041  /* "View.MemoryView":196
54042  * info.len = self.len
54043  * info.ndim = self.ndim
54044  * info.shape = self._shape # <<<<<<<<<<<<<<
54045  * info.strides = self._strides
54046  * info.suboffsets = NULL
54047  */
54048  __pyx_t_7 = __pyx_v_self->_shape;
54049  __pyx_v_info->shape = __pyx_t_7;
54050 
54051  /* "View.MemoryView":197
54052  * info.ndim = self.ndim
54053  * info.shape = self._shape
54054  * info.strides = self._strides # <<<<<<<<<<<<<<
54055  * info.suboffsets = NULL
54056  * info.itemsize = self.itemsize
54057  */
54058  __pyx_t_7 = __pyx_v_self->_strides;
54059  __pyx_v_info->strides = __pyx_t_7;
54060 
54061  /* "View.MemoryView":198
54062  * info.shape = self._shape
54063  * info.strides = self._strides
54064  * info.suboffsets = NULL # <<<<<<<<<<<<<<
54065  * info.itemsize = self.itemsize
54066  * info.readonly = 0
54067  */
54068  __pyx_v_info->suboffsets = NULL;
54069 
54070  /* "View.MemoryView":199
54071  * info.strides = self._strides
54072  * info.suboffsets = NULL
54073  * info.itemsize = self.itemsize # <<<<<<<<<<<<<<
54074  * info.readonly = 0
54075  *
54076  */
54077  __pyx_t_5 = __pyx_v_self->itemsize;
54078  __pyx_v_info->itemsize = __pyx_t_5;
54079 
54080  /* "View.MemoryView":200
54081  * info.suboffsets = NULL
54082  * info.itemsize = self.itemsize
54083  * info.readonly = 0 # <<<<<<<<<<<<<<
54084  *
54085  * if flags & PyBUF_FORMAT:
54086  */
54087  __pyx_v_info->readonly = 0;
54088 
54089  /* "View.MemoryView":202
54090  * info.readonly = 0
54091  *
54092  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
54093  * info.format = self.format
54094  * else:
54095  */
54096  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
54097  if (__pyx_t_1) {
54098 
54099  /* "View.MemoryView":203
54100  *
54101  * if flags & PyBUF_FORMAT:
54102  * info.format = self.format # <<<<<<<<<<<<<<
54103  * else:
54104  * info.format = NULL
54105  */
54106  __pyx_t_4 = __pyx_v_self->format;
54107  __pyx_v_info->format = __pyx_t_4;
54108 
54109  /* "View.MemoryView":202
54110  * info.readonly = 0
54111  *
54112  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
54113  * info.format = self.format
54114  * else:
54115  */
54116  goto __pyx_L5;
54117  }
54118 
54119  /* "View.MemoryView":205
54120  * info.format = self.format
54121  * else:
54122  * info.format = NULL # <<<<<<<<<<<<<<
54123  *
54124  * info.obj = self
54125  */
54126  /*else*/ {
54127  __pyx_v_info->format = NULL;
54128  }
54129  __pyx_L5:;
54130 
54131  /* "View.MemoryView":207
54132  * info.format = NULL
54133  *
54134  * info.obj = self # <<<<<<<<<<<<<<
54135  *
54136  * __pyx_getbuffer = capsule(<void *> &__pyx_array_getbuffer, "getbuffer(obj, view, flags)")
54137  */
54138  __Pyx_INCREF(((PyObject *)__pyx_v_self));
54139  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
54140  __Pyx_GOTREF(__pyx_v_info->obj);
54141  __Pyx_DECREF(__pyx_v_info->obj);
54142  __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
54143 
54144  /* "View.MemoryView":185
54145  *
54146  * @cname('getbuffer')
54147  * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<<
54148  * cdef int bufmode = -1
54149  * if self.mode == u"c":
54150  */
54151 
54152  /* function exit code */
54153  __pyx_r = 0;
54154  goto __pyx_L0;
54155  __pyx_L1_error:;
54156  __Pyx_XDECREF(__pyx_t_3);
54157  __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54158  __pyx_r = -1;
54159  if (__pyx_v_info->obj != NULL) {
54160  __Pyx_GOTREF(__pyx_v_info->obj);
54161  __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
54162  }
54163  goto __pyx_L2;
54164  __pyx_L0:;
54165  if (__pyx_v_info->obj == Py_None) {
54166  __Pyx_GOTREF(__pyx_v_info->obj);
54167  __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
54168  }
54169  __pyx_L2:;
54170  __Pyx_TraceReturn(Py_None, 0);
54171  __Pyx_RefNannyFinishContext();
54172  return __pyx_r;
54173 }
54174 
54175 /* "View.MemoryView":211
54176  * __pyx_getbuffer = capsule(<void *> &__pyx_array_getbuffer, "getbuffer(obj, view, flags)")
54177  *
54178  * def __dealloc__(array self): # <<<<<<<<<<<<<<
54179  * if self.callback_free_data != NULL:
54180  * self.callback_free_data(self.data)
54181  */
54182 
54183 /* Python wrapper */
54184 static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/
54185 static void __pyx_array___dealloc__(PyObject *__pyx_v_self) {
54186  __Pyx_RefNannyDeclarations
54187  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
54188  __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self));
54189 
54190  /* function exit code */
54191  __Pyx_RefNannyFinishContext();
54192 }
54193 
54194 static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) {
54195  __Pyx_TraceDeclarations
54196  __Pyx_RefNannyDeclarations
54197  int __pyx_t_1;
54198  int __pyx_lineno = 0;
54199  const char *__pyx_filename = NULL;
54200  int __pyx_clineno = 0;
54201  __Pyx_RefNannySetupContext("__dealloc__", 0);
54202  __Pyx_TraceCall("__dealloc__", __pyx_f[1], 211, 0, __PYX_ERR(1, 211, __pyx_L1_error));
54203 
54204  /* "View.MemoryView":212
54205  *
54206  * def __dealloc__(array self):
54207  * if self.callback_free_data != NULL: # <<<<<<<<<<<<<<
54208  * self.callback_free_data(self.data)
54209  * elif self.free_data:
54210  */
54211  __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0);
54212  if (__pyx_t_1) {
54213 
54214  /* "View.MemoryView":213
54215  * def __dealloc__(array self):
54216  * if self.callback_free_data != NULL:
54217  * self.callback_free_data(self.data) # <<<<<<<<<<<<<<
54218  * elif self.free_data:
54219  * if self.dtype_is_object:
54220  */
54221  __pyx_v_self->callback_free_data(__pyx_v_self->data);
54222 
54223  /* "View.MemoryView":212
54224  *
54225  * def __dealloc__(array self):
54226  * if self.callback_free_data != NULL: # <<<<<<<<<<<<<<
54227  * self.callback_free_data(self.data)
54228  * elif self.free_data:
54229  */
54230  goto __pyx_L3;
54231  }
54232 
54233  /* "View.MemoryView":214
54234  * if self.callback_free_data != NULL:
54235  * self.callback_free_data(self.data)
54236  * elif self.free_data: # <<<<<<<<<<<<<<
54237  * if self.dtype_is_object:
54238  * refcount_objects_in_slice(self.data, self._shape,
54239  */
54240  __pyx_t_1 = (__pyx_v_self->free_data != 0);
54241  if (__pyx_t_1) {
54242 
54243  /* "View.MemoryView":215
54244  * self.callback_free_data(self.data)
54245  * elif self.free_data:
54246  * if self.dtype_is_object: # <<<<<<<<<<<<<<
54247  * refcount_objects_in_slice(self.data, self._shape,
54248  * self._strides, self.ndim, False)
54249  */
54250  __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0);
54251  if (__pyx_t_1) {
54252 
54253  /* "View.MemoryView":216
54254  * elif self.free_data:
54255  * if self.dtype_is_object:
54256  * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<<
54257  * self._strides, self.ndim, False)
54258  * free(self.data)
54259  */
54260  __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0);
54261 
54262  /* "View.MemoryView":215
54263  * self.callback_free_data(self.data)
54264  * elif self.free_data:
54265  * if self.dtype_is_object: # <<<<<<<<<<<<<<
54266  * refcount_objects_in_slice(self.data, self._shape,
54267  * self._strides, self.ndim, False)
54268  */
54269  }
54270 
54271  /* "View.MemoryView":218
54272  * refcount_objects_in_slice(self.data, self._shape,
54273  * self._strides, self.ndim, False)
54274  * free(self.data) # <<<<<<<<<<<<<<
54275  * PyObject_Free(self._shape)
54276  *
54277  */
54278  free(__pyx_v_self->data);
54279 
54280  /* "View.MemoryView":214
54281  * if self.callback_free_data != NULL:
54282  * self.callback_free_data(self.data)
54283  * elif self.free_data: # <<<<<<<<<<<<<<
54284  * if self.dtype_is_object:
54285  * refcount_objects_in_slice(self.data, self._shape,
54286  */
54287  }
54288  __pyx_L3:;
54289 
54290  /* "View.MemoryView":219
54291  * self._strides, self.ndim, False)
54292  * free(self.data)
54293  * PyObject_Free(self._shape) # <<<<<<<<<<<<<<
54294  *
54295  * @property
54296  */
54297  PyObject_Free(__pyx_v_self->_shape);
54298 
54299  /* "View.MemoryView":211
54300  * __pyx_getbuffer = capsule(<void *> &__pyx_array_getbuffer, "getbuffer(obj, view, flags)")
54301  *
54302  * def __dealloc__(array self): # <<<<<<<<<<<<<<
54303  * if self.callback_free_data != NULL:
54304  * self.callback_free_data(self.data)
54305  */
54306 
54307  /* function exit code */
54308  goto __pyx_L0;
54309  __pyx_L1_error:;
54310  __Pyx_WriteUnraisable("View.MemoryView.array.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
54311  __pyx_L0:;
54312  __Pyx_TraceReturn(Py_None, 0);
54313  __Pyx_RefNannyFinishContext();
54314 }
54315 
54316 /* "View.MemoryView":222
54317  *
54318  * @property
54319  * def memview(self): # <<<<<<<<<<<<<<
54320  * return self.get_memview()
54321  *
54322  */
54323 
54324 /* Python wrapper */
54325 static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/
54326 static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) {
54327  PyObject *__pyx_r = 0;
54328  __Pyx_RefNannyDeclarations
54329  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
54330  __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self));
54331 
54332  /* function exit code */
54333  __Pyx_RefNannyFinishContext();
54334  return __pyx_r;
54335 }
54336 
54337 static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) {
54338  PyObject *__pyx_r = NULL;
54339  __Pyx_TraceDeclarations
54340  __Pyx_RefNannyDeclarations
54341  PyObject *__pyx_t_1 = NULL;
54342  int __pyx_lineno = 0;
54343  const char *__pyx_filename = NULL;
54344  int __pyx_clineno = 0;
54345  __Pyx_RefNannySetupContext("__get__", 0);
54346  __Pyx_TraceCall("__get__", __pyx_f[1], 222, 0, __PYX_ERR(1, 222, __pyx_L1_error));
54347 
54348  /* "View.MemoryView":223
54349  * @property
54350  * def memview(self):
54351  * return self.get_memview() # <<<<<<<<<<<<<<
54352  *
54353  * @cname('get_memview')
54354  */
54355  __Pyx_XDECREF(__pyx_r);
54356  __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 223, __pyx_L1_error)
54357  __Pyx_GOTREF(__pyx_t_1);
54358  __pyx_r = __pyx_t_1;
54359  __pyx_t_1 = 0;
54360  goto __pyx_L0;
54361 
54362  /* "View.MemoryView":222
54363  *
54364  * @property
54365  * def memview(self): # <<<<<<<<<<<<<<
54366  * return self.get_memview()
54367  *
54368  */
54369 
54370  /* function exit code */
54371  __pyx_L1_error:;
54372  __Pyx_XDECREF(__pyx_t_1);
54373  __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54374  __pyx_r = NULL;
54375  __pyx_L0:;
54376  __Pyx_XGIVEREF(__pyx_r);
54377  __Pyx_TraceReturn(__pyx_r, 0);
54378  __Pyx_RefNannyFinishContext();
54379  return __pyx_r;
54380 }
54381 
54382 /* "View.MemoryView":226
54383  *
54384  * @cname('get_memview')
54385  * cdef get_memview(self): # <<<<<<<<<<<<<<
54386  * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
54387  * return memoryview(self, flags, self.dtype_is_object)
54388  */
54389 
54390 static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) {
54391  int __pyx_v_flags;
54392  PyObject *__pyx_r = NULL;
54393  __Pyx_TraceDeclarations
54394  __Pyx_RefNannyDeclarations
54395  PyObject *__pyx_t_1 = NULL;
54396  PyObject *__pyx_t_2 = NULL;
54397  PyObject *__pyx_t_3 = NULL;
54398  int __pyx_lineno = 0;
54399  const char *__pyx_filename = NULL;
54400  int __pyx_clineno = 0;
54401  __Pyx_RefNannySetupContext("get_memview", 0);
54402  __Pyx_TraceCall("get_memview", __pyx_f[1], 226, 0, __PYX_ERR(1, 226, __pyx_L1_error));
54403 
54404  /* "View.MemoryView":227
54405  * @cname('get_memview')
54406  * cdef get_memview(self):
54407  * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<<
54408  * return memoryview(self, flags, self.dtype_is_object)
54409  *
54410  */
54411  __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE);
54412 
54413  /* "View.MemoryView":228
54414  * cdef get_memview(self):
54415  * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
54416  * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<<
54417  *
54418  * def __len__(self):
54419  */
54420  __Pyx_XDECREF(__pyx_r);
54421  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 228, __pyx_L1_error)
54422  __Pyx_GOTREF(__pyx_t_1);
54423  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 228, __pyx_L1_error)
54424  __Pyx_GOTREF(__pyx_t_2);
54425  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 228, __pyx_L1_error)
54426  __Pyx_GOTREF(__pyx_t_3);
54427  __Pyx_INCREF(((PyObject *)__pyx_v_self));
54428  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
54429  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
54430  __Pyx_GIVEREF(__pyx_t_1);
54431  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
54432  __Pyx_GIVEREF(__pyx_t_2);
54433  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
54434  __pyx_t_1 = 0;
54435  __pyx_t_2 = 0;
54436  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 228, __pyx_L1_error)
54437  __Pyx_GOTREF(__pyx_t_2);
54438  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54439  __pyx_r = __pyx_t_2;
54440  __pyx_t_2 = 0;
54441  goto __pyx_L0;
54442 
54443  /* "View.MemoryView":226
54444  *
54445  * @cname('get_memview')
54446  * cdef get_memview(self): # <<<<<<<<<<<<<<
54447  * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
54448  * return memoryview(self, flags, self.dtype_is_object)
54449  */
54450 
54451  /* function exit code */
54452  __pyx_L1_error:;
54453  __Pyx_XDECREF(__pyx_t_1);
54454  __Pyx_XDECREF(__pyx_t_2);
54455  __Pyx_XDECREF(__pyx_t_3);
54456  __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
54457  __pyx_r = 0;
54458  __pyx_L0:;
54459  __Pyx_XGIVEREF(__pyx_r);
54460  __Pyx_TraceReturn(__pyx_r, 0);
54461  __Pyx_RefNannyFinishContext();
54462  return __pyx_r;
54463 }
54464 
54465 /* "View.MemoryView":230
54466  * return memoryview(self, flags, self.dtype_is_object)
54467  *
54468  * def __len__(self): # <<<<<<<<<<<<<<
54469  * return self._shape[0]
54470  *
54471  */
54472 
54473 /* Python wrapper */
54474 static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/
54475 static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) {
54476  Py_ssize_t __pyx_r;
54477  __Pyx_RefNannyDeclarations
54478  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
54479  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self));
54480 
54481  /* function exit code */
54482  __Pyx_RefNannyFinishContext();
54483  return __pyx_r;
54484 }
54485 
54486 static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) {
54487  Py_ssize_t __pyx_r;
54488  __Pyx_TraceDeclarations
54489  __Pyx_RefNannyDeclarations
54490  int __pyx_lineno = 0;
54491  const char *__pyx_filename = NULL;
54492  int __pyx_clineno = 0;
54493  __Pyx_RefNannySetupContext("__len__", 0);
54494  __Pyx_TraceCall("__len__", __pyx_f[1], 230, 0, __PYX_ERR(1, 230, __pyx_L1_error));
54495 
54496  /* "View.MemoryView":231
54497  *
54498  * def __len__(self):
54499  * return self._shape[0] # <<<<<<<<<<<<<<
54500  *
54501  * def __getattr__(self, attr):
54502  */
54503  __pyx_r = (__pyx_v_self->_shape[0]);
54504  goto __pyx_L0;
54505 
54506  /* "View.MemoryView":230
54507  * return memoryview(self, flags, self.dtype_is_object)
54508  *
54509  * def __len__(self): # <<<<<<<<<<<<<<
54510  * return self._shape[0]
54511  *
54512  */
54513 
54514  /* function exit code */
54515  __pyx_L1_error:;
54516  __Pyx_AddTraceback("View.MemoryView.array.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54517  __pyx_r = -1;
54518  __pyx_L0:;
54519  __Pyx_TraceReturn(Py_None, 0);
54520  __Pyx_RefNannyFinishContext();
54521  return __pyx_r;
54522 }
54523 
54524 /* "View.MemoryView":233
54525  * return self._shape[0]
54526  *
54527  * def __getattr__(self, attr): # <<<<<<<<<<<<<<
54528  * return getattr(self.memview, attr)
54529  *
54530  */
54531 
54532 /* Python wrapper */
54533 static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/
54534 static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) {
54535  PyObject *__pyx_r = 0;
54536  __Pyx_RefNannyDeclarations
54537  __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0);
54538  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr));
54539 
54540  /* function exit code */
54541  __Pyx_RefNannyFinishContext();
54542  return __pyx_r;
54543 }
54544 
54545 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) {
54546  PyObject *__pyx_r = NULL;
54547  __Pyx_TraceDeclarations
54548  __Pyx_RefNannyDeclarations
54549  PyObject *__pyx_t_1 = NULL;
54550  PyObject *__pyx_t_2 = NULL;
54551  int __pyx_lineno = 0;
54552  const char *__pyx_filename = NULL;
54553  int __pyx_clineno = 0;
54554  __Pyx_RefNannySetupContext("__getattr__", 0);
54555  __Pyx_TraceCall("__getattr__", __pyx_f[1], 233, 0, __PYX_ERR(1, 233, __pyx_L1_error));
54556 
54557  /* "View.MemoryView":234
54558  *
54559  * def __getattr__(self, attr):
54560  * return getattr(self.memview, attr) # <<<<<<<<<<<<<<
54561  *
54562  * def __getitem__(self, item):
54563  */
54564  __Pyx_XDECREF(__pyx_r);
54565  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 234, __pyx_L1_error)
54566  __Pyx_GOTREF(__pyx_t_1);
54567  __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 234, __pyx_L1_error)
54568  __Pyx_GOTREF(__pyx_t_2);
54569  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54570  __pyx_r = __pyx_t_2;
54571  __pyx_t_2 = 0;
54572  goto __pyx_L0;
54573 
54574  /* "View.MemoryView":233
54575  * return self._shape[0]
54576  *
54577  * def __getattr__(self, attr): # <<<<<<<<<<<<<<
54578  * return getattr(self.memview, attr)
54579  *
54580  */
54581 
54582  /* function exit code */
54583  __pyx_L1_error:;
54584  __Pyx_XDECREF(__pyx_t_1);
54585  __Pyx_XDECREF(__pyx_t_2);
54586  __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54587  __pyx_r = NULL;
54588  __pyx_L0:;
54589  __Pyx_XGIVEREF(__pyx_r);
54590  __Pyx_TraceReturn(__pyx_r, 0);
54591  __Pyx_RefNannyFinishContext();
54592  return __pyx_r;
54593 }
54594 
54595 /* "View.MemoryView":236
54596  * return getattr(self.memview, attr)
54597  *
54598  * def __getitem__(self, item): # <<<<<<<<<<<<<<
54599  * return self.memview[item]
54600  *
54601  */
54602 
54603 /* Python wrapper */
54604 static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
54605 static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
54606  PyObject *__pyx_r = 0;
54607  __Pyx_RefNannyDeclarations
54608  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
54609  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item));
54610 
54611  /* function exit code */
54612  __Pyx_RefNannyFinishContext();
54613  return __pyx_r;
54614 }
54615 
54616 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) {
54617  PyObject *__pyx_r = NULL;
54618  __Pyx_TraceDeclarations
54619  __Pyx_RefNannyDeclarations
54620  PyObject *__pyx_t_1 = NULL;
54621  PyObject *__pyx_t_2 = NULL;
54622  int __pyx_lineno = 0;
54623  const char *__pyx_filename = NULL;
54624  int __pyx_clineno = 0;
54625  __Pyx_RefNannySetupContext("__getitem__", 0);
54626  __Pyx_TraceCall("__getitem__", __pyx_f[1], 236, 0, __PYX_ERR(1, 236, __pyx_L1_error));
54627 
54628  /* "View.MemoryView":237
54629  *
54630  * def __getitem__(self, item):
54631  * return self.memview[item] # <<<<<<<<<<<<<<
54632  *
54633  * def __setitem__(self, item, value):
54634  */
54635  __Pyx_XDECREF(__pyx_r);
54636  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 237, __pyx_L1_error)
54637  __Pyx_GOTREF(__pyx_t_1);
54638  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 237, __pyx_L1_error)
54639  __Pyx_GOTREF(__pyx_t_2);
54640  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54641  __pyx_r = __pyx_t_2;
54642  __pyx_t_2 = 0;
54643  goto __pyx_L0;
54644 
54645  /* "View.MemoryView":236
54646  * return getattr(self.memview, attr)
54647  *
54648  * def __getitem__(self, item): # <<<<<<<<<<<<<<
54649  * return self.memview[item]
54650  *
54651  */
54652 
54653  /* function exit code */
54654  __pyx_L1_error:;
54655  __Pyx_XDECREF(__pyx_t_1);
54656  __Pyx_XDECREF(__pyx_t_2);
54657  __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54658  __pyx_r = NULL;
54659  __pyx_L0:;
54660  __Pyx_XGIVEREF(__pyx_r);
54661  __Pyx_TraceReturn(__pyx_r, 0);
54662  __Pyx_RefNannyFinishContext();
54663  return __pyx_r;
54664 }
54665 
54666 /* "View.MemoryView":239
54667  * return self.memview[item]
54668  *
54669  * def __setitem__(self, item, value): # <<<<<<<<<<<<<<
54670  * self.memview[item] = value
54671  *
54672  */
54673 
54674 /* Python wrapper */
54675 static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/
54676 static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
54677  int __pyx_r;
54678  __Pyx_RefNannyDeclarations
54679  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
54680  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value));
54681 
54682  /* function exit code */
54683  __Pyx_RefNannyFinishContext();
54684  return __pyx_r;
54685 }
54686 
54687 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
54688  int __pyx_r;
54689  __Pyx_TraceDeclarations
54690  __Pyx_RefNannyDeclarations
54691  PyObject *__pyx_t_1 = NULL;
54692  int __pyx_lineno = 0;
54693  const char *__pyx_filename = NULL;
54694  int __pyx_clineno = 0;
54695  __Pyx_RefNannySetupContext("__setitem__", 0);
54696  __Pyx_TraceCall("__setitem__", __pyx_f[1], 239, 0, __PYX_ERR(1, 239, __pyx_L1_error));
54697 
54698  /* "View.MemoryView":240
54699  *
54700  * def __setitem__(self, item, value):
54701  * self.memview[item] = value # <<<<<<<<<<<<<<
54702  *
54703  *
54704  */
54705  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L1_error)
54706  __Pyx_GOTREF(__pyx_t_1);
54707  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(1, 240, __pyx_L1_error)
54708  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54709 
54710  /* "View.MemoryView":239
54711  * return self.memview[item]
54712  *
54713  * def __setitem__(self, item, value): # <<<<<<<<<<<<<<
54714  * self.memview[item] = value
54715  *
54716  */
54717 
54718  /* function exit code */
54719  __pyx_r = 0;
54720  goto __pyx_L0;
54721  __pyx_L1_error:;
54722  __Pyx_XDECREF(__pyx_t_1);
54723  __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54724  __pyx_r = -1;
54725  __pyx_L0:;
54726  __Pyx_TraceReturn(Py_None, 0);
54727  __Pyx_RefNannyFinishContext();
54728  return __pyx_r;
54729 }
54730 
54731 /* "(tree fragment)":1
54732  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
54733  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54734  * def __setstate_cython__(self, __pyx_state):
54735  */
54736 
54737 /* Python wrapper */
54738 static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
54739 static PyMethodDef __pyx_mdef___pyx_array_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0};
54740 static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
54741  PyObject *__pyx_r = 0;
54742  __Pyx_RefNannyDeclarations
54743  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
54744  __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self));
54745 
54746  /* function exit code */
54747  __Pyx_RefNannyFinishContext();
54748  return __pyx_r;
54749 }
54750 
54751 static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) {
54752  PyObject *__pyx_r = NULL;
54753  __Pyx_TraceDeclarations
54754  __Pyx_RefNannyDeclarations
54755  PyObject *__pyx_t_1 = NULL;
54756  int __pyx_lineno = 0;
54757  const char *__pyx_filename = NULL;
54758  int __pyx_clineno = 0;
54759  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
54760  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
54761 
54762  /* "(tree fragment)":2
54763  * def __reduce_cython__(self):
54764  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
54765  * def __setstate_cython__(self, __pyx_state):
54766  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54767  */
54768  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__150, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
54769  __Pyx_GOTREF(__pyx_t_1);
54770  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
54771  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54772  __PYX_ERR(1, 2, __pyx_L1_error)
54773 
54774  /* "(tree fragment)":1
54775  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
54776  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54777  * def __setstate_cython__(self, __pyx_state):
54778  */
54779 
54780  /* function exit code */
54781  __pyx_L1_error:;
54782  __Pyx_XDECREF(__pyx_t_1);
54783  __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54784  __pyx_r = NULL;
54785  __Pyx_XGIVEREF(__pyx_r);
54786  __Pyx_TraceReturn(__pyx_r, 0);
54787  __Pyx_RefNannyFinishContext();
54788  return __pyx_r;
54789 }
54790 
54791 /* "(tree fragment)":3
54792  * def __reduce_cython__(self):
54793  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54794  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
54795  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54796  */
54797 
54798 /* Python wrapper */
54799 static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
54800 static PyMethodDef __pyx_mdef___pyx_array_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0};
54801 static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
54802  PyObject *__pyx_r = 0;
54803  __Pyx_RefNannyDeclarations
54804  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
54805  __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
54806 
54807  /* function exit code */
54808  __Pyx_RefNannyFinishContext();
54809  return __pyx_r;
54810 }
54811 
54812 static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
54813  PyObject *__pyx_r = NULL;
54814  __Pyx_TraceDeclarations
54815  __Pyx_RefNannyDeclarations
54816  PyObject *__pyx_t_1 = NULL;
54817  int __pyx_lineno = 0;
54818  const char *__pyx_filename = NULL;
54819  int __pyx_clineno = 0;
54820  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
54821  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));
54822 
54823  /* "(tree fragment)":4
54824  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54825  * def __setstate_cython__(self, __pyx_state):
54826  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
54827  */
54828  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__151, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
54829  __Pyx_GOTREF(__pyx_t_1);
54830  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
54831  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54832  __PYX_ERR(1, 4, __pyx_L1_error)
54833 
54834  /* "(tree fragment)":3
54835  * def __reduce_cython__(self):
54836  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54837  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
54838  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
54839  */
54840 
54841  /* function exit code */
54842  __pyx_L1_error:;
54843  __Pyx_XDECREF(__pyx_t_1);
54844  __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54845  __pyx_r = NULL;
54846  __Pyx_XGIVEREF(__pyx_r);
54847  __Pyx_TraceReturn(__pyx_r, 0);
54848  __Pyx_RefNannyFinishContext();
54849  return __pyx_r;
54850 }
54851 
54852 /* "View.MemoryView":244
54853  *
54854  * @cname("__pyx_array_new")
54855  * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<<
54856  * char *mode, char *buf):
54857  * cdef array result
54858  */
54859 
54860 static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) {
54861  struct __pyx_array_obj *__pyx_v_result = 0;
54862  struct __pyx_array_obj *__pyx_r = NULL;
54863  __Pyx_TraceDeclarations
54864  __Pyx_RefNannyDeclarations
54865  int __pyx_t_1;
54866  PyObject *__pyx_t_2 = NULL;
54867  PyObject *__pyx_t_3 = NULL;
54868  PyObject *__pyx_t_4 = NULL;
54869  PyObject *__pyx_t_5 = NULL;
54870  int __pyx_lineno = 0;
54871  const char *__pyx_filename = NULL;
54872  int __pyx_clineno = 0;
54873  __Pyx_RefNannySetupContext("array_cwrapper", 0);
54874  __Pyx_TraceCall("array_cwrapper", __pyx_f[1], 244, 0, __PYX_ERR(1, 244, __pyx_L1_error));
54875 
54876  /* "View.MemoryView":248
54877  * cdef array result
54878  *
54879  * if buf == NULL: # <<<<<<<<<<<<<<
54880  * result = array(shape, itemsize, format, mode.decode('ASCII'))
54881  * else:
54882  */
54883  __pyx_t_1 = ((__pyx_v_buf == NULL) != 0);
54884  if (__pyx_t_1) {
54885 
54886  /* "View.MemoryView":249
54887  *
54888  * if buf == NULL:
54889  * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<<
54890  * else:
54891  * result = array(shape, itemsize, format, mode.decode('ASCII'),
54892  */
54893  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 249, __pyx_L1_error)
54894  __Pyx_GOTREF(__pyx_t_2);
54895  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 249, __pyx_L1_error)
54896  __Pyx_GOTREF(__pyx_t_3);
54897  __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 249, __pyx_L1_error)
54898  __Pyx_GOTREF(__pyx_t_4);
54899  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 249, __pyx_L1_error)
54900  __Pyx_GOTREF(__pyx_t_5);
54901  __Pyx_INCREF(__pyx_v_shape);
54902  __Pyx_GIVEREF(__pyx_v_shape);
54903  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape);
54904  __Pyx_GIVEREF(__pyx_t_2);
54905  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
54906  __Pyx_GIVEREF(__pyx_t_3);
54907  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
54908  __Pyx_GIVEREF(__pyx_t_4);
54909  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
54910  __pyx_t_2 = 0;
54911  __pyx_t_3 = 0;
54912  __pyx_t_4 = 0;
54913  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 249, __pyx_L1_error)
54914  __Pyx_GOTREF(__pyx_t_4);
54915  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
54916  __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4);
54917  __pyx_t_4 = 0;
54918 
54919  /* "View.MemoryView":248
54920  * cdef array result
54921  *
54922  * if buf == NULL: # <<<<<<<<<<<<<<
54923  * result = array(shape, itemsize, format, mode.decode('ASCII'))
54924  * else:
54925  */
54926  goto __pyx_L3;
54927  }
54928 
54929  /* "View.MemoryView":251
54930  * result = array(shape, itemsize, format, mode.decode('ASCII'))
54931  * else:
54932  * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<<
54933  * allocate_buffer=False)
54934  * result.data = buf
54935  */
54936  /*else*/ {
54937  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L1_error)
54938  __Pyx_GOTREF(__pyx_t_4);
54939  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error)
54940  __Pyx_GOTREF(__pyx_t_5);
54941  __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error)
54942  __Pyx_GOTREF(__pyx_t_3);
54943  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error)
54944  __Pyx_GOTREF(__pyx_t_2);
54945  __Pyx_INCREF(__pyx_v_shape);
54946  __Pyx_GIVEREF(__pyx_v_shape);
54947  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape);
54948  __Pyx_GIVEREF(__pyx_t_4);
54949  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
54950  __Pyx_GIVEREF(__pyx_t_5);
54951  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
54952  __Pyx_GIVEREF(__pyx_t_3);
54953  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3);
54954  __pyx_t_4 = 0;
54955  __pyx_t_5 = 0;
54956  __pyx_t_3 = 0;
54957 
54958  /* "View.MemoryView":252
54959  * else:
54960  * result = array(shape, itemsize, format, mode.decode('ASCII'),
54961  * allocate_buffer=False) # <<<<<<<<<<<<<<
54962  * result.data = buf
54963  *
54964  */
54965  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 252, __pyx_L1_error)
54966  __Pyx_GOTREF(__pyx_t_3);
54967  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 252, __pyx_L1_error)
54968 
54969  /* "View.MemoryView":251
54970  * result = array(shape, itemsize, format, mode.decode('ASCII'))
54971  * else:
54972  * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<<
54973  * allocate_buffer=False)
54974  * result.data = buf
54975  */
54976  __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error)
54977  __Pyx_GOTREF(__pyx_t_5);
54978  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
54979  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54980  __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5);
54981  __pyx_t_5 = 0;
54982 
54983  /* "View.MemoryView":253
54984  * result = array(shape, itemsize, format, mode.decode('ASCII'),
54985  * allocate_buffer=False)
54986  * result.data = buf # <<<<<<<<<<<<<<
54987  *
54988  * return result
54989  */
54990  __pyx_v_result->data = __pyx_v_buf;
54991  }
54992  __pyx_L3:;
54993 
54994  /* "View.MemoryView":255
54995  * result.data = buf
54996  *
54997  * return result # <<<<<<<<<<<<<<
54998  *
54999  *
55000  */
55001  __Pyx_XDECREF(((PyObject *)__pyx_r));
55002  __Pyx_INCREF(((PyObject *)__pyx_v_result));
55003  __pyx_r = __pyx_v_result;
55004  goto __pyx_L0;
55005 
55006  /* "View.MemoryView":244
55007  *
55008  * @cname("__pyx_array_new")
55009  * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<<
55010  * char *mode, char *buf):
55011  * cdef array result
55012  */
55013 
55014  /* function exit code */
55015  __pyx_L1_error:;
55016  __Pyx_XDECREF(__pyx_t_2);
55017  __Pyx_XDECREF(__pyx_t_3);
55018  __Pyx_XDECREF(__pyx_t_4);
55019  __Pyx_XDECREF(__pyx_t_5);
55020  __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
55021  __pyx_r = 0;
55022  __pyx_L0:;
55023  __Pyx_XDECREF((PyObject *)__pyx_v_result);
55024  __Pyx_XGIVEREF((PyObject *)__pyx_r);
55025  __Pyx_TraceReturn(__pyx_r, 0);
55026  __Pyx_RefNannyFinishContext();
55027  return __pyx_r;
55028 }
55029 
55030 /* "View.MemoryView":281
55031  * cdef class Enum(object):
55032  * cdef object name
55033  * def __init__(self, name): # <<<<<<<<<<<<<<
55034  * self.name = name
55035  * def __repr__(self):
55036  */
55037 
55038 /* Python wrapper */
55039 static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55040 static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55041  PyObject *__pyx_v_name = 0;
55042  int __pyx_lineno = 0;
55043  const char *__pyx_filename = NULL;
55044  int __pyx_clineno = 0;
55045  int __pyx_r;
55046  __Pyx_RefNannyDeclarations
55047  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
55048  {
55049  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
55050  PyObject* values[1] = {0};
55051  if (unlikely(__pyx_kwds)) {
55052  Py_ssize_t kw_args;
55053  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
55054  switch (pos_args) {
55055  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55056  CYTHON_FALLTHROUGH;
55057  case 0: break;
55058  default: goto __pyx_L5_argtuple_error;
55059  }
55060  kw_args = PyDict_Size(__pyx_kwds);
55061  switch (pos_args) {
55062  case 0:
55063  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
55064  else goto __pyx_L5_argtuple_error;
55065  }
55066  if (unlikely(kw_args > 0)) {
55067  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 281, __pyx_L3_error)
55068  }
55069  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
55070  goto __pyx_L5_argtuple_error;
55071  } else {
55072  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55073  }
55074  __pyx_v_name = values[0];
55075  }
55076  goto __pyx_L4_argument_unpacking_done;
55077  __pyx_L5_argtuple_error:;
55078  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 281, __pyx_L3_error)
55079  __pyx_L3_error:;
55080  __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55081  __Pyx_RefNannyFinishContext();
55082  return -1;
55083  __pyx_L4_argument_unpacking_done:;
55084  __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name);
55085 
55086  /* function exit code */
55087  __Pyx_RefNannyFinishContext();
55088  return __pyx_r;
55089 }
55090 
55091 static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) {
55092  int __pyx_r;
55093  __Pyx_TraceDeclarations
55094  __Pyx_RefNannyDeclarations
55095  int __pyx_lineno = 0;
55096  const char *__pyx_filename = NULL;
55097  int __pyx_clineno = 0;
55098  __Pyx_RefNannySetupContext("__init__", 0);
55099  __Pyx_TraceCall("__init__", __pyx_f[1], 281, 0, __PYX_ERR(1, 281, __pyx_L1_error));
55100 
55101  /* "View.MemoryView":282
55102  * cdef object name
55103  * def __init__(self, name):
55104  * self.name = name # <<<<<<<<<<<<<<
55105  * def __repr__(self):
55106  * return self.name
55107  */
55108  __Pyx_INCREF(__pyx_v_name);
55109  __Pyx_GIVEREF(__pyx_v_name);
55110  __Pyx_GOTREF(__pyx_v_self->name);
55111  __Pyx_DECREF(__pyx_v_self->name);
55112  __pyx_v_self->name = __pyx_v_name;
55113 
55114  /* "View.MemoryView":281
55115  * cdef class Enum(object):
55116  * cdef object name
55117  * def __init__(self, name): # <<<<<<<<<<<<<<
55118  * self.name = name
55119  * def __repr__(self):
55120  */
55121 
55122  /* function exit code */
55123  __pyx_r = 0;
55124  goto __pyx_L0;
55125  __pyx_L1_error:;
55126  __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55127  __pyx_r = -1;
55128  __pyx_L0:;
55129  __Pyx_TraceReturn(Py_None, 0);
55130  __Pyx_RefNannyFinishContext();
55131  return __pyx_r;
55132 }
55133 
55134 /* "View.MemoryView":283
55135  * def __init__(self, name):
55136  * self.name = name
55137  * def __repr__(self): # <<<<<<<<<<<<<<
55138  * return self.name
55139  *
55140  */
55141 
55142 /* Python wrapper */
55143 static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/
55144 static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) {
55145  PyObject *__pyx_r = 0;
55146  __Pyx_RefNannyDeclarations
55147  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
55148  __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
55149 
55150  /* function exit code */
55151  __Pyx_RefNannyFinishContext();
55152  return __pyx_r;
55153 }
55154 
55155 static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
55156  PyObject *__pyx_r = NULL;
55157  __Pyx_TraceDeclarations
55158  __Pyx_RefNannyDeclarations
55159  int __pyx_lineno = 0;
55160  const char *__pyx_filename = NULL;
55161  int __pyx_clineno = 0;
55162  __Pyx_RefNannySetupContext("__repr__", 0);
55163  __Pyx_TraceCall("__repr__", __pyx_f[1], 283, 0, __PYX_ERR(1, 283, __pyx_L1_error));
55164 
55165  /* "View.MemoryView":284
55166  * self.name = name
55167  * def __repr__(self):
55168  * return self.name # <<<<<<<<<<<<<<
55169  *
55170  * cdef generic = Enum("<strided and direct or indirect>")
55171  */
55172  __Pyx_XDECREF(__pyx_r);
55173  __Pyx_INCREF(__pyx_v_self->name);
55174  __pyx_r = __pyx_v_self->name;
55175  goto __pyx_L0;
55176 
55177  /* "View.MemoryView":283
55178  * def __init__(self, name):
55179  * self.name = name
55180  * def __repr__(self): # <<<<<<<<<<<<<<
55181  * return self.name
55182  *
55183  */
55184 
55185  /* function exit code */
55186  __pyx_L1_error:;
55187  __Pyx_AddTraceback("View.MemoryView.Enum.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55188  __pyx_r = NULL;
55189  __pyx_L0:;
55190  __Pyx_XGIVEREF(__pyx_r);
55191  __Pyx_TraceReturn(__pyx_r, 0);
55192  __Pyx_RefNannyFinishContext();
55193  return __pyx_r;
55194 }
55195 
55196 /* "(tree fragment)":1
55197  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
55198  * cdef tuple state
55199  * cdef object _dict
55200  */
55201 
55202 /* Python wrapper */
55203 static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
55204 static PyMethodDef __pyx_mdef___pyx_MemviewEnum_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0};
55205 static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
55206  PyObject *__pyx_r = 0;
55207  __Pyx_RefNannyDeclarations
55208  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
55209  __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
55210 
55211  /* function exit code */
55212  __Pyx_RefNannyFinishContext();
55213  return __pyx_r;
55214 }
55215 
55216 static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
55217  PyObject *__pyx_v_state = 0;
55218  PyObject *__pyx_v__dict = 0;
55219  int __pyx_v_use_setstate;
55220  PyObject *__pyx_r = NULL;
55221  __Pyx_TraceDeclarations
55222  __Pyx_RefNannyDeclarations
55223  PyObject *__pyx_t_1 = NULL;
55224  int __pyx_t_2;
55225  int __pyx_t_3;
55226  PyObject *__pyx_t_4 = NULL;
55227  PyObject *__pyx_t_5 = NULL;
55228  int __pyx_lineno = 0;
55229  const char *__pyx_filename = NULL;
55230  int __pyx_clineno = 0;
55231  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
55232  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
55233 
55234  /* "(tree fragment)":5
55235  * cdef object _dict
55236  * cdef bint use_setstate
55237  * state = (self.name,) # <<<<<<<<<<<<<<
55238  * _dict = getattr(self, '__dict__', None)
55239  * if _dict is not None:
55240  */
55241  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
55242  __Pyx_GOTREF(__pyx_t_1);
55243  __Pyx_INCREF(__pyx_v_self->name);
55244  __Pyx_GIVEREF(__pyx_v_self->name);
55245  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name);
55246  __pyx_v_state = ((PyObject*)__pyx_t_1);
55247  __pyx_t_1 = 0;
55248 
55249  /* "(tree fragment)":6
55250  * cdef bint use_setstate
55251  * state = (self.name,)
55252  * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<<
55253  * if _dict is not None:
55254  * state += (_dict,)
55255  */
55256  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
55257  __Pyx_GOTREF(__pyx_t_1);
55258  __pyx_v__dict = __pyx_t_1;
55259  __pyx_t_1 = 0;
55260 
55261  /* "(tree fragment)":7
55262  * state = (self.name,)
55263  * _dict = getattr(self, '__dict__', None)
55264  * if _dict is not None: # <<<<<<<<<<<<<<
55265  * state += (_dict,)
55266  * use_setstate = True
55267  */
55268  __pyx_t_2 = (__pyx_v__dict != Py_None);
55269  __pyx_t_3 = (__pyx_t_2 != 0);
55270  if (__pyx_t_3) {
55271 
55272  /* "(tree fragment)":8
55273  * _dict = getattr(self, '__dict__', None)
55274  * if _dict is not None:
55275  * state += (_dict,) # <<<<<<<<<<<<<<
55276  * use_setstate = True
55277  * else:
55278  */
55279  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
55280  __Pyx_GOTREF(__pyx_t_1);
55281  __Pyx_INCREF(__pyx_v__dict);
55282  __Pyx_GIVEREF(__pyx_v__dict);
55283  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
55284  __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
55285  __Pyx_GOTREF(__pyx_t_4);
55286  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55287  __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
55288  __pyx_t_4 = 0;
55289 
55290  /* "(tree fragment)":9
55291  * if _dict is not None:
55292  * state += (_dict,)
55293  * use_setstate = True # <<<<<<<<<<<<<<
55294  * else:
55295  * use_setstate = self.name is not None
55296  */
55297  __pyx_v_use_setstate = 1;
55298 
55299  /* "(tree fragment)":7
55300  * state = (self.name,)
55301  * _dict = getattr(self, '__dict__', None)
55302  * if _dict is not None: # <<<<<<<<<<<<<<
55303  * state += (_dict,)
55304  * use_setstate = True
55305  */
55306  goto __pyx_L3;
55307  }
55308 
55309  /* "(tree fragment)":11
55310  * use_setstate = True
55311  * else:
55312  * use_setstate = self.name is not None # <<<<<<<<<<<<<<
55313  * if use_setstate:
55314  * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state
55315  */
55316  /*else*/ {
55317  __pyx_t_3 = (__pyx_v_self->name != Py_None);
55318  __pyx_v_use_setstate = __pyx_t_3;
55319  }
55320  __pyx_L3:;
55321 
55322  /* "(tree fragment)":12
55323  * else:
55324  * use_setstate = self.name is not None
55325  * if use_setstate: # <<<<<<<<<<<<<<
55326  * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state
55327  * else:
55328  */
55329  __pyx_t_3 = (__pyx_v_use_setstate != 0);
55330  if (__pyx_t_3) {
55331 
55332  /* "(tree fragment)":13
55333  * use_setstate = self.name is not None
55334  * if use_setstate:
55335  * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<<
55336  * else:
55337  * return __pyx_unpickle_Enum, (type(self), 0xb068931, state)
55338  */
55339  __Pyx_XDECREF(__pyx_r);
55340  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
55341  __Pyx_GOTREF(__pyx_t_4);
55342  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
55343  __Pyx_GOTREF(__pyx_t_1);
55344  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55345  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55346  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55347  __Pyx_INCREF(__pyx_int_184977713);
55348  __Pyx_GIVEREF(__pyx_int_184977713);
55349  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713);
55350  __Pyx_INCREF(Py_None);
55351  __Pyx_GIVEREF(Py_None);
55352  PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
55353  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
55354  __Pyx_GOTREF(__pyx_t_5);
55355  __Pyx_GIVEREF(__pyx_t_4);
55356  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
55357  __Pyx_GIVEREF(__pyx_t_1);
55358  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
55359  __Pyx_INCREF(__pyx_v_state);
55360  __Pyx_GIVEREF(__pyx_v_state);
55361  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
55362  __pyx_t_4 = 0;
55363  __pyx_t_1 = 0;
55364  __pyx_r = __pyx_t_5;
55365  __pyx_t_5 = 0;
55366  goto __pyx_L0;
55367 
55368  /* "(tree fragment)":12
55369  * else:
55370  * use_setstate = self.name is not None
55371  * if use_setstate: # <<<<<<<<<<<<<<
55372  * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state
55373  * else:
55374  */
55375  }
55376 
55377  /* "(tree fragment)":15
55378  * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state
55379  * else:
55380  * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<<
55381  * def __setstate_cython__(self, __pyx_state):
55382  * __pyx_unpickle_Enum__set_state(self, __pyx_state)
55383  */
55384  /*else*/ {
55385  __Pyx_XDECREF(__pyx_r);
55386  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
55387  __Pyx_GOTREF(__pyx_t_5);
55388  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
55389  __Pyx_GOTREF(__pyx_t_1);
55390  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55391  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55392  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
55393  __Pyx_INCREF(__pyx_int_184977713);
55394  __Pyx_GIVEREF(__pyx_int_184977713);
55395  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713);
55396  __Pyx_INCREF(__pyx_v_state);
55397  __Pyx_GIVEREF(__pyx_v_state);
55398  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
55399  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
55400  __Pyx_GOTREF(__pyx_t_4);
55401  __Pyx_GIVEREF(__pyx_t_5);
55402  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
55403  __Pyx_GIVEREF(__pyx_t_1);
55404  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
55405  __pyx_t_5 = 0;
55406  __pyx_t_1 = 0;
55407  __pyx_r = __pyx_t_4;
55408  __pyx_t_4 = 0;
55409  goto __pyx_L0;
55410  }
55411 
55412  /* "(tree fragment)":1
55413  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
55414  * cdef tuple state
55415  * cdef object _dict
55416  */
55417 
55418  /* function exit code */
55419  __pyx_L1_error:;
55420  __Pyx_XDECREF(__pyx_t_1);
55421  __Pyx_XDECREF(__pyx_t_4);
55422  __Pyx_XDECREF(__pyx_t_5);
55423  __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55424  __pyx_r = NULL;
55425  __pyx_L0:;
55426  __Pyx_XDECREF(__pyx_v_state);
55427  __Pyx_XDECREF(__pyx_v__dict);
55428  __Pyx_XGIVEREF(__pyx_r);
55429  __Pyx_TraceReturn(__pyx_r, 0);
55430  __Pyx_RefNannyFinishContext();
55431  return __pyx_r;
55432 }
55433 
55434 /* "(tree fragment)":16
55435  * else:
55436  * return __pyx_unpickle_Enum, (type(self), 0xb068931, state)
55437  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
55438  * __pyx_unpickle_Enum__set_state(self, __pyx_state)
55439  */
55440 
55441 /* Python wrapper */
55442 static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
55443 static PyMethodDef __pyx_mdef___pyx_MemviewEnum_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0};
55444 static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
55445  PyObject *__pyx_r = 0;
55446  __Pyx_RefNannyDeclarations
55447  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
55448  __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
55449 
55450  /* function exit code */
55451  __Pyx_RefNannyFinishContext();
55452  return __pyx_r;
55453 }
55454 
55455 static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
55456  PyObject *__pyx_r = NULL;
55457  __Pyx_TraceDeclarations
55458  __Pyx_RefNannyDeclarations
55459  PyObject *__pyx_t_1 = NULL;
55460  int __pyx_lineno = 0;
55461  const char *__pyx_filename = NULL;
55462  int __pyx_clineno = 0;
55463  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
55464  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));
55465 
55466  /* "(tree fragment)":17
55467  * return __pyx_unpickle_Enum, (type(self), 0xb068931, state)
55468  * def __setstate_cython__(self, __pyx_state):
55469  * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<<
55470  */
55471  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
55472  __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
55473  __Pyx_GOTREF(__pyx_t_1);
55474  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55475 
55476  /* "(tree fragment)":16
55477  * else:
55478  * return __pyx_unpickle_Enum, (type(self), 0xb068931, state)
55479  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
55480  * __pyx_unpickle_Enum__set_state(self, __pyx_state)
55481  */
55482 
55483  /* function exit code */
55484  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55485  goto __pyx_L0;
55486  __pyx_L1_error:;
55487  __Pyx_XDECREF(__pyx_t_1);
55488  __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55489  __pyx_r = NULL;
55490  __pyx_L0:;
55491  __Pyx_XGIVEREF(__pyx_r);
55492  __Pyx_TraceReturn(__pyx_r, 0);
55493  __Pyx_RefNannyFinishContext();
55494  return __pyx_r;
55495 }
55496 
55497 /* "View.MemoryView":298
55498  *
55499  * @cname('__pyx_align_pointer')
55500  * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<<
55501  * "Align pointer memory on a given boundary"
55502  * cdef Py_intptr_t aligned_p = <Py_intptr_t> memory
55503  */
55504 
55505 static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) {
55506  Py_intptr_t __pyx_v_aligned_p;
55507  size_t __pyx_v_offset;
55508  void *__pyx_r;
55509  __Pyx_TraceDeclarations
55510  int __pyx_t_1;
55511  int __pyx_lineno = 0;
55512  const char *__pyx_filename = NULL;
55513  int __pyx_clineno = 0;
55514  __Pyx_TraceCall("align_pointer", __pyx_f[1], 298, 1, __PYX_ERR(1, 298, __pyx_L1_error));
55515 
55516  /* "View.MemoryView":300
55517  * cdef void *align_pointer(void *memory, size_t alignment) nogil:
55518  * "Align pointer memory on a given boundary"
55519  * cdef Py_intptr_t aligned_p = <Py_intptr_t> memory # <<<<<<<<<<<<<<
55520  * cdef size_t offset
55521  *
55522  */
55523  __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory);
55524 
55525  /* "View.MemoryView":304
55526  *
55527  * with cython.cdivision(True):
55528  * offset = aligned_p % alignment # <<<<<<<<<<<<<<
55529  *
55530  * if offset > 0:
55531  */
55532  __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment);
55533 
55534  /* "View.MemoryView":306
55535  * offset = aligned_p % alignment
55536  *
55537  * if offset > 0: # <<<<<<<<<<<<<<
55538  * aligned_p += alignment - offset
55539  *
55540  */
55541  __pyx_t_1 = ((__pyx_v_offset > 0) != 0);
55542  if (__pyx_t_1) {
55543 
55544  /* "View.MemoryView":307
55545  *
55546  * if offset > 0:
55547  * aligned_p += alignment - offset # <<<<<<<<<<<<<<
55548  *
55549  * return <void *> aligned_p
55550  */
55551  __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset));
55552 
55553  /* "View.MemoryView":306
55554  * offset = aligned_p % alignment
55555  *
55556  * if offset > 0: # <<<<<<<<<<<<<<
55557  * aligned_p += alignment - offset
55558  *
55559  */
55560  }
55561 
55562  /* "View.MemoryView":309
55563  * aligned_p += alignment - offset
55564  *
55565  * return <void *> aligned_p # <<<<<<<<<<<<<<
55566  *
55567  *
55568  */
55569  __pyx_r = ((void *)__pyx_v_aligned_p);
55570  goto __pyx_L0;
55571 
55572  /* "View.MemoryView":298
55573  *
55574  * @cname('__pyx_align_pointer')
55575  * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<<
55576  * "Align pointer memory on a given boundary"
55577  * cdef Py_intptr_t aligned_p = <Py_intptr_t> memory
55578  */
55579 
55580  /* function exit code */
55581  __pyx_L1_error:;
55582  __Pyx_WriteUnraisable("View.MemoryView.align_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
55583  __pyx_r = 0;
55584  __pyx_L0:;
55585  __Pyx_TraceReturn(Py_None, 1);
55586  return __pyx_r;
55587 }
55588 
55589 /* "View.MemoryView":345
55590  * cdef __Pyx_TypeInfo *typeinfo
55591  *
55592  * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<<
55593  * self.obj = obj
55594  * self.flags = flags
55595  */
55596 
55597 /* Python wrapper */
55598 static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55599 static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55600  PyObject *__pyx_v_obj = 0;
55601  int __pyx_v_flags;
55602  int __pyx_v_dtype_is_object;
55603  int __pyx_lineno = 0;
55604  const char *__pyx_filename = NULL;
55605  int __pyx_clineno = 0;
55606  int __pyx_r;
55607  __Pyx_RefNannyDeclarations
55608  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
55609  {
55610  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0};
55611  PyObject* values[3] = {0,0,0};
55612  if (unlikely(__pyx_kwds)) {
55613  Py_ssize_t kw_args;
55614  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
55615  switch (pos_args) {
55616  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
55617  CYTHON_FALLTHROUGH;
55618  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55619  CYTHON_FALLTHROUGH;
55620  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55621  CYTHON_FALLTHROUGH;
55622  case 0: break;
55623  default: goto __pyx_L5_argtuple_error;
55624  }
55625  kw_args = PyDict_Size(__pyx_kwds);
55626  switch (pos_args) {
55627  case 0:
55628  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
55629  else goto __pyx_L5_argtuple_error;
55630  CYTHON_FALLTHROUGH;
55631  case 1:
55632  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--;
55633  else {
55634  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(1, 345, __pyx_L3_error)
55635  }
55636  CYTHON_FALLTHROUGH;
55637  case 2:
55638  if (kw_args > 0) {
55639  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object);
55640  if (value) { values[2] = value; kw_args--; }
55641  }
55642  }
55643  if (unlikely(kw_args > 0)) {
55644  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 345, __pyx_L3_error)
55645  }
55646  } else {
55647  switch (PyTuple_GET_SIZE(__pyx_args)) {
55648  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
55649  CYTHON_FALLTHROUGH;
55650  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55651  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55652  break;
55653  default: goto __pyx_L5_argtuple_error;
55654  }
55655  }
55656  __pyx_v_obj = values[0];
55657  __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 345, __pyx_L3_error)
55658  if (values[2]) {
55659  __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 345, __pyx_L3_error)
55660  } else {
55661  __pyx_v_dtype_is_object = ((int)0);
55662  }
55663  }
55664  goto __pyx_L4_argument_unpacking_done;
55665  __pyx_L5_argtuple_error:;
55666  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 345, __pyx_L3_error)
55667  __pyx_L3_error:;
55668  __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55669  __Pyx_RefNannyFinishContext();
55670  return -1;
55671  __pyx_L4_argument_unpacking_done:;
55672  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object);
55673 
55674  /* function exit code */
55675  __Pyx_RefNannyFinishContext();
55676  return __pyx_r;
55677 }
55678 
55679 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) {
55680  int __pyx_r;
55681  __Pyx_TraceDeclarations
55682  __Pyx_RefNannyDeclarations
55683  int __pyx_t_1;
55684  int __pyx_t_2;
55685  int __pyx_t_3;
55686  int __pyx_t_4;
55687  int __pyx_lineno = 0;
55688  const char *__pyx_filename = NULL;
55689  int __pyx_clineno = 0;
55690  __Pyx_RefNannySetupContext("__cinit__", 0);
55691  __Pyx_TraceCall("__cinit__", __pyx_f[1], 345, 0, __PYX_ERR(1, 345, __pyx_L1_error));
55692 
55693  /* "View.MemoryView":346
55694  *
55695  * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
55696  * self.obj = obj # <<<<<<<<<<<<<<
55697  * self.flags = flags
55698  * if type(self) is memoryview or obj is not None:
55699  */
55700  __Pyx_INCREF(__pyx_v_obj);
55701  __Pyx_GIVEREF(__pyx_v_obj);
55702  __Pyx_GOTREF(__pyx_v_self->obj);
55703  __Pyx_DECREF(__pyx_v_self->obj);
55704  __pyx_v_self->obj = __pyx_v_obj;
55705 
55706  /* "View.MemoryView":347
55707  * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
55708  * self.obj = obj
55709  * self.flags = flags # <<<<<<<<<<<<<<
55710  * if type(self) is memoryview or obj is not None:
55711  * __Pyx_GetBuffer(obj, &self.view, flags)
55712  */
55713  __pyx_v_self->flags = __pyx_v_flags;
55714 
55715  /* "View.MemoryView":348
55716  * self.obj = obj
55717  * self.flags = flags
55718  * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<<
55719  * __Pyx_GetBuffer(obj, &self.view, flags)
55720  * if <PyObject *> self.view.obj == NULL:
55721  */
55722  __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type));
55723  __pyx_t_3 = (__pyx_t_2 != 0);
55724  if (!__pyx_t_3) {
55725  } else {
55726  __pyx_t_1 = __pyx_t_3;
55727  goto __pyx_L4_bool_binop_done;
55728  }
55729  __pyx_t_3 = (__pyx_v_obj != Py_None);
55730  __pyx_t_2 = (__pyx_t_3 != 0);
55731  __pyx_t_1 = __pyx_t_2;
55732  __pyx_L4_bool_binop_done:;
55733  if (__pyx_t_1) {
55734 
55735  /* "View.MemoryView":349
55736  * self.flags = flags
55737  * if type(self) is memoryview or obj is not None:
55738  * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<<
55739  * if <PyObject *> self.view.obj == NULL:
55740  * (<__pyx_buffer *> &self.view).obj = Py_None
55741  */
55742  __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 349, __pyx_L1_error)
55743 
55744  /* "View.MemoryView":350
55745  * if type(self) is memoryview or obj is not None:
55746  * __Pyx_GetBuffer(obj, &self.view, flags)
55747  * if <PyObject *> self.view.obj == NULL: # <<<<<<<<<<<<<<
55748  * (<__pyx_buffer *> &self.view).obj = Py_None
55749  * Py_INCREF(Py_None)
55750  */
55751  __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0);
55752  if (__pyx_t_1) {
55753 
55754  /* "View.MemoryView":351
55755  * __Pyx_GetBuffer(obj, &self.view, flags)
55756  * if <PyObject *> self.view.obj == NULL:
55757  * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<<
55758  * Py_INCREF(Py_None)
55759  *
55760  */
55761  ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None;
55762 
55763  /* "View.MemoryView":352
55764  * if <PyObject *> self.view.obj == NULL:
55765  * (<__pyx_buffer *> &self.view).obj = Py_None
55766  * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
55767  *
55768  * global __pyx_memoryview_thread_locks_used
55769  */
55770  Py_INCREF(Py_None);
55771 
55772  /* "View.MemoryView":350
55773  * if type(self) is memoryview or obj is not None:
55774  * __Pyx_GetBuffer(obj, &self.view, flags)
55775  * if <PyObject *> self.view.obj == NULL: # <<<<<<<<<<<<<<
55776  * (<__pyx_buffer *> &self.view).obj = Py_None
55777  * Py_INCREF(Py_None)
55778  */
55779  }
55780 
55781  /* "View.MemoryView":348
55782  * self.obj = obj
55783  * self.flags = flags
55784  * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<<
55785  * __Pyx_GetBuffer(obj, &self.view, flags)
55786  * if <PyObject *> self.view.obj == NULL:
55787  */
55788  }
55789 
55790  /* "View.MemoryView":355
55791  *
55792  * global __pyx_memoryview_thread_locks_used
55793  * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<<
55794  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
55795  * __pyx_memoryview_thread_locks_used += 1
55796  */
55797  __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0);
55798  if (__pyx_t_1) {
55799 
55800  /* "View.MemoryView":356
55801  * global __pyx_memoryview_thread_locks_used
55802  * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED:
55803  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<<
55804  * __pyx_memoryview_thread_locks_used += 1
55805  * if self.lock is NULL:
55806  */
55807  __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
55808 
55809  /* "View.MemoryView":357
55810  * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED:
55811  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
55812  * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<<
55813  * if self.lock is NULL:
55814  * self.lock = PyThread_allocate_lock()
55815  */
55816  __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1);
55817 
55818  /* "View.MemoryView":355
55819  *
55820  * global __pyx_memoryview_thread_locks_used
55821  * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<<
55822  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
55823  * __pyx_memoryview_thread_locks_used += 1
55824  */
55825  }
55826 
55827  /* "View.MemoryView":358
55828  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
55829  * __pyx_memoryview_thread_locks_used += 1
55830  * if self.lock is NULL: # <<<<<<<<<<<<<<
55831  * self.lock = PyThread_allocate_lock()
55832  * if self.lock is NULL:
55833  */
55834  __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0);
55835  if (__pyx_t_1) {
55836 
55837  /* "View.MemoryView":359
55838  * __pyx_memoryview_thread_locks_used += 1
55839  * if self.lock is NULL:
55840  * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<<
55841  * if self.lock is NULL:
55842  * raise MemoryError
55843  */
55844  __pyx_v_self->lock = PyThread_allocate_lock();
55845 
55846  /* "View.MemoryView":360
55847  * if self.lock is NULL:
55848  * self.lock = PyThread_allocate_lock()
55849  * if self.lock is NULL: # <<<<<<<<<<<<<<
55850  * raise MemoryError
55851  *
55852  */
55853  __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0);
55854  if (unlikely(__pyx_t_1)) {
55855 
55856  /* "View.MemoryView":361
55857  * self.lock = PyThread_allocate_lock()
55858  * if self.lock is NULL:
55859  * raise MemoryError # <<<<<<<<<<<<<<
55860  *
55861  * if flags & PyBUF_FORMAT:
55862  */
55863  PyErr_NoMemory(); __PYX_ERR(1, 361, __pyx_L1_error)
55864 
55865  /* "View.MemoryView":360
55866  * if self.lock is NULL:
55867  * self.lock = PyThread_allocate_lock()
55868  * if self.lock is NULL: # <<<<<<<<<<<<<<
55869  * raise MemoryError
55870  *
55871  */
55872  }
55873 
55874  /* "View.MemoryView":358
55875  * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
55876  * __pyx_memoryview_thread_locks_used += 1
55877  * if self.lock is NULL: # <<<<<<<<<<<<<<
55878  * self.lock = PyThread_allocate_lock()
55879  * if self.lock is NULL:
55880  */
55881  }
55882 
55883  /* "View.MemoryView":363
55884  * raise MemoryError
55885  *
55886  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
55887  * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
55888  * else:
55889  */
55890  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
55891  if (__pyx_t_1) {
55892 
55893  /* "View.MemoryView":364
55894  *
55895  * if flags & PyBUF_FORMAT:
55896  * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<<
55897  * else:
55898  * self.dtype_is_object = dtype_is_object
55899  */
55900  __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0);
55901  if (__pyx_t_2) {
55902  } else {
55903  __pyx_t_1 = __pyx_t_2;
55904  goto __pyx_L11_bool_binop_done;
55905  }
55906  __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0);
55907  __pyx_t_1 = __pyx_t_2;
55908  __pyx_L11_bool_binop_done:;
55909  __pyx_v_self->dtype_is_object = __pyx_t_1;
55910 
55911  /* "View.MemoryView":363
55912  * raise MemoryError
55913  *
55914  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
55915  * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
55916  * else:
55917  */
55918  goto __pyx_L10;
55919  }
55920 
55921  /* "View.MemoryView":366
55922  * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
55923  * else:
55924  * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<<
55925  *
55926  * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer(
55927  */
55928  /*else*/ {
55929  __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object;
55930  }
55931  __pyx_L10:;
55932 
55933  /* "View.MemoryView":368
55934  * self.dtype_is_object = dtype_is_object
55935  *
55936  * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<<
55937  * <void *> &self.acquisition_count[0], sizeof(__pyx_atomic_int))
55938  * self.typeinfo = NULL
55939  */
55940  __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int))));
55941 
55942  /* "View.MemoryView":370
55943  * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer(
55944  * <void *> &self.acquisition_count[0], sizeof(__pyx_atomic_int))
55945  * self.typeinfo = NULL # <<<<<<<<<<<<<<
55946  *
55947  * def __dealloc__(memoryview self):
55948  */
55949  __pyx_v_self->typeinfo = NULL;
55950 
55951  /* "View.MemoryView":345
55952  * cdef __Pyx_TypeInfo *typeinfo
55953  *
55954  * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<<
55955  * self.obj = obj
55956  * self.flags = flags
55957  */
55958 
55959  /* function exit code */
55960  __pyx_r = 0;
55961  goto __pyx_L0;
55962  __pyx_L1_error:;
55963  __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55964  __pyx_r = -1;
55965  __pyx_L0:;
55966  __Pyx_TraceReturn(Py_None, 0);
55967  __Pyx_RefNannyFinishContext();
55968  return __pyx_r;
55969 }
55970 
55971 /* "View.MemoryView":372
55972  * self.typeinfo = NULL
55973  *
55974  * def __dealloc__(memoryview self): # <<<<<<<<<<<<<<
55975  * if self.obj is not None:
55976  * __Pyx_ReleaseBuffer(&self.view)
55977  */
55978 
55979 /* Python wrapper */
55980 static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/
55981 static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) {
55982  __Pyx_RefNannyDeclarations
55983  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
55984  __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self));
55985 
55986  /* function exit code */
55987  __Pyx_RefNannyFinishContext();
55988 }
55989 
55990 static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) {
55991  int __pyx_v_i;
55992  __Pyx_TraceDeclarations
55993  __Pyx_RefNannyDeclarations
55994  int __pyx_t_1;
55995  int __pyx_t_2;
55996  int __pyx_t_3;
55997  int __pyx_t_4;
55998  int __pyx_t_5;
55999  PyThread_type_lock __pyx_t_6;
56000  PyThread_type_lock __pyx_t_7;
56001  int __pyx_lineno = 0;
56002  const char *__pyx_filename = NULL;
56003  int __pyx_clineno = 0;
56004  __Pyx_RefNannySetupContext("__dealloc__", 0);
56005  __Pyx_TraceCall("__dealloc__", __pyx_f[1], 372, 0, __PYX_ERR(1, 372, __pyx_L1_error));
56006 
56007  /* "View.MemoryView":373
56008  *
56009  * def __dealloc__(memoryview self):
56010  * if self.obj is not None: # <<<<<<<<<<<<<<
56011  * __Pyx_ReleaseBuffer(&self.view)
56012  * elif (<__pyx_buffer *> &self.view).obj == Py_None:
56013  */
56014  __pyx_t_1 = (__pyx_v_self->obj != Py_None);
56015  __pyx_t_2 = (__pyx_t_1 != 0);
56016  if (__pyx_t_2) {
56017 
56018  /* "View.MemoryView":374
56019  * def __dealloc__(memoryview self):
56020  * if self.obj is not None:
56021  * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<<
56022  * elif (<__pyx_buffer *> &self.view).obj == Py_None:
56023  *
56024  */
56025  __Pyx_ReleaseBuffer((&__pyx_v_self->view));
56026 
56027  /* "View.MemoryView":373
56028  *
56029  * def __dealloc__(memoryview self):
56030  * if self.obj is not None: # <<<<<<<<<<<<<<
56031  * __Pyx_ReleaseBuffer(&self.view)
56032  * elif (<__pyx_buffer *> &self.view).obj == Py_None:
56033  */
56034  goto __pyx_L3;
56035  }
56036 
56037  /* "View.MemoryView":375
56038  * if self.obj is not None:
56039  * __Pyx_ReleaseBuffer(&self.view)
56040  * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<<
56041  *
56042  * (<__pyx_buffer *> &self.view).obj = NULL
56043  */
56044  __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0);
56045  if (__pyx_t_2) {
56046 
56047  /* "View.MemoryView":377
56048  * elif (<__pyx_buffer *> &self.view).obj == Py_None:
56049  *
56050  * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<<
56051  * Py_DECREF(Py_None)
56052  *
56053  */
56054  ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL;
56055 
56056  /* "View.MemoryView":378
56057  *
56058  * (<__pyx_buffer *> &self.view).obj = NULL
56059  * Py_DECREF(Py_None) # <<<<<<<<<<<<<<
56060  *
56061  * cdef int i
56062  */
56063  Py_DECREF(Py_None);
56064 
56065  /* "View.MemoryView":375
56066  * if self.obj is not None:
56067  * __Pyx_ReleaseBuffer(&self.view)
56068  * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<<
56069  *
56070  * (<__pyx_buffer *> &self.view).obj = NULL
56071  */
56072  }
56073  __pyx_L3:;
56074 
56075  /* "View.MemoryView":382
56076  * cdef int i
56077  * global __pyx_memoryview_thread_locks_used
56078  * if self.lock != NULL: # <<<<<<<<<<<<<<
56079  * for i in range(__pyx_memoryview_thread_locks_used):
56080  * if __pyx_memoryview_thread_locks[i] is self.lock:
56081  */
56082  __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0);
56083  if (__pyx_t_2) {
56084 
56085  /* "View.MemoryView":383
56086  * global __pyx_memoryview_thread_locks_used
56087  * if self.lock != NULL:
56088  * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<<
56089  * if __pyx_memoryview_thread_locks[i] is self.lock:
56090  * __pyx_memoryview_thread_locks_used -= 1
56091  */
56092  __pyx_t_3 = __pyx_memoryview_thread_locks_used;
56093  __pyx_t_4 = __pyx_t_3;
56094  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
56095  __pyx_v_i = __pyx_t_5;
56096 
56097  /* "View.MemoryView":384
56098  * if self.lock != NULL:
56099  * for i in range(__pyx_memoryview_thread_locks_used):
56100  * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<<
56101  * __pyx_memoryview_thread_locks_used -= 1
56102  * if i != __pyx_memoryview_thread_locks_used:
56103  */
56104  __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0);
56105  if (__pyx_t_2) {
56106 
56107  /* "View.MemoryView":385
56108  * for i in range(__pyx_memoryview_thread_locks_used):
56109  * if __pyx_memoryview_thread_locks[i] is self.lock:
56110  * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<<
56111  * if i != __pyx_memoryview_thread_locks_used:
56112  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
56113  */
56114  __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1);
56115 
56116  /* "View.MemoryView":386
56117  * if __pyx_memoryview_thread_locks[i] is self.lock:
56118  * __pyx_memoryview_thread_locks_used -= 1
56119  * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<<
56120  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
56121  * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
56122  */
56123  __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0);
56124  if (__pyx_t_2) {
56125 
56126  /* "View.MemoryView":388
56127  * if i != __pyx_memoryview_thread_locks_used:
56128  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
56129  * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<<
56130  * break
56131  * else:
56132  */
56133  __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
56134  __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]);
56135 
56136  /* "View.MemoryView":387
56137  * __pyx_memoryview_thread_locks_used -= 1
56138  * if i != __pyx_memoryview_thread_locks_used:
56139  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<<
56140  * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
56141  * break
56142  */
56143  (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6;
56144  (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7;
56145 
56146  /* "View.MemoryView":386
56147  * if __pyx_memoryview_thread_locks[i] is self.lock:
56148  * __pyx_memoryview_thread_locks_used -= 1
56149  * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<<
56150  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
56151  * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
56152  */
56153  }
56154 
56155  /* "View.MemoryView":389
56156  * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
56157  * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
56158  * break # <<<<<<<<<<<<<<
56159  * else:
56160  * PyThread_free_lock(self.lock)
56161  */
56162  goto __pyx_L6_break;
56163 
56164  /* "View.MemoryView":384
56165  * if self.lock != NULL:
56166  * for i in range(__pyx_memoryview_thread_locks_used):
56167  * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<<
56168  * __pyx_memoryview_thread_locks_used -= 1
56169  * if i != __pyx_memoryview_thread_locks_used:
56170  */
56171  }
56172  }
56173  /*else*/ {
56174 
56175  /* "View.MemoryView":391
56176  * break
56177  * else:
56178  * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<<
56179  *
56180  * cdef char *get_item_pointer(memoryview self, object index) except NULL:
56181  */
56182  PyThread_free_lock(__pyx_v_self->lock);
56183  }
56184  __pyx_L6_break:;
56185 
56186  /* "View.MemoryView":382
56187  * cdef int i
56188  * global __pyx_memoryview_thread_locks_used
56189  * if self.lock != NULL: # <<<<<<<<<<<<<<
56190  * for i in range(__pyx_memoryview_thread_locks_used):
56191  * if __pyx_memoryview_thread_locks[i] is self.lock:
56192  */
56193  }
56194 
56195  /* "View.MemoryView":372
56196  * self.typeinfo = NULL
56197  *
56198  * def __dealloc__(memoryview self): # <<<<<<<<<<<<<<
56199  * if self.obj is not None:
56200  * __Pyx_ReleaseBuffer(&self.view)
56201  */
56202 
56203  /* function exit code */
56204  goto __pyx_L0;
56205  __pyx_L1_error:;
56206  __Pyx_WriteUnraisable("View.MemoryView.memoryview.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
56207  __pyx_L0:;
56208  __Pyx_TraceReturn(Py_None, 0);
56209  __Pyx_RefNannyFinishContext();
56210 }
56211 
56212 /* "View.MemoryView":393
56213  * PyThread_free_lock(self.lock)
56214  *
56215  * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<<
56216  * cdef Py_ssize_t dim
56217  * cdef char *itemp = <char *> self.view.buf
56218  */
56219 
56220 static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
56221  Py_ssize_t __pyx_v_dim;
56222  char *__pyx_v_itemp;
56223  PyObject *__pyx_v_idx = NULL;
56224  char *__pyx_r;
56225  __Pyx_TraceDeclarations
56226  __Pyx_RefNannyDeclarations
56227  Py_ssize_t __pyx_t_1;
56228  PyObject *__pyx_t_2 = NULL;
56229  Py_ssize_t __pyx_t_3;
56230  PyObject *(*__pyx_t_4)(PyObject *);
56231  PyObject *__pyx_t_5 = NULL;
56232  Py_ssize_t __pyx_t_6;
56233  char *__pyx_t_7;
56234  int __pyx_lineno = 0;
56235  const char *__pyx_filename = NULL;
56236  int __pyx_clineno = 0;
56237  __Pyx_RefNannySetupContext("get_item_pointer", 0);
56238  __Pyx_TraceCall("get_item_pointer", __pyx_f[1], 393, 0, __PYX_ERR(1, 393, __pyx_L1_error));
56239 
56240  /* "View.MemoryView":395
56241  * cdef char *get_item_pointer(memoryview self, object index) except NULL:
56242  * cdef Py_ssize_t dim
56243  * cdef char *itemp = <char *> self.view.buf # <<<<<<<<<<<<<<
56244  *
56245  * for dim, idx in enumerate(index):
56246  */
56247  __pyx_v_itemp = ((char *)__pyx_v_self->view.buf);
56248 
56249  /* "View.MemoryView":397
56250  * cdef char *itemp = <char *> self.view.buf
56251  *
56252  * for dim, idx in enumerate(index): # <<<<<<<<<<<<<<
56253  * itemp = pybuffer_index(&self.view, itemp, idx, dim)
56254  *
56255  */
56256  __pyx_t_1 = 0;
56257  if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) {
56258  __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
56259  __pyx_t_4 = NULL;
56260  } else {
56261  __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 397, __pyx_L1_error)
56262  __Pyx_GOTREF(__pyx_t_2);
56263  __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 397, __pyx_L1_error)
56264  }
56265  for (;;) {
56266  if (likely(!__pyx_t_4)) {
56267  if (likely(PyList_CheckExact(__pyx_t_2))) {
56268  if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
56269  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
56270  __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error)
56271  #else
56272  __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 397, __pyx_L1_error)
56273  __Pyx_GOTREF(__pyx_t_5);
56274  #endif
56275  } else {
56276  if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
56277  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
56278  __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error)
56279  #else
56280  __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 397, __pyx_L1_error)
56281  __Pyx_GOTREF(__pyx_t_5);
56282  #endif
56283  }
56284  } else {
56285  __pyx_t_5 = __pyx_t_4(__pyx_t_2);
56286  if (unlikely(!__pyx_t_5)) {
56287  PyObject* exc_type = PyErr_Occurred();
56288  if (exc_type) {
56289  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
56290  else __PYX_ERR(1, 397, __pyx_L1_error)
56291  }
56292  break;
56293  }
56294  __Pyx_GOTREF(__pyx_t_5);
56295  }
56296  __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5);
56297  __pyx_t_5 = 0;
56298  __pyx_v_dim = __pyx_t_1;
56299  __pyx_t_1 = (__pyx_t_1 + 1);
56300 
56301  /* "View.MemoryView":398
56302  *
56303  * for dim, idx in enumerate(index):
56304  * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<<
56305  *
56306  * return itemp
56307  */
56308  __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 398, __pyx_L1_error)
56309  __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(1, 398, __pyx_L1_error)
56310  __pyx_v_itemp = __pyx_t_7;
56311 
56312  /* "View.MemoryView":397
56313  * cdef char *itemp = <char *> self.view.buf
56314  *
56315  * for dim, idx in enumerate(index): # <<<<<<<<<<<<<<
56316  * itemp = pybuffer_index(&self.view, itemp, idx, dim)
56317  *
56318  */
56319  }
56320  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56321 
56322  /* "View.MemoryView":400
56323  * itemp = pybuffer_index(&self.view, itemp, idx, dim)
56324  *
56325  * return itemp # <<<<<<<<<<<<<<
56326  *
56327  *
56328  */
56329  __pyx_r = __pyx_v_itemp;
56330  goto __pyx_L0;
56331 
56332  /* "View.MemoryView":393
56333  * PyThread_free_lock(self.lock)
56334  *
56335  * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<<
56336  * cdef Py_ssize_t dim
56337  * cdef char *itemp = <char *> self.view.buf
56338  */
56339 
56340  /* function exit code */
56341  __pyx_L1_error:;
56342  __Pyx_XDECREF(__pyx_t_2);
56343  __Pyx_XDECREF(__pyx_t_5);
56344  __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
56345  __pyx_r = NULL;
56346  __pyx_L0:;
56347  __Pyx_XDECREF(__pyx_v_idx);
56348  __Pyx_TraceReturn(Py_None, 0);
56349  __Pyx_RefNannyFinishContext();
56350  return __pyx_r;
56351 }
56352 
56353 /* "View.MemoryView":403
56354  *
56355  *
56356  * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<<
56357  * if index is Ellipsis:
56358  * return self
56359  */
56360 
56361 /* Python wrapper */
56362 static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
56363 static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
56364  PyObject *__pyx_r = 0;
56365  __Pyx_RefNannyDeclarations
56366  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
56367  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index));
56368 
56369  /* function exit code */
56370  __Pyx_RefNannyFinishContext();
56371  return __pyx_r;
56372 }
56373 
56374 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
56375  PyObject *__pyx_v_have_slices = NULL;
56376  PyObject *__pyx_v_indices = NULL;
56377  char *__pyx_v_itemp;
56378  PyObject *__pyx_r = NULL;
56379  __Pyx_TraceDeclarations
56380  __Pyx_RefNannyDeclarations
56381  int __pyx_t_1;
56382  int __pyx_t_2;
56383  PyObject *__pyx_t_3 = NULL;
56384  PyObject *__pyx_t_4 = NULL;
56385  PyObject *__pyx_t_5 = NULL;
56386  char *__pyx_t_6;
56387  int __pyx_lineno = 0;
56388  const char *__pyx_filename = NULL;
56389  int __pyx_clineno = 0;
56390  __Pyx_RefNannySetupContext("__getitem__", 0);
56391  __Pyx_TraceCall("__getitem__", __pyx_f[1], 403, 0, __PYX_ERR(1, 403, __pyx_L1_error));
56392 
56393  /* "View.MemoryView":404
56394  *
56395  * def __getitem__(memoryview self, object index):
56396  * if index is Ellipsis: # <<<<<<<<<<<<<<
56397  * return self
56398  *
56399  */
56400  __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis);
56401  __pyx_t_2 = (__pyx_t_1 != 0);
56402  if (__pyx_t_2) {
56403 
56404  /* "View.MemoryView":405
56405  * def __getitem__(memoryview self, object index):
56406  * if index is Ellipsis:
56407  * return self # <<<<<<<<<<<<<<
56408  *
56409  * have_slices, indices = _unellipsify(index, self.view.ndim)
56410  */
56411  __Pyx_XDECREF(__pyx_r);
56412  __Pyx_INCREF(((PyObject *)__pyx_v_self));
56413  __pyx_r = ((PyObject *)__pyx_v_self);
56414  goto __pyx_L0;
56415 
56416  /* "View.MemoryView":404
56417  *
56418  * def __getitem__(memoryview self, object index):
56419  * if index is Ellipsis: # <<<<<<<<<<<<<<
56420  * return self
56421  *
56422  */
56423  }
56424 
56425  /* "View.MemoryView":407
56426  * return self
56427  *
56428  * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<<
56429  *
56430  * cdef char *itemp
56431  */
56432  __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 407, __pyx_L1_error)
56433  __Pyx_GOTREF(__pyx_t_3);
56434  if (likely(__pyx_t_3 != Py_None)) {
56435  PyObject* sequence = __pyx_t_3;
56436  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
56437  if (unlikely(size != 2)) {
56438  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
56439  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
56440  __PYX_ERR(1, 407, __pyx_L1_error)
56441  }
56442  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
56443  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
56444  __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
56445  __Pyx_INCREF(__pyx_t_4);
56446  __Pyx_INCREF(__pyx_t_5);
56447  #else
56448  __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 407, __pyx_L1_error)
56449  __Pyx_GOTREF(__pyx_t_4);
56450  __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 407, __pyx_L1_error)
56451  __Pyx_GOTREF(__pyx_t_5);
56452  #endif
56453  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
56454  } else {
56455  __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 407, __pyx_L1_error)
56456  }
56457  __pyx_v_have_slices = __pyx_t_4;
56458  __pyx_t_4 = 0;
56459  __pyx_v_indices = __pyx_t_5;
56460  __pyx_t_5 = 0;
56461 
56462  /* "View.MemoryView":410
56463  *
56464  * cdef char *itemp
56465  * if have_slices: # <<<<<<<<<<<<<<
56466  * return memview_slice(self, indices)
56467  * else:
56468  */
56469  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 410, __pyx_L1_error)
56470  if (__pyx_t_2) {
56471 
56472  /* "View.MemoryView":411
56473  * cdef char *itemp
56474  * if have_slices:
56475  * return memview_slice(self, indices) # <<<<<<<<<<<<<<
56476  * else:
56477  * itemp = self.get_item_pointer(indices)
56478  */
56479  __Pyx_XDECREF(__pyx_r);
56480  __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error)
56481  __Pyx_GOTREF(__pyx_t_3);
56482  __pyx_r = __pyx_t_3;
56483  __pyx_t_3 = 0;
56484  goto __pyx_L0;
56485 
56486  /* "View.MemoryView":410
56487  *
56488  * cdef char *itemp
56489  * if have_slices: # <<<<<<<<<<<<<<
56490  * return memview_slice(self, indices)
56491  * else:
56492  */
56493  }
56494 
56495  /* "View.MemoryView":413
56496  * return memview_slice(self, indices)
56497  * else:
56498  * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<<
56499  * return self.convert_item_to_object(itemp)
56500  *
56501  */
56502  /*else*/ {
56503  __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(1, 413, __pyx_L1_error)
56504  __pyx_v_itemp = __pyx_t_6;
56505 
56506  /* "View.MemoryView":414
56507  * else:
56508  * itemp = self.get_item_pointer(indices)
56509  * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<<
56510  *
56511  * def __setitem__(memoryview self, object index, object value):
56512  */
56513  __Pyx_XDECREF(__pyx_r);
56514  __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 414, __pyx_L1_error)
56515  __Pyx_GOTREF(__pyx_t_3);
56516  __pyx_r = __pyx_t_3;
56517  __pyx_t_3 = 0;
56518  goto __pyx_L0;
56519  }
56520 
56521  /* "View.MemoryView":403
56522  *
56523  *
56524  * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<<
56525  * if index is Ellipsis:
56526  * return self
56527  */
56528 
56529  /* function exit code */
56530  __pyx_L1_error:;
56531  __Pyx_XDECREF(__pyx_t_3);
56532  __Pyx_XDECREF(__pyx_t_4);
56533  __Pyx_XDECREF(__pyx_t_5);
56534  __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
56535  __pyx_r = NULL;
56536  __pyx_L0:;
56537  __Pyx_XDECREF(__pyx_v_have_slices);
56538  __Pyx_XDECREF(__pyx_v_indices);
56539  __Pyx_XGIVEREF(__pyx_r);
56540  __Pyx_TraceReturn(__pyx_r, 0);
56541  __Pyx_RefNannyFinishContext();
56542  return __pyx_r;
56543 }
56544 
56545 /* "View.MemoryView":416
56546  * return self.convert_item_to_object(itemp)
56547  *
56548  * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<<
56549  * if self.view.readonly:
56550  * raise TypeError("Cannot assign to read-only memoryview")
56551  */
56552 
56553 /* Python wrapper */
56554 static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/
56555 static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
56556  int __pyx_r;
56557  __Pyx_RefNannyDeclarations
56558  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
56559  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value));
56560 
56561  /* function exit code */
56562  __Pyx_RefNannyFinishContext();
56563  return __pyx_r;
56564 }
56565 
56566 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
56567  PyObject *__pyx_v_have_slices = NULL;
56568  PyObject *__pyx_v_obj = NULL;
56569  int __pyx_r;
56570  __Pyx_TraceDeclarations
56571  __Pyx_RefNannyDeclarations
56572  int __pyx_t_1;
56573  PyObject *__pyx_t_2 = NULL;
56574  PyObject *__pyx_t_3 = NULL;
56575  PyObject *__pyx_t_4 = NULL;
56576  int __pyx_lineno = 0;
56577  const char *__pyx_filename = NULL;
56578  int __pyx_clineno = 0;
56579  __Pyx_RefNannySetupContext("__setitem__", 0);
56580  __Pyx_TraceCall("__setitem__", __pyx_f[1], 416, 0, __PYX_ERR(1, 416, __pyx_L1_error));
56581  __Pyx_INCREF(__pyx_v_index);
56582 
56583  /* "View.MemoryView":417
56584  *
56585  * def __setitem__(memoryview self, object index, object value):
56586  * if self.view.readonly: # <<<<<<<<<<<<<<
56587  * raise TypeError("Cannot assign to read-only memoryview")
56588  *
56589  */
56590  __pyx_t_1 = (__pyx_v_self->view.readonly != 0);
56591  if (unlikely(__pyx_t_1)) {
56592 
56593  /* "View.MemoryView":418
56594  * def __setitem__(memoryview self, object index, object value):
56595  * if self.view.readonly:
56596  * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<<
56597  *
56598  * have_slices, index = _unellipsify(index, self.view.ndim)
56599  */
56600  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__152, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error)
56601  __Pyx_GOTREF(__pyx_t_2);
56602  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
56603  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56604  __PYX_ERR(1, 418, __pyx_L1_error)
56605 
56606  /* "View.MemoryView":417
56607  *
56608  * def __setitem__(memoryview self, object index, object value):
56609  * if self.view.readonly: # <<<<<<<<<<<<<<
56610  * raise TypeError("Cannot assign to read-only memoryview")
56611  *
56612  */
56613  }
56614 
56615  /* "View.MemoryView":420
56616  * raise TypeError("Cannot assign to read-only memoryview")
56617  *
56618  * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<<
56619  *
56620  * if have_slices:
56621  */
56622  __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 420, __pyx_L1_error)
56623  __Pyx_GOTREF(__pyx_t_2);
56624  if (likely(__pyx_t_2 != Py_None)) {
56625  PyObject* sequence = __pyx_t_2;
56626  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
56627  if (unlikely(size != 2)) {
56628  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
56629  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
56630  __PYX_ERR(1, 420, __pyx_L1_error)
56631  }
56632  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
56633  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
56634  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
56635  __Pyx_INCREF(__pyx_t_3);
56636  __Pyx_INCREF(__pyx_t_4);
56637  #else
56638  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 420, __pyx_L1_error)
56639  __Pyx_GOTREF(__pyx_t_3);
56640  __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 420, __pyx_L1_error)
56641  __Pyx_GOTREF(__pyx_t_4);
56642  #endif
56643  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56644  } else {
56645  __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 420, __pyx_L1_error)
56646  }
56647  __pyx_v_have_slices = __pyx_t_3;
56648  __pyx_t_3 = 0;
56649  __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4);
56650  __pyx_t_4 = 0;
56651 
56652  /* "View.MemoryView":422
56653  * have_slices, index = _unellipsify(index, self.view.ndim)
56654  *
56655  * if have_slices: # <<<<<<<<<<<<<<
56656  * obj = self.is_slice(value)
56657  * if obj:
56658  */
56659  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 422, __pyx_L1_error)
56660  if (__pyx_t_1) {
56661 
56662  /* "View.MemoryView":423
56663  *
56664  * if have_slices:
56665  * obj = self.is_slice(value) # <<<<<<<<<<<<<<
56666  * if obj:
56667  * self.setitem_slice_assignment(self[index], obj)
56668  */
56669  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 423, __pyx_L1_error)
56670  __Pyx_GOTREF(__pyx_t_2);
56671  __pyx_v_obj = __pyx_t_2;
56672  __pyx_t_2 = 0;
56673 
56674  /* "View.MemoryView":424
56675  * if have_slices:
56676  * obj = self.is_slice(value)
56677  * if obj: # <<<<<<<<<<<<<<
56678  * self.setitem_slice_assignment(self[index], obj)
56679  * else:
56680  */
56681  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 424, __pyx_L1_error)
56682  if (__pyx_t_1) {
56683 
56684  /* "View.MemoryView":425
56685  * obj = self.is_slice(value)
56686  * if obj:
56687  * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<<
56688  * else:
56689  * self.setitem_slice_assign_scalar(self[index], value)
56690  */
56691  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 425, __pyx_L1_error)
56692  __Pyx_GOTREF(__pyx_t_2);
56693  __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 425, __pyx_L1_error)
56694  __Pyx_GOTREF(__pyx_t_4);
56695  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56696  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
56697 
56698  /* "View.MemoryView":424
56699  * if have_slices:
56700  * obj = self.is_slice(value)
56701  * if obj: # <<<<<<<<<<<<<<
56702  * self.setitem_slice_assignment(self[index], obj)
56703  * else:
56704  */
56705  goto __pyx_L5;
56706  }
56707 
56708  /* "View.MemoryView":427
56709  * self.setitem_slice_assignment(self[index], obj)
56710  * else:
56711  * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<<
56712  * else:
56713  * self.setitem_indexed(index, value)
56714  */
56715  /*else*/ {
56716  __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 427, __pyx_L1_error)
56717  __Pyx_GOTREF(__pyx_t_4);
56718  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(1, 427, __pyx_L1_error)
56719  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 427, __pyx_L1_error)
56720  __Pyx_GOTREF(__pyx_t_2);
56721  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
56722  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56723  }
56724  __pyx_L5:;
56725 
56726  /* "View.MemoryView":422
56727  * have_slices, index = _unellipsify(index, self.view.ndim)
56728  *
56729  * if have_slices: # <<<<<<<<<<<<<<
56730  * obj = self.is_slice(value)
56731  * if obj:
56732  */
56733  goto __pyx_L4;
56734  }
56735 
56736  /* "View.MemoryView":429
56737  * self.setitem_slice_assign_scalar(self[index], value)
56738  * else:
56739  * self.setitem_indexed(index, value) # <<<<<<<<<<<<<<
56740  *
56741  * cdef is_slice(self, obj):
56742  */
56743  /*else*/ {
56744  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 429, __pyx_L1_error)
56745  __Pyx_GOTREF(__pyx_t_2);
56746  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56747  }
56748  __pyx_L4:;
56749 
56750  /* "View.MemoryView":416
56751  * return self.convert_item_to_object(itemp)
56752  *
56753  * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<<
56754  * if self.view.readonly:
56755  * raise TypeError("Cannot assign to read-only memoryview")
56756  */
56757 
56758  /* function exit code */
56759  __pyx_r = 0;
56760  goto __pyx_L0;
56761  __pyx_L1_error:;
56762  __Pyx_XDECREF(__pyx_t_2);
56763  __Pyx_XDECREF(__pyx_t_3);
56764  __Pyx_XDECREF(__pyx_t_4);
56765  __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
56766  __pyx_r = -1;
56767  __pyx_L0:;
56768  __Pyx_XDECREF(__pyx_v_have_slices);
56769  __Pyx_XDECREF(__pyx_v_obj);
56770  __Pyx_XDECREF(__pyx_v_index);
56771  __Pyx_TraceReturn(Py_None, 0);
56772  __Pyx_RefNannyFinishContext();
56773  return __pyx_r;
56774 }
56775 
56776 /* "View.MemoryView":431
56777  * self.setitem_indexed(index, value)
56778  *
56779  * cdef is_slice(self, obj): # <<<<<<<<<<<<<<
56780  * if not isinstance(obj, memoryview):
56781  * try:
56782  */
56783 
56784 static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) {
56785  PyObject *__pyx_r = NULL;
56786  __Pyx_TraceDeclarations
56787  __Pyx_RefNannyDeclarations
56788  int __pyx_t_1;
56789  int __pyx_t_2;
56790  PyObject *__pyx_t_3 = NULL;
56791  PyObject *__pyx_t_4 = NULL;
56792  PyObject *__pyx_t_5 = NULL;
56793  PyObject *__pyx_t_6 = NULL;
56794  PyObject *__pyx_t_7 = NULL;
56795  PyObject *__pyx_t_8 = NULL;
56796  int __pyx_t_9;
56797  int __pyx_lineno = 0;
56798  const char *__pyx_filename = NULL;
56799  int __pyx_clineno = 0;
56800  __Pyx_RefNannySetupContext("is_slice", 0);
56801  __Pyx_TraceCall("is_slice", __pyx_f[1], 431, 0, __PYX_ERR(1, 431, __pyx_L1_error));
56802  __Pyx_INCREF(__pyx_v_obj);
56803 
56804  /* "View.MemoryView":432
56805  *
56806  * cdef is_slice(self, obj):
56807  * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<<
56808  * try:
56809  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56810  */
56811  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type);
56812  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
56813  if (__pyx_t_2) {
56814 
56815  /* "View.MemoryView":433
56816  * cdef is_slice(self, obj):
56817  * if not isinstance(obj, memoryview):
56818  * try: # <<<<<<<<<<<<<<
56819  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56820  * self.dtype_is_object)
56821  */
56822  {
56823  __Pyx_PyThreadState_declare
56824  __Pyx_PyThreadState_assign
56825  __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
56826  __Pyx_XGOTREF(__pyx_t_3);
56827  __Pyx_XGOTREF(__pyx_t_4);
56828  __Pyx_XGOTREF(__pyx_t_5);
56829  /*try:*/ {
56830 
56831  /* "View.MemoryView":434
56832  * if not isinstance(obj, memoryview):
56833  * try:
56834  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<<
56835  * self.dtype_is_object)
56836  * except TypeError:
56837  */
56838  __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 434, __pyx_L4_error)
56839  __Pyx_GOTREF(__pyx_t_6);
56840 
56841  /* "View.MemoryView":435
56842  * try:
56843  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56844  * self.dtype_is_object) # <<<<<<<<<<<<<<
56845  * except TypeError:
56846  * return None
56847  */
56848  __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 435, __pyx_L4_error)
56849  __Pyx_GOTREF(__pyx_t_7);
56850 
56851  /* "View.MemoryView":434
56852  * if not isinstance(obj, memoryview):
56853  * try:
56854  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<<
56855  * self.dtype_is_object)
56856  * except TypeError:
56857  */
56858  __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 434, __pyx_L4_error)
56859  __Pyx_GOTREF(__pyx_t_8);
56860  __Pyx_INCREF(__pyx_v_obj);
56861  __Pyx_GIVEREF(__pyx_v_obj);
56862  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj);
56863  __Pyx_GIVEREF(__pyx_t_6);
56864  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
56865  __Pyx_GIVEREF(__pyx_t_7);
56866  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7);
56867  __pyx_t_6 = 0;
56868  __pyx_t_7 = 0;
56869  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 434, __pyx_L4_error)
56870  __Pyx_GOTREF(__pyx_t_7);
56871  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
56872  __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7);
56873  __pyx_t_7 = 0;
56874 
56875  /* "View.MemoryView":433
56876  * cdef is_slice(self, obj):
56877  * if not isinstance(obj, memoryview):
56878  * try: # <<<<<<<<<<<<<<
56879  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56880  * self.dtype_is_object)
56881  */
56882  }
56883  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
56884  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
56885  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
56886  goto __pyx_L9_try_end;
56887  __pyx_L4_error:;
56888  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
56889  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
56890  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
56891 
56892  /* "View.MemoryView":436
56893  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56894  * self.dtype_is_object)
56895  * except TypeError: # <<<<<<<<<<<<<<
56896  * return None
56897  *
56898  */
56899  __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
56900  if (__pyx_t_9) {
56901  __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
56902  if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(1, 436, __pyx_L6_except_error)
56903  __Pyx_GOTREF(__pyx_t_7);
56904  __Pyx_GOTREF(__pyx_t_8);
56905  __Pyx_GOTREF(__pyx_t_6);
56906 
56907  /* "View.MemoryView":437
56908  * self.dtype_is_object)
56909  * except TypeError:
56910  * return None # <<<<<<<<<<<<<<
56911  *
56912  * return obj
56913  */
56914  __Pyx_XDECREF(__pyx_r);
56915  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56916  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
56917  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
56918  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
56919  goto __pyx_L7_except_return;
56920  }
56921  goto __pyx_L6_except_error;
56922  __pyx_L6_except_error:;
56923 
56924  /* "View.MemoryView":433
56925  * cdef is_slice(self, obj):
56926  * if not isinstance(obj, memoryview):
56927  * try: # <<<<<<<<<<<<<<
56928  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56929  * self.dtype_is_object)
56930  */
56931  __Pyx_XGIVEREF(__pyx_t_3);
56932  __Pyx_XGIVEREF(__pyx_t_4);
56933  __Pyx_XGIVEREF(__pyx_t_5);
56934  __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
56935  goto __pyx_L1_error;
56936  __pyx_L7_except_return:;
56937  __Pyx_XGIVEREF(__pyx_t_3);
56938  __Pyx_XGIVEREF(__pyx_t_4);
56939  __Pyx_XGIVEREF(__pyx_t_5);
56940  __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
56941  goto __pyx_L0;
56942  __pyx_L9_try_end:;
56943  }
56944 
56945  /* "View.MemoryView":432
56946  *
56947  * cdef is_slice(self, obj):
56948  * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<<
56949  * try:
56950  * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
56951  */
56952  }
56953 
56954  /* "View.MemoryView":439
56955  * return None
56956  *
56957  * return obj # <<<<<<<<<<<<<<
56958  *
56959  * cdef setitem_slice_assignment(self, dst, src):
56960  */
56961  __Pyx_XDECREF(__pyx_r);
56962  __Pyx_INCREF(__pyx_v_obj);
56963  __pyx_r = __pyx_v_obj;
56964  goto __pyx_L0;
56965 
56966  /* "View.MemoryView":431
56967  * self.setitem_indexed(index, value)
56968  *
56969  * cdef is_slice(self, obj): # <<<<<<<<<<<<<<
56970  * if not isinstance(obj, memoryview):
56971  * try:
56972  */
56973 
56974  /* function exit code */
56975  __pyx_L1_error:;
56976  __Pyx_XDECREF(__pyx_t_6);
56977  __Pyx_XDECREF(__pyx_t_7);
56978  __Pyx_XDECREF(__pyx_t_8);
56979  __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
56980  __pyx_r = 0;
56981  __pyx_L0:;
56982  __Pyx_XDECREF(__pyx_v_obj);
56983  __Pyx_XGIVEREF(__pyx_r);
56984  __Pyx_TraceReturn(__pyx_r, 0);
56985  __Pyx_RefNannyFinishContext();
56986  return __pyx_r;
56987 }
56988 
56989 /* "View.MemoryView":441
56990  * return obj
56991  *
56992  * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<<
56993  * cdef __Pyx_memviewslice dst_slice
56994  * cdef __Pyx_memviewslice src_slice
56995  */
56996 
56997 static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) {
56998  __Pyx_memviewslice __pyx_v_dst_slice;
56999  __Pyx_memviewslice __pyx_v_src_slice;
57000  PyObject *__pyx_r = NULL;
57001  __Pyx_TraceDeclarations
57002  __Pyx_RefNannyDeclarations
57003  __Pyx_memviewslice *__pyx_t_1;
57004  __Pyx_memviewslice *__pyx_t_2;
57005  PyObject *__pyx_t_3 = NULL;
57006  int __pyx_t_4;
57007  int __pyx_t_5;
57008  int __pyx_t_6;
57009  int __pyx_lineno = 0;
57010  const char *__pyx_filename = NULL;
57011  int __pyx_clineno = 0;
57012  __Pyx_RefNannySetupContext("setitem_slice_assignment", 0);
57013  __Pyx_TraceCall("setitem_slice_assignment", __pyx_f[1], 441, 0, __PYX_ERR(1, 441, __pyx_L1_error));
57014 
57015  /* "View.MemoryView":445
57016  * cdef __Pyx_memviewslice src_slice
57017  *
57018  * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<<
57019  * get_slice_from_memview(dst, &dst_slice)[0],
57020  * src.ndim, dst.ndim, self.dtype_is_object)
57021  */
57022  if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(1, 445, __pyx_L1_error)
57023  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 445, __pyx_L1_error)
57024 
57025  /* "View.MemoryView":446
57026  *
57027  * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0],
57028  * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<<
57029  * src.ndim, dst.ndim, self.dtype_is_object)
57030  *
57031  */
57032  if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(1, 446, __pyx_L1_error)
57033  __pyx_t_2 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_2 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 446, __pyx_L1_error)
57034 
57035  /* "View.MemoryView":447
57036  * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0],
57037  * get_slice_from_memview(dst, &dst_slice)[0],
57038  * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<<
57039  *
57040  * cdef setitem_slice_assign_scalar(self, memoryview dst, value):
57041  */
57042  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 447, __pyx_L1_error)
57043  __Pyx_GOTREF(__pyx_t_3);
57044  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 447, __pyx_L1_error)
57045  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
57046  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 447, __pyx_L1_error)
57047  __Pyx_GOTREF(__pyx_t_3);
57048  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 447, __pyx_L1_error)
57049  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
57050 
57051  /* "View.MemoryView":445
57052  * cdef __Pyx_memviewslice src_slice
57053  *
57054  * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<<
57055  * get_slice_from_memview(dst, &dst_slice)[0],
57056  * src.ndim, dst.ndim, self.dtype_is_object)
57057  */
57058  __pyx_t_6 = __pyx_memoryview_copy_contents((__pyx_t_1[0]), (__pyx_t_2[0]), __pyx_t_4, __pyx_t_5, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 445, __pyx_L1_error)
57059 
57060  /* "View.MemoryView":441
57061  * return obj
57062  *
57063  * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<<
57064  * cdef __Pyx_memviewslice dst_slice
57065  * cdef __Pyx_memviewslice src_slice
57066  */
57067 
57068  /* function exit code */
57069  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57070  goto __pyx_L0;
57071  __pyx_L1_error:;
57072  __Pyx_XDECREF(__pyx_t_3);
57073  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
57074  __pyx_r = 0;
57075  __pyx_L0:;
57076  __Pyx_XGIVEREF(__pyx_r);
57077  __Pyx_TraceReturn(__pyx_r, 0);
57078  __Pyx_RefNannyFinishContext();
57079  return __pyx_r;
57080 }
57081 
57082 /* "View.MemoryView":449
57083  * src.ndim, dst.ndim, self.dtype_is_object)
57084  *
57085  * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<<
57086  * cdef int array[128]
57087  * cdef void *tmp = NULL
57088  */
57089 
57090 static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) {
57091  int __pyx_v_array[0x80];
57092  void *__pyx_v_tmp;
57093  void *__pyx_v_item;
57094  __Pyx_memviewslice *__pyx_v_dst_slice;
57095  __Pyx_memviewslice __pyx_v_tmp_slice;
57096  PyObject *__pyx_r = NULL;
57097  __Pyx_TraceDeclarations
57098  __Pyx_RefNannyDeclarations
57099  __Pyx_memviewslice *__pyx_t_1;
57100  int __pyx_t_2;
57101  PyObject *__pyx_t_3 = NULL;
57102  int __pyx_t_4;
57103  int __pyx_t_5;
57104  char const *__pyx_t_6;
57105  PyObject *__pyx_t_7 = NULL;
57106  PyObject *__pyx_t_8 = NULL;
57107  PyObject *__pyx_t_9 = NULL;
57108  PyObject *__pyx_t_10 = NULL;
57109  PyObject *__pyx_t_11 = NULL;
57110  PyObject *__pyx_t_12 = NULL;
57111  int __pyx_lineno = 0;
57112  const char *__pyx_filename = NULL;
57113  int __pyx_clineno = 0;
57114  __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0);
57115  __Pyx_TraceCall("setitem_slice_assign_scalar", __pyx_f[1], 449, 0, __PYX_ERR(1, 449, __pyx_L1_error));
57116 
57117  /* "View.MemoryView":451
57118  * cdef setitem_slice_assign_scalar(self, memoryview dst, value):
57119  * cdef int array[128]
57120  * cdef void *tmp = NULL # <<<<<<<<<<<<<<
57121  * cdef void *item
57122  *
57123  */
57124  __pyx_v_tmp = NULL;
57125 
57126  /* "View.MemoryView":456
57127  * cdef __Pyx_memviewslice *dst_slice
57128  * cdef __Pyx_memviewslice tmp_slice
57129  * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<<
57130  *
57131  * if <size_t>self.view.itemsize > sizeof(array):
57132  */
57133  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 456, __pyx_L1_error)
57134  __pyx_v_dst_slice = __pyx_t_1;
57135 
57136  /* "View.MemoryView":458
57137  * dst_slice = get_slice_from_memview(dst, &tmp_slice)
57138  *
57139  * if <size_t>self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<<
57140  * tmp = PyMem_Malloc(self.view.itemsize)
57141  * if tmp == NULL:
57142  */
57143  __pyx_t_2 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0);
57144  if (__pyx_t_2) {
57145 
57146  /* "View.MemoryView":459
57147  *
57148  * if <size_t>self.view.itemsize > sizeof(array):
57149  * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<<
57150  * if tmp == NULL:
57151  * raise MemoryError
57152  */
57153  __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize);
57154 
57155  /* "View.MemoryView":460
57156  * if <size_t>self.view.itemsize > sizeof(array):
57157  * tmp = PyMem_Malloc(self.view.itemsize)
57158  * if tmp == NULL: # <<<<<<<<<<<<<<
57159  * raise MemoryError
57160  * item = tmp
57161  */
57162  __pyx_t_2 = ((__pyx_v_tmp == NULL) != 0);
57163  if (unlikely(__pyx_t_2)) {
57164 
57165  /* "View.MemoryView":461
57166  * tmp = PyMem_Malloc(self.view.itemsize)
57167  * if tmp == NULL:
57168  * raise MemoryError # <<<<<<<<<<<<<<
57169  * item = tmp
57170  * else:
57171  */
57172  PyErr_NoMemory(); __PYX_ERR(1, 461, __pyx_L1_error)
57173 
57174  /* "View.MemoryView":460
57175  * if <size_t>self.view.itemsize > sizeof(array):
57176  * tmp = PyMem_Malloc(self.view.itemsize)
57177  * if tmp == NULL: # <<<<<<<<<<<<<<
57178  * raise MemoryError
57179  * item = tmp
57180  */
57181  }
57182 
57183  /* "View.MemoryView":462
57184  * if tmp == NULL:
57185  * raise MemoryError
57186  * item = tmp # <<<<<<<<<<<<<<
57187  * else:
57188  * item = <void *> array
57189  */
57190  __pyx_v_item = __pyx_v_tmp;
57191 
57192  /* "View.MemoryView":458
57193  * dst_slice = get_slice_from_memview(dst, &tmp_slice)
57194  *
57195  * if <size_t>self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<<
57196  * tmp = PyMem_Malloc(self.view.itemsize)
57197  * if tmp == NULL:
57198  */
57199  goto __pyx_L3;
57200  }
57201 
57202  /* "View.MemoryView":464
57203  * item = tmp
57204  * else:
57205  * item = <void *> array # <<<<<<<<<<<<<<
57206  *
57207  * try:
57208  */
57209  /*else*/ {
57210  __pyx_v_item = ((void *)__pyx_v_array);
57211  }
57212  __pyx_L3:;
57213 
57214  /* "View.MemoryView":466
57215  * item = <void *> array
57216  *
57217  * try: # <<<<<<<<<<<<<<
57218  * if self.dtype_is_object:
57219  * (<PyObject **> item)[0] = <PyObject *> value
57220  */
57221  /*try:*/ {
57222 
57223  /* "View.MemoryView":467
57224  *
57225  * try:
57226  * if self.dtype_is_object: # <<<<<<<<<<<<<<
57227  * (<PyObject **> item)[0] = <PyObject *> value
57228  * else:
57229  */
57230  __pyx_t_2 = (__pyx_v_self->dtype_is_object != 0);
57231  if (__pyx_t_2) {
57232 
57233  /* "View.MemoryView":468
57234  * try:
57235  * if self.dtype_is_object:
57236  * (<PyObject **> item)[0] = <PyObject *> value # <<<<<<<<<<<<<<
57237  * else:
57238  * self.assign_item_from_object(<char *> item, value)
57239  */
57240  (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value);
57241 
57242  /* "View.MemoryView":467
57243  *
57244  * try:
57245  * if self.dtype_is_object: # <<<<<<<<<<<<<<
57246  * (<PyObject **> item)[0] = <PyObject *> value
57247  * else:
57248  */
57249  goto __pyx_L8;
57250  }
57251 
57252  /* "View.MemoryView":470
57253  * (<PyObject **> item)[0] = <PyObject *> value
57254  * else:
57255  * self.assign_item_from_object(<char *> item, value) # <<<<<<<<<<<<<<
57256  *
57257  *
57258  */
57259  /*else*/ {
57260  __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 470, __pyx_L6_error)
57261  __Pyx_GOTREF(__pyx_t_3);
57262  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
57263  }
57264  __pyx_L8:;
57265 
57266  /* "View.MemoryView":474
57267  *
57268  *
57269  * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<<
57270  * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
57271  * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
57272  */
57273  __pyx_t_2 = ((__pyx_v_self->view.suboffsets != NULL) != 0);
57274  if (__pyx_t_2) {
57275 
57276  /* "View.MemoryView":475
57277  *
57278  * if self.view.suboffsets != NULL:
57279  * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<<
57280  * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
57281  * item, self.dtype_is_object)
57282  */
57283  __pyx_t_3 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 475, __pyx_L6_error)
57284  __Pyx_GOTREF(__pyx_t_3);
57285  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
57286 
57287  /* "View.MemoryView":474
57288  *
57289  *
57290  * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<<
57291  * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
57292  * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
57293  */
57294  }
57295 
57296  /* "View.MemoryView":476
57297  * if self.view.suboffsets != NULL:
57298  * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
57299  * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<<
57300  * item, self.dtype_is_object)
57301  * finally:
57302  */
57303  __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object);
57304  }
57305 
57306  /* "View.MemoryView":479
57307  * item, self.dtype_is_object)
57308  * finally:
57309  * PyMem_Free(tmp) # <<<<<<<<<<<<<<
57310  *
57311  * cdef setitem_indexed(self, index, value):
57312  */
57313  /*finally:*/ {
57314  /*normal exit:*/{
57315  PyMem_Free(__pyx_v_tmp);
57316  goto __pyx_L7;
57317  }
57318  __pyx_L6_error:;
57319  /*exception exit:*/{
57320  __Pyx_PyThreadState_declare
57321  __Pyx_PyThreadState_assign
57322  __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
57323  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
57324  if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
57325  if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
57326  __Pyx_XGOTREF(__pyx_t_7);
57327  __Pyx_XGOTREF(__pyx_t_8);
57328  __Pyx_XGOTREF(__pyx_t_9);
57329  __Pyx_XGOTREF(__pyx_t_10);
57330  __Pyx_XGOTREF(__pyx_t_11);
57331  __Pyx_XGOTREF(__pyx_t_12);
57332  __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
57333  {
57334  PyMem_Free(__pyx_v_tmp);
57335  }
57336  if (PY_MAJOR_VERSION >= 3) {
57337  __Pyx_XGIVEREF(__pyx_t_10);
57338  __Pyx_XGIVEREF(__pyx_t_11);
57339  __Pyx_XGIVEREF(__pyx_t_12);
57340  __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
57341  }
57342  __Pyx_XGIVEREF(__pyx_t_7);
57343  __Pyx_XGIVEREF(__pyx_t_8);
57344  __Pyx_XGIVEREF(__pyx_t_9);
57345  __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
57346  __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
57347  __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
57348  goto __pyx_L1_error;
57349  }
57350  __pyx_L7:;
57351  }
57352 
57353  /* "View.MemoryView":449
57354  * src.ndim, dst.ndim, self.dtype_is_object)
57355  *
57356  * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<<
57357  * cdef int array[128]
57358  * cdef void *tmp = NULL
57359  */
57360 
57361  /* function exit code */
57362  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57363  goto __pyx_L0;
57364  __pyx_L1_error:;
57365  __Pyx_XDECREF(__pyx_t_3);
57366  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
57367  __pyx_r = 0;
57368  __pyx_L0:;
57369  __Pyx_XGIVEREF(__pyx_r);
57370  __Pyx_TraceReturn(__pyx_r, 0);
57371  __Pyx_RefNannyFinishContext();
57372  return __pyx_r;
57373 }
57374 
57375 /* "View.MemoryView":481
57376  * PyMem_Free(tmp)
57377  *
57378  * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<<
57379  * cdef char *itemp = self.get_item_pointer(index)
57380  * self.assign_item_from_object(itemp, value)
57381  */
57382 
57383 static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
57384  char *__pyx_v_itemp;
57385  PyObject *__pyx_r = NULL;
57386  __Pyx_TraceDeclarations
57387  __Pyx_RefNannyDeclarations
57388  char *__pyx_t_1;
57389  PyObject *__pyx_t_2 = NULL;
57390  int __pyx_lineno = 0;
57391  const char *__pyx_filename = NULL;
57392  int __pyx_clineno = 0;
57393  __Pyx_RefNannySetupContext("setitem_indexed", 0);
57394  __Pyx_TraceCall("setitem_indexed", __pyx_f[1], 481, 0, __PYX_ERR(1, 481, __pyx_L1_error));
57395 
57396  /* "View.MemoryView":482
57397  *
57398  * cdef setitem_indexed(self, index, value):
57399  * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<<
57400  * self.assign_item_from_object(itemp, value)
57401  *
57402  */
57403  __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(1, 482, __pyx_L1_error)
57404  __pyx_v_itemp = __pyx_t_1;
57405 
57406  /* "View.MemoryView":483
57407  * cdef setitem_indexed(self, index, value):
57408  * cdef char *itemp = self.get_item_pointer(index)
57409  * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<<
57410  *
57411  * cdef convert_item_to_object(self, char *itemp):
57412  */
57413  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 483, __pyx_L1_error)
57414  __Pyx_GOTREF(__pyx_t_2);
57415  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
57416 
57417  /* "View.MemoryView":481
57418  * PyMem_Free(tmp)
57419  *
57420  * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<<
57421  * cdef char *itemp = self.get_item_pointer(index)
57422  * self.assign_item_from_object(itemp, value)
57423  */
57424 
57425  /* function exit code */
57426  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57427  goto __pyx_L0;
57428  __pyx_L1_error:;
57429  __Pyx_XDECREF(__pyx_t_2);
57430  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
57431  __pyx_r = 0;
57432  __pyx_L0:;
57433  __Pyx_XGIVEREF(__pyx_r);
57434  __Pyx_TraceReturn(__pyx_r, 0);
57435  __Pyx_RefNannyFinishContext();
57436  return __pyx_r;
57437 }
57438 
57439 /* "View.MemoryView":485
57440  * self.assign_item_from_object(itemp, value)
57441  *
57442  * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
57443  * """Only used if instantiated manually by the user, or if Cython doesn't
57444  * know how to convert the type"""
57445  */
57446 
57447 static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) {
57448  PyObject *__pyx_v_struct = NULL;
57449  PyObject *__pyx_v_bytesitem = 0;
57450  PyObject *__pyx_v_result = NULL;
57451  PyObject *__pyx_r = NULL;
57452  __Pyx_TraceDeclarations
57453  __Pyx_RefNannyDeclarations
57454  PyObject *__pyx_t_1 = NULL;
57455  PyObject *__pyx_t_2 = NULL;
57456  PyObject *__pyx_t_3 = NULL;
57457  PyObject *__pyx_t_4 = NULL;
57458  PyObject *__pyx_t_5 = NULL;
57459  PyObject *__pyx_t_6 = NULL;
57460  PyObject *__pyx_t_7 = NULL;
57461  int __pyx_t_8;
57462  PyObject *__pyx_t_9 = NULL;
57463  size_t __pyx_t_10;
57464  int __pyx_t_11;
57465  int __pyx_lineno = 0;
57466  const char *__pyx_filename = NULL;
57467  int __pyx_clineno = 0;
57468  __Pyx_RefNannySetupContext("convert_item_to_object", 0);
57469  __Pyx_TraceCall("convert_item_to_object", __pyx_f[1], 485, 0, __PYX_ERR(1, 485, __pyx_L1_error));
57470 
57471  /* "View.MemoryView":488
57472  * """Only used if instantiated manually by the user, or if Cython doesn't
57473  * know how to convert the type"""
57474  * import struct # <<<<<<<<<<<<<<
57475  * cdef bytes bytesitem
57476  *
57477  */
57478  __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L1_error)
57479  __Pyx_GOTREF(__pyx_t_1);
57480  __pyx_v_struct = __pyx_t_1;
57481  __pyx_t_1 = 0;
57482 
57483  /* "View.MemoryView":491
57484  * cdef bytes bytesitem
57485  *
57486  * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<<
57487  * try:
57488  * result = struct.unpack(self.view.format, bytesitem)
57489  */
57490  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 491, __pyx_L1_error)
57491  __Pyx_GOTREF(__pyx_t_1);
57492  __pyx_v_bytesitem = ((PyObject*)__pyx_t_1);
57493  __pyx_t_1 = 0;
57494 
57495  /* "View.MemoryView":492
57496  *
57497  * bytesitem = itemp[:self.view.itemsize]
57498  * try: # <<<<<<<<<<<<<<
57499  * result = struct.unpack(self.view.format, bytesitem)
57500  * except struct.error:
57501  */
57502  {
57503  __Pyx_PyThreadState_declare
57504  __Pyx_PyThreadState_assign
57505  __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
57506  __Pyx_XGOTREF(__pyx_t_2);
57507  __Pyx_XGOTREF(__pyx_t_3);
57508  __Pyx_XGOTREF(__pyx_t_4);
57509  /*try:*/ {
57510 
57511  /* "View.MemoryView":493
57512  * bytesitem = itemp[:self.view.itemsize]
57513  * try:
57514  * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<<
57515  * except struct.error:
57516  * raise ValueError("Unable to convert item to object")
57517  */
57518  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 493, __pyx_L3_error)
57519  __Pyx_GOTREF(__pyx_t_5);
57520  __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 493, __pyx_L3_error)
57521  __Pyx_GOTREF(__pyx_t_6);
57522  __pyx_t_7 = NULL;
57523  __pyx_t_8 = 0;
57524  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
57525  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
57526  if (likely(__pyx_t_7)) {
57527  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
57528  __Pyx_INCREF(__pyx_t_7);
57529  __Pyx_INCREF(function);
57530  __Pyx_DECREF_SET(__pyx_t_5, function);
57531  __pyx_t_8 = 1;
57532  }
57533  }
57534  #if CYTHON_FAST_PYCALL
57535  if (PyFunction_Check(__pyx_t_5)) {
57536  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
57537  __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error)
57538  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
57539  __Pyx_GOTREF(__pyx_t_1);
57540  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57541  } else
57542  #endif
57543  #if CYTHON_FAST_PYCCALL
57544  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
57545  PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
57546  __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error)
57547  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
57548  __Pyx_GOTREF(__pyx_t_1);
57549  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57550  } else
57551  #endif
57552  {
57553  __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 493, __pyx_L3_error)
57554  __Pyx_GOTREF(__pyx_t_9);
57555  if (__pyx_t_7) {
57556  __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
57557  }
57558  __Pyx_GIVEREF(__pyx_t_6);
57559  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6);
57560  __Pyx_INCREF(__pyx_v_bytesitem);
57561  __Pyx_GIVEREF(__pyx_v_bytesitem);
57562  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem);
57563  __pyx_t_6 = 0;
57564  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error)
57565  __Pyx_GOTREF(__pyx_t_1);
57566  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
57567  }
57568  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
57569  __pyx_v_result = __pyx_t_1;
57570  __pyx_t_1 = 0;
57571 
57572  /* "View.MemoryView":492
57573  *
57574  * bytesitem = itemp[:self.view.itemsize]
57575  * try: # <<<<<<<<<<<<<<
57576  * result = struct.unpack(self.view.format, bytesitem)
57577  * except struct.error:
57578  */
57579  }
57580 
57581  /* "View.MemoryView":497
57582  * raise ValueError("Unable to convert item to object")
57583  * else:
57584  * if len(self.view.format) == 1: # <<<<<<<<<<<<<<
57585  * return result[0]
57586  * return result
57587  */
57588  /*else:*/ {
57589  __pyx_t_10 = strlen(__pyx_v_self->view.format);
57590  __pyx_t_11 = ((__pyx_t_10 == 1) != 0);
57591  if (__pyx_t_11) {
57592 
57593  /* "View.MemoryView":498
57594  * else:
57595  * if len(self.view.format) == 1:
57596  * return result[0] # <<<<<<<<<<<<<<
57597  * return result
57598  *
57599  */
57600  __Pyx_XDECREF(__pyx_r);
57601  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 498, __pyx_L5_except_error)
57602  __Pyx_GOTREF(__pyx_t_1);
57603  __pyx_r = __pyx_t_1;
57604  __pyx_t_1 = 0;
57605  goto __pyx_L6_except_return;
57606 
57607  /* "View.MemoryView":497
57608  * raise ValueError("Unable to convert item to object")
57609  * else:
57610  * if len(self.view.format) == 1: # <<<<<<<<<<<<<<
57611  * return result[0]
57612  * return result
57613  */
57614  }
57615 
57616  /* "View.MemoryView":499
57617  * if len(self.view.format) == 1:
57618  * return result[0]
57619  * return result # <<<<<<<<<<<<<<
57620  *
57621  * cdef assign_item_from_object(self, char *itemp, object value):
57622  */
57623  __Pyx_XDECREF(__pyx_r);
57624  __Pyx_INCREF(__pyx_v_result);
57625  __pyx_r = __pyx_v_result;
57626  goto __pyx_L6_except_return;
57627  }
57628  __pyx_L3_error:;
57629  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
57630  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
57631  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
57632  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
57633  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
57634 
57635  /* "View.MemoryView":494
57636  * try:
57637  * result = struct.unpack(self.view.format, bytesitem)
57638  * except struct.error: # <<<<<<<<<<<<<<
57639  * raise ValueError("Unable to convert item to object")
57640  * else:
57641  */
57642  __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9);
57643  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 494, __pyx_L5_except_error)
57644  __Pyx_GOTREF(__pyx_t_6);
57645  __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6);
57646  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57647  __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9);
57648  __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0;
57649  if (__pyx_t_8) {
57650  __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
57651  if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 494, __pyx_L5_except_error)
57652  __Pyx_GOTREF(__pyx_t_9);
57653  __Pyx_GOTREF(__pyx_t_5);
57654  __Pyx_GOTREF(__pyx_t_1);
57655 
57656  /* "View.MemoryView":495
57657  * result = struct.unpack(self.view.format, bytesitem)
57658  * except struct.error:
57659  * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<<
57660  * else:
57661  * if len(self.view.format) == 1:
57662  */
57663  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__153, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 495, __pyx_L5_except_error)
57664  __Pyx_GOTREF(__pyx_t_6);
57665  __Pyx_Raise(__pyx_t_6, 0, 0, 0);
57666  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57667  __PYX_ERR(1, 495, __pyx_L5_except_error)
57668  }
57669  goto __pyx_L5_except_error;
57670  __pyx_L5_except_error:;
57671 
57672  /* "View.MemoryView":492
57673  *
57674  * bytesitem = itemp[:self.view.itemsize]
57675  * try: # <<<<<<<<<<<<<<
57676  * result = struct.unpack(self.view.format, bytesitem)
57677  * except struct.error:
57678  */
57679  __Pyx_XGIVEREF(__pyx_t_2);
57680  __Pyx_XGIVEREF(__pyx_t_3);
57681  __Pyx_XGIVEREF(__pyx_t_4);
57682  __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
57683  goto __pyx_L1_error;
57684  __pyx_L6_except_return:;
57685  __Pyx_XGIVEREF(__pyx_t_2);
57686  __Pyx_XGIVEREF(__pyx_t_3);
57687  __Pyx_XGIVEREF(__pyx_t_4);
57688  __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
57689  goto __pyx_L0;
57690  }
57691 
57692  /* "View.MemoryView":485
57693  * self.assign_item_from_object(itemp, value)
57694  *
57695  * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
57696  * """Only used if instantiated manually by the user, or if Cython doesn't
57697  * know how to convert the type"""
57698  */
57699 
57700  /* function exit code */
57701  __pyx_L1_error:;
57702  __Pyx_XDECREF(__pyx_t_1);
57703  __Pyx_XDECREF(__pyx_t_5);
57704  __Pyx_XDECREF(__pyx_t_6);
57705  __Pyx_XDECREF(__pyx_t_7);
57706  __Pyx_XDECREF(__pyx_t_9);
57707  __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
57708  __pyx_r = 0;
57709  __pyx_L0:;
57710  __Pyx_XDECREF(__pyx_v_struct);
57711  __Pyx_XDECREF(__pyx_v_bytesitem);
57712  __Pyx_XDECREF(__pyx_v_result);
57713  __Pyx_XGIVEREF(__pyx_r);
57714  __Pyx_TraceReturn(__pyx_r, 0);
57715  __Pyx_RefNannyFinishContext();
57716  return __pyx_r;
57717 }
57718 
57719 /* "View.MemoryView":501
57720  * return result
57721  *
57722  * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
57723  * """Only used if instantiated manually by the user, or if Cython doesn't
57724  * know how to convert the type"""
57725  */
57726 
57727 static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
57728  PyObject *__pyx_v_struct = NULL;
57729  char __pyx_v_c;
57730  PyObject *__pyx_v_bytesvalue = 0;
57731  Py_ssize_t __pyx_v_i;
57732  PyObject *__pyx_r = NULL;
57733  __Pyx_TraceDeclarations
57734  __Pyx_RefNannyDeclarations
57735  PyObject *__pyx_t_1 = NULL;
57736  int __pyx_t_2;
57737  int __pyx_t_3;
57738  PyObject *__pyx_t_4 = NULL;
57739  PyObject *__pyx_t_5 = NULL;
57740  PyObject *__pyx_t_6 = NULL;
57741  int __pyx_t_7;
57742  PyObject *__pyx_t_8 = NULL;
57743  Py_ssize_t __pyx_t_9;
57744  PyObject *__pyx_t_10 = NULL;
57745  char *__pyx_t_11;
57746  char *__pyx_t_12;
57747  char *__pyx_t_13;
57748  char *__pyx_t_14;
57749  int __pyx_lineno = 0;
57750  const char *__pyx_filename = NULL;
57751  int __pyx_clineno = 0;
57752  __Pyx_RefNannySetupContext("assign_item_from_object", 0);
57753  __Pyx_TraceCall("assign_item_from_object", __pyx_f[1], 501, 0, __PYX_ERR(1, 501, __pyx_L1_error));
57754 
57755  /* "View.MemoryView":504
57756  * """Only used if instantiated manually by the user, or if Cython doesn't
57757  * know how to convert the type"""
57758  * import struct # <<<<<<<<<<<<<<
57759  * cdef char c
57760  * cdef bytes bytesvalue
57761  */
57762  __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __pyx_L1_error)
57763  __Pyx_GOTREF(__pyx_t_1);
57764  __pyx_v_struct = __pyx_t_1;
57765  __pyx_t_1 = 0;
57766 
57767  /* "View.MemoryView":509
57768  * cdef Py_ssize_t i
57769  *
57770  * if isinstance(value, tuple): # <<<<<<<<<<<<<<
57771  * bytesvalue = struct.pack(self.view.format, *value)
57772  * else:
57773  */
57774  __pyx_t_2 = PyTuple_Check(__pyx_v_value);
57775  __pyx_t_3 = (__pyx_t_2 != 0);
57776  if (__pyx_t_3) {
57777 
57778  /* "View.MemoryView":510
57779  *
57780  * if isinstance(value, tuple):
57781  * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<<
57782  * else:
57783  * bytesvalue = struct.pack(self.view.format, value)
57784  */
57785  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 510, __pyx_L1_error)
57786  __Pyx_GOTREF(__pyx_t_1);
57787  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error)
57788  __Pyx_GOTREF(__pyx_t_4);
57789  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 510, __pyx_L1_error)
57790  __Pyx_GOTREF(__pyx_t_5);
57791  __Pyx_GIVEREF(__pyx_t_4);
57792  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
57793  __pyx_t_4 = 0;
57794  __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error)
57795  __Pyx_GOTREF(__pyx_t_4);
57796  __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 510, __pyx_L1_error)
57797  __Pyx_GOTREF(__pyx_t_6);
57798  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
57799  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
57800  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error)
57801  __Pyx_GOTREF(__pyx_t_4);
57802  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57803  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57804  if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 510, __pyx_L1_error)
57805  __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4);
57806  __pyx_t_4 = 0;
57807 
57808  /* "View.MemoryView":509
57809  * cdef Py_ssize_t i
57810  *
57811  * if isinstance(value, tuple): # <<<<<<<<<<<<<<
57812  * bytesvalue = struct.pack(self.view.format, *value)
57813  * else:
57814  */
57815  goto __pyx_L3;
57816  }
57817 
57818  /* "View.MemoryView":512
57819  * bytesvalue = struct.pack(self.view.format, *value)
57820  * else:
57821  * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<<
57822  *
57823  * for i, c in enumerate(bytesvalue):
57824  */
57825  /*else*/ {
57826  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 512, __pyx_L1_error)
57827  __Pyx_GOTREF(__pyx_t_6);
57828  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 512, __pyx_L1_error)
57829  __Pyx_GOTREF(__pyx_t_1);
57830  __pyx_t_5 = NULL;
57831  __pyx_t_7 = 0;
57832  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
57833  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
57834  if (likely(__pyx_t_5)) {
57835  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
57836  __Pyx_INCREF(__pyx_t_5);
57837  __Pyx_INCREF(function);
57838  __Pyx_DECREF_SET(__pyx_t_6, function);
57839  __pyx_t_7 = 1;
57840  }
57841  }
57842  #if CYTHON_FAST_PYCALL
57843  if (PyFunction_Check(__pyx_t_6)) {
57844  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value};
57845  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error)
57846  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
57847  __Pyx_GOTREF(__pyx_t_4);
57848  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57849  } else
57850  #endif
57851  #if CYTHON_FAST_PYCCALL
57852  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
57853  PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value};
57854  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error)
57855  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
57856  __Pyx_GOTREF(__pyx_t_4);
57857  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57858  } else
57859  #endif
57860  {
57861  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 512, __pyx_L1_error)
57862  __Pyx_GOTREF(__pyx_t_8);
57863  if (__pyx_t_5) {
57864  __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
57865  }
57866  __Pyx_GIVEREF(__pyx_t_1);
57867  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1);
57868  __Pyx_INCREF(__pyx_v_value);
57869  __Pyx_GIVEREF(__pyx_v_value);
57870  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value);
57871  __pyx_t_1 = 0;
57872  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error)
57873  __Pyx_GOTREF(__pyx_t_4);
57874  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
57875  }
57876  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57877  if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 512, __pyx_L1_error)
57878  __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4);
57879  __pyx_t_4 = 0;
57880  }
57881  __pyx_L3:;
57882 
57883  /* "View.MemoryView":514
57884  * bytesvalue = struct.pack(self.view.format, value)
57885  *
57886  * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<<
57887  * itemp[i] = c
57888  *
57889  */
57890  __pyx_t_9 = 0;
57891  if (unlikely(__pyx_v_bytesvalue == Py_None)) {
57892  PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
57893  __PYX_ERR(1, 514, __pyx_L1_error)
57894  }
57895  __Pyx_INCREF(__pyx_v_bytesvalue);
57896  __pyx_t_10 = __pyx_v_bytesvalue;
57897  __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10);
57898  __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10));
57899  for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) {
57900  __pyx_t_11 = __pyx_t_14;
57901  __pyx_v_c = (__pyx_t_11[0]);
57902 
57903  /* "View.MemoryView":515
57904  *
57905  * for i, c in enumerate(bytesvalue):
57906  * itemp[i] = c # <<<<<<<<<<<<<<
57907  *
57908  * @cname('getbuffer')
57909  */
57910  __pyx_v_i = __pyx_t_9;
57911 
57912  /* "View.MemoryView":514
57913  * bytesvalue = struct.pack(self.view.format, value)
57914  *
57915  * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<<
57916  * itemp[i] = c
57917  *
57918  */
57919  __pyx_t_9 = (__pyx_t_9 + 1);
57920 
57921  /* "View.MemoryView":515
57922  *
57923  * for i, c in enumerate(bytesvalue):
57924  * itemp[i] = c # <<<<<<<<<<<<<<
57925  *
57926  * @cname('getbuffer')
57927  */
57928  (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c;
57929  }
57930  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
57931 
57932  /* "View.MemoryView":501
57933  * return result
57934  *
57935  * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
57936  * """Only used if instantiated manually by the user, or if Cython doesn't
57937  * know how to convert the type"""
57938  */
57939 
57940  /* function exit code */
57941  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57942  goto __pyx_L0;
57943  __pyx_L1_error:;
57944  __Pyx_XDECREF(__pyx_t_1);
57945  __Pyx_XDECREF(__pyx_t_4);
57946  __Pyx_XDECREF(__pyx_t_5);
57947  __Pyx_XDECREF(__pyx_t_6);
57948  __Pyx_XDECREF(__pyx_t_8);
57949  __Pyx_XDECREF(__pyx_t_10);
57950  __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
57951  __pyx_r = 0;
57952  __pyx_L0:;
57953  __Pyx_XDECREF(__pyx_v_struct);
57954  __Pyx_XDECREF(__pyx_v_bytesvalue);
57955  __Pyx_XGIVEREF(__pyx_r);
57956  __Pyx_TraceReturn(__pyx_r, 0);
57957  __Pyx_RefNannyFinishContext();
57958  return __pyx_r;
57959 }
57960 
57961 /* "View.MemoryView":518
57962  *
57963  * @cname('getbuffer')
57964  * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<<
57965  * if flags & PyBUF_WRITABLE and self.view.readonly:
57966  * raise ValueError("Cannot create writable memory view from read-only memoryview")
57967  */
57968 
57969 /* Python wrapper */
57970 static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
57971 static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
57972  int __pyx_r;
57973  __Pyx_RefNannyDeclarations
57974  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
57975  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
57976 
57977  /* function exit code */
57978  __Pyx_RefNannyFinishContext();
57979  return __pyx_r;
57980 }
57981 
57982 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
57983  int __pyx_r;
57984  __Pyx_TraceDeclarations
57985  __Pyx_RefNannyDeclarations
57986  int __pyx_t_1;
57987  int __pyx_t_2;
57988  PyObject *__pyx_t_3 = NULL;
57989  Py_ssize_t *__pyx_t_4;
57990  char *__pyx_t_5;
57991  void *__pyx_t_6;
57992  int __pyx_t_7;
57993  Py_ssize_t __pyx_t_8;
57994  int __pyx_lineno = 0;
57995  const char *__pyx_filename = NULL;
57996  int __pyx_clineno = 0;
57997  if (__pyx_v_info == NULL) {
57998  PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
57999  return -1;
58000  }
58001  __Pyx_RefNannySetupContext("__getbuffer__", 0);
58002  __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
58003  __Pyx_GIVEREF(__pyx_v_info->obj);
58004  __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 518, 0, __PYX_ERR(1, 518, __pyx_L1_error));
58005 
58006  /* "View.MemoryView":519
58007  * @cname('getbuffer')
58008  * def __getbuffer__(self, Py_buffer *info, int flags):
58009  * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<<
58010  * raise ValueError("Cannot create writable memory view from read-only memoryview")
58011  *
58012  */
58013  __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
58014  if (__pyx_t_2) {
58015  } else {
58016  __pyx_t_1 = __pyx_t_2;
58017  goto __pyx_L4_bool_binop_done;
58018  }
58019  __pyx_t_2 = (__pyx_v_self->view.readonly != 0);
58020  __pyx_t_1 = __pyx_t_2;
58021  __pyx_L4_bool_binop_done:;
58022  if (unlikely(__pyx_t_1)) {
58023 
58024  /* "View.MemoryView":520
58025  * def __getbuffer__(self, Py_buffer *info, int flags):
58026  * if flags & PyBUF_WRITABLE and self.view.readonly:
58027  * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<<
58028  *
58029  * if flags & PyBUF_ND:
58030  */
58031  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__154, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error)
58032  __Pyx_GOTREF(__pyx_t_3);
58033  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
58034  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
58035  __PYX_ERR(1, 520, __pyx_L1_error)
58036 
58037  /* "View.MemoryView":519
58038  * @cname('getbuffer')
58039  * def __getbuffer__(self, Py_buffer *info, int flags):
58040  * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<<
58041  * raise ValueError("Cannot create writable memory view from read-only memoryview")
58042  *
58043  */
58044  }
58045 
58046  /* "View.MemoryView":522
58047  * raise ValueError("Cannot create writable memory view from read-only memoryview")
58048  *
58049  * if flags & PyBUF_ND: # <<<<<<<<<<<<<<
58050  * info.shape = self.view.shape
58051  * else:
58052  */
58053  __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
58054  if (__pyx_t_1) {
58055 
58056  /* "View.MemoryView":523
58057  *
58058  * if flags & PyBUF_ND:
58059  * info.shape = self.view.shape # <<<<<<<<<<<<<<
58060  * else:
58061  * info.shape = NULL
58062  */
58063  __pyx_t_4 = __pyx_v_self->view.shape;
58064  __pyx_v_info->shape = __pyx_t_4;
58065 
58066  /* "View.MemoryView":522
58067  * raise ValueError("Cannot create writable memory view from read-only memoryview")
58068  *
58069  * if flags & PyBUF_ND: # <<<<<<<<<<<<<<
58070  * info.shape = self.view.shape
58071  * else:
58072  */
58073  goto __pyx_L6;
58074  }
58075 
58076  /* "View.MemoryView":525
58077  * info.shape = self.view.shape
58078  * else:
58079  * info.shape = NULL # <<<<<<<<<<<<<<
58080  *
58081  * if flags & PyBUF_STRIDES:
58082  */
58083  /*else*/ {
58084  __pyx_v_info->shape = NULL;
58085  }
58086  __pyx_L6:;
58087 
58088  /* "View.MemoryView":527
58089  * info.shape = NULL
58090  *
58091  * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
58092  * info.strides = self.view.strides
58093  * else:
58094  */
58095  __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
58096  if (__pyx_t_1) {
58097 
58098  /* "View.MemoryView":528
58099  *
58100  * if flags & PyBUF_STRIDES:
58101  * info.strides = self.view.strides # <<<<<<<<<<<<<<
58102  * else:
58103  * info.strides = NULL
58104  */
58105  __pyx_t_4 = __pyx_v_self->view.strides;
58106  __pyx_v_info->strides = __pyx_t_4;
58107 
58108  /* "View.MemoryView":527
58109  * info.shape = NULL
58110  *
58111  * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
58112  * info.strides = self.view.strides
58113  * else:
58114  */
58115  goto __pyx_L7;
58116  }
58117 
58118  /* "View.MemoryView":530
58119  * info.strides = self.view.strides
58120  * else:
58121  * info.strides = NULL # <<<<<<<<<<<<<<
58122  *
58123  * if flags & PyBUF_INDIRECT:
58124  */
58125  /*else*/ {
58126  __pyx_v_info->strides = NULL;
58127  }
58128  __pyx_L7:;
58129 
58130  /* "View.MemoryView":532
58131  * info.strides = NULL
58132  *
58133  * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<<
58134  * info.suboffsets = self.view.suboffsets
58135  * else:
58136  */
58137  __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0);
58138  if (__pyx_t_1) {
58139 
58140  /* "View.MemoryView":533
58141  *
58142  * if flags & PyBUF_INDIRECT:
58143  * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<<
58144  * else:
58145  * info.suboffsets = NULL
58146  */
58147  __pyx_t_4 = __pyx_v_self->view.suboffsets;
58148  __pyx_v_info->suboffsets = __pyx_t_4;
58149 
58150  /* "View.MemoryView":532
58151  * info.strides = NULL
58152  *
58153  * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<<
58154  * info.suboffsets = self.view.suboffsets
58155  * else:
58156  */
58157  goto __pyx_L8;
58158  }
58159 
58160  /* "View.MemoryView":535
58161  * info.suboffsets = self.view.suboffsets
58162  * else:
58163  * info.suboffsets = NULL # <<<<<<<<<<<<<<
58164  *
58165  * if flags & PyBUF_FORMAT:
58166  */
58167  /*else*/ {
58168  __pyx_v_info->suboffsets = NULL;
58169  }
58170  __pyx_L8:;
58171 
58172  /* "View.MemoryView":537
58173  * info.suboffsets = NULL
58174  *
58175  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
58176  * info.format = self.view.format
58177  * else:
58178  */
58179  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
58180  if (__pyx_t_1) {
58181 
58182  /* "View.MemoryView":538
58183  *
58184  * if flags & PyBUF_FORMAT:
58185  * info.format = self.view.format # <<<<<<<<<<<<<<
58186  * else:
58187  * info.format = NULL
58188  */
58189  __pyx_t_5 = __pyx_v_self->view.format;
58190  __pyx_v_info->format = __pyx_t_5;
58191 
58192  /* "View.MemoryView":537
58193  * info.suboffsets = NULL
58194  *
58195  * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
58196  * info.format = self.view.format
58197  * else:
58198  */
58199  goto __pyx_L9;
58200  }
58201 
58202  /* "View.MemoryView":540
58203  * info.format = self.view.format
58204  * else:
58205  * info.format = NULL # <<<<<<<<<<<<<<
58206  *
58207  * info.buf = self.view.buf
58208  */
58209  /*else*/ {
58210  __pyx_v_info->format = NULL;
58211  }
58212  __pyx_L9:;
58213 
58214  /* "View.MemoryView":542
58215  * info.format = NULL
58216  *
58217  * info.buf = self.view.buf # <<<<<<<<<<<<<<
58218  * info.ndim = self.view.ndim
58219  * info.itemsize = self.view.itemsize
58220  */
58221  __pyx_t_6 = __pyx_v_self->view.buf;
58222  __pyx_v_info->buf = __pyx_t_6;
58223 
58224  /* "View.MemoryView":543
58225  *
58226  * info.buf = self.view.buf
58227  * info.ndim = self.view.ndim # <<<<<<<<<<<<<<
58228  * info.itemsize = self.view.itemsize
58229  * info.len = self.view.len
58230  */
58231  __pyx_t_7 = __pyx_v_self->view.ndim;
58232  __pyx_v_info->ndim = __pyx_t_7;
58233 
58234  /* "View.MemoryView":544
58235  * info.buf = self.view.buf
58236  * info.ndim = self.view.ndim
58237  * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<<
58238  * info.len = self.view.len
58239  * info.readonly = self.view.readonly
58240  */
58241  __pyx_t_8 = __pyx_v_self->view.itemsize;
58242  __pyx_v_info->itemsize = __pyx_t_8;
58243 
58244  /* "View.MemoryView":545
58245  * info.ndim = self.view.ndim
58246  * info.itemsize = self.view.itemsize
58247  * info.len = self.view.len # <<<<<<<<<<<<<<
58248  * info.readonly = self.view.readonly
58249  * info.obj = self
58250  */
58251  __pyx_t_8 = __pyx_v_self->view.len;
58252  __pyx_v_info->len = __pyx_t_8;
58253 
58254  /* "View.MemoryView":546
58255  * info.itemsize = self.view.itemsize
58256  * info.len = self.view.len
58257  * info.readonly = self.view.readonly # <<<<<<<<<<<<<<
58258  * info.obj = self
58259  *
58260  */
58261  __pyx_t_1 = __pyx_v_self->view.readonly;
58262  __pyx_v_info->readonly = __pyx_t_1;
58263 
58264  /* "View.MemoryView":547
58265  * info.len = self.view.len
58266  * info.readonly = self.view.readonly
58267  * info.obj = self # <<<<<<<<<<<<<<
58268  *
58269  * __pyx_getbuffer = capsule(<void *> &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)")
58270  */
58271  __Pyx_INCREF(((PyObject *)__pyx_v_self));
58272  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
58273  __Pyx_GOTREF(__pyx_v_info->obj);
58274  __Pyx_DECREF(__pyx_v_info->obj);
58275  __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
58276 
58277  /* "View.MemoryView":518
58278  *
58279  * @cname('getbuffer')
58280  * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<<
58281  * if flags & PyBUF_WRITABLE and self.view.readonly:
58282  * raise ValueError("Cannot create writable memory view from read-only memoryview")
58283  */
58284 
58285  /* function exit code */
58286  __pyx_r = 0;
58287  goto __pyx_L0;
58288  __pyx_L1_error:;
58289  __Pyx_XDECREF(__pyx_t_3);
58290  __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58291  __pyx_r = -1;
58292  if (__pyx_v_info->obj != NULL) {
58293  __Pyx_GOTREF(__pyx_v_info->obj);
58294  __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
58295  }
58296  goto __pyx_L2;
58297  __pyx_L0:;
58298  if (__pyx_v_info->obj == Py_None) {
58299  __Pyx_GOTREF(__pyx_v_info->obj);
58300  __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
58301  }
58302  __pyx_L2:;
58303  __Pyx_TraceReturn(Py_None, 0);
58304  __Pyx_RefNannyFinishContext();
58305  return __pyx_r;
58306 }
58307 
58308 /* "View.MemoryView":553
58309  *
58310  * @property
58311  * def T(self): # <<<<<<<<<<<<<<
58312  * cdef _memoryviewslice result = memoryview_copy(self)
58313  * transpose_memslice(&result.from_slice)
58314  */
58315 
58316 /* Python wrapper */
58317 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
58318 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) {
58319  PyObject *__pyx_r = 0;
58320  __Pyx_RefNannyDeclarations
58321  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58322  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58323 
58324  /* function exit code */
58325  __Pyx_RefNannyFinishContext();
58326  return __pyx_r;
58327 }
58328 
58329 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58330  struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
58331  PyObject *__pyx_r = NULL;
58332  __Pyx_TraceDeclarations
58333  __Pyx_RefNannyDeclarations
58334  PyObject *__pyx_t_1 = NULL;
58335  int __pyx_t_2;
58336  int __pyx_lineno = 0;
58337  const char *__pyx_filename = NULL;
58338  int __pyx_clineno = 0;
58339  __Pyx_RefNannySetupContext("__get__", 0);
58340  __Pyx_TraceCall("__get__", __pyx_f[1], 553, 0, __PYX_ERR(1, 553, __pyx_L1_error));
58341 
58342  /* "View.MemoryView":554
58343  * @property
58344  * def T(self):
58345  * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<<
58346  * transpose_memslice(&result.from_slice)
58347  * return result
58348  */
58349  __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 554, __pyx_L1_error)
58350  __Pyx_GOTREF(__pyx_t_1);
58351  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(1, 554, __pyx_L1_error)
58352  __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1);
58353  __pyx_t_1 = 0;
58354 
58355  /* "View.MemoryView":555
58356  * def T(self):
58357  * cdef _memoryviewslice result = memoryview_copy(self)
58358  * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<<
58359  * return result
58360  *
58361  */
58362  __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 555, __pyx_L1_error)
58363 
58364  /* "View.MemoryView":556
58365  * cdef _memoryviewslice result = memoryview_copy(self)
58366  * transpose_memslice(&result.from_slice)
58367  * return result # <<<<<<<<<<<<<<
58368  *
58369  * @property
58370  */
58371  __Pyx_XDECREF(__pyx_r);
58372  __Pyx_INCREF(((PyObject *)__pyx_v_result));
58373  __pyx_r = ((PyObject *)__pyx_v_result);
58374  goto __pyx_L0;
58375 
58376  /* "View.MemoryView":553
58377  *
58378  * @property
58379  * def T(self): # <<<<<<<<<<<<<<
58380  * cdef _memoryviewslice result = memoryview_copy(self)
58381  * transpose_memslice(&result.from_slice)
58382  */
58383 
58384  /* function exit code */
58385  __pyx_L1_error:;
58386  __Pyx_XDECREF(__pyx_t_1);
58387  __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58388  __pyx_r = NULL;
58389  __pyx_L0:;
58390  __Pyx_XDECREF((PyObject *)__pyx_v_result);
58391  __Pyx_XGIVEREF(__pyx_r);
58392  __Pyx_TraceReturn(__pyx_r, 0);
58393  __Pyx_RefNannyFinishContext();
58394  return __pyx_r;
58395 }
58396 
58397 /* "View.MemoryView":559
58398  *
58399  * @property
58400  * def base(self): # <<<<<<<<<<<<<<
58401  * return self.obj
58402  *
58403  */
58404 
58405 /* Python wrapper */
58406 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/
58407 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) {
58408  PyObject *__pyx_r = 0;
58409  __Pyx_RefNannyDeclarations
58410  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58411  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58412 
58413  /* function exit code */
58414  __Pyx_RefNannyFinishContext();
58415  return __pyx_r;
58416 }
58417 
58418 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58419  PyObject *__pyx_r = NULL;
58420  __Pyx_TraceDeclarations
58421  __Pyx_RefNannyDeclarations
58422  int __pyx_lineno = 0;
58423  const char *__pyx_filename = NULL;
58424  int __pyx_clineno = 0;
58425  __Pyx_RefNannySetupContext("__get__", 0);
58426  __Pyx_TraceCall("__get__", __pyx_f[1], 559, 0, __PYX_ERR(1, 559, __pyx_L1_error));
58427 
58428  /* "View.MemoryView":560
58429  * @property
58430  * def base(self):
58431  * return self.obj # <<<<<<<<<<<<<<
58432  *
58433  * @property
58434  */
58435  __Pyx_XDECREF(__pyx_r);
58436  __Pyx_INCREF(__pyx_v_self->obj);
58437  __pyx_r = __pyx_v_self->obj;
58438  goto __pyx_L0;
58439 
58440  /* "View.MemoryView":559
58441  *
58442  * @property
58443  * def base(self): # <<<<<<<<<<<<<<
58444  * return self.obj
58445  *
58446  */
58447 
58448  /* function exit code */
58449  __pyx_L1_error:;
58450  __Pyx_AddTraceback("View.MemoryView.memoryview.base.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58451  __pyx_r = NULL;
58452  __pyx_L0:;
58453  __Pyx_XGIVEREF(__pyx_r);
58454  __Pyx_TraceReturn(__pyx_r, 0);
58455  __Pyx_RefNannyFinishContext();
58456  return __pyx_r;
58457 }
58458 
58459 /* "View.MemoryView":563
58460  *
58461  * @property
58462  * def shape(self): # <<<<<<<<<<<<<<
58463  * return tuple([length for length in self.view.shape[:self.view.ndim]])
58464  *
58465  */
58466 
58467 /* Python wrapper */
58468 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/
58469 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) {
58470  PyObject *__pyx_r = 0;
58471  __Pyx_RefNannyDeclarations
58472  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58473  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58474 
58475  /* function exit code */
58476  __Pyx_RefNannyFinishContext();
58477  return __pyx_r;
58478 }
58479 
58480 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58481  Py_ssize_t __pyx_v_length;
58482  PyObject *__pyx_r = NULL;
58483  __Pyx_TraceDeclarations
58484  __Pyx_RefNannyDeclarations
58485  PyObject *__pyx_t_1 = NULL;
58486  Py_ssize_t *__pyx_t_2;
58487  Py_ssize_t *__pyx_t_3;
58488  Py_ssize_t *__pyx_t_4;
58489  PyObject *__pyx_t_5 = NULL;
58490  int __pyx_lineno = 0;
58491  const char *__pyx_filename = NULL;
58492  int __pyx_clineno = 0;
58493  __Pyx_RefNannySetupContext("__get__", 0);
58494  __Pyx_TraceCall("__get__", __pyx_f[1], 563, 0, __PYX_ERR(1, 563, __pyx_L1_error));
58495 
58496  /* "View.MemoryView":564
58497  * @property
58498  * def shape(self):
58499  * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<<
58500  *
58501  * @property
58502  */
58503  __Pyx_XDECREF(__pyx_r);
58504  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 564, __pyx_L1_error)
58505  __Pyx_GOTREF(__pyx_t_1);
58506  __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
58507  for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
58508  __pyx_t_2 = __pyx_t_4;
58509  __pyx_v_length = (__pyx_t_2[0]);
58510  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 564, __pyx_L1_error)
58511  __Pyx_GOTREF(__pyx_t_5);
58512  if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 564, __pyx_L1_error)
58513  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
58514  }
58515  __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 564, __pyx_L1_error)
58516  __Pyx_GOTREF(__pyx_t_5);
58517  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58518  __pyx_r = __pyx_t_5;
58519  __pyx_t_5 = 0;
58520  goto __pyx_L0;
58521 
58522  /* "View.MemoryView":563
58523  *
58524  * @property
58525  * def shape(self): # <<<<<<<<<<<<<<
58526  * return tuple([length for length in self.view.shape[:self.view.ndim]])
58527  *
58528  */
58529 
58530  /* function exit code */
58531  __pyx_L1_error:;
58532  __Pyx_XDECREF(__pyx_t_1);
58533  __Pyx_XDECREF(__pyx_t_5);
58534  __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58535  __pyx_r = NULL;
58536  __pyx_L0:;
58537  __Pyx_XGIVEREF(__pyx_r);
58538  __Pyx_TraceReturn(__pyx_r, 0);
58539  __Pyx_RefNannyFinishContext();
58540  return __pyx_r;
58541 }
58542 
58543 /* "View.MemoryView":567
58544  *
58545  * @property
58546  * def strides(self): # <<<<<<<<<<<<<<
58547  * if self.view.strides == NULL:
58548  *
58549  */
58550 
58551 /* Python wrapper */
58552 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/
58553 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) {
58554  PyObject *__pyx_r = 0;
58555  __Pyx_RefNannyDeclarations
58556  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58557  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58558 
58559  /* function exit code */
58560  __Pyx_RefNannyFinishContext();
58561  return __pyx_r;
58562 }
58563 
58564 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58565  Py_ssize_t __pyx_v_stride;
58566  PyObject *__pyx_r = NULL;
58567  __Pyx_TraceDeclarations
58568  __Pyx_RefNannyDeclarations
58569  int __pyx_t_1;
58570  PyObject *__pyx_t_2 = NULL;
58571  Py_ssize_t *__pyx_t_3;
58572  Py_ssize_t *__pyx_t_4;
58573  Py_ssize_t *__pyx_t_5;
58574  PyObject *__pyx_t_6 = NULL;
58575  int __pyx_lineno = 0;
58576  const char *__pyx_filename = NULL;
58577  int __pyx_clineno = 0;
58578  __Pyx_RefNannySetupContext("__get__", 0);
58579  __Pyx_TraceCall("__get__", __pyx_f[1], 567, 0, __PYX_ERR(1, 567, __pyx_L1_error));
58580 
58581  /* "View.MemoryView":568
58582  * @property
58583  * def strides(self):
58584  * if self.view.strides == NULL: # <<<<<<<<<<<<<<
58585  *
58586  * raise ValueError("Buffer view does not expose strides")
58587  */
58588  __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0);
58589  if (unlikely(__pyx_t_1)) {
58590 
58591  /* "View.MemoryView":570
58592  * if self.view.strides == NULL:
58593  *
58594  * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<<
58595  *
58596  * return tuple([stride for stride in self.view.strides[:self.view.ndim]])
58597  */
58598  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__155, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error)
58599  __Pyx_GOTREF(__pyx_t_2);
58600  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
58601  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
58602  __PYX_ERR(1, 570, __pyx_L1_error)
58603 
58604  /* "View.MemoryView":568
58605  * @property
58606  * def strides(self):
58607  * if self.view.strides == NULL: # <<<<<<<<<<<<<<
58608  *
58609  * raise ValueError("Buffer view does not expose strides")
58610  */
58611  }
58612 
58613  /* "View.MemoryView":572
58614  * raise ValueError("Buffer view does not expose strides")
58615  *
58616  * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<<
58617  *
58618  * @property
58619  */
58620  __Pyx_XDECREF(__pyx_r);
58621  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 572, __pyx_L1_error)
58622  __Pyx_GOTREF(__pyx_t_2);
58623  __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim);
58624  for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
58625  __pyx_t_3 = __pyx_t_5;
58626  __pyx_v_stride = (__pyx_t_3[0]);
58627  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 572, __pyx_L1_error)
58628  __Pyx_GOTREF(__pyx_t_6);
58629  if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 572, __pyx_L1_error)
58630  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
58631  }
58632  __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 572, __pyx_L1_error)
58633  __Pyx_GOTREF(__pyx_t_6);
58634  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
58635  __pyx_r = __pyx_t_6;
58636  __pyx_t_6 = 0;
58637  goto __pyx_L0;
58638 
58639  /* "View.MemoryView":567
58640  *
58641  * @property
58642  * def strides(self): # <<<<<<<<<<<<<<
58643  * if self.view.strides == NULL:
58644  *
58645  */
58646 
58647  /* function exit code */
58648  __pyx_L1_error:;
58649  __Pyx_XDECREF(__pyx_t_2);
58650  __Pyx_XDECREF(__pyx_t_6);
58651  __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58652  __pyx_r = NULL;
58653  __pyx_L0:;
58654  __Pyx_XGIVEREF(__pyx_r);
58655  __Pyx_TraceReturn(__pyx_r, 0);
58656  __Pyx_RefNannyFinishContext();
58657  return __pyx_r;
58658 }
58659 
58660 /* "View.MemoryView":575
58661  *
58662  * @property
58663  * def suboffsets(self): # <<<<<<<<<<<<<<
58664  * if self.view.suboffsets == NULL:
58665  * return (-1,) * self.view.ndim
58666  */
58667 
58668 /* Python wrapper */
58669 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/
58670 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) {
58671  PyObject *__pyx_r = 0;
58672  __Pyx_RefNannyDeclarations
58673  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58674  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58675 
58676  /* function exit code */
58677  __Pyx_RefNannyFinishContext();
58678  return __pyx_r;
58679 }
58680 
58681 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58682  Py_ssize_t __pyx_v_suboffset;
58683  PyObject *__pyx_r = NULL;
58684  __Pyx_TraceDeclarations
58685  __Pyx_RefNannyDeclarations
58686  int __pyx_t_1;
58687  PyObject *__pyx_t_2 = NULL;
58688  PyObject *__pyx_t_3 = NULL;
58689  Py_ssize_t *__pyx_t_4;
58690  Py_ssize_t *__pyx_t_5;
58691  Py_ssize_t *__pyx_t_6;
58692  int __pyx_lineno = 0;
58693  const char *__pyx_filename = NULL;
58694  int __pyx_clineno = 0;
58695  __Pyx_RefNannySetupContext("__get__", 0);
58696  __Pyx_TraceCall("__get__", __pyx_f[1], 575, 0, __PYX_ERR(1, 575, __pyx_L1_error));
58697 
58698  /* "View.MemoryView":576
58699  * @property
58700  * def suboffsets(self):
58701  * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<<
58702  * return (-1,) * self.view.ndim
58703  *
58704  */
58705  __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0);
58706  if (__pyx_t_1) {
58707 
58708  /* "View.MemoryView":577
58709  * def suboffsets(self):
58710  * if self.view.suboffsets == NULL:
58711  * return (-1,) * self.view.ndim # <<<<<<<<<<<<<<
58712  *
58713  * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
58714  */
58715  __Pyx_XDECREF(__pyx_r);
58716  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error)
58717  __Pyx_GOTREF(__pyx_t_2);
58718  __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__156, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 577, __pyx_L1_error)
58719  __Pyx_GOTREF(__pyx_t_3);
58720  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
58721  __pyx_r = __pyx_t_3;
58722  __pyx_t_3 = 0;
58723  goto __pyx_L0;
58724 
58725  /* "View.MemoryView":576
58726  * @property
58727  * def suboffsets(self):
58728  * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<<
58729  * return (-1,) * self.view.ndim
58730  *
58731  */
58732  }
58733 
58734  /* "View.MemoryView":579
58735  * return (-1,) * self.view.ndim
58736  *
58737  * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<<
58738  *
58739  * @property
58740  */
58741  __Pyx_XDECREF(__pyx_r);
58742  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 579, __pyx_L1_error)
58743  __Pyx_GOTREF(__pyx_t_3);
58744  __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim);
58745  for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) {
58746  __pyx_t_4 = __pyx_t_6;
58747  __pyx_v_suboffset = (__pyx_t_4[0]);
58748  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 579, __pyx_L1_error)
58749  __Pyx_GOTREF(__pyx_t_2);
58750  if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 579, __pyx_L1_error)
58751  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
58752  }
58753  __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 579, __pyx_L1_error)
58754  __Pyx_GOTREF(__pyx_t_2);
58755  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
58756  __pyx_r = __pyx_t_2;
58757  __pyx_t_2 = 0;
58758  goto __pyx_L0;
58759 
58760  /* "View.MemoryView":575
58761  *
58762  * @property
58763  * def suboffsets(self): # <<<<<<<<<<<<<<
58764  * if self.view.suboffsets == NULL:
58765  * return (-1,) * self.view.ndim
58766  */
58767 
58768  /* function exit code */
58769  __pyx_L1_error:;
58770  __Pyx_XDECREF(__pyx_t_2);
58771  __Pyx_XDECREF(__pyx_t_3);
58772  __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58773  __pyx_r = NULL;
58774  __pyx_L0:;
58775  __Pyx_XGIVEREF(__pyx_r);
58776  __Pyx_TraceReturn(__pyx_r, 0);
58777  __Pyx_RefNannyFinishContext();
58778  return __pyx_r;
58779 }
58780 
58781 /* "View.MemoryView":582
58782  *
58783  * @property
58784  * def ndim(self): # <<<<<<<<<<<<<<
58785  * return self.view.ndim
58786  *
58787  */
58788 
58789 /* Python wrapper */
58790 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/
58791 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) {
58792  PyObject *__pyx_r = 0;
58793  __Pyx_RefNannyDeclarations
58794  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58795  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58796 
58797  /* function exit code */
58798  __Pyx_RefNannyFinishContext();
58799  return __pyx_r;
58800 }
58801 
58802 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58803  PyObject *__pyx_r = NULL;
58804  __Pyx_TraceDeclarations
58805  __Pyx_RefNannyDeclarations
58806  PyObject *__pyx_t_1 = NULL;
58807  int __pyx_lineno = 0;
58808  const char *__pyx_filename = NULL;
58809  int __pyx_clineno = 0;
58810  __Pyx_RefNannySetupContext("__get__", 0);
58811  __Pyx_TraceCall("__get__", __pyx_f[1], 582, 0, __PYX_ERR(1, 582, __pyx_L1_error));
58812 
58813  /* "View.MemoryView":583
58814  * @property
58815  * def ndim(self):
58816  * return self.view.ndim # <<<<<<<<<<<<<<
58817  *
58818  * @property
58819  */
58820  __Pyx_XDECREF(__pyx_r);
58821  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 583, __pyx_L1_error)
58822  __Pyx_GOTREF(__pyx_t_1);
58823  __pyx_r = __pyx_t_1;
58824  __pyx_t_1 = 0;
58825  goto __pyx_L0;
58826 
58827  /* "View.MemoryView":582
58828  *
58829  * @property
58830  * def ndim(self): # <<<<<<<<<<<<<<
58831  * return self.view.ndim
58832  *
58833  */
58834 
58835  /* function exit code */
58836  __pyx_L1_error:;
58837  __Pyx_XDECREF(__pyx_t_1);
58838  __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58839  __pyx_r = NULL;
58840  __pyx_L0:;
58841  __Pyx_XGIVEREF(__pyx_r);
58842  __Pyx_TraceReturn(__pyx_r, 0);
58843  __Pyx_RefNannyFinishContext();
58844  return __pyx_r;
58845 }
58846 
58847 /* "View.MemoryView":586
58848  *
58849  * @property
58850  * def itemsize(self): # <<<<<<<<<<<<<<
58851  * return self.view.itemsize
58852  *
58853  */
58854 
58855 /* Python wrapper */
58856 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/
58857 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) {
58858  PyObject *__pyx_r = 0;
58859  __Pyx_RefNannyDeclarations
58860  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58861  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58862 
58863  /* function exit code */
58864  __Pyx_RefNannyFinishContext();
58865  return __pyx_r;
58866 }
58867 
58868 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58869  PyObject *__pyx_r = NULL;
58870  __Pyx_TraceDeclarations
58871  __Pyx_RefNannyDeclarations
58872  PyObject *__pyx_t_1 = NULL;
58873  int __pyx_lineno = 0;
58874  const char *__pyx_filename = NULL;
58875  int __pyx_clineno = 0;
58876  __Pyx_RefNannySetupContext("__get__", 0);
58877  __Pyx_TraceCall("__get__", __pyx_f[1], 586, 0, __PYX_ERR(1, 586, __pyx_L1_error));
58878 
58879  /* "View.MemoryView":587
58880  * @property
58881  * def itemsize(self):
58882  * return self.view.itemsize # <<<<<<<<<<<<<<
58883  *
58884  * @property
58885  */
58886  __Pyx_XDECREF(__pyx_r);
58887  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 587, __pyx_L1_error)
58888  __Pyx_GOTREF(__pyx_t_1);
58889  __pyx_r = __pyx_t_1;
58890  __pyx_t_1 = 0;
58891  goto __pyx_L0;
58892 
58893  /* "View.MemoryView":586
58894  *
58895  * @property
58896  * def itemsize(self): # <<<<<<<<<<<<<<
58897  * return self.view.itemsize
58898  *
58899  */
58900 
58901  /* function exit code */
58902  __pyx_L1_error:;
58903  __Pyx_XDECREF(__pyx_t_1);
58904  __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58905  __pyx_r = NULL;
58906  __pyx_L0:;
58907  __Pyx_XGIVEREF(__pyx_r);
58908  __Pyx_TraceReturn(__pyx_r, 0);
58909  __Pyx_RefNannyFinishContext();
58910  return __pyx_r;
58911 }
58912 
58913 /* "View.MemoryView":590
58914  *
58915  * @property
58916  * def nbytes(self): # <<<<<<<<<<<<<<
58917  * return self.size * self.view.itemsize
58918  *
58919  */
58920 
58921 /* Python wrapper */
58922 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
58923 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) {
58924  PyObject *__pyx_r = 0;
58925  __Pyx_RefNannyDeclarations
58926  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
58927  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
58928 
58929  /* function exit code */
58930  __Pyx_RefNannyFinishContext();
58931  return __pyx_r;
58932 }
58933 
58934 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
58935  PyObject *__pyx_r = NULL;
58936  __Pyx_TraceDeclarations
58937  __Pyx_RefNannyDeclarations
58938  PyObject *__pyx_t_1 = NULL;
58939  PyObject *__pyx_t_2 = NULL;
58940  PyObject *__pyx_t_3 = NULL;
58941  int __pyx_lineno = 0;
58942  const char *__pyx_filename = NULL;
58943  int __pyx_clineno = 0;
58944  __Pyx_RefNannySetupContext("__get__", 0);
58945  __Pyx_TraceCall("__get__", __pyx_f[1], 590, 0, __PYX_ERR(1, 590, __pyx_L1_error));
58946 
58947  /* "View.MemoryView":591
58948  * @property
58949  * def nbytes(self):
58950  * return self.size * self.view.itemsize # <<<<<<<<<<<<<<
58951  *
58952  * @property
58953  */
58954  __Pyx_XDECREF(__pyx_r);
58955  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 591, __pyx_L1_error)
58956  __Pyx_GOTREF(__pyx_t_1);
58957  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 591, __pyx_L1_error)
58958  __Pyx_GOTREF(__pyx_t_2);
58959  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 591, __pyx_L1_error)
58960  __Pyx_GOTREF(__pyx_t_3);
58961  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58962  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
58963  __pyx_r = __pyx_t_3;
58964  __pyx_t_3 = 0;
58965  goto __pyx_L0;
58966 
58967  /* "View.MemoryView":590
58968  *
58969  * @property
58970  * def nbytes(self): # <<<<<<<<<<<<<<
58971  * return self.size * self.view.itemsize
58972  *
58973  */
58974 
58975  /* function exit code */
58976  __pyx_L1_error:;
58977  __Pyx_XDECREF(__pyx_t_1);
58978  __Pyx_XDECREF(__pyx_t_2);
58979  __Pyx_XDECREF(__pyx_t_3);
58980  __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58981  __pyx_r = NULL;
58982  __pyx_L0:;
58983  __Pyx_XGIVEREF(__pyx_r);
58984  __Pyx_TraceReturn(__pyx_r, 0);
58985  __Pyx_RefNannyFinishContext();
58986  return __pyx_r;
58987 }
58988 
58989 /* "View.MemoryView":594
58990  *
58991  * @property
58992  * def size(self): # <<<<<<<<<<<<<<
58993  * if self._size is None:
58994  * result = 1
58995  */
58996 
58997 /* Python wrapper */
58998 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
58999 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) {
59000  PyObject *__pyx_r = 0;
59001  __Pyx_RefNannyDeclarations
59002  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
59003  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
59004 
59005  /* function exit code */
59006  __Pyx_RefNannyFinishContext();
59007  return __pyx_r;
59008 }
59009 
59010 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
59011  PyObject *__pyx_v_result = NULL;
59012  PyObject *__pyx_v_length = NULL;
59013  PyObject *__pyx_r = NULL;
59014  __Pyx_TraceDeclarations
59015  __Pyx_RefNannyDeclarations
59016  int __pyx_t_1;
59017  int __pyx_t_2;
59018  Py_ssize_t *__pyx_t_3;
59019  Py_ssize_t *__pyx_t_4;
59020  Py_ssize_t *__pyx_t_5;
59021  PyObject *__pyx_t_6 = NULL;
59022  int __pyx_lineno = 0;
59023  const char *__pyx_filename = NULL;
59024  int __pyx_clineno = 0;
59025  __Pyx_RefNannySetupContext("__get__", 0);
59026  __Pyx_TraceCall("__get__", __pyx_f[1], 594, 0, __PYX_ERR(1, 594, __pyx_L1_error));
59027 
59028  /* "View.MemoryView":595
59029  * @property
59030  * def size(self):
59031  * if self._size is None: # <<<<<<<<<<<<<<
59032  * result = 1
59033  *
59034  */
59035  __pyx_t_1 = (__pyx_v_self->_size == Py_None);
59036  __pyx_t_2 = (__pyx_t_1 != 0);
59037  if (__pyx_t_2) {
59038 
59039  /* "View.MemoryView":596
59040  * def size(self):
59041  * if self._size is None:
59042  * result = 1 # <<<<<<<<<<<<<<
59043  *
59044  * for length in self.view.shape[:self.view.ndim]:
59045  */
59046  __Pyx_INCREF(__pyx_int_1);
59047  __pyx_v_result = __pyx_int_1;
59048 
59049  /* "View.MemoryView":598
59050  * result = 1
59051  *
59052  * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<<
59053  * result *= length
59054  *
59055  */
59056  __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
59057  for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
59058  __pyx_t_3 = __pyx_t_5;
59059  __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 598, __pyx_L1_error)
59060  __Pyx_GOTREF(__pyx_t_6);
59061  __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6);
59062  __pyx_t_6 = 0;
59063 
59064  /* "View.MemoryView":599
59065  *
59066  * for length in self.view.shape[:self.view.ndim]:
59067  * result *= length # <<<<<<<<<<<<<<
59068  *
59069  * self._size = result
59070  */
59071  __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 599, __pyx_L1_error)
59072  __Pyx_GOTREF(__pyx_t_6);
59073  __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6);
59074  __pyx_t_6 = 0;
59075  }
59076 
59077  /* "View.MemoryView":601
59078  * result *= length
59079  *
59080  * self._size = result # <<<<<<<<<<<<<<
59081  *
59082  * return self._size
59083  */
59084  __Pyx_INCREF(__pyx_v_result);
59085  __Pyx_GIVEREF(__pyx_v_result);
59086  __Pyx_GOTREF(__pyx_v_self->_size);
59087  __Pyx_DECREF(__pyx_v_self->_size);
59088  __pyx_v_self->_size = __pyx_v_result;
59089 
59090  /* "View.MemoryView":595
59091  * @property
59092  * def size(self):
59093  * if self._size is None: # <<<<<<<<<<<<<<
59094  * result = 1
59095  *
59096  */
59097  }
59098 
59099  /* "View.MemoryView":603
59100  * self._size = result
59101  *
59102  * return self._size # <<<<<<<<<<<<<<
59103  *
59104  * def __len__(self):
59105  */
59106  __Pyx_XDECREF(__pyx_r);
59107  __Pyx_INCREF(__pyx_v_self->_size);
59108  __pyx_r = __pyx_v_self->_size;
59109  goto __pyx_L0;
59110 
59111  /* "View.MemoryView":594
59112  *
59113  * @property
59114  * def size(self): # <<<<<<<<<<<<<<
59115  * if self._size is None:
59116  * result = 1
59117  */
59118 
59119  /* function exit code */
59120  __pyx_L1_error:;
59121  __Pyx_XDECREF(__pyx_t_6);
59122  __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59123  __pyx_r = NULL;
59124  __pyx_L0:;
59125  __Pyx_XDECREF(__pyx_v_result);
59126  __Pyx_XDECREF(__pyx_v_length);
59127  __Pyx_XGIVEREF(__pyx_r);
59128  __Pyx_TraceReturn(__pyx_r, 0);
59129  __Pyx_RefNannyFinishContext();
59130  return __pyx_r;
59131 }
59132 
59133 /* "View.MemoryView":605
59134  * return self._size
59135  *
59136  * def __len__(self): # <<<<<<<<<<<<<<
59137  * if self.view.ndim >= 1:
59138  * return self.view.shape[0]
59139  */
59140 
59141 /* Python wrapper */
59142 static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/
59143 static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) {
59144  Py_ssize_t __pyx_r;
59145  __Pyx_RefNannyDeclarations
59146  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
59147  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self));
59148 
59149  /* function exit code */
59150  __Pyx_RefNannyFinishContext();
59151  return __pyx_r;
59152 }
59153 
59154 static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) {
59155  Py_ssize_t __pyx_r;
59156  __Pyx_TraceDeclarations
59157  __Pyx_RefNannyDeclarations
59158  int __pyx_t_1;
59159  int __pyx_lineno = 0;
59160  const char *__pyx_filename = NULL;
59161  int __pyx_clineno = 0;
59162  __Pyx_RefNannySetupContext("__len__", 0);
59163  __Pyx_TraceCall("__len__", __pyx_f[1], 605, 0, __PYX_ERR(1, 605, __pyx_L1_error));
59164 
59165  /* "View.MemoryView":606
59166  *
59167  * def __len__(self):
59168  * if self.view.ndim >= 1: # <<<<<<<<<<<<<<
59169  * return self.view.shape[0]
59170  *
59171  */
59172  __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0);
59173  if (__pyx_t_1) {
59174 
59175  /* "View.MemoryView":607
59176  * def __len__(self):
59177  * if self.view.ndim >= 1:
59178  * return self.view.shape[0] # <<<<<<<<<<<<<<
59179  *
59180  * return 0
59181  */
59182  __pyx_r = (__pyx_v_self->view.shape[0]);
59183  goto __pyx_L0;
59184 
59185  /* "View.MemoryView":606
59186  *
59187  * def __len__(self):
59188  * if self.view.ndim >= 1: # <<<<<<<<<<<<<<
59189  * return self.view.shape[0]
59190  *
59191  */
59192  }
59193 
59194  /* "View.MemoryView":609
59195  * return self.view.shape[0]
59196  *
59197  * return 0 # <<<<<<<<<<<<<<
59198  *
59199  * def __repr__(self):
59200  */
59201  __pyx_r = 0;
59202  goto __pyx_L0;
59203 
59204  /* "View.MemoryView":605
59205  * return self._size
59206  *
59207  * def __len__(self): # <<<<<<<<<<<<<<
59208  * if self.view.ndim >= 1:
59209  * return self.view.shape[0]
59210  */
59211 
59212  /* function exit code */
59213  __pyx_L1_error:;
59214  __Pyx_AddTraceback("View.MemoryView.memoryview.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59215  __pyx_r = -1;
59216  __pyx_L0:;
59217  __Pyx_TraceReturn(Py_None, 0);
59218  __Pyx_RefNannyFinishContext();
59219  return __pyx_r;
59220 }
59221 
59222 /* "View.MemoryView":611
59223  * return 0
59224  *
59225  * def __repr__(self): # <<<<<<<<<<<<<<
59226  * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
59227  * id(self))
59228  */
59229 
59230 /* Python wrapper */
59231 static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/
59232 static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) {
59233  PyObject *__pyx_r = 0;
59234  __Pyx_RefNannyDeclarations
59235  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
59236  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self));
59237 
59238  /* function exit code */
59239  __Pyx_RefNannyFinishContext();
59240  return __pyx_r;
59241 }
59242 
59243 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) {
59244  PyObject *__pyx_r = NULL;
59245  __Pyx_TraceDeclarations
59246  __Pyx_RefNannyDeclarations
59247  PyObject *__pyx_t_1 = NULL;
59248  PyObject *__pyx_t_2 = NULL;
59249  PyObject *__pyx_t_3 = NULL;
59250  int __pyx_lineno = 0;
59251  const char *__pyx_filename = NULL;
59252  int __pyx_clineno = 0;
59253  __Pyx_RefNannySetupContext("__repr__", 0);
59254  __Pyx_TraceCall("__repr__", __pyx_f[1], 611, 0, __PYX_ERR(1, 611, __pyx_L1_error));
59255 
59256  /* "View.MemoryView":612
59257  *
59258  * def __repr__(self):
59259  * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__, # <<<<<<<<<<<<<<
59260  * id(self))
59261  *
59262  */
59263  __Pyx_XDECREF(__pyx_r);
59264  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 612, __pyx_L1_error)
59265  __Pyx_GOTREF(__pyx_t_1);
59266  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error)
59267  __Pyx_GOTREF(__pyx_t_2);
59268  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59269  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 612, __pyx_L1_error)
59270  __Pyx_GOTREF(__pyx_t_1);
59271  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
59272 
59273  /* "View.MemoryView":613
59274  * def __repr__(self):
59275  * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
59276  * id(self)) # <<<<<<<<<<<<<<
59277  *
59278  * def __str__(self):
59279  */
59280  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 613, __pyx_L1_error)
59281  __Pyx_GOTREF(__pyx_t_2);
59282 
59283  /* "View.MemoryView":612
59284  *
59285  * def __repr__(self):
59286  * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__, # <<<<<<<<<<<<<<
59287  * id(self))
59288  *
59289  */
59290  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 612, __pyx_L1_error)
59291  __Pyx_GOTREF(__pyx_t_3);
59292  __Pyx_GIVEREF(__pyx_t_1);
59293  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
59294  __Pyx_GIVEREF(__pyx_t_2);
59295  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
59296  __pyx_t_1 = 0;
59297  __pyx_t_2 = 0;
59298  __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error)
59299  __Pyx_GOTREF(__pyx_t_2);
59300  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
59301  __pyx_r = __pyx_t_2;
59302  __pyx_t_2 = 0;
59303  goto __pyx_L0;
59304 
59305  /* "View.MemoryView":611
59306  * return 0
59307  *
59308  * def __repr__(self): # <<<<<<<<<<<<<<
59309  * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
59310  * id(self))
59311  */
59312 
59313  /* function exit code */
59314  __pyx_L1_error:;
59315  __Pyx_XDECREF(__pyx_t_1);
59316  __Pyx_XDECREF(__pyx_t_2);
59317  __Pyx_XDECREF(__pyx_t_3);
59318  __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59319  __pyx_r = NULL;
59320  __pyx_L0:;
59321  __Pyx_XGIVEREF(__pyx_r);
59322  __Pyx_TraceReturn(__pyx_r, 0);
59323  __Pyx_RefNannyFinishContext();
59324  return __pyx_r;
59325 }
59326 
59327 /* "View.MemoryView":615
59328  * id(self))
59329  *
59330  * def __str__(self): # <<<<<<<<<<<<<<
59331  * return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
59332  *
59333  */
59334 
59335 /* Python wrapper */
59336 static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/
59337 static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) {
59338  PyObject *__pyx_r = 0;
59339  __Pyx_RefNannyDeclarations
59340  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
59341  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self));
59342 
59343  /* function exit code */
59344  __Pyx_RefNannyFinishContext();
59345  return __pyx_r;
59346 }
59347 
59348 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) {
59349  PyObject *__pyx_r = NULL;
59350  __Pyx_TraceDeclarations
59351  __Pyx_RefNannyDeclarations
59352  PyObject *__pyx_t_1 = NULL;
59353  PyObject *__pyx_t_2 = NULL;
59354  int __pyx_lineno = 0;
59355  const char *__pyx_filename = NULL;
59356  int __pyx_clineno = 0;
59357  __Pyx_RefNannySetupContext("__str__", 0);
59358  __Pyx_TraceCall("__str__", __pyx_f[1], 615, 0, __PYX_ERR(1, 615, __pyx_L1_error));
59359 
59360  /* "View.MemoryView":616
59361  *
59362  * def __str__(self):
59363  * return "<MemoryView of %r object>" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<<
59364  *
59365  *
59366  */
59367  __Pyx_XDECREF(__pyx_r);
59368  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error)
59369  __Pyx_GOTREF(__pyx_t_1);
59370  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 616, __pyx_L1_error)
59371  __Pyx_GOTREF(__pyx_t_2);
59372  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59373  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error)
59374  __Pyx_GOTREF(__pyx_t_1);
59375  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
59376  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 616, __pyx_L1_error)
59377  __Pyx_GOTREF(__pyx_t_2);
59378  __Pyx_GIVEREF(__pyx_t_1);
59379  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
59380  __pyx_t_1 = 0;
59381  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error)
59382  __Pyx_GOTREF(__pyx_t_1);
59383  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
59384  __pyx_r = __pyx_t_1;
59385  __pyx_t_1 = 0;
59386  goto __pyx_L0;
59387 
59388  /* "View.MemoryView":615
59389  * id(self))
59390  *
59391  * def __str__(self): # <<<<<<<<<<<<<<
59392  * return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
59393  *
59394  */
59395 
59396  /* function exit code */
59397  __pyx_L1_error:;
59398  __Pyx_XDECREF(__pyx_t_1);
59399  __Pyx_XDECREF(__pyx_t_2);
59400  __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59401  __pyx_r = NULL;
59402  __pyx_L0:;
59403  __Pyx_XGIVEREF(__pyx_r);
59404  __Pyx_TraceReturn(__pyx_r, 0);
59405  __Pyx_RefNannyFinishContext();
59406  return __pyx_r;
59407 }
59408 
59409 /* "View.MemoryView":619
59410  *
59411  *
59412  * def is_c_contig(self): # <<<<<<<<<<<<<<
59413  * cdef __Pyx_memviewslice *mslice
59414  * cdef __Pyx_memviewslice tmp
59415  */
59416 
59417 /* Python wrapper */
59418 static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
59419 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_10memoryview_17is_c_contig = {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0};
59420 static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
59421  PyObject *__pyx_r = 0;
59422  __Pyx_RefNannyDeclarations
59423  __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0);
59424  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
59425 
59426  /* function exit code */
59427  __Pyx_RefNannyFinishContext();
59428  return __pyx_r;
59429 }
59430 
59431 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
59432  __Pyx_memviewslice *__pyx_v_mslice;
59433  __Pyx_memviewslice __pyx_v_tmp;
59434  PyObject *__pyx_r = NULL;
59435  __Pyx_TraceDeclarations
59436  __Pyx_RefNannyDeclarations
59437  __Pyx_memviewslice *__pyx_t_1;
59438  PyObject *__pyx_t_2 = NULL;
59439  int __pyx_lineno = 0;
59440  const char *__pyx_filename = NULL;
59441  int __pyx_clineno = 0;
59442  __Pyx_RefNannySetupContext("is_c_contig", 0);
59443  __Pyx_TraceCall("is_c_contig", __pyx_f[1], 619, 0, __PYX_ERR(1, 619, __pyx_L1_error));
59444 
59445  /* "View.MemoryView":622
59446  * cdef __Pyx_memviewslice *mslice
59447  * cdef __Pyx_memviewslice tmp
59448  * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<<
59449  * return slice_is_contig(mslice[0], 'C', self.view.ndim)
59450  *
59451  */
59452  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 622, __pyx_L1_error)
59453  __pyx_v_mslice = __pyx_t_1;
59454 
59455  /* "View.MemoryView":623
59456  * cdef __Pyx_memviewslice tmp
59457  * mslice = get_slice_from_memview(self, &tmp)
59458  * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<<
59459  *
59460  * def is_f_contig(self):
59461  */
59462  __Pyx_XDECREF(__pyx_r);
59463  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error)
59464  __Pyx_GOTREF(__pyx_t_2);
59465  __pyx_r = __pyx_t_2;
59466  __pyx_t_2 = 0;
59467  goto __pyx_L0;
59468 
59469  /* "View.MemoryView":619
59470  *
59471  *
59472  * def is_c_contig(self): # <<<<<<<<<<<<<<
59473  * cdef __Pyx_memviewslice *mslice
59474  * cdef __Pyx_memviewslice tmp
59475  */
59476 
59477  /* function exit code */
59478  __pyx_L1_error:;
59479  __Pyx_XDECREF(__pyx_t_2);
59480  __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
59481  __pyx_r = NULL;
59482  __pyx_L0:;
59483  __Pyx_XGIVEREF(__pyx_r);
59484  __Pyx_TraceReturn(__pyx_r, 0);
59485  __Pyx_RefNannyFinishContext();
59486  return __pyx_r;
59487 }
59488 
59489 /* "View.MemoryView":625
59490  * return slice_is_contig(mslice[0], 'C', self.view.ndim)
59491  *
59492  * def is_f_contig(self): # <<<<<<<<<<<<<<
59493  * cdef __Pyx_memviewslice *mslice
59494  * cdef __Pyx_memviewslice tmp
59495  */
59496 
59497 /* Python wrapper */
59498 static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
59499 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_10memoryview_19is_f_contig = {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0};
59500 static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
59501  PyObject *__pyx_r = 0;
59502  __Pyx_RefNannyDeclarations
59503  __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0);
59504  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
59505 
59506  /* function exit code */
59507  __Pyx_RefNannyFinishContext();
59508  return __pyx_r;
59509 }
59510 
59511 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
59512  __Pyx_memviewslice *__pyx_v_mslice;
59513  __Pyx_memviewslice __pyx_v_tmp;
59514  PyObject *__pyx_r = NULL;
59515  __Pyx_TraceDeclarations
59516  __Pyx_RefNannyDeclarations
59517  __Pyx_memviewslice *__pyx_t_1;
59518  PyObject *__pyx_t_2 = NULL;
59519  int __pyx_lineno = 0;
59520  const char *__pyx_filename = NULL;
59521  int __pyx_clineno = 0;
59522  __Pyx_RefNannySetupContext("is_f_contig", 0);
59523  __Pyx_TraceCall("is_f_contig", __pyx_f[1], 625, 0, __PYX_ERR(1, 625, __pyx_L1_error));
59524 
59525  /* "View.MemoryView":628
59526  * cdef __Pyx_memviewslice *mslice
59527  * cdef __Pyx_memviewslice tmp
59528  * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<<
59529  * return slice_is_contig(mslice[0], 'F', self.view.ndim)
59530  *
59531  */
59532  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 628, __pyx_L1_error)
59533  __pyx_v_mslice = __pyx_t_1;
59534 
59535  /* "View.MemoryView":629
59536  * cdef __Pyx_memviewslice tmp
59537  * mslice = get_slice_from_memview(self, &tmp)
59538  * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<<
59539  *
59540  * def copy(self):
59541  */
59542  __Pyx_XDECREF(__pyx_r);
59543  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 629, __pyx_L1_error)
59544  __Pyx_GOTREF(__pyx_t_2);
59545  __pyx_r = __pyx_t_2;
59546  __pyx_t_2 = 0;
59547  goto __pyx_L0;
59548 
59549  /* "View.MemoryView":625
59550  * return slice_is_contig(mslice[0], 'C', self.view.ndim)
59551  *
59552  * def is_f_contig(self): # <<<<<<<<<<<<<<
59553  * cdef __Pyx_memviewslice *mslice
59554  * cdef __Pyx_memviewslice tmp
59555  */
59556 
59557  /* function exit code */
59558  __pyx_L1_error:;
59559  __Pyx_XDECREF(__pyx_t_2);
59560  __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
59561  __pyx_r = NULL;
59562  __pyx_L0:;
59563  __Pyx_XGIVEREF(__pyx_r);
59564  __Pyx_TraceReturn(__pyx_r, 0);
59565  __Pyx_RefNannyFinishContext();
59566  return __pyx_r;
59567 }
59568 
59569 /* "View.MemoryView":631
59570  * return slice_is_contig(mslice[0], 'F', self.view.ndim)
59571  *
59572  * def copy(self): # <<<<<<<<<<<<<<
59573  * cdef __Pyx_memviewslice mslice
59574  * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
59575  */
59576 
59577 /* Python wrapper */
59578 static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
59579 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_10memoryview_21copy = {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0};
59580 static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
59581  PyObject *__pyx_r = 0;
59582  __Pyx_RefNannyDeclarations
59583  __Pyx_RefNannySetupContext("copy (wrapper)", 0);
59584  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self));
59585 
59586  /* function exit code */
59587  __Pyx_RefNannyFinishContext();
59588  return __pyx_r;
59589 }
59590 
59591 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) {
59592  __Pyx_memviewslice __pyx_v_mslice;
59593  int __pyx_v_flags;
59594  PyObject *__pyx_r = NULL;
59595  __Pyx_TraceDeclarations
59596  __Pyx_RefNannyDeclarations
59597  __Pyx_memviewslice __pyx_t_1;
59598  PyObject *__pyx_t_2 = NULL;
59599  int __pyx_lineno = 0;
59600  const char *__pyx_filename = NULL;
59601  int __pyx_clineno = 0;
59602  __Pyx_RefNannySetupContext("copy", 0);
59603  __Pyx_TraceCall("copy", __pyx_f[1], 631, 0, __PYX_ERR(1, 631, __pyx_L1_error));
59604 
59605  /* "View.MemoryView":633
59606  * def copy(self):
59607  * cdef __Pyx_memviewslice mslice
59608  * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<<
59609  *
59610  * slice_copy(self, &mslice)
59611  */
59612  __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS));
59613 
59614  /* "View.MemoryView":635
59615  * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
59616  *
59617  * slice_copy(self, &mslice) # <<<<<<<<<<<<<<
59618  * mslice = slice_copy_contig(&mslice, "c", self.view.ndim,
59619  * self.view.itemsize,
59620  */
59621  __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice));
59622 
59623  /* "View.MemoryView":636
59624  *
59625  * slice_copy(self, &mslice)
59626  * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<<
59627  * self.view.itemsize,
59628  * flags|PyBUF_C_CONTIGUOUS,
59629  */
59630  __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 636, __pyx_L1_error)
59631  __pyx_v_mslice = __pyx_t_1;
59632 
59633  /* "View.MemoryView":641
59634  * self.dtype_is_object)
59635  *
59636  * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<<
59637  *
59638  * def copy_fortran(self):
59639  */
59640  __Pyx_XDECREF(__pyx_r);
59641  __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 641, __pyx_L1_error)
59642  __Pyx_GOTREF(__pyx_t_2);
59643  __pyx_r = __pyx_t_2;
59644  __pyx_t_2 = 0;
59645  goto __pyx_L0;
59646 
59647  /* "View.MemoryView":631
59648  * return slice_is_contig(mslice[0], 'F', self.view.ndim)
59649  *
59650  * def copy(self): # <<<<<<<<<<<<<<
59651  * cdef __Pyx_memviewslice mslice
59652  * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
59653  */
59654 
59655  /* function exit code */
59656  __pyx_L1_error:;
59657  __Pyx_XDECREF(__pyx_t_2);
59658  __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
59659  __pyx_r = NULL;
59660  __pyx_L0:;
59661  __Pyx_XGIVEREF(__pyx_r);
59662  __Pyx_TraceReturn(__pyx_r, 0);
59663  __Pyx_RefNannyFinishContext();
59664  return __pyx_r;
59665 }
59666 
59667 /* "View.MemoryView":643
59668  * return memoryview_copy_from_slice(self, &mslice)
59669  *
59670  * def copy_fortran(self): # <<<<<<<<<<<<<<
59671  * cdef __Pyx_memviewslice src, dst
59672  * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
59673  */
59674 
59675 /* Python wrapper */
59676 static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
59677 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_10memoryview_23copy_fortran = {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0};
59678 static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
59679  PyObject *__pyx_r = 0;
59680  __Pyx_RefNannyDeclarations
59681  __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0);
59682  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self));
59683 
59684  /* function exit code */
59685  __Pyx_RefNannyFinishContext();
59686  return __pyx_r;
59687 }
59688 
59689 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) {
59690  __Pyx_memviewslice __pyx_v_src;
59691  __Pyx_memviewslice __pyx_v_dst;
59692  int __pyx_v_flags;
59693  PyObject *__pyx_r = NULL;
59694  __Pyx_TraceDeclarations
59695  __Pyx_RefNannyDeclarations
59696  __Pyx_memviewslice __pyx_t_1;
59697  PyObject *__pyx_t_2 = NULL;
59698  int __pyx_lineno = 0;
59699  const char *__pyx_filename = NULL;
59700  int __pyx_clineno = 0;
59701  __Pyx_RefNannySetupContext("copy_fortran", 0);
59702  __Pyx_TraceCall("copy_fortran", __pyx_f[1], 643, 0, __PYX_ERR(1, 643, __pyx_L1_error));
59703 
59704  /* "View.MemoryView":645
59705  * def copy_fortran(self):
59706  * cdef __Pyx_memviewslice src, dst
59707  * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<<
59708  *
59709  * slice_copy(self, &src)
59710  */
59711  __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS));
59712 
59713  /* "View.MemoryView":647
59714  * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
59715  *
59716  * slice_copy(self, &src) # <<<<<<<<<<<<<<
59717  * dst = slice_copy_contig(&src, "fortran", self.view.ndim,
59718  * self.view.itemsize,
59719  */
59720  __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src));
59721 
59722  /* "View.MemoryView":648
59723  *
59724  * slice_copy(self, &src)
59725  * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<<
59726  * self.view.itemsize,
59727  * flags|PyBUF_F_CONTIGUOUS,
59728  */
59729  __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 648, __pyx_L1_error)
59730  __pyx_v_dst = __pyx_t_1;
59731 
59732  /* "View.MemoryView":653
59733  * self.dtype_is_object)
59734  *
59735  * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<<
59736  *
59737  *
59738  */
59739  __Pyx_XDECREF(__pyx_r);
59740  __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 653, __pyx_L1_error)
59741  __Pyx_GOTREF(__pyx_t_2);
59742  __pyx_r = __pyx_t_2;
59743  __pyx_t_2 = 0;
59744  goto __pyx_L0;
59745 
59746  /* "View.MemoryView":643
59747  * return memoryview_copy_from_slice(self, &mslice)
59748  *
59749  * def copy_fortran(self): # <<<<<<<<<<<<<<
59750  * cdef __Pyx_memviewslice src, dst
59751  * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
59752  */
59753 
59754  /* function exit code */
59755  __pyx_L1_error:;
59756  __Pyx_XDECREF(__pyx_t_2);
59757  __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename);
59758  __pyx_r = NULL;
59759  __pyx_L0:;
59760  __Pyx_XGIVEREF(__pyx_r);
59761  __Pyx_TraceReturn(__pyx_r, 0);
59762  __Pyx_RefNannyFinishContext();
59763  return __pyx_r;
59764 }
59765 
59766 /* "(tree fragment)":1
59767  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
59768  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59769  * def __setstate_cython__(self, __pyx_state):
59770  */
59771 
59772 /* Python wrapper */
59773 static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
59774 static PyMethodDef __pyx_mdef___pyx_memoryview_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0};
59775 static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
59776  PyObject *__pyx_r = 0;
59777  __Pyx_RefNannyDeclarations
59778  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
59779  __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self));
59780 
59781  /* function exit code */
59782  __Pyx_RefNannyFinishContext();
59783  return __pyx_r;
59784 }
59785 
59786 static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) {
59787  PyObject *__pyx_r = NULL;
59788  __Pyx_TraceDeclarations
59789  __Pyx_RefNannyDeclarations
59790  PyObject *__pyx_t_1 = NULL;
59791  int __pyx_lineno = 0;
59792  const char *__pyx_filename = NULL;
59793  int __pyx_clineno = 0;
59794  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
59795  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
59796 
59797  /* "(tree fragment)":2
59798  * def __reduce_cython__(self):
59799  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
59800  * def __setstate_cython__(self, __pyx_state):
59801  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59802  */
59803  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__157, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
59804  __Pyx_GOTREF(__pyx_t_1);
59805  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
59806  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59807  __PYX_ERR(1, 2, __pyx_L1_error)
59808 
59809  /* "(tree fragment)":1
59810  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
59811  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59812  * def __setstate_cython__(self, __pyx_state):
59813  */
59814 
59815  /* function exit code */
59816  __pyx_L1_error:;
59817  __Pyx_XDECREF(__pyx_t_1);
59818  __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59819  __pyx_r = NULL;
59820  __Pyx_XGIVEREF(__pyx_r);
59821  __Pyx_TraceReturn(__pyx_r, 0);
59822  __Pyx_RefNannyFinishContext();
59823  return __pyx_r;
59824 }
59825 
59826 /* "(tree fragment)":3
59827  * def __reduce_cython__(self):
59828  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59829  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
59830  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59831  */
59832 
59833 /* Python wrapper */
59834 static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
59835 static PyMethodDef __pyx_mdef___pyx_memoryview_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0};
59836 static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
59837  PyObject *__pyx_r = 0;
59838  __Pyx_RefNannyDeclarations
59839  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
59840  __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
59841 
59842  /* function exit code */
59843  __Pyx_RefNannyFinishContext();
59844  return __pyx_r;
59845 }
59846 
59847 static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
59848  PyObject *__pyx_r = NULL;
59849  __Pyx_TraceDeclarations
59850  __Pyx_RefNannyDeclarations
59851  PyObject *__pyx_t_1 = NULL;
59852  int __pyx_lineno = 0;
59853  const char *__pyx_filename = NULL;
59854  int __pyx_clineno = 0;
59855  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
59856  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));
59857 
59858  /* "(tree fragment)":4
59859  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59860  * def __setstate_cython__(self, __pyx_state):
59861  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
59862  */
59863  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__158, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
59864  __Pyx_GOTREF(__pyx_t_1);
59865  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
59866  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59867  __PYX_ERR(1, 4, __pyx_L1_error)
59868 
59869  /* "(tree fragment)":3
59870  * def __reduce_cython__(self):
59871  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59872  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
59873  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
59874  */
59875 
59876  /* function exit code */
59877  __pyx_L1_error:;
59878  __Pyx_XDECREF(__pyx_t_1);
59879  __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
59880  __pyx_r = NULL;
59881  __Pyx_XGIVEREF(__pyx_r);
59882  __Pyx_TraceReturn(__pyx_r, 0);
59883  __Pyx_RefNannyFinishContext();
59884  return __pyx_r;
59885 }
59886 
59887 /* "View.MemoryView":657
59888  *
59889  * @cname('__pyx_memoryview_new')
59890  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<<
59891  * cdef memoryview result = memoryview(o, flags, dtype_is_object)
59892  * result.typeinfo = typeinfo
59893  */
59894 
59895 static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) {
59896  struct __pyx_memoryview_obj *__pyx_v_result = 0;
59897  PyObject *__pyx_r = NULL;
59898  __Pyx_TraceDeclarations
59899  __Pyx_RefNannyDeclarations
59900  PyObject *__pyx_t_1 = NULL;
59901  PyObject *__pyx_t_2 = NULL;
59902  PyObject *__pyx_t_3 = NULL;
59903  int __pyx_lineno = 0;
59904  const char *__pyx_filename = NULL;
59905  int __pyx_clineno = 0;
59906  __Pyx_RefNannySetupContext("memoryview_cwrapper", 0);
59907  __Pyx_TraceCall("memoryview_cwrapper", __pyx_f[1], 657, 0, __PYX_ERR(1, 657, __pyx_L1_error));
59908 
59909  /* "View.MemoryView":658
59910  * @cname('__pyx_memoryview_new')
59911  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
59912  * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<<
59913  * result.typeinfo = typeinfo
59914  * return result
59915  */
59916  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 658, __pyx_L1_error)
59917  __Pyx_GOTREF(__pyx_t_1);
59918  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error)
59919  __Pyx_GOTREF(__pyx_t_2);
59920  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 658, __pyx_L1_error)
59921  __Pyx_GOTREF(__pyx_t_3);
59922  __Pyx_INCREF(__pyx_v_o);
59923  __Pyx_GIVEREF(__pyx_v_o);
59924  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o);
59925  __Pyx_GIVEREF(__pyx_t_1);
59926  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
59927  __Pyx_GIVEREF(__pyx_t_2);
59928  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
59929  __pyx_t_1 = 0;
59930  __pyx_t_2 = 0;
59931  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error)
59932  __Pyx_GOTREF(__pyx_t_2);
59933  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
59934  __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2);
59935  __pyx_t_2 = 0;
59936 
59937  /* "View.MemoryView":659
59938  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
59939  * cdef memoryview result = memoryview(o, flags, dtype_is_object)
59940  * result.typeinfo = typeinfo # <<<<<<<<<<<<<<
59941  * return result
59942  *
59943  */
59944  __pyx_v_result->typeinfo = __pyx_v_typeinfo;
59945 
59946  /* "View.MemoryView":660
59947  * cdef memoryview result = memoryview(o, flags, dtype_is_object)
59948  * result.typeinfo = typeinfo
59949  * return result # <<<<<<<<<<<<<<
59950  *
59951  * @cname('__pyx_memoryview_check')
59952  */
59953  __Pyx_XDECREF(__pyx_r);
59954  __Pyx_INCREF(((PyObject *)__pyx_v_result));
59955  __pyx_r = ((PyObject *)__pyx_v_result);
59956  goto __pyx_L0;
59957 
59958  /* "View.MemoryView":657
59959  *
59960  * @cname('__pyx_memoryview_new')
59961  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<<
59962  * cdef memoryview result = memoryview(o, flags, dtype_is_object)
59963  * result.typeinfo = typeinfo
59964  */
59965 
59966  /* function exit code */
59967  __pyx_L1_error:;
59968  __Pyx_XDECREF(__pyx_t_1);
59969  __Pyx_XDECREF(__pyx_t_2);
59970  __Pyx_XDECREF(__pyx_t_3);
59971  __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
59972  __pyx_r = 0;
59973  __pyx_L0:;
59974  __Pyx_XDECREF((PyObject *)__pyx_v_result);
59975  __Pyx_XGIVEREF(__pyx_r);
59976  __Pyx_TraceReturn(__pyx_r, 0);
59977  __Pyx_RefNannyFinishContext();
59978  return __pyx_r;
59979 }
59980 
59981 /* "View.MemoryView":663
59982  *
59983  * @cname('__pyx_memoryview_check')
59984  * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<<
59985  * return isinstance(o, memoryview)
59986  *
59987  */
59988 
59989 static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) {
59990  int __pyx_r;
59991  __Pyx_TraceDeclarations
59992  __Pyx_RefNannyDeclarations
59993  int __pyx_t_1;
59994  int __pyx_lineno = 0;
59995  const char *__pyx_filename = NULL;
59996  int __pyx_clineno = 0;
59997  __Pyx_RefNannySetupContext("memoryview_check", 0);
59998  __Pyx_TraceCall("memoryview_check", __pyx_f[1], 663, 0, __PYX_ERR(1, 663, __pyx_L1_error));
59999 
60000  /* "View.MemoryView":664
60001  * @cname('__pyx_memoryview_check')
60002  * cdef inline bint memoryview_check(object o):
60003  * return isinstance(o, memoryview) # <<<<<<<<<<<<<<
60004  *
60005  * cdef tuple _unellipsify(object index, int ndim):
60006  */
60007  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type);
60008  __pyx_r = __pyx_t_1;
60009  goto __pyx_L0;
60010 
60011  /* "View.MemoryView":663
60012  *
60013  * @cname('__pyx_memoryview_check')
60014  * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<<
60015  * return isinstance(o, memoryview)
60016  *
60017  */
60018 
60019  /* function exit code */
60020  __pyx_L1_error:;
60021  __Pyx_WriteUnraisable("View.MemoryView.memoryview_check", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
60022  __pyx_r = 0;
60023  __pyx_L0:;
60024  __Pyx_TraceReturn(Py_None, 0);
60025  __Pyx_RefNannyFinishContext();
60026  return __pyx_r;
60027 }
60028 
60029 /* "View.MemoryView":666
60030  * return isinstance(o, memoryview)
60031  *
60032  * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<<
60033  * """
60034  * Replace all ellipses with full slices and fill incomplete indices with
60035  */
60036 
60037 static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) {
60038  PyObject *__pyx_v_tup = NULL;
60039  PyObject *__pyx_v_result = NULL;
60040  int __pyx_v_have_slices;
60041  int __pyx_v_seen_ellipsis;
60042  CYTHON_UNUSED PyObject *__pyx_v_idx = NULL;
60043  PyObject *__pyx_v_item = NULL;
60044  Py_ssize_t __pyx_v_nslices;
60045  PyObject *__pyx_r = NULL;
60046  __Pyx_TraceDeclarations
60047  __Pyx_RefNannyDeclarations
60048  int __pyx_t_1;
60049  int __pyx_t_2;
60050  PyObject *__pyx_t_3 = NULL;
60051  PyObject *__pyx_t_4 = NULL;
60052  Py_ssize_t __pyx_t_5;
60053  PyObject *(*__pyx_t_6)(PyObject *);
60054  PyObject *__pyx_t_7 = NULL;
60055  Py_ssize_t __pyx_t_8;
60056  int __pyx_t_9;
60057  int __pyx_t_10;
60058  PyObject *__pyx_t_11 = NULL;
60059  int __pyx_lineno = 0;
60060  const char *__pyx_filename = NULL;
60061  int __pyx_clineno = 0;
60062  __Pyx_RefNannySetupContext("_unellipsify", 0);
60063  __Pyx_TraceCall("_unellipsify", __pyx_f[1], 666, 0, __PYX_ERR(1, 666, __pyx_L1_error));
60064 
60065  /* "View.MemoryView":671
60066  * full slices.
60067  * """
60068  * if not isinstance(index, tuple): # <<<<<<<<<<<<<<
60069  * tup = (index,)
60070  * else:
60071  */
60072  __pyx_t_1 = PyTuple_Check(__pyx_v_index);
60073  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
60074  if (__pyx_t_2) {
60075 
60076  /* "View.MemoryView":672
60077  * """
60078  * if not isinstance(index, tuple):
60079  * tup = (index,) # <<<<<<<<<<<<<<
60080  * else:
60081  * tup = index
60082  */
60083  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 672, __pyx_L1_error)
60084  __Pyx_GOTREF(__pyx_t_3);
60085  __Pyx_INCREF(__pyx_v_index);
60086  __Pyx_GIVEREF(__pyx_v_index);
60087  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index);
60088  __pyx_v_tup = __pyx_t_3;
60089  __pyx_t_3 = 0;
60090 
60091  /* "View.MemoryView":671
60092  * full slices.
60093  * """
60094  * if not isinstance(index, tuple): # <<<<<<<<<<<<<<
60095  * tup = (index,)
60096  * else:
60097  */
60098  goto __pyx_L3;
60099  }
60100 
60101  /* "View.MemoryView":674
60102  * tup = (index,)
60103  * else:
60104  * tup = index # <<<<<<<<<<<<<<
60105  *
60106  * result = []
60107  */
60108  /*else*/ {
60109  __Pyx_INCREF(__pyx_v_index);
60110  __pyx_v_tup = __pyx_v_index;
60111  }
60112  __pyx_L3:;
60113 
60114  /* "View.MemoryView":676
60115  * tup = index
60116  *
60117  * result = [] # <<<<<<<<<<<<<<
60118  * have_slices = False
60119  * seen_ellipsis = False
60120  */
60121  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 676, __pyx_L1_error)
60122  __Pyx_GOTREF(__pyx_t_3);
60123  __pyx_v_result = ((PyObject*)__pyx_t_3);
60124  __pyx_t_3 = 0;
60125 
60126  /* "View.MemoryView":677
60127  *
60128  * result = []
60129  * have_slices = False # <<<<<<<<<<<<<<
60130  * seen_ellipsis = False
60131  * for idx, item in enumerate(tup):
60132  */
60133  __pyx_v_have_slices = 0;
60134 
60135  /* "View.MemoryView":678
60136  * result = []
60137  * have_slices = False
60138  * seen_ellipsis = False # <<<<<<<<<<<<<<
60139  * for idx, item in enumerate(tup):
60140  * if item is Ellipsis:
60141  */
60142  __pyx_v_seen_ellipsis = 0;
60143 
60144  /* "View.MemoryView":679
60145  * have_slices = False
60146  * seen_ellipsis = False
60147  * for idx, item in enumerate(tup): # <<<<<<<<<<<<<<
60148  * if item is Ellipsis:
60149  * if not seen_ellipsis:
60150  */
60151  __Pyx_INCREF(__pyx_int_0);
60152  __pyx_t_3 = __pyx_int_0;
60153  if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) {
60154  __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
60155  __pyx_t_6 = NULL;
60156  } else {
60157  __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 679, __pyx_L1_error)
60158  __Pyx_GOTREF(__pyx_t_4);
60159  __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 679, __pyx_L1_error)
60160  }
60161  for (;;) {
60162  if (likely(!__pyx_t_6)) {
60163  if (likely(PyList_CheckExact(__pyx_t_4))) {
60164  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
60165  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
60166  __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 679, __pyx_L1_error)
60167  #else
60168  __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error)
60169  __Pyx_GOTREF(__pyx_t_7);
60170  #endif
60171  } else {
60172  if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
60173  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
60174  __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 679, __pyx_L1_error)
60175  #else
60176  __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error)
60177  __Pyx_GOTREF(__pyx_t_7);
60178  #endif
60179  }
60180  } else {
60181  __pyx_t_7 = __pyx_t_6(__pyx_t_4);
60182  if (unlikely(!__pyx_t_7)) {
60183  PyObject* exc_type = PyErr_Occurred();
60184  if (exc_type) {
60185  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
60186  else __PYX_ERR(1, 679, __pyx_L1_error)
60187  }
60188  break;
60189  }
60190  __Pyx_GOTREF(__pyx_t_7);
60191  }
60192  __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7);
60193  __pyx_t_7 = 0;
60194  __Pyx_INCREF(__pyx_t_3);
60195  __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3);
60196  __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error)
60197  __Pyx_GOTREF(__pyx_t_7);
60198  __Pyx_DECREF(__pyx_t_3);
60199  __pyx_t_3 = __pyx_t_7;
60200  __pyx_t_7 = 0;
60201 
60202  /* "View.MemoryView":680
60203  * seen_ellipsis = False
60204  * for idx, item in enumerate(tup):
60205  * if item is Ellipsis: # <<<<<<<<<<<<<<
60206  * if not seen_ellipsis:
60207  * result.extend([slice(None)] * (ndim - len(tup) + 1))
60208  */
60209  __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis);
60210  __pyx_t_1 = (__pyx_t_2 != 0);
60211  if (__pyx_t_1) {
60212 
60213  /* "View.MemoryView":681
60214  * for idx, item in enumerate(tup):
60215  * if item is Ellipsis:
60216  * if not seen_ellipsis: # <<<<<<<<<<<<<<
60217  * result.extend([slice(None)] * (ndim - len(tup) + 1))
60218  * seen_ellipsis = True
60219  */
60220  __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0);
60221  if (__pyx_t_1) {
60222 
60223  /* "View.MemoryView":682
60224  * if item is Ellipsis:
60225  * if not seen_ellipsis:
60226  * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<<
60227  * seen_ellipsis = True
60228  * else:
60229  */
60230  __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(1, 682, __pyx_L1_error)
60231  __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 682, __pyx_L1_error)
60232  __Pyx_GOTREF(__pyx_t_7);
60233  { Py_ssize_t __pyx_temp;
60234  for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) {
60235  __Pyx_INCREF(__pyx_slice__159);
60236  __Pyx_GIVEREF(__pyx_slice__159);
60237  PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__159);
60238  }
60239  }
60240  __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 682, __pyx_L1_error)
60241  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
60242 
60243  /* "View.MemoryView":683
60244  * if not seen_ellipsis:
60245  * result.extend([slice(None)] * (ndim - len(tup) + 1))
60246  * seen_ellipsis = True # <<<<<<<<<<<<<<
60247  * else:
60248  * result.append(slice(None))
60249  */
60250  __pyx_v_seen_ellipsis = 1;
60251 
60252  /* "View.MemoryView":681
60253  * for idx, item in enumerate(tup):
60254  * if item is Ellipsis:
60255  * if not seen_ellipsis: # <<<<<<<<<<<<<<
60256  * result.extend([slice(None)] * (ndim - len(tup) + 1))
60257  * seen_ellipsis = True
60258  */
60259  goto __pyx_L7;
60260  }
60261 
60262  /* "View.MemoryView":685
60263  * seen_ellipsis = True
60264  * else:
60265  * result.append(slice(None)) # <<<<<<<<<<<<<<
60266  * have_slices = True
60267  * else:
60268  */
60269  /*else*/ {
60270  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__159); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 685, __pyx_L1_error)
60271  }
60272  __pyx_L7:;
60273 
60274  /* "View.MemoryView":686
60275  * else:
60276  * result.append(slice(None))
60277  * have_slices = True # <<<<<<<<<<<<<<
60278  * else:
60279  * if not isinstance(item, slice) and not PyIndex_Check(item):
60280  */
60281  __pyx_v_have_slices = 1;
60282 
60283  /* "View.MemoryView":680
60284  * seen_ellipsis = False
60285  * for idx, item in enumerate(tup):
60286  * if item is Ellipsis: # <<<<<<<<<<<<<<
60287  * if not seen_ellipsis:
60288  * result.extend([slice(None)] * (ndim - len(tup) + 1))
60289  */
60290  goto __pyx_L6;
60291  }
60292 
60293  /* "View.MemoryView":688
60294  * have_slices = True
60295  * else:
60296  * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<<
60297  * raise TypeError("Cannot index with type '%s'" % type(item))
60298  *
60299  */
60300  /*else*/ {
60301  __pyx_t_2 = PySlice_Check(__pyx_v_item);
60302  __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0);
60303  if (__pyx_t_10) {
60304  } else {
60305  __pyx_t_1 = __pyx_t_10;
60306  goto __pyx_L9_bool_binop_done;
60307  }
60308  __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0);
60309  __pyx_t_1 = __pyx_t_10;
60310  __pyx_L9_bool_binop_done:;
60311  if (unlikely(__pyx_t_1)) {
60312 
60313  /* "View.MemoryView":689
60314  * else:
60315  * if not isinstance(item, slice) and not PyIndex_Check(item):
60316  * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<<
60317  *
60318  * have_slices = have_slices or isinstance(item, slice)
60319  */
60320  __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 689, __pyx_L1_error)
60321  __Pyx_GOTREF(__pyx_t_7);
60322  __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 689, __pyx_L1_error)
60323  __Pyx_GOTREF(__pyx_t_11);
60324  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
60325  __Pyx_Raise(__pyx_t_11, 0, 0, 0);
60326  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
60327  __PYX_ERR(1, 689, __pyx_L1_error)
60328 
60329  /* "View.MemoryView":688
60330  * have_slices = True
60331  * else:
60332  * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<<
60333  * raise TypeError("Cannot index with type '%s'" % type(item))
60334  *
60335  */
60336  }
60337 
60338  /* "View.MemoryView":691
60339  * raise TypeError("Cannot index with type '%s'" % type(item))
60340  *
60341  * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<<
60342  * result.append(item)
60343  *
60344  */
60345  __pyx_t_10 = (__pyx_v_have_slices != 0);
60346  if (!__pyx_t_10) {
60347  } else {
60348  __pyx_t_1 = __pyx_t_10;
60349  goto __pyx_L11_bool_binop_done;
60350  }
60351  __pyx_t_10 = PySlice_Check(__pyx_v_item);
60352  __pyx_t_2 = (__pyx_t_10 != 0);
60353  __pyx_t_1 = __pyx_t_2;
60354  __pyx_L11_bool_binop_done:;
60355  __pyx_v_have_slices = __pyx_t_1;
60356 
60357  /* "View.MemoryView":692
60358  *
60359  * have_slices = have_slices or isinstance(item, slice)
60360  * result.append(item) # <<<<<<<<<<<<<<
60361  *
60362  * nslices = ndim - len(result)
60363  */
60364  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 692, __pyx_L1_error)
60365  }
60366  __pyx_L6:;
60367 
60368  /* "View.MemoryView":679
60369  * have_slices = False
60370  * seen_ellipsis = False
60371  * for idx, item in enumerate(tup): # <<<<<<<<<<<<<<
60372  * if item is Ellipsis:
60373  * if not seen_ellipsis:
60374  */
60375  }
60376  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
60377  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
60378 
60379  /* "View.MemoryView":694
60380  * result.append(item)
60381  *
60382  * nslices = ndim - len(result) # <<<<<<<<<<<<<<
60383  * if nslices:
60384  * result.extend([slice(None)] * nslices)
60385  */
60386  __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 694, __pyx_L1_error)
60387  __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5);
60388 
60389  /* "View.MemoryView":695
60390  *
60391  * nslices = ndim - len(result)
60392  * if nslices: # <<<<<<<<<<<<<<
60393  * result.extend([slice(None)] * nslices)
60394  *
60395  */
60396  __pyx_t_1 = (__pyx_v_nslices != 0);
60397  if (__pyx_t_1) {
60398 
60399  /* "View.MemoryView":696
60400  * nslices = ndim - len(result)
60401  * if nslices:
60402  * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<<
60403  *
60404  * return have_slices or nslices, tuple(result)
60405  */
60406  __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 696, __pyx_L1_error)
60407  __Pyx_GOTREF(__pyx_t_3);
60408  { Py_ssize_t __pyx_temp;
60409  for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) {
60410  __Pyx_INCREF(__pyx_slice__159);
60411  __Pyx_GIVEREF(__pyx_slice__159);
60412  PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__159);
60413  }
60414  }
60415  __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 696, __pyx_L1_error)
60416  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
60417 
60418  /* "View.MemoryView":695
60419  *
60420  * nslices = ndim - len(result)
60421  * if nslices: # <<<<<<<<<<<<<<
60422  * result.extend([slice(None)] * nslices)
60423  *
60424  */
60425  }
60426 
60427  /* "View.MemoryView":698
60428  * result.extend([slice(None)] * nslices)
60429  *
60430  * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<<
60431  *
60432  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim):
60433  */
60434  __Pyx_XDECREF(__pyx_r);
60435  if (!__pyx_v_have_slices) {
60436  } else {
60437  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error)
60438  __Pyx_GOTREF(__pyx_t_4);
60439  __pyx_t_3 = __pyx_t_4;
60440  __pyx_t_4 = 0;
60441  goto __pyx_L14_bool_binop_done;
60442  }
60443  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error)
60444  __Pyx_GOTREF(__pyx_t_4);
60445  __pyx_t_3 = __pyx_t_4;
60446  __pyx_t_4 = 0;
60447  __pyx_L14_bool_binop_done:;
60448  __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error)
60449  __Pyx_GOTREF(__pyx_t_4);
60450  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 698, __pyx_L1_error)
60451  __Pyx_GOTREF(__pyx_t_11);
60452  __Pyx_GIVEREF(__pyx_t_3);
60453  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
60454  __Pyx_GIVEREF(__pyx_t_4);
60455  PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4);
60456  __pyx_t_3 = 0;
60457  __pyx_t_4 = 0;
60458  __pyx_r = ((PyObject*)__pyx_t_11);
60459  __pyx_t_11 = 0;
60460  goto __pyx_L0;
60461 
60462  /* "View.MemoryView":666
60463  * return isinstance(o, memoryview)
60464  *
60465  * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<<
60466  * """
60467  * Replace all ellipses with full slices and fill incomplete indices with
60468  */
60469 
60470  /* function exit code */
60471  __pyx_L1_error:;
60472  __Pyx_XDECREF(__pyx_t_3);
60473  __Pyx_XDECREF(__pyx_t_4);
60474  __Pyx_XDECREF(__pyx_t_7);
60475  __Pyx_XDECREF(__pyx_t_11);
60476  __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename);
60477  __pyx_r = 0;
60478  __pyx_L0:;
60479  __Pyx_XDECREF(__pyx_v_tup);
60480  __Pyx_XDECREF(__pyx_v_result);
60481  __Pyx_XDECREF(__pyx_v_idx);
60482  __Pyx_XDECREF(__pyx_v_item);
60483  __Pyx_XGIVEREF(__pyx_r);
60484  __Pyx_TraceReturn(__pyx_r, 0);
60485  __Pyx_RefNannyFinishContext();
60486  return __pyx_r;
60487 }
60488 
60489 /* "View.MemoryView":700
60490  * return have_slices or nslices, tuple(result)
60491  *
60492  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<<
60493  * for suboffset in suboffsets[:ndim]:
60494  * if suboffset >= 0:
60495  */
60496 
60497 static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) {
60498  Py_ssize_t __pyx_v_suboffset;
60499  PyObject *__pyx_r = NULL;
60500  __Pyx_TraceDeclarations
60501  __Pyx_RefNannyDeclarations
60502  Py_ssize_t *__pyx_t_1;
60503  Py_ssize_t *__pyx_t_2;
60504  Py_ssize_t *__pyx_t_3;
60505  int __pyx_t_4;
60506  PyObject *__pyx_t_5 = NULL;
60507  int __pyx_lineno = 0;
60508  const char *__pyx_filename = NULL;
60509  int __pyx_clineno = 0;
60510  __Pyx_RefNannySetupContext("assert_direct_dimensions", 0);
60511  __Pyx_TraceCall("assert_direct_dimensions", __pyx_f[1], 700, 0, __PYX_ERR(1, 700, __pyx_L1_error));
60512 
60513  /* "View.MemoryView":701
60514  *
60515  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim):
60516  * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<<
60517  * if suboffset >= 0:
60518  * raise ValueError("Indirect dimensions not supported")
60519  */
60520  __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim);
60521  for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) {
60522  __pyx_t_1 = __pyx_t_3;
60523  __pyx_v_suboffset = (__pyx_t_1[0]);
60524 
60525  /* "View.MemoryView":702
60526  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim):
60527  * for suboffset in suboffsets[:ndim]:
60528  * if suboffset >= 0: # <<<<<<<<<<<<<<
60529  * raise ValueError("Indirect dimensions not supported")
60530  *
60531  */
60532  __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0);
60533  if (unlikely(__pyx_t_4)) {
60534 
60535  /* "View.MemoryView":703
60536  * for suboffset in suboffsets[:ndim]:
60537  * if suboffset >= 0:
60538  * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<<
60539  *
60540  *
60541  */
60542  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__160, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 703, __pyx_L1_error)
60543  __Pyx_GOTREF(__pyx_t_5);
60544  __Pyx_Raise(__pyx_t_5, 0, 0, 0);
60545  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
60546  __PYX_ERR(1, 703, __pyx_L1_error)
60547 
60548  /* "View.MemoryView":702
60549  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim):
60550  * for suboffset in suboffsets[:ndim]:
60551  * if suboffset >= 0: # <<<<<<<<<<<<<<
60552  * raise ValueError("Indirect dimensions not supported")
60553  *
60554  */
60555  }
60556  }
60557 
60558  /* "View.MemoryView":700
60559  * return have_slices or nslices, tuple(result)
60560  *
60561  * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<<
60562  * for suboffset in suboffsets[:ndim]:
60563  * if suboffset >= 0:
60564  */
60565 
60566  /* function exit code */
60567  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60568  goto __pyx_L0;
60569  __pyx_L1_error:;
60570  __Pyx_XDECREF(__pyx_t_5);
60571  __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename);
60572  __pyx_r = 0;
60573  __pyx_L0:;
60574  __Pyx_XGIVEREF(__pyx_r);
60575  __Pyx_TraceReturn(__pyx_r, 0);
60576  __Pyx_RefNannyFinishContext();
60577  return __pyx_r;
60578 }
60579 
60580 /* "View.MemoryView":710
60581  *
60582  * @cname('__pyx_memview_slice')
60583  * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<<
60584  * cdef int new_ndim = 0, suboffset_dim = -1, dim
60585  * cdef bint negative_step
60586  */
60587 
60588 static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) {
60589  int __pyx_v_new_ndim;
60590  int __pyx_v_suboffset_dim;
60591  int __pyx_v_dim;
60592  __Pyx_memviewslice __pyx_v_src;
60593  __Pyx_memviewslice __pyx_v_dst;
60594  __Pyx_memviewslice *__pyx_v_p_src;
60595  struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0;
60596  __Pyx_memviewslice *__pyx_v_p_dst;
60597  int *__pyx_v_p_suboffset_dim;
60598  Py_ssize_t __pyx_v_start;
60599  Py_ssize_t __pyx_v_stop;
60600  Py_ssize_t __pyx_v_step;
60601  int __pyx_v_have_start;
60602  int __pyx_v_have_stop;
60603  int __pyx_v_have_step;
60604  PyObject *__pyx_v_index = NULL;
60605  struct __pyx_memoryview_obj *__pyx_r = NULL;
60606  __Pyx_TraceDeclarations
60607  __Pyx_RefNannyDeclarations
60608  int __pyx_t_1;
60609  int __pyx_t_2;
60610  PyObject *__pyx_t_3 = NULL;
60611  struct __pyx_memoryview_obj *__pyx_t_4;
60612  char *__pyx_t_5;
60613  int __pyx_t_6;
60614  Py_ssize_t __pyx_t_7;
60615  PyObject *(*__pyx_t_8)(PyObject *);
60616  PyObject *__pyx_t_9 = NULL;
60617  Py_ssize_t __pyx_t_10;
60618  int __pyx_t_11;
60619  Py_ssize_t __pyx_t_12;
60620  int __pyx_lineno = 0;
60621  const char *__pyx_filename = NULL;
60622  int __pyx_clineno = 0;
60623  __Pyx_RefNannySetupContext("memview_slice", 0);
60624  __Pyx_TraceCall("memview_slice", __pyx_f[1], 710, 0, __PYX_ERR(1, 710, __pyx_L1_error));
60625 
60626  /* "View.MemoryView":711
60627  * @cname('__pyx_memview_slice')
60628  * cdef memoryview memview_slice(memoryview memview, object indices):
60629  * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<<
60630  * cdef bint negative_step
60631  * cdef __Pyx_memviewslice src, dst
60632  */
60633  __pyx_v_new_ndim = 0;
60634  __pyx_v_suboffset_dim = -1;
60635 
60636  /* "View.MemoryView":718
60637  *
60638  *
60639  * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<<
60640  *
60641  * cdef _memoryviewslice memviewsliceobj
60642  */
60643  (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))));
60644 
60645  /* "View.MemoryView":722
60646  * cdef _memoryviewslice memviewsliceobj
60647  *
60648  * assert memview.view.ndim > 0 # <<<<<<<<<<<<<<
60649  *
60650  * if isinstance(memview, _memoryviewslice):
60651  */
60652  #ifndef CYTHON_WITHOUT_ASSERTIONS
60653  if (unlikely(!Py_OptimizeFlag)) {
60654  if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) {
60655  PyErr_SetNone(PyExc_AssertionError);
60656  __PYX_ERR(1, 722, __pyx_L1_error)
60657  }
60658  }
60659  #endif
60660 
60661  /* "View.MemoryView":724
60662  * assert memview.view.ndim > 0
60663  *
60664  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
60665  * memviewsliceobj = memview
60666  * p_src = &memviewsliceobj.from_slice
60667  */
60668  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
60669  __pyx_t_2 = (__pyx_t_1 != 0);
60670  if (__pyx_t_2) {
60671 
60672  /* "View.MemoryView":725
60673  *
60674  * if isinstance(memview, _memoryviewslice):
60675  * memviewsliceobj = memview # <<<<<<<<<<<<<<
60676  * p_src = &memviewsliceobj.from_slice
60677  * else:
60678  */
60679  if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 725, __pyx_L1_error)
60680  __pyx_t_3 = ((PyObject *)__pyx_v_memview);
60681  __Pyx_INCREF(__pyx_t_3);
60682  __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3);
60683  __pyx_t_3 = 0;
60684 
60685  /* "View.MemoryView":726
60686  * if isinstance(memview, _memoryviewslice):
60687  * memviewsliceobj = memview
60688  * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<<
60689  * else:
60690  * slice_copy(memview, &src)
60691  */
60692  __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice);
60693 
60694  /* "View.MemoryView":724
60695  * assert memview.view.ndim > 0
60696  *
60697  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
60698  * memviewsliceobj = memview
60699  * p_src = &memviewsliceobj.from_slice
60700  */
60701  goto __pyx_L3;
60702  }
60703 
60704  /* "View.MemoryView":728
60705  * p_src = &memviewsliceobj.from_slice
60706  * else:
60707  * slice_copy(memview, &src) # <<<<<<<<<<<<<<
60708  * p_src = &src
60709  *
60710  */
60711  /*else*/ {
60712  __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src));
60713 
60714  /* "View.MemoryView":729
60715  * else:
60716  * slice_copy(memview, &src)
60717  * p_src = &src # <<<<<<<<<<<<<<
60718  *
60719  *
60720  */
60721  __pyx_v_p_src = (&__pyx_v_src);
60722  }
60723  __pyx_L3:;
60724 
60725  /* "View.MemoryView":735
60726  *
60727  *
60728  * dst.memview = p_src.memview # <<<<<<<<<<<<<<
60729  * dst.data = p_src.data
60730  *
60731  */
60732  __pyx_t_4 = __pyx_v_p_src->memview;
60733  __pyx_v_dst.memview = __pyx_t_4;
60734 
60735  /* "View.MemoryView":736
60736  *
60737  * dst.memview = p_src.memview
60738  * dst.data = p_src.data # <<<<<<<<<<<<<<
60739  *
60740  *
60741  */
60742  __pyx_t_5 = __pyx_v_p_src->data;
60743  __pyx_v_dst.data = __pyx_t_5;
60744 
60745  /* "View.MemoryView":741
60746  *
60747  *
60748  * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<<
60749  * cdef int *p_suboffset_dim = &suboffset_dim
60750  * cdef Py_ssize_t start, stop, step
60751  */
60752  __pyx_v_p_dst = (&__pyx_v_dst);
60753 
60754  /* "View.MemoryView":742
60755  *
60756  * cdef __Pyx_memviewslice *p_dst = &dst
60757  * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<<
60758  * cdef Py_ssize_t start, stop, step
60759  * cdef bint have_start, have_stop, have_step
60760  */
60761  __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim);
60762 
60763  /* "View.MemoryView":746
60764  * cdef bint have_start, have_stop, have_step
60765  *
60766  * for dim, index in enumerate(indices): # <<<<<<<<<<<<<<
60767  * if PyIndex_Check(index):
60768  * slice_memviewslice(
60769  */
60770  __pyx_t_6 = 0;
60771  if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) {
60772  __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
60773  __pyx_t_8 = NULL;
60774  } else {
60775  __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 746, __pyx_L1_error)
60776  __Pyx_GOTREF(__pyx_t_3);
60777  __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 746, __pyx_L1_error)
60778  }
60779  for (;;) {
60780  if (likely(!__pyx_t_8)) {
60781  if (likely(PyList_CheckExact(__pyx_t_3))) {
60782  if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
60783  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
60784  __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 746, __pyx_L1_error)
60785  #else
60786  __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 746, __pyx_L1_error)
60787  __Pyx_GOTREF(__pyx_t_9);
60788  #endif
60789  } else {
60790  if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
60791  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
60792  __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 746, __pyx_L1_error)
60793  #else
60794  __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 746, __pyx_L1_error)
60795  __Pyx_GOTREF(__pyx_t_9);
60796  #endif
60797  }
60798  } else {
60799  __pyx_t_9 = __pyx_t_8(__pyx_t_3);
60800  if (unlikely(!__pyx_t_9)) {
60801  PyObject* exc_type = PyErr_Occurred();
60802  if (exc_type) {
60803  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
60804  else __PYX_ERR(1, 746, __pyx_L1_error)
60805  }
60806  break;
60807  }
60808  __Pyx_GOTREF(__pyx_t_9);
60809  }
60810  __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9);
60811  __pyx_t_9 = 0;
60812  __pyx_v_dim = __pyx_t_6;
60813  __pyx_t_6 = (__pyx_t_6 + 1);
60814 
60815  /* "View.MemoryView":747
60816  *
60817  * for dim, index in enumerate(indices):
60818  * if PyIndex_Check(index): # <<<<<<<<<<<<<<
60819  * slice_memviewslice(
60820  * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
60821  */
60822  __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0);
60823  if (__pyx_t_2) {
60824 
60825  /* "View.MemoryView":751
60826  * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
60827  * dim, new_ndim, p_suboffset_dim,
60828  * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<<
60829  * 0, 0, 0, # have_{start,stop,step}
60830  * False)
60831  */
60832  __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 751, __pyx_L1_error)
60833 
60834  /* "View.MemoryView":748
60835  * for dim, index in enumerate(indices):
60836  * if PyIndex_Check(index):
60837  * slice_memviewslice( # <<<<<<<<<<<<<<
60838  * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
60839  * dim, new_ndim, p_suboffset_dim,
60840  */
60841  __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 748, __pyx_L1_error)
60842 
60843  /* "View.MemoryView":747
60844  *
60845  * for dim, index in enumerate(indices):
60846  * if PyIndex_Check(index): # <<<<<<<<<<<<<<
60847  * slice_memviewslice(
60848  * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
60849  */
60850  goto __pyx_L6;
60851  }
60852 
60853  /* "View.MemoryView":754
60854  * 0, 0, 0, # have_{start,stop,step}
60855  * False)
60856  * elif index is None: # <<<<<<<<<<<<<<
60857  * p_dst.shape[new_ndim] = 1
60858  * p_dst.strides[new_ndim] = 0
60859  */
60860  __pyx_t_2 = (__pyx_v_index == Py_None);
60861  __pyx_t_1 = (__pyx_t_2 != 0);
60862  if (__pyx_t_1) {
60863 
60864  /* "View.MemoryView":755
60865  * False)
60866  * elif index is None:
60867  * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<<
60868  * p_dst.strides[new_ndim] = 0
60869  * p_dst.suboffsets[new_ndim] = -1
60870  */
60871  (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1;
60872 
60873  /* "View.MemoryView":756
60874  * elif index is None:
60875  * p_dst.shape[new_ndim] = 1
60876  * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<<
60877  * p_dst.suboffsets[new_ndim] = -1
60878  * new_ndim += 1
60879  */
60880  (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0;
60881 
60882  /* "View.MemoryView":757
60883  * p_dst.shape[new_ndim] = 1
60884  * p_dst.strides[new_ndim] = 0
60885  * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<<
60886  * new_ndim += 1
60887  * else:
60888  */
60889  (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L;
60890 
60891  /* "View.MemoryView":758
60892  * p_dst.strides[new_ndim] = 0
60893  * p_dst.suboffsets[new_ndim] = -1
60894  * new_ndim += 1 # <<<<<<<<<<<<<<
60895  * else:
60896  * start = index.start or 0
60897  */
60898  __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
60899 
60900  /* "View.MemoryView":754
60901  * 0, 0, 0, # have_{start,stop,step}
60902  * False)
60903  * elif index is None: # <<<<<<<<<<<<<<
60904  * p_dst.shape[new_ndim] = 1
60905  * p_dst.strides[new_ndim] = 0
60906  */
60907  goto __pyx_L6;
60908  }
60909 
60910  /* "View.MemoryView":760
60911  * new_ndim += 1
60912  * else:
60913  * start = index.start or 0 # <<<<<<<<<<<<<<
60914  * stop = index.stop or 0
60915  * step = index.step or 0
60916  */
60917  /*else*/ {
60918  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 760, __pyx_L1_error)
60919  __Pyx_GOTREF(__pyx_t_9);
60920  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 760, __pyx_L1_error)
60921  if (!__pyx_t_1) {
60922  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60923  } else {
60924  __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 760, __pyx_L1_error)
60925  __pyx_t_10 = __pyx_t_12;
60926  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60927  goto __pyx_L7_bool_binop_done;
60928  }
60929  __pyx_t_10 = 0;
60930  __pyx_L7_bool_binop_done:;
60931  __pyx_v_start = __pyx_t_10;
60932 
60933  /* "View.MemoryView":761
60934  * else:
60935  * start = index.start or 0
60936  * stop = index.stop or 0 # <<<<<<<<<<<<<<
60937  * step = index.step or 0
60938  *
60939  */
60940  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 761, __pyx_L1_error)
60941  __Pyx_GOTREF(__pyx_t_9);
60942  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 761, __pyx_L1_error)
60943  if (!__pyx_t_1) {
60944  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60945  } else {
60946  __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 761, __pyx_L1_error)
60947  __pyx_t_10 = __pyx_t_12;
60948  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60949  goto __pyx_L9_bool_binop_done;
60950  }
60951  __pyx_t_10 = 0;
60952  __pyx_L9_bool_binop_done:;
60953  __pyx_v_stop = __pyx_t_10;
60954 
60955  /* "View.MemoryView":762
60956  * start = index.start or 0
60957  * stop = index.stop or 0
60958  * step = index.step or 0 # <<<<<<<<<<<<<<
60959  *
60960  * have_start = index.start is not None
60961  */
60962  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 762, __pyx_L1_error)
60963  __Pyx_GOTREF(__pyx_t_9);
60964  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 762, __pyx_L1_error)
60965  if (!__pyx_t_1) {
60966  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60967  } else {
60968  __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 762, __pyx_L1_error)
60969  __pyx_t_10 = __pyx_t_12;
60970  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60971  goto __pyx_L11_bool_binop_done;
60972  }
60973  __pyx_t_10 = 0;
60974  __pyx_L11_bool_binop_done:;
60975  __pyx_v_step = __pyx_t_10;
60976 
60977  /* "View.MemoryView":764
60978  * step = index.step or 0
60979  *
60980  * have_start = index.start is not None # <<<<<<<<<<<<<<
60981  * have_stop = index.stop is not None
60982  * have_step = index.step is not None
60983  */
60984  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 764, __pyx_L1_error)
60985  __Pyx_GOTREF(__pyx_t_9);
60986  __pyx_t_1 = (__pyx_t_9 != Py_None);
60987  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
60988  __pyx_v_have_start = __pyx_t_1;
60989 
60990  /* "View.MemoryView":765
60991  *
60992  * have_start = index.start is not None
60993  * have_stop = index.stop is not None # <<<<<<<<<<<<<<
60994  * have_step = index.step is not None
60995  *
60996  */
60997  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 765, __pyx_L1_error)
60998  __Pyx_GOTREF(__pyx_t_9);
60999  __pyx_t_1 = (__pyx_t_9 != Py_None);
61000  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
61001  __pyx_v_have_stop = __pyx_t_1;
61002 
61003  /* "View.MemoryView":766
61004  * have_start = index.start is not None
61005  * have_stop = index.stop is not None
61006  * have_step = index.step is not None # <<<<<<<<<<<<<<
61007  *
61008  * slice_memviewslice(
61009  */
61010  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 766, __pyx_L1_error)
61011  __Pyx_GOTREF(__pyx_t_9);
61012  __pyx_t_1 = (__pyx_t_9 != Py_None);
61013  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
61014  __pyx_v_have_step = __pyx_t_1;
61015 
61016  /* "View.MemoryView":768
61017  * have_step = index.step is not None
61018  *
61019  * slice_memviewslice( # <<<<<<<<<<<<<<
61020  * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
61021  * dim, new_ndim, p_suboffset_dim,
61022  */
61023  __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 768, __pyx_L1_error)
61024 
61025  /* "View.MemoryView":774
61026  * have_start, have_stop, have_step,
61027  * True)
61028  * new_ndim += 1 # <<<<<<<<<<<<<<
61029  *
61030  * if isinstance(memview, _memoryviewslice):
61031  */
61032  __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
61033  }
61034  __pyx_L6:;
61035 
61036  /* "View.MemoryView":746
61037  * cdef bint have_start, have_stop, have_step
61038  *
61039  * for dim, index in enumerate(indices): # <<<<<<<<<<<<<<
61040  * if PyIndex_Check(index):
61041  * slice_memviewslice(
61042  */
61043  }
61044  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
61045 
61046  /* "View.MemoryView":776
61047  * new_ndim += 1
61048  *
61049  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
61050  * return memoryview_fromslice(dst, new_ndim,
61051  * memviewsliceobj.to_object_func,
61052  */
61053  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
61054  __pyx_t_2 = (__pyx_t_1 != 0);
61055  if (__pyx_t_2) {
61056 
61057  /* "View.MemoryView":777
61058  *
61059  * if isinstance(memview, _memoryviewslice):
61060  * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<<
61061  * memviewsliceobj.to_object_func,
61062  * memviewsliceobj.to_dtype_func,
61063  */
61064  __Pyx_XDECREF(((PyObject *)__pyx_r));
61065 
61066  /* "View.MemoryView":778
61067  * if isinstance(memview, _memoryviewslice):
61068  * return memoryview_fromslice(dst, new_ndim,
61069  * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<<
61070  * memviewsliceobj.to_dtype_func,
61071  * memview.dtype_is_object)
61072  */
61073  if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 778, __pyx_L1_error) }
61074 
61075  /* "View.MemoryView":779
61076  * return memoryview_fromslice(dst, new_ndim,
61077  * memviewsliceobj.to_object_func,
61078  * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<<
61079  * memview.dtype_is_object)
61080  * else:
61081  */
61082  if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 779, __pyx_L1_error) }
61083 
61084  /* "View.MemoryView":777
61085  *
61086  * if isinstance(memview, _memoryviewslice):
61087  * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<<
61088  * memviewsliceobj.to_object_func,
61089  * memviewsliceobj.to_dtype_func,
61090  */
61091  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 777, __pyx_L1_error)
61092  __Pyx_GOTREF(__pyx_t_3);
61093  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 777, __pyx_L1_error)
61094  __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3);
61095  __pyx_t_3 = 0;
61096  goto __pyx_L0;
61097 
61098  /* "View.MemoryView":776
61099  * new_ndim += 1
61100  *
61101  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
61102  * return memoryview_fromslice(dst, new_ndim,
61103  * memviewsliceobj.to_object_func,
61104  */
61105  }
61106 
61107  /* "View.MemoryView":782
61108  * memview.dtype_is_object)
61109  * else:
61110  * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<<
61111  * memview.dtype_is_object)
61112  *
61113  */
61114  /*else*/ {
61115  __Pyx_XDECREF(((PyObject *)__pyx_r));
61116 
61117  /* "View.MemoryView":783
61118  * else:
61119  * return memoryview_fromslice(dst, new_ndim, NULL, NULL,
61120  * memview.dtype_is_object) # <<<<<<<<<<<<<<
61121  *
61122  *
61123  */
61124  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 782, __pyx_L1_error)
61125  __Pyx_GOTREF(__pyx_t_3);
61126 
61127  /* "View.MemoryView":782
61128  * memview.dtype_is_object)
61129  * else:
61130  * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<<
61131  * memview.dtype_is_object)
61132  *
61133  */
61134  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 782, __pyx_L1_error)
61135  __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3);
61136  __pyx_t_3 = 0;
61137  goto __pyx_L0;
61138  }
61139 
61140  /* "View.MemoryView":710
61141  *
61142  * @cname('__pyx_memview_slice')
61143  * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<<
61144  * cdef int new_ndim = 0, suboffset_dim = -1, dim
61145  * cdef bint negative_step
61146  */
61147 
61148  /* function exit code */
61149  __pyx_L1_error:;
61150  __Pyx_XDECREF(__pyx_t_3);
61151  __Pyx_XDECREF(__pyx_t_9);
61152  __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
61153  __pyx_r = 0;
61154  __pyx_L0:;
61155  __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj);
61156  __Pyx_XDECREF(__pyx_v_index);
61157  __Pyx_XGIVEREF((PyObject *)__pyx_r);
61158  __Pyx_TraceReturn(__pyx_r, 0);
61159  __Pyx_RefNannyFinishContext();
61160  return __pyx_r;
61161 }
61162 
61163 /* "View.MemoryView":807
61164  *
61165  * @cname('__pyx_memoryview_slice_memviewslice')
61166  * cdef int slice_memviewslice( # <<<<<<<<<<<<<<
61167  * __Pyx_memviewslice *dst,
61168  * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
61169  */
61170 
61171 static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) {
61172  Py_ssize_t __pyx_v_new_shape;
61173  int __pyx_v_negative_step;
61174  int __pyx_r;
61175  __Pyx_TraceDeclarations
61176  int __pyx_t_1;
61177  int __pyx_t_2;
61178  int __pyx_t_3;
61179  int __pyx_lineno = 0;
61180  const char *__pyx_filename = NULL;
61181  int __pyx_clineno = 0;
61182  __Pyx_TraceCall("slice_memviewslice", __pyx_f[1], 807, 1, __PYX_ERR(1, 807, __pyx_L1_error));
61183 
61184  /* "View.MemoryView":827
61185  * cdef bint negative_step
61186  *
61187  * if not is_slice: # <<<<<<<<<<<<<<
61188  *
61189  * if start < 0:
61190  */
61191  __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0);
61192  if (__pyx_t_1) {
61193 
61194  /* "View.MemoryView":829
61195  * if not is_slice:
61196  *
61197  * if start < 0: # <<<<<<<<<<<<<<
61198  * start += shape
61199  * if not 0 <= start < shape:
61200  */
61201  __pyx_t_1 = ((__pyx_v_start < 0) != 0);
61202  if (__pyx_t_1) {
61203 
61204  /* "View.MemoryView":830
61205  *
61206  * if start < 0:
61207  * start += shape # <<<<<<<<<<<<<<
61208  * if not 0 <= start < shape:
61209  * _err_dim(IndexError, "Index out of bounds (axis %d)", dim)
61210  */
61211  __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
61212 
61213  /* "View.MemoryView":829
61214  * if not is_slice:
61215  *
61216  * if start < 0: # <<<<<<<<<<<<<<
61217  * start += shape
61218  * if not 0 <= start < shape:
61219  */
61220  }
61221 
61222  /* "View.MemoryView":831
61223  * if start < 0:
61224  * start += shape
61225  * if not 0 <= start < shape: # <<<<<<<<<<<<<<
61226  * _err_dim(IndexError, "Index out of bounds (axis %d)", dim)
61227  * else:
61228  */
61229  __pyx_t_1 = (0 <= __pyx_v_start);
61230  if (__pyx_t_1) {
61231  __pyx_t_1 = (__pyx_v_start < __pyx_v_shape);
61232  }
61233  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
61234  if (__pyx_t_2) {
61235 
61236  /* "View.MemoryView":832
61237  * start += shape
61238  * if not 0 <= start < shape:
61239  * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<<
61240  * else:
61241  *
61242  */
61243  __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 832, __pyx_L1_error)
61244 
61245  /* "View.MemoryView":831
61246  * if start < 0:
61247  * start += shape
61248  * if not 0 <= start < shape: # <<<<<<<<<<<<<<
61249  * _err_dim(IndexError, "Index out of bounds (axis %d)", dim)
61250  * else:
61251  */
61252  }
61253 
61254  /* "View.MemoryView":827
61255  * cdef bint negative_step
61256  *
61257  * if not is_slice: # <<<<<<<<<<<<<<
61258  *
61259  * if start < 0:
61260  */
61261  goto __pyx_L3;
61262  }
61263 
61264  /* "View.MemoryView":835
61265  * else:
61266  *
61267  * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<<
61268  *
61269  * if have_step and step == 0:
61270  */
61271  /*else*/ {
61272  __pyx_t_1 = ((__pyx_v_have_step != 0) != 0);
61273  if (__pyx_t_1) {
61274  } else {
61275  __pyx_t_2 = __pyx_t_1;
61276  goto __pyx_L6_bool_binop_done;
61277  }
61278  __pyx_t_1 = ((__pyx_v_step < 0) != 0);
61279  __pyx_t_2 = __pyx_t_1;
61280  __pyx_L6_bool_binop_done:;
61281  __pyx_v_negative_step = __pyx_t_2;
61282 
61283  /* "View.MemoryView":837
61284  * negative_step = have_step != 0 and step < 0
61285  *
61286  * if have_step and step == 0: # <<<<<<<<<<<<<<
61287  * _err_dim(ValueError, "Step may not be zero (axis %d)", dim)
61288  *
61289  */
61290  __pyx_t_1 = (__pyx_v_have_step != 0);
61291  if (__pyx_t_1) {
61292  } else {
61293  __pyx_t_2 = __pyx_t_1;
61294  goto __pyx_L9_bool_binop_done;
61295  }
61296  __pyx_t_1 = ((__pyx_v_step == 0) != 0);
61297  __pyx_t_2 = __pyx_t_1;
61298  __pyx_L9_bool_binop_done:;
61299  if (__pyx_t_2) {
61300 
61301  /* "View.MemoryView":838
61302  *
61303  * if have_step and step == 0:
61304  * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<<
61305  *
61306  *
61307  */
61308  __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 838, __pyx_L1_error)
61309 
61310  /* "View.MemoryView":837
61311  * negative_step = have_step != 0 and step < 0
61312  *
61313  * if have_step and step == 0: # <<<<<<<<<<<<<<
61314  * _err_dim(ValueError, "Step may not be zero (axis %d)", dim)
61315  *
61316  */
61317  }
61318 
61319  /* "View.MemoryView":841
61320  *
61321  *
61322  * if have_start: # <<<<<<<<<<<<<<
61323  * if start < 0:
61324  * start += shape
61325  */
61326  __pyx_t_2 = (__pyx_v_have_start != 0);
61327  if (__pyx_t_2) {
61328 
61329  /* "View.MemoryView":842
61330  *
61331  * if have_start:
61332  * if start < 0: # <<<<<<<<<<<<<<
61333  * start += shape
61334  * if start < 0:
61335  */
61336  __pyx_t_2 = ((__pyx_v_start < 0) != 0);
61337  if (__pyx_t_2) {
61338 
61339  /* "View.MemoryView":843
61340  * if have_start:
61341  * if start < 0:
61342  * start += shape # <<<<<<<<<<<<<<
61343  * if start < 0:
61344  * start = 0
61345  */
61346  __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
61347 
61348  /* "View.MemoryView":844
61349  * if start < 0:
61350  * start += shape
61351  * if start < 0: # <<<<<<<<<<<<<<
61352  * start = 0
61353  * elif start >= shape:
61354  */
61355  __pyx_t_2 = ((__pyx_v_start < 0) != 0);
61356  if (__pyx_t_2) {
61357 
61358  /* "View.MemoryView":845
61359  * start += shape
61360  * if start < 0:
61361  * start = 0 # <<<<<<<<<<<<<<
61362  * elif start >= shape:
61363  * if negative_step:
61364  */
61365  __pyx_v_start = 0;
61366 
61367  /* "View.MemoryView":844
61368  * if start < 0:
61369  * start += shape
61370  * if start < 0: # <<<<<<<<<<<<<<
61371  * start = 0
61372  * elif start >= shape:
61373  */
61374  }
61375 
61376  /* "View.MemoryView":842
61377  *
61378  * if have_start:
61379  * if start < 0: # <<<<<<<<<<<<<<
61380  * start += shape
61381  * if start < 0:
61382  */
61383  goto __pyx_L12;
61384  }
61385 
61386  /* "View.MemoryView":846
61387  * if start < 0:
61388  * start = 0
61389  * elif start >= shape: # <<<<<<<<<<<<<<
61390  * if negative_step:
61391  * start = shape - 1
61392  */
61393  __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0);
61394  if (__pyx_t_2) {
61395 
61396  /* "View.MemoryView":847
61397  * start = 0
61398  * elif start >= shape:
61399  * if negative_step: # <<<<<<<<<<<<<<
61400  * start = shape - 1
61401  * else:
61402  */
61403  __pyx_t_2 = (__pyx_v_negative_step != 0);
61404  if (__pyx_t_2) {
61405 
61406  /* "View.MemoryView":848
61407  * elif start >= shape:
61408  * if negative_step:
61409  * start = shape - 1 # <<<<<<<<<<<<<<
61410  * else:
61411  * start = shape
61412  */
61413  __pyx_v_start = (__pyx_v_shape - 1);
61414 
61415  /* "View.MemoryView":847
61416  * start = 0
61417  * elif start >= shape:
61418  * if negative_step: # <<<<<<<<<<<<<<
61419  * start = shape - 1
61420  * else:
61421  */
61422  goto __pyx_L14;
61423  }
61424 
61425  /* "View.MemoryView":850
61426  * start = shape - 1
61427  * else:
61428  * start = shape # <<<<<<<<<<<<<<
61429  * else:
61430  * if negative_step:
61431  */
61432  /*else*/ {
61433  __pyx_v_start = __pyx_v_shape;
61434  }
61435  __pyx_L14:;
61436 
61437  /* "View.MemoryView":846
61438  * if start < 0:
61439  * start = 0
61440  * elif start >= shape: # <<<<<<<<<<<<<<
61441  * if negative_step:
61442  * start = shape - 1
61443  */
61444  }
61445  __pyx_L12:;
61446 
61447  /* "View.MemoryView":841
61448  *
61449  *
61450  * if have_start: # <<<<<<<<<<<<<<
61451  * if start < 0:
61452  * start += shape
61453  */
61454  goto __pyx_L11;
61455  }
61456 
61457  /* "View.MemoryView":852
61458  * start = shape
61459  * else:
61460  * if negative_step: # <<<<<<<<<<<<<<
61461  * start = shape - 1
61462  * else:
61463  */
61464  /*else*/ {
61465  __pyx_t_2 = (__pyx_v_negative_step != 0);
61466  if (__pyx_t_2) {
61467 
61468  /* "View.MemoryView":853
61469  * else:
61470  * if negative_step:
61471  * start = shape - 1 # <<<<<<<<<<<<<<
61472  * else:
61473  * start = 0
61474  */
61475  __pyx_v_start = (__pyx_v_shape - 1);
61476 
61477  /* "View.MemoryView":852
61478  * start = shape
61479  * else:
61480  * if negative_step: # <<<<<<<<<<<<<<
61481  * start = shape - 1
61482  * else:
61483  */
61484  goto __pyx_L15;
61485  }
61486 
61487  /* "View.MemoryView":855
61488  * start = shape - 1
61489  * else:
61490  * start = 0 # <<<<<<<<<<<<<<
61491  *
61492  * if have_stop:
61493  */
61494  /*else*/ {
61495  __pyx_v_start = 0;
61496  }
61497  __pyx_L15:;
61498  }
61499  __pyx_L11:;
61500 
61501  /* "View.MemoryView":857
61502  * start = 0
61503  *
61504  * if have_stop: # <<<<<<<<<<<<<<
61505  * if stop < 0:
61506  * stop += shape
61507  */
61508  __pyx_t_2 = (__pyx_v_have_stop != 0);
61509  if (__pyx_t_2) {
61510 
61511  /* "View.MemoryView":858
61512  *
61513  * if have_stop:
61514  * if stop < 0: # <<<<<<<<<<<<<<
61515  * stop += shape
61516  * if stop < 0:
61517  */
61518  __pyx_t_2 = ((__pyx_v_stop < 0) != 0);
61519  if (__pyx_t_2) {
61520 
61521  /* "View.MemoryView":859
61522  * if have_stop:
61523  * if stop < 0:
61524  * stop += shape # <<<<<<<<<<<<<<
61525  * if stop < 0:
61526  * stop = 0
61527  */
61528  __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape);
61529 
61530  /* "View.MemoryView":860
61531  * if stop < 0:
61532  * stop += shape
61533  * if stop < 0: # <<<<<<<<<<<<<<
61534  * stop = 0
61535  * elif stop > shape:
61536  */
61537  __pyx_t_2 = ((__pyx_v_stop < 0) != 0);
61538  if (__pyx_t_2) {
61539 
61540  /* "View.MemoryView":861
61541  * stop += shape
61542  * if stop < 0:
61543  * stop = 0 # <<<<<<<<<<<<<<
61544  * elif stop > shape:
61545  * stop = shape
61546  */
61547  __pyx_v_stop = 0;
61548 
61549  /* "View.MemoryView":860
61550  * if stop < 0:
61551  * stop += shape
61552  * if stop < 0: # <<<<<<<<<<<<<<
61553  * stop = 0
61554  * elif stop > shape:
61555  */
61556  }
61557 
61558  /* "View.MemoryView":858
61559  *
61560  * if have_stop:
61561  * if stop < 0: # <<<<<<<<<<<<<<
61562  * stop += shape
61563  * if stop < 0:
61564  */
61565  goto __pyx_L17;
61566  }
61567 
61568  /* "View.MemoryView":862
61569  * if stop < 0:
61570  * stop = 0
61571  * elif stop > shape: # <<<<<<<<<<<<<<
61572  * stop = shape
61573  * else:
61574  */
61575  __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0);
61576  if (__pyx_t_2) {
61577 
61578  /* "View.MemoryView":863
61579  * stop = 0
61580  * elif stop > shape:
61581  * stop = shape # <<<<<<<<<<<<<<
61582  * else:
61583  * if negative_step:
61584  */
61585  __pyx_v_stop = __pyx_v_shape;
61586 
61587  /* "View.MemoryView":862
61588  * if stop < 0:
61589  * stop = 0
61590  * elif stop > shape: # <<<<<<<<<<<<<<
61591  * stop = shape
61592  * else:
61593  */
61594  }
61595  __pyx_L17:;
61596 
61597  /* "View.MemoryView":857
61598  * start = 0
61599  *
61600  * if have_stop: # <<<<<<<<<<<<<<
61601  * if stop < 0:
61602  * stop += shape
61603  */
61604  goto __pyx_L16;
61605  }
61606 
61607  /* "View.MemoryView":865
61608  * stop = shape
61609  * else:
61610  * if negative_step: # <<<<<<<<<<<<<<
61611  * stop = -1
61612  * else:
61613  */
61614  /*else*/ {
61615  __pyx_t_2 = (__pyx_v_negative_step != 0);
61616  if (__pyx_t_2) {
61617 
61618  /* "View.MemoryView":866
61619  * else:
61620  * if negative_step:
61621  * stop = -1 # <<<<<<<<<<<<<<
61622  * else:
61623  * stop = shape
61624  */
61625  __pyx_v_stop = -1L;
61626 
61627  /* "View.MemoryView":865
61628  * stop = shape
61629  * else:
61630  * if negative_step: # <<<<<<<<<<<<<<
61631  * stop = -1
61632  * else:
61633  */
61634  goto __pyx_L19;
61635  }
61636 
61637  /* "View.MemoryView":868
61638  * stop = -1
61639  * else:
61640  * stop = shape # <<<<<<<<<<<<<<
61641  *
61642  * if not have_step:
61643  */
61644  /*else*/ {
61645  __pyx_v_stop = __pyx_v_shape;
61646  }
61647  __pyx_L19:;
61648  }
61649  __pyx_L16:;
61650 
61651  /* "View.MemoryView":870
61652  * stop = shape
61653  *
61654  * if not have_step: # <<<<<<<<<<<<<<
61655  * step = 1
61656  *
61657  */
61658  __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0);
61659  if (__pyx_t_2) {
61660 
61661  /* "View.MemoryView":871
61662  *
61663  * if not have_step:
61664  * step = 1 # <<<<<<<<<<<<<<
61665  *
61666  *
61667  */
61668  __pyx_v_step = 1;
61669 
61670  /* "View.MemoryView":870
61671  * stop = shape
61672  *
61673  * if not have_step: # <<<<<<<<<<<<<<
61674  * step = 1
61675  *
61676  */
61677  }
61678 
61679  /* "View.MemoryView":875
61680  *
61681  * with cython.cdivision(True):
61682  * new_shape = (stop - start) // step # <<<<<<<<<<<<<<
61683  *
61684  * if (stop - start) - step * new_shape:
61685  */
61686  __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step);
61687 
61688  /* "View.MemoryView":877
61689  * new_shape = (stop - start) // step
61690  *
61691  * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<<
61692  * new_shape += 1
61693  *
61694  */
61695  __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0);
61696  if (__pyx_t_2) {
61697 
61698  /* "View.MemoryView":878
61699  *
61700  * if (stop - start) - step * new_shape:
61701  * new_shape += 1 # <<<<<<<<<<<<<<
61702  *
61703  * if new_shape < 0:
61704  */
61705  __pyx_v_new_shape = (__pyx_v_new_shape + 1);
61706 
61707  /* "View.MemoryView":877
61708  * new_shape = (stop - start) // step
61709  *
61710  * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<<
61711  * new_shape += 1
61712  *
61713  */
61714  }
61715 
61716  /* "View.MemoryView":880
61717  * new_shape += 1
61718  *
61719  * if new_shape < 0: # <<<<<<<<<<<<<<
61720  * new_shape = 0
61721  *
61722  */
61723  __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0);
61724  if (__pyx_t_2) {
61725 
61726  /* "View.MemoryView":881
61727  *
61728  * if new_shape < 0:
61729  * new_shape = 0 # <<<<<<<<<<<<<<
61730  *
61731  *
61732  */
61733  __pyx_v_new_shape = 0;
61734 
61735  /* "View.MemoryView":880
61736  * new_shape += 1
61737  *
61738  * if new_shape < 0: # <<<<<<<<<<<<<<
61739  * new_shape = 0
61740  *
61741  */
61742  }
61743 
61744  /* "View.MemoryView":884
61745  *
61746  *
61747  * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<<
61748  * dst.shape[new_ndim] = new_shape
61749  * dst.suboffsets[new_ndim] = suboffset
61750  */
61751  (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step);
61752 
61753  /* "View.MemoryView":885
61754  *
61755  * dst.strides[new_ndim] = stride * step
61756  * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<<
61757  * dst.suboffsets[new_ndim] = suboffset
61758  *
61759  */
61760  (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape;
61761 
61762  /* "View.MemoryView":886
61763  * dst.strides[new_ndim] = stride * step
61764  * dst.shape[new_ndim] = new_shape
61765  * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<<
61766  *
61767  *
61768  */
61769  (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset;
61770  }
61771  __pyx_L3:;
61772 
61773  /* "View.MemoryView":889
61774  *
61775  *
61776  * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<<
61777  * dst.data += start * stride
61778  * else:
61779  */
61780  __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0);
61781  if (__pyx_t_2) {
61782 
61783  /* "View.MemoryView":890
61784  *
61785  * if suboffset_dim[0] < 0:
61786  * dst.data += start * stride # <<<<<<<<<<<<<<
61787  * else:
61788  * dst.suboffsets[suboffset_dim[0]] += start * stride
61789  */
61790  __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride));
61791 
61792  /* "View.MemoryView":889
61793  *
61794  *
61795  * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<<
61796  * dst.data += start * stride
61797  * else:
61798  */
61799  goto __pyx_L23;
61800  }
61801 
61802  /* "View.MemoryView":892
61803  * dst.data += start * stride
61804  * else:
61805  * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<<
61806  *
61807  * if suboffset >= 0:
61808  */
61809  /*else*/ {
61810  __pyx_t_3 = (__pyx_v_suboffset_dim[0]);
61811  (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride));
61812  }
61813  __pyx_L23:;
61814 
61815  /* "View.MemoryView":894
61816  * dst.suboffsets[suboffset_dim[0]] += start * stride
61817  *
61818  * if suboffset >= 0: # <<<<<<<<<<<<<<
61819  * if not is_slice:
61820  * if new_ndim == 0:
61821  */
61822  __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0);
61823  if (__pyx_t_2) {
61824 
61825  /* "View.MemoryView":895
61826  *
61827  * if suboffset >= 0:
61828  * if not is_slice: # <<<<<<<<<<<<<<
61829  * if new_ndim == 0:
61830  * dst.data = (<char **> dst.data)[0] + suboffset
61831  */
61832  __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0);
61833  if (__pyx_t_2) {
61834 
61835  /* "View.MemoryView":896
61836  * if suboffset >= 0:
61837  * if not is_slice:
61838  * if new_ndim == 0: # <<<<<<<<<<<<<<
61839  * dst.data = (<char **> dst.data)[0] + suboffset
61840  * else:
61841  */
61842  __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0);
61843  if (__pyx_t_2) {
61844 
61845  /* "View.MemoryView":897
61846  * if not is_slice:
61847  * if new_ndim == 0:
61848  * dst.data = (<char **> dst.data)[0] + suboffset # <<<<<<<<<<<<<<
61849  * else:
61850  * _err_dim(IndexError, "All dimensions preceding dimension %d "
61851  */
61852  __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset);
61853 
61854  /* "View.MemoryView":896
61855  * if suboffset >= 0:
61856  * if not is_slice:
61857  * if new_ndim == 0: # <<<<<<<<<<<<<<
61858  * dst.data = (<char **> dst.data)[0] + suboffset
61859  * else:
61860  */
61861  goto __pyx_L26;
61862  }
61863 
61864  /* "View.MemoryView":899
61865  * dst.data = (<char **> dst.data)[0] + suboffset
61866  * else:
61867  * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<<
61868  * "must be indexed and not sliced", dim)
61869  * else:
61870  */
61871  /*else*/ {
61872 
61873  /* "View.MemoryView":900
61874  * else:
61875  * _err_dim(IndexError, "All dimensions preceding dimension %d "
61876  * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<<
61877  * else:
61878  * suboffset_dim[0] = new_ndim
61879  */
61880  __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 899, __pyx_L1_error)
61881  }
61882  __pyx_L26:;
61883 
61884  /* "View.MemoryView":895
61885  *
61886  * if suboffset >= 0:
61887  * if not is_slice: # <<<<<<<<<<<<<<
61888  * if new_ndim == 0:
61889  * dst.data = (<char **> dst.data)[0] + suboffset
61890  */
61891  goto __pyx_L25;
61892  }
61893 
61894  /* "View.MemoryView":902
61895  * "must be indexed and not sliced", dim)
61896  * else:
61897  * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<<
61898  *
61899  * return 0
61900  */
61901  /*else*/ {
61902  (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim;
61903  }
61904  __pyx_L25:;
61905 
61906  /* "View.MemoryView":894
61907  * dst.suboffsets[suboffset_dim[0]] += start * stride
61908  *
61909  * if suboffset >= 0: # <<<<<<<<<<<<<<
61910  * if not is_slice:
61911  * if new_ndim == 0:
61912  */
61913  }
61914 
61915  /* "View.MemoryView":904
61916  * suboffset_dim[0] = new_ndim
61917  *
61918  * return 0 # <<<<<<<<<<<<<<
61919  *
61920  *
61921  */
61922  __pyx_r = 0;
61923  goto __pyx_L0;
61924 
61925  /* "View.MemoryView":807
61926  *
61927  * @cname('__pyx_memoryview_slice_memviewslice')
61928  * cdef int slice_memviewslice( # <<<<<<<<<<<<<<
61929  * __Pyx_memviewslice *dst,
61930  * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
61931  */
61932 
61933  /* function exit code */
61934  __pyx_L1_error:;
61935  {
61936  #ifdef WITH_THREAD
61937  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
61938  #endif
61939  __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
61940  #ifdef WITH_THREAD
61941  __Pyx_PyGILState_Release(__pyx_gilstate_save);
61942  #endif
61943  }
61944  __pyx_r = -1;
61945  __pyx_L0:;
61946  __Pyx_TraceReturn(Py_None, 1);
61947  return __pyx_r;
61948 }
61949 
61950 /* "View.MemoryView":910
61951  *
61952  * @cname('__pyx_pybuffer_index')
61953  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<<
61954  * Py_ssize_t dim) except NULL:
61955  * cdef Py_ssize_t shape, stride, suboffset = -1
61956  */
61957 
61958 static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) {
61959  Py_ssize_t __pyx_v_shape;
61960  Py_ssize_t __pyx_v_stride;
61961  Py_ssize_t __pyx_v_suboffset;
61962  Py_ssize_t __pyx_v_itemsize;
61963  char *__pyx_v_resultp;
61964  char *__pyx_r;
61965  __Pyx_TraceDeclarations
61966  __Pyx_RefNannyDeclarations
61967  Py_ssize_t __pyx_t_1;
61968  int __pyx_t_2;
61969  PyObject *__pyx_t_3 = NULL;
61970  PyObject *__pyx_t_4 = NULL;
61971  int __pyx_lineno = 0;
61972  const char *__pyx_filename = NULL;
61973  int __pyx_clineno = 0;
61974  __Pyx_RefNannySetupContext("pybuffer_index", 0);
61975  __Pyx_TraceCall("pybuffer_index", __pyx_f[1], 910, 0, __PYX_ERR(1, 910, __pyx_L1_error));
61976 
61977  /* "View.MemoryView":912
61978  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,
61979  * Py_ssize_t dim) except NULL:
61980  * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<<
61981  * cdef Py_ssize_t itemsize = view.itemsize
61982  * cdef char *resultp
61983  */
61984  __pyx_v_suboffset = -1L;
61985 
61986  /* "View.MemoryView":913
61987  * Py_ssize_t dim) except NULL:
61988  * cdef Py_ssize_t shape, stride, suboffset = -1
61989  * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<<
61990  * cdef char *resultp
61991  *
61992  */
61993  __pyx_t_1 = __pyx_v_view->itemsize;
61994  __pyx_v_itemsize = __pyx_t_1;
61995 
61996  /* "View.MemoryView":916
61997  * cdef char *resultp
61998  *
61999  * if view.ndim == 0: # <<<<<<<<<<<<<<
62000  * shape = view.len / itemsize
62001  * stride = itemsize
62002  */
62003  __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0);
62004  if (__pyx_t_2) {
62005 
62006  /* "View.MemoryView":917
62007  *
62008  * if view.ndim == 0:
62009  * shape = view.len / itemsize # <<<<<<<<<<<<<<
62010  * stride = itemsize
62011  * else:
62012  */
62013  if (unlikely(__pyx_v_itemsize == 0)) {
62014  PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
62015  __PYX_ERR(1, 917, __pyx_L1_error)
62016  }
62017  else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) {
62018  PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
62019  __PYX_ERR(1, 917, __pyx_L1_error)
62020  }
62021  __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize);
62022 
62023  /* "View.MemoryView":918
62024  * if view.ndim == 0:
62025  * shape = view.len / itemsize
62026  * stride = itemsize # <<<<<<<<<<<<<<
62027  * else:
62028  * shape = view.shape[dim]
62029  */
62030  __pyx_v_stride = __pyx_v_itemsize;
62031 
62032  /* "View.MemoryView":916
62033  * cdef char *resultp
62034  *
62035  * if view.ndim == 0: # <<<<<<<<<<<<<<
62036  * shape = view.len / itemsize
62037  * stride = itemsize
62038  */
62039  goto __pyx_L3;
62040  }
62041 
62042  /* "View.MemoryView":920
62043  * stride = itemsize
62044  * else:
62045  * shape = view.shape[dim] # <<<<<<<<<<<<<<
62046  * stride = view.strides[dim]
62047  * if view.suboffsets != NULL:
62048  */
62049  /*else*/ {
62050  __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]);
62051 
62052  /* "View.MemoryView":921
62053  * else:
62054  * shape = view.shape[dim]
62055  * stride = view.strides[dim] # <<<<<<<<<<<<<<
62056  * if view.suboffsets != NULL:
62057  * suboffset = view.suboffsets[dim]
62058  */
62059  __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]);
62060 
62061  /* "View.MemoryView":922
62062  * shape = view.shape[dim]
62063  * stride = view.strides[dim]
62064  * if view.suboffsets != NULL: # <<<<<<<<<<<<<<
62065  * suboffset = view.suboffsets[dim]
62066  *
62067  */
62068  __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0);
62069  if (__pyx_t_2) {
62070 
62071  /* "View.MemoryView":923
62072  * stride = view.strides[dim]
62073  * if view.suboffsets != NULL:
62074  * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<<
62075  *
62076  * if index < 0:
62077  */
62078  __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]);
62079 
62080  /* "View.MemoryView":922
62081  * shape = view.shape[dim]
62082  * stride = view.strides[dim]
62083  * if view.suboffsets != NULL: # <<<<<<<<<<<<<<
62084  * suboffset = view.suboffsets[dim]
62085  *
62086  */
62087  }
62088  }
62089  __pyx_L3:;
62090 
62091  /* "View.MemoryView":925
62092  * suboffset = view.suboffsets[dim]
62093  *
62094  * if index < 0: # <<<<<<<<<<<<<<
62095  * index += view.shape[dim]
62096  * if index < 0:
62097  */
62098  __pyx_t_2 = ((__pyx_v_index < 0) != 0);
62099  if (__pyx_t_2) {
62100 
62101  /* "View.MemoryView":926
62102  *
62103  * if index < 0:
62104  * index += view.shape[dim] # <<<<<<<<<<<<<<
62105  * if index < 0:
62106  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62107  */
62108  __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim]));
62109 
62110  /* "View.MemoryView":927
62111  * if index < 0:
62112  * index += view.shape[dim]
62113  * if index < 0: # <<<<<<<<<<<<<<
62114  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62115  *
62116  */
62117  __pyx_t_2 = ((__pyx_v_index < 0) != 0);
62118  if (unlikely(__pyx_t_2)) {
62119 
62120  /* "View.MemoryView":928
62121  * index += view.shape[dim]
62122  * if index < 0:
62123  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<<
62124  *
62125  * if index >= shape:
62126  */
62127  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 928, __pyx_L1_error)
62128  __Pyx_GOTREF(__pyx_t_3);
62129  __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 928, __pyx_L1_error)
62130  __Pyx_GOTREF(__pyx_t_4);
62131  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62132  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 928, __pyx_L1_error)
62133  __Pyx_GOTREF(__pyx_t_3);
62134  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
62135  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
62136  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62137  __PYX_ERR(1, 928, __pyx_L1_error)
62138 
62139  /* "View.MemoryView":927
62140  * if index < 0:
62141  * index += view.shape[dim]
62142  * if index < 0: # <<<<<<<<<<<<<<
62143  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62144  *
62145  */
62146  }
62147 
62148  /* "View.MemoryView":925
62149  * suboffset = view.suboffsets[dim]
62150  *
62151  * if index < 0: # <<<<<<<<<<<<<<
62152  * index += view.shape[dim]
62153  * if index < 0:
62154  */
62155  }
62156 
62157  /* "View.MemoryView":930
62158  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62159  *
62160  * if index >= shape: # <<<<<<<<<<<<<<
62161  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62162  *
62163  */
62164  __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0);
62165  if (unlikely(__pyx_t_2)) {
62166 
62167  /* "View.MemoryView":931
62168  *
62169  * if index >= shape:
62170  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<<
62171  *
62172  * resultp = bufp + index * stride
62173  */
62174  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 931, __pyx_L1_error)
62175  __Pyx_GOTREF(__pyx_t_3);
62176  __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 931, __pyx_L1_error)
62177  __Pyx_GOTREF(__pyx_t_4);
62178  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62179  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 931, __pyx_L1_error)
62180  __Pyx_GOTREF(__pyx_t_3);
62181  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
62182  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
62183  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62184  __PYX_ERR(1, 931, __pyx_L1_error)
62185 
62186  /* "View.MemoryView":930
62187  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62188  *
62189  * if index >= shape: # <<<<<<<<<<<<<<
62190  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62191  *
62192  */
62193  }
62194 
62195  /* "View.MemoryView":933
62196  * raise IndexError("Out of bounds on buffer access (axis %d)" % dim)
62197  *
62198  * resultp = bufp + index * stride # <<<<<<<<<<<<<<
62199  * if suboffset >= 0:
62200  * resultp = (<char **> resultp)[0] + suboffset
62201  */
62202  __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride));
62203 
62204  /* "View.MemoryView":934
62205  *
62206  * resultp = bufp + index * stride
62207  * if suboffset >= 0: # <<<<<<<<<<<<<<
62208  * resultp = (<char **> resultp)[0] + suboffset
62209  *
62210  */
62211  __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0);
62212  if (__pyx_t_2) {
62213 
62214  /* "View.MemoryView":935
62215  * resultp = bufp + index * stride
62216  * if suboffset >= 0:
62217  * resultp = (<char **> resultp)[0] + suboffset # <<<<<<<<<<<<<<
62218  *
62219  * return resultp
62220  */
62221  __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset);
62222 
62223  /* "View.MemoryView":934
62224  *
62225  * resultp = bufp + index * stride
62226  * if suboffset >= 0: # <<<<<<<<<<<<<<
62227  * resultp = (<char **> resultp)[0] + suboffset
62228  *
62229  */
62230  }
62231 
62232  /* "View.MemoryView":937
62233  * resultp = (<char **> resultp)[0] + suboffset
62234  *
62235  * return resultp # <<<<<<<<<<<<<<
62236  *
62237  *
62238  */
62239  __pyx_r = __pyx_v_resultp;
62240  goto __pyx_L0;
62241 
62242  /* "View.MemoryView":910
62243  *
62244  * @cname('__pyx_pybuffer_index')
62245  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<<
62246  * Py_ssize_t dim) except NULL:
62247  * cdef Py_ssize_t shape, stride, suboffset = -1
62248  */
62249 
62250  /* function exit code */
62251  __pyx_L1_error:;
62252  __Pyx_XDECREF(__pyx_t_3);
62253  __Pyx_XDECREF(__pyx_t_4);
62254  __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
62255  __pyx_r = NULL;
62256  __pyx_L0:;
62257  __Pyx_TraceReturn(Py_None, 0);
62258  __Pyx_RefNannyFinishContext();
62259  return __pyx_r;
62260 }
62261 
62262 /* "View.MemoryView":943
62263  *
62264  * @cname('__pyx_memslice_transpose')
62265  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<<
62266  * cdef int ndim = memslice.memview.view.ndim
62267  *
62268  */
62269 
62270 static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) {
62271  int __pyx_v_ndim;
62272  Py_ssize_t *__pyx_v_shape;
62273  Py_ssize_t *__pyx_v_strides;
62274  int __pyx_v_i;
62275  int __pyx_v_j;
62276  int __pyx_r;
62277  __Pyx_TraceDeclarations
62278  int __pyx_t_1;
62279  Py_ssize_t *__pyx_t_2;
62280  long __pyx_t_3;
62281  long __pyx_t_4;
62282  Py_ssize_t __pyx_t_5;
62283  Py_ssize_t __pyx_t_6;
62284  int __pyx_t_7;
62285  int __pyx_t_8;
62286  int __pyx_t_9;
62287  int __pyx_lineno = 0;
62288  const char *__pyx_filename = NULL;
62289  int __pyx_clineno = 0;
62290  __Pyx_TraceCall("transpose_memslice", __pyx_f[1], 943, 1, __PYX_ERR(1, 943, __pyx_L1_error));
62291 
62292  /* "View.MemoryView":944
62293  * @cname('__pyx_memslice_transpose')
62294  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0:
62295  * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<<
62296  *
62297  * cdef Py_ssize_t *shape = memslice.shape
62298  */
62299  __pyx_t_1 = __pyx_v_memslice->memview->view.ndim;
62300  __pyx_v_ndim = __pyx_t_1;
62301 
62302  /* "View.MemoryView":946
62303  * cdef int ndim = memslice.memview.view.ndim
62304  *
62305  * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<<
62306  * cdef Py_ssize_t *strides = memslice.strides
62307  *
62308  */
62309  __pyx_t_2 = __pyx_v_memslice->shape;
62310  __pyx_v_shape = __pyx_t_2;
62311 
62312  /* "View.MemoryView":947
62313  *
62314  * cdef Py_ssize_t *shape = memslice.shape
62315  * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<<
62316  *
62317  *
62318  */
62319  __pyx_t_2 = __pyx_v_memslice->strides;
62320  __pyx_v_strides = __pyx_t_2;
62321 
62322  /* "View.MemoryView":951
62323  *
62324  * cdef int i, j
62325  * for i in range(ndim / 2): # <<<<<<<<<<<<<<
62326  * j = ndim - 1 - i
62327  * strides[i], strides[j] = strides[j], strides[i]
62328  */
62329  __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2);
62330  __pyx_t_4 = __pyx_t_3;
62331  for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
62332  __pyx_v_i = __pyx_t_1;
62333 
62334  /* "View.MemoryView":952
62335  * cdef int i, j
62336  * for i in range(ndim / 2):
62337  * j = ndim - 1 - i # <<<<<<<<<<<<<<
62338  * strides[i], strides[j] = strides[j], strides[i]
62339  * shape[i], shape[j] = shape[j], shape[i]
62340  */
62341  __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i);
62342 
62343  /* "View.MemoryView":953
62344  * for i in range(ndim / 2):
62345  * j = ndim - 1 - i
62346  * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<<
62347  * shape[i], shape[j] = shape[j], shape[i]
62348  *
62349  */
62350  __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]);
62351  __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]);
62352  (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5;
62353  (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6;
62354 
62355  /* "View.MemoryView":954
62356  * j = ndim - 1 - i
62357  * strides[i], strides[j] = strides[j], strides[i]
62358  * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<<
62359  *
62360  * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
62361  */
62362  __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]);
62363  __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]);
62364  (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6;
62365  (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5;
62366 
62367  /* "View.MemoryView":956
62368  * shape[i], shape[j] = shape[j], shape[i]
62369  *
62370  * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<<
62371  * _err(ValueError, "Cannot transpose memoryview with indirect dimensions")
62372  *
62373  */
62374  __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0);
62375  if (!__pyx_t_8) {
62376  } else {
62377  __pyx_t_7 = __pyx_t_8;
62378  goto __pyx_L6_bool_binop_done;
62379  }
62380  __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0);
62381  __pyx_t_7 = __pyx_t_8;
62382  __pyx_L6_bool_binop_done:;
62383  if (__pyx_t_7) {
62384 
62385  /* "View.MemoryView":957
62386  *
62387  * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
62388  * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<<
62389  *
62390  * return 1
62391  */
62392  __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 957, __pyx_L1_error)
62393 
62394  /* "View.MemoryView":956
62395  * shape[i], shape[j] = shape[j], shape[i]
62396  *
62397  * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<<
62398  * _err(ValueError, "Cannot transpose memoryview with indirect dimensions")
62399  *
62400  */
62401  }
62402  }
62403 
62404  /* "View.MemoryView":959
62405  * _err(ValueError, "Cannot transpose memoryview with indirect dimensions")
62406  *
62407  * return 1 # <<<<<<<<<<<<<<
62408  *
62409  *
62410  */
62411  __pyx_r = 1;
62412  goto __pyx_L0;
62413 
62414  /* "View.MemoryView":943
62415  *
62416  * @cname('__pyx_memslice_transpose')
62417  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<<
62418  * cdef int ndim = memslice.memview.view.ndim
62419  *
62420  */
62421 
62422  /* function exit code */
62423  __pyx_L1_error:;
62424  {
62425  #ifdef WITH_THREAD
62426  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
62427  #endif
62428  __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
62429  #ifdef WITH_THREAD
62430  __Pyx_PyGILState_Release(__pyx_gilstate_save);
62431  #endif
62432  }
62433  __pyx_r = 0;
62434  __pyx_L0:;
62435  __Pyx_TraceReturn(Py_None, 1);
62436  return __pyx_r;
62437 }
62438 
62439 /* "View.MemoryView":976
62440  * cdef int (*to_dtype_func)(char *, object) except 0
62441  *
62442  * def __dealloc__(self): # <<<<<<<<<<<<<<
62443  * __PYX_XDEC_MEMVIEW(&self.from_slice, 1)
62444  *
62445  */
62446 
62447 /* Python wrapper */
62448 static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/
62449 static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) {
62450  __Pyx_RefNannyDeclarations
62451  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
62452  __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
62453 
62454  /* function exit code */
62455  __Pyx_RefNannyFinishContext();
62456 }
62457 
62458 static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
62459  __Pyx_TraceDeclarations
62460  __Pyx_RefNannyDeclarations
62461  int __pyx_lineno = 0;
62462  const char *__pyx_filename = NULL;
62463  int __pyx_clineno = 0;
62464  __Pyx_RefNannySetupContext("__dealloc__", 0);
62465  __Pyx_TraceCall("__dealloc__", __pyx_f[1], 976, 0, __PYX_ERR(1, 976, __pyx_L1_error));
62466 
62467  /* "View.MemoryView":977
62468  *
62469  * def __dealloc__(self):
62470  * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<<
62471  *
62472  * cdef convert_item_to_object(self, char *itemp):
62473  */
62474  __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1);
62475 
62476  /* "View.MemoryView":976
62477  * cdef int (*to_dtype_func)(char *, object) except 0
62478  *
62479  * def __dealloc__(self): # <<<<<<<<<<<<<<
62480  * __PYX_XDEC_MEMVIEW(&self.from_slice, 1)
62481  *
62482  */
62483 
62484  /* function exit code */
62485  goto __pyx_L0;
62486  __pyx_L1_error:;
62487  __Pyx_WriteUnraisable("View.MemoryView._memoryviewslice.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
62488  __pyx_L0:;
62489  __Pyx_TraceReturn(Py_None, 0);
62490  __Pyx_RefNannyFinishContext();
62491 }
62492 
62493 /* "View.MemoryView":979
62494  * __PYX_XDEC_MEMVIEW(&self.from_slice, 1)
62495  *
62496  * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
62497  * if self.to_object_func != NULL:
62498  * return self.to_object_func(itemp)
62499  */
62500 
62501 static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) {
62502  PyObject *__pyx_r = NULL;
62503  __Pyx_TraceDeclarations
62504  __Pyx_RefNannyDeclarations
62505  int __pyx_t_1;
62506  PyObject *__pyx_t_2 = NULL;
62507  int __pyx_lineno = 0;
62508  const char *__pyx_filename = NULL;
62509  int __pyx_clineno = 0;
62510  __Pyx_RefNannySetupContext("convert_item_to_object", 0);
62511  __Pyx_TraceCall("convert_item_to_object", __pyx_f[1], 979, 0, __PYX_ERR(1, 979, __pyx_L1_error));
62512 
62513  /* "View.MemoryView":980
62514  *
62515  * cdef convert_item_to_object(self, char *itemp):
62516  * if self.to_object_func != NULL: # <<<<<<<<<<<<<<
62517  * return self.to_object_func(itemp)
62518  * else:
62519  */
62520  __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0);
62521  if (__pyx_t_1) {
62522 
62523  /* "View.MemoryView":981
62524  * cdef convert_item_to_object(self, char *itemp):
62525  * if self.to_object_func != NULL:
62526  * return self.to_object_func(itemp) # <<<<<<<<<<<<<<
62527  * else:
62528  * return memoryview.convert_item_to_object(self, itemp)
62529  */
62530  __Pyx_XDECREF(__pyx_r);
62531  __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 981, __pyx_L1_error)
62532  __Pyx_GOTREF(__pyx_t_2);
62533  __pyx_r = __pyx_t_2;
62534  __pyx_t_2 = 0;
62535  goto __pyx_L0;
62536 
62537  /* "View.MemoryView":980
62538  *
62539  * cdef convert_item_to_object(self, char *itemp):
62540  * if self.to_object_func != NULL: # <<<<<<<<<<<<<<
62541  * return self.to_object_func(itemp)
62542  * else:
62543  */
62544  }
62545 
62546  /* "View.MemoryView":983
62547  * return self.to_object_func(itemp)
62548  * else:
62549  * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<<
62550  *
62551  * cdef assign_item_from_object(self, char *itemp, object value):
62552  */
62553  /*else*/ {
62554  __Pyx_XDECREF(__pyx_r);
62555  __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 983, __pyx_L1_error)
62556  __Pyx_GOTREF(__pyx_t_2);
62557  __pyx_r = __pyx_t_2;
62558  __pyx_t_2 = 0;
62559  goto __pyx_L0;
62560  }
62561 
62562  /* "View.MemoryView":979
62563  * __PYX_XDEC_MEMVIEW(&self.from_slice, 1)
62564  *
62565  * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
62566  * if self.to_object_func != NULL:
62567  * return self.to_object_func(itemp)
62568  */
62569 
62570  /* function exit code */
62571  __pyx_L1_error:;
62572  __Pyx_XDECREF(__pyx_t_2);
62573  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
62574  __pyx_r = 0;
62575  __pyx_L0:;
62576  __Pyx_XGIVEREF(__pyx_r);
62577  __Pyx_TraceReturn(__pyx_r, 0);
62578  __Pyx_RefNannyFinishContext();
62579  return __pyx_r;
62580 }
62581 
62582 /* "View.MemoryView":985
62583  * return memoryview.convert_item_to_object(self, itemp)
62584  *
62585  * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
62586  * if self.to_dtype_func != NULL:
62587  * self.to_dtype_func(itemp, value)
62588  */
62589 
62590 static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
62591  PyObject *__pyx_r = NULL;
62592  __Pyx_TraceDeclarations
62593  __Pyx_RefNannyDeclarations
62594  int __pyx_t_1;
62595  int __pyx_t_2;
62596  PyObject *__pyx_t_3 = NULL;
62597  int __pyx_lineno = 0;
62598  const char *__pyx_filename = NULL;
62599  int __pyx_clineno = 0;
62600  __Pyx_RefNannySetupContext("assign_item_from_object", 0);
62601  __Pyx_TraceCall("assign_item_from_object", __pyx_f[1], 985, 0, __PYX_ERR(1, 985, __pyx_L1_error));
62602 
62603  /* "View.MemoryView":986
62604  *
62605  * cdef assign_item_from_object(self, char *itemp, object value):
62606  * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<<
62607  * self.to_dtype_func(itemp, value)
62608  * else:
62609  */
62610  __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0);
62611  if (__pyx_t_1) {
62612 
62613  /* "View.MemoryView":987
62614  * cdef assign_item_from_object(self, char *itemp, object value):
62615  * if self.to_dtype_func != NULL:
62616  * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<<
62617  * else:
62618  * memoryview.assign_item_from_object(self, itemp, value)
62619  */
62620  __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 987, __pyx_L1_error)
62621 
62622  /* "View.MemoryView":986
62623  *
62624  * cdef assign_item_from_object(self, char *itemp, object value):
62625  * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<<
62626  * self.to_dtype_func(itemp, value)
62627  * else:
62628  */
62629  goto __pyx_L3;
62630  }
62631 
62632  /* "View.MemoryView":989
62633  * self.to_dtype_func(itemp, value)
62634  * else:
62635  * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<<
62636  *
62637  * @property
62638  */
62639  /*else*/ {
62640  __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 989, __pyx_L1_error)
62641  __Pyx_GOTREF(__pyx_t_3);
62642  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62643  }
62644  __pyx_L3:;
62645 
62646  /* "View.MemoryView":985
62647  * return memoryview.convert_item_to_object(self, itemp)
62648  *
62649  * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
62650  * if self.to_dtype_func != NULL:
62651  * self.to_dtype_func(itemp, value)
62652  */
62653 
62654  /* function exit code */
62655  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62656  goto __pyx_L0;
62657  __pyx_L1_error:;
62658  __Pyx_XDECREF(__pyx_t_3);
62659  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
62660  __pyx_r = 0;
62661  __pyx_L0:;
62662  __Pyx_XGIVEREF(__pyx_r);
62663  __Pyx_TraceReturn(__pyx_r, 0);
62664  __Pyx_RefNannyFinishContext();
62665  return __pyx_r;
62666 }
62667 
62668 /* "View.MemoryView":992
62669  *
62670  * @property
62671  * def base(self): # <<<<<<<<<<<<<<
62672  * return self.from_object
62673  *
62674  */
62675 
62676 /* Python wrapper */
62677 static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/
62678 static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) {
62679  PyObject *__pyx_r = 0;
62680  __Pyx_RefNannyDeclarations
62681  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
62682  __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
62683 
62684  /* function exit code */
62685  __Pyx_RefNannyFinishContext();
62686  return __pyx_r;
62687 }
62688 
62689 static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
62690  PyObject *__pyx_r = NULL;
62691  __Pyx_TraceDeclarations
62692  __Pyx_RefNannyDeclarations
62693  int __pyx_lineno = 0;
62694  const char *__pyx_filename = NULL;
62695  int __pyx_clineno = 0;
62696  __Pyx_RefNannySetupContext("__get__", 0);
62697  __Pyx_TraceCall("__get__", __pyx_f[1], 992, 0, __PYX_ERR(1, 992, __pyx_L1_error));
62698 
62699  /* "View.MemoryView":993
62700  * @property
62701  * def base(self):
62702  * return self.from_object # <<<<<<<<<<<<<<
62703  *
62704  * __pyx_getbuffer = capsule(<void *> &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)")
62705  */
62706  __Pyx_XDECREF(__pyx_r);
62707  __Pyx_INCREF(__pyx_v_self->from_object);
62708  __pyx_r = __pyx_v_self->from_object;
62709  goto __pyx_L0;
62710 
62711  /* "View.MemoryView":992
62712  *
62713  * @property
62714  * def base(self): # <<<<<<<<<<<<<<
62715  * return self.from_object
62716  *
62717  */
62718 
62719  /* function exit code */
62720  __pyx_L1_error:;
62721  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.base.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
62722  __pyx_r = NULL;
62723  __pyx_L0:;
62724  __Pyx_XGIVEREF(__pyx_r);
62725  __Pyx_TraceReturn(__pyx_r, 0);
62726  __Pyx_RefNannyFinishContext();
62727  return __pyx_r;
62728 }
62729 
62730 /* "(tree fragment)":1
62731  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
62732  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62733  * def __setstate_cython__(self, __pyx_state):
62734  */
62735 
62736 /* Python wrapper */
62737 static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
62738 static PyMethodDef __pyx_mdef___pyx_memoryviewslice_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0};
62739 static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
62740  PyObject *__pyx_r = 0;
62741  __Pyx_RefNannyDeclarations
62742  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
62743  __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
62744 
62745  /* function exit code */
62746  __Pyx_RefNannyFinishContext();
62747  return __pyx_r;
62748 }
62749 
62750 static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) {
62751  PyObject *__pyx_r = NULL;
62752  __Pyx_TraceDeclarations
62753  __Pyx_RefNannyDeclarations
62754  PyObject *__pyx_t_1 = NULL;
62755  int __pyx_lineno = 0;
62756  const char *__pyx_filename = NULL;
62757  int __pyx_clineno = 0;
62758  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
62759  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
62760 
62761  /* "(tree fragment)":2
62762  * def __reduce_cython__(self):
62763  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
62764  * def __setstate_cython__(self, __pyx_state):
62765  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62766  */
62767  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__161, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
62768  __Pyx_GOTREF(__pyx_t_1);
62769  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
62770  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
62771  __PYX_ERR(1, 2, __pyx_L1_error)
62772 
62773  /* "(tree fragment)":1
62774  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
62775  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62776  * def __setstate_cython__(self, __pyx_state):
62777  */
62778 
62779  /* function exit code */
62780  __pyx_L1_error:;
62781  __Pyx_XDECREF(__pyx_t_1);
62782  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
62783  __pyx_r = NULL;
62784  __Pyx_XGIVEREF(__pyx_r);
62785  __Pyx_TraceReturn(__pyx_r, 0);
62786  __Pyx_RefNannyFinishContext();
62787  return __pyx_r;
62788 }
62789 
62790 /* "(tree fragment)":3
62791  * def __reduce_cython__(self):
62792  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62793  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
62794  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62795  */
62796 
62797 /* Python wrapper */
62798 static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
62799 static PyMethodDef __pyx_mdef___pyx_memoryviewslice_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0};
62800 static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
62801  PyObject *__pyx_r = 0;
62802  __Pyx_RefNannyDeclarations
62803  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
62804  __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
62805 
62806  /* function exit code */
62807  __Pyx_RefNannyFinishContext();
62808  return __pyx_r;
62809 }
62810 
62811 static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
62812  PyObject *__pyx_r = NULL;
62813  __Pyx_TraceDeclarations
62814  __Pyx_RefNannyDeclarations
62815  PyObject *__pyx_t_1 = NULL;
62816  int __pyx_lineno = 0;
62817  const char *__pyx_filename = NULL;
62818  int __pyx_clineno = 0;
62819  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
62820  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));
62821 
62822  /* "(tree fragment)":4
62823  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62824  * def __setstate_cython__(self, __pyx_state):
62825  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
62826  */
62827  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__162, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
62828  __Pyx_GOTREF(__pyx_t_1);
62829  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
62830  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
62831  __PYX_ERR(1, 4, __pyx_L1_error)
62832 
62833  /* "(tree fragment)":3
62834  * def __reduce_cython__(self):
62835  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62836  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
62837  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
62838  */
62839 
62840  /* function exit code */
62841  __pyx_L1_error:;
62842  __Pyx_XDECREF(__pyx_t_1);
62843  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
62844  __pyx_r = NULL;
62845  __Pyx_XGIVEREF(__pyx_r);
62846  __Pyx_TraceReturn(__pyx_r, 0);
62847  __Pyx_RefNannyFinishContext();
62848  return __pyx_r;
62849 }
62850 
62851 /* "View.MemoryView":999
62852  *
62853  * @cname('__pyx_memoryview_fromslice')
62854  * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<<
62855  * int ndim,
62856  * object (*to_object_func)(char *),
62857  */
62858 
62859 static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) {
62860  struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
62861  Py_ssize_t __pyx_v_suboffset;
62862  PyObject *__pyx_v_length = NULL;
62863  PyObject *__pyx_r = NULL;
62864  __Pyx_TraceDeclarations
62865  __Pyx_RefNannyDeclarations
62866  int __pyx_t_1;
62867  PyObject *__pyx_t_2 = NULL;
62868  PyObject *__pyx_t_3 = NULL;
62869  __Pyx_TypeInfo *__pyx_t_4;
62870  Py_buffer __pyx_t_5;
62871  Py_ssize_t *__pyx_t_6;
62872  Py_ssize_t *__pyx_t_7;
62873  Py_ssize_t *__pyx_t_8;
62874  Py_ssize_t __pyx_t_9;
62875  int __pyx_lineno = 0;
62876  const char *__pyx_filename = NULL;
62877  int __pyx_clineno = 0;
62878  __Pyx_RefNannySetupContext("memoryview_fromslice", 0);
62879  __Pyx_TraceCall("memoryview_fromslice", __pyx_f[1], 999, 0, __PYX_ERR(1, 999, __pyx_L1_error));
62880 
62881  /* "View.MemoryView":1007
62882  * cdef _memoryviewslice result
62883  *
62884  * if <PyObject *> memviewslice.memview == Py_None: # <<<<<<<<<<<<<<
62885  * return None
62886  *
62887  */
62888  __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0);
62889  if (__pyx_t_1) {
62890 
62891  /* "View.MemoryView":1008
62892  *
62893  * if <PyObject *> memviewslice.memview == Py_None:
62894  * return None # <<<<<<<<<<<<<<
62895  *
62896  *
62897  */
62898  __Pyx_XDECREF(__pyx_r);
62899  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62900  goto __pyx_L0;
62901 
62902  /* "View.MemoryView":1007
62903  * cdef _memoryviewslice result
62904  *
62905  * if <PyObject *> memviewslice.memview == Py_None: # <<<<<<<<<<<<<<
62906  * return None
62907  *
62908  */
62909  }
62910 
62911  /* "View.MemoryView":1013
62912  *
62913  *
62914  * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<<
62915  *
62916  * result.from_slice = memviewslice
62917  */
62918  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
62919  __Pyx_GOTREF(__pyx_t_2);
62920  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1013, __pyx_L1_error)
62921  __Pyx_GOTREF(__pyx_t_3);
62922  __Pyx_INCREF(Py_None);
62923  __Pyx_GIVEREF(Py_None);
62924  PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None);
62925  __Pyx_INCREF(__pyx_int_0);
62926  __Pyx_GIVEREF(__pyx_int_0);
62927  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0);
62928  __Pyx_GIVEREF(__pyx_t_2);
62929  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
62930  __pyx_t_2 = 0;
62931  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
62932  __Pyx_GOTREF(__pyx_t_2);
62933  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
62934  __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
62935  __pyx_t_2 = 0;
62936 
62937  /* "View.MemoryView":1015
62938  * result = _memoryviewslice(None, 0, dtype_is_object)
62939  *
62940  * result.from_slice = memviewslice # <<<<<<<<<<<<<<
62941  * __PYX_INC_MEMVIEW(&memviewslice, 1)
62942  *
62943  */
62944  __pyx_v_result->from_slice = __pyx_v_memviewslice;
62945 
62946  /* "View.MemoryView":1016
62947  *
62948  * result.from_slice = memviewslice
62949  * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<<
62950  *
62951  * result.from_object = (<memoryview> memviewslice.memview).base
62952  */
62953  __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1);
62954 
62955  /* "View.MemoryView":1018
62956  * __PYX_INC_MEMVIEW(&memviewslice, 1)
62957  *
62958  * result.from_object = (<memoryview> memviewslice.memview).base # <<<<<<<<<<<<<<
62959  * result.typeinfo = memviewslice.memview.typeinfo
62960  *
62961  */
62962  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1018, __pyx_L1_error)
62963  __Pyx_GOTREF(__pyx_t_2);
62964  __Pyx_GIVEREF(__pyx_t_2);
62965  __Pyx_GOTREF(__pyx_v_result->from_object);
62966  __Pyx_DECREF(__pyx_v_result->from_object);
62967  __pyx_v_result->from_object = __pyx_t_2;
62968  __pyx_t_2 = 0;
62969 
62970  /* "View.MemoryView":1019
62971  *
62972  * result.from_object = (<memoryview> memviewslice.memview).base
62973  * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<<
62974  *
62975  * result.view = memviewslice.memview.view
62976  */
62977  __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo;
62978  __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4;
62979 
62980  /* "View.MemoryView":1021
62981  * result.typeinfo = memviewslice.memview.typeinfo
62982  *
62983  * result.view = memviewslice.memview.view # <<<<<<<<<<<<<<
62984  * result.view.buf = <void *> memviewslice.data
62985  * result.view.ndim = ndim
62986  */
62987  __pyx_t_5 = __pyx_v_memviewslice.memview->view;
62988  __pyx_v_result->__pyx_base.view = __pyx_t_5;
62989 
62990  /* "View.MemoryView":1022
62991  *
62992  * result.view = memviewslice.memview.view
62993  * result.view.buf = <void *> memviewslice.data # <<<<<<<<<<<<<<
62994  * result.view.ndim = ndim
62995  * (<__pyx_buffer *> &result.view).obj = Py_None
62996  */
62997  __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data);
62998 
62999  /* "View.MemoryView":1023
63000  * result.view = memviewslice.memview.view
63001  * result.view.buf = <void *> memviewslice.data
63002  * result.view.ndim = ndim # <<<<<<<<<<<<<<
63003  * (<__pyx_buffer *> &result.view).obj = Py_None
63004  * Py_INCREF(Py_None)
63005  */
63006  __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim;
63007 
63008  /* "View.MemoryView":1024
63009  * result.view.buf = <void *> memviewslice.data
63010  * result.view.ndim = ndim
63011  * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<<
63012  * Py_INCREF(Py_None)
63013  *
63014  */
63015  ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None;
63016 
63017  /* "View.MemoryView":1025
63018  * result.view.ndim = ndim
63019  * (<__pyx_buffer *> &result.view).obj = Py_None
63020  * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
63021  *
63022  * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
63023  */
63024  Py_INCREF(Py_None);
63025 
63026  /* "View.MemoryView":1027
63027  * Py_INCREF(Py_None)
63028  *
63029  * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<<
63030  * result.flags = PyBUF_RECORDS
63031  * else:
63032  */
63033  __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0);
63034  if (__pyx_t_1) {
63035 
63036  /* "View.MemoryView":1028
63037  *
63038  * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
63039  * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<<
63040  * else:
63041  * result.flags = PyBUF_RECORDS_RO
63042  */
63043  __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS;
63044 
63045  /* "View.MemoryView":1027
63046  * Py_INCREF(Py_None)
63047  *
63048  * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<<
63049  * result.flags = PyBUF_RECORDS
63050  * else:
63051  */
63052  goto __pyx_L4;
63053  }
63054 
63055  /* "View.MemoryView":1030
63056  * result.flags = PyBUF_RECORDS
63057  * else:
63058  * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<<
63059  *
63060  * result.view.shape = <Py_ssize_t *> result.from_slice.shape
63061  */
63062  /*else*/ {
63063  __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO;
63064  }
63065  __pyx_L4:;
63066 
63067  /* "View.MemoryView":1032
63068  * result.flags = PyBUF_RECORDS_RO
63069  *
63070  * result.view.shape = <Py_ssize_t *> result.from_slice.shape # <<<<<<<<<<<<<<
63071  * result.view.strides = <Py_ssize_t *> result.from_slice.strides
63072  *
63073  */
63074  __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape);
63075 
63076  /* "View.MemoryView":1033
63077  *
63078  * result.view.shape = <Py_ssize_t *> result.from_slice.shape
63079  * result.view.strides = <Py_ssize_t *> result.from_slice.strides # <<<<<<<<<<<<<<
63080  *
63081  *
63082  */
63083  __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides);
63084 
63085  /* "View.MemoryView":1036
63086  *
63087  *
63088  * result.view.suboffsets = NULL # <<<<<<<<<<<<<<
63089  * for suboffset in result.from_slice.suboffsets[:ndim]:
63090  * if suboffset >= 0:
63091  */
63092  __pyx_v_result->__pyx_base.view.suboffsets = NULL;
63093 
63094  /* "View.MemoryView":1037
63095  *
63096  * result.view.suboffsets = NULL
63097  * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<<
63098  * if suboffset >= 0:
63099  * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
63100  */
63101  __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim);
63102  for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
63103  __pyx_t_6 = __pyx_t_8;
63104  __pyx_v_suboffset = (__pyx_t_6[0]);
63105 
63106  /* "View.MemoryView":1038
63107  * result.view.suboffsets = NULL
63108  * for suboffset in result.from_slice.suboffsets[:ndim]:
63109  * if suboffset >= 0: # <<<<<<<<<<<<<<
63110  * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
63111  * break
63112  */
63113  __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0);
63114  if (__pyx_t_1) {
63115 
63116  /* "View.MemoryView":1039
63117  * for suboffset in result.from_slice.suboffsets[:ndim]:
63118  * if suboffset >= 0:
63119  * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets # <<<<<<<<<<<<<<
63120  * break
63121  *
63122  */
63123  __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets);
63124 
63125  /* "View.MemoryView":1040
63126  * if suboffset >= 0:
63127  * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
63128  * break # <<<<<<<<<<<<<<
63129  *
63130  * result.view.len = result.view.itemsize
63131  */
63132  goto __pyx_L6_break;
63133 
63134  /* "View.MemoryView":1038
63135  * result.view.suboffsets = NULL
63136  * for suboffset in result.from_slice.suboffsets[:ndim]:
63137  * if suboffset >= 0: # <<<<<<<<<<<<<<
63138  * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
63139  * break
63140  */
63141  }
63142  }
63143  __pyx_L6_break:;
63144 
63145  /* "View.MemoryView":1042
63146  * break
63147  *
63148  * result.view.len = result.view.itemsize # <<<<<<<<<<<<<<
63149  * for length in result.view.shape[:ndim]:
63150  * result.view.len *= length
63151  */
63152  __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize;
63153  __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
63154 
63155  /* "View.MemoryView":1043
63156  *
63157  * result.view.len = result.view.itemsize
63158  * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<<
63159  * result.view.len *= length
63160  *
63161  */
63162  __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim);
63163  for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
63164  __pyx_t_6 = __pyx_t_8;
63165  __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1043, __pyx_L1_error)
63166  __Pyx_GOTREF(__pyx_t_2);
63167  __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2);
63168  __pyx_t_2 = 0;
63169 
63170  /* "View.MemoryView":1044
63171  * result.view.len = result.view.itemsize
63172  * for length in result.view.shape[:ndim]:
63173  * result.view.len *= length # <<<<<<<<<<<<<<
63174  *
63175  * result.to_object_func = to_object_func
63176  */
63177  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1044, __pyx_L1_error)
63178  __Pyx_GOTREF(__pyx_t_2);
63179  __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1044, __pyx_L1_error)
63180  __Pyx_GOTREF(__pyx_t_3);
63181  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
63182  __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1044, __pyx_L1_error)
63183  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
63184  __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
63185  }
63186 
63187  /* "View.MemoryView":1046
63188  * result.view.len *= length
63189  *
63190  * result.to_object_func = to_object_func # <<<<<<<<<<<<<<
63191  * result.to_dtype_func = to_dtype_func
63192  *
63193  */
63194  __pyx_v_result->to_object_func = __pyx_v_to_object_func;
63195 
63196  /* "View.MemoryView":1047
63197  *
63198  * result.to_object_func = to_object_func
63199  * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<<
63200  *
63201  * return result
63202  */
63203  __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func;
63204 
63205  /* "View.MemoryView":1049
63206  * result.to_dtype_func = to_dtype_func
63207  *
63208  * return result # <<<<<<<<<<<<<<
63209  *
63210  * @cname('__pyx_memoryview_get_slice_from_memoryview')
63211  */
63212  __Pyx_XDECREF(__pyx_r);
63213  __Pyx_INCREF(((PyObject *)__pyx_v_result));
63214  __pyx_r = ((PyObject *)__pyx_v_result);
63215  goto __pyx_L0;
63216 
63217  /* "View.MemoryView":999
63218  *
63219  * @cname('__pyx_memoryview_fromslice')
63220  * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<<
63221  * int ndim,
63222  * object (*to_object_func)(char *),
63223  */
63224 
63225  /* function exit code */
63226  __pyx_L1_error:;
63227  __Pyx_XDECREF(__pyx_t_2);
63228  __Pyx_XDECREF(__pyx_t_3);
63229  __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
63230  __pyx_r = 0;
63231  __pyx_L0:;
63232  __Pyx_XDECREF((PyObject *)__pyx_v_result);
63233  __Pyx_XDECREF(__pyx_v_length);
63234  __Pyx_XGIVEREF(__pyx_r);
63235  __Pyx_TraceReturn(__pyx_r, 0);
63236  __Pyx_RefNannyFinishContext();
63237  return __pyx_r;
63238 }
63239 
63240 /* "View.MemoryView":1052
63241  *
63242  * @cname('__pyx_memoryview_get_slice_from_memoryview')
63243  * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<<
63244  * __Pyx_memviewslice *mslice) except NULL:
63245  * cdef _memoryviewslice obj
63246  */
63247 
63248 static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) {
63249  struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0;
63250  __Pyx_memviewslice *__pyx_r;
63251  __Pyx_TraceDeclarations
63252  __Pyx_RefNannyDeclarations
63253  int __pyx_t_1;
63254  int __pyx_t_2;
63255  PyObject *__pyx_t_3 = NULL;
63256  int __pyx_lineno = 0;
63257  const char *__pyx_filename = NULL;
63258  int __pyx_clineno = 0;
63259  __Pyx_RefNannySetupContext("get_slice_from_memview", 0);
63260  __Pyx_TraceCall("get_slice_from_memview", __pyx_f[1], 1052, 0, __PYX_ERR(1, 1052, __pyx_L1_error));
63261 
63262  /* "View.MemoryView":1055
63263  * __Pyx_memviewslice *mslice) except NULL:
63264  * cdef _memoryviewslice obj
63265  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
63266  * obj = memview
63267  * return &obj.from_slice
63268  */
63269  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
63270  __pyx_t_2 = (__pyx_t_1 != 0);
63271  if (__pyx_t_2) {
63272 
63273  /* "View.MemoryView":1056
63274  * cdef _memoryviewslice obj
63275  * if isinstance(memview, _memoryviewslice):
63276  * obj = memview # <<<<<<<<<<<<<<
63277  * return &obj.from_slice
63278  * else:
63279  */
63280  if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 1056, __pyx_L1_error)
63281  __pyx_t_3 = ((PyObject *)__pyx_v_memview);
63282  __Pyx_INCREF(__pyx_t_3);
63283  __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3);
63284  __pyx_t_3 = 0;
63285 
63286  /* "View.MemoryView":1057
63287  * if isinstance(memview, _memoryviewslice):
63288  * obj = memview
63289  * return &obj.from_slice # <<<<<<<<<<<<<<
63290  * else:
63291  * slice_copy(memview, mslice)
63292  */
63293  __pyx_r = (&__pyx_v_obj->from_slice);
63294  goto __pyx_L0;
63295 
63296  /* "View.MemoryView":1055
63297  * __Pyx_memviewslice *mslice) except NULL:
63298  * cdef _memoryviewslice obj
63299  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
63300  * obj = memview
63301  * return &obj.from_slice
63302  */
63303  }
63304 
63305  /* "View.MemoryView":1059
63306  * return &obj.from_slice
63307  * else:
63308  * slice_copy(memview, mslice) # <<<<<<<<<<<<<<
63309  * return mslice
63310  *
63311  */
63312  /*else*/ {
63313  __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice);
63314 
63315  /* "View.MemoryView":1060
63316  * else:
63317  * slice_copy(memview, mslice)
63318  * return mslice # <<<<<<<<<<<<<<
63319  *
63320  * @cname('__pyx_memoryview_slice_copy')
63321  */
63322  __pyx_r = __pyx_v_mslice;
63323  goto __pyx_L0;
63324  }
63325 
63326  /* "View.MemoryView":1052
63327  *
63328  * @cname('__pyx_memoryview_get_slice_from_memoryview')
63329  * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<<
63330  * __Pyx_memviewslice *mslice) except NULL:
63331  * cdef _memoryviewslice obj
63332  */
63333 
63334  /* function exit code */
63335  __pyx_L1_error:;
63336  __Pyx_XDECREF(__pyx_t_3);
63337  __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
63338  __pyx_r = NULL;
63339  __pyx_L0:;
63340  __Pyx_XDECREF((PyObject *)__pyx_v_obj);
63341  __Pyx_TraceReturn(Py_None, 0);
63342  __Pyx_RefNannyFinishContext();
63343  return __pyx_r;
63344 }
63345 
63346 /* "View.MemoryView":1063
63347  *
63348  * @cname('__pyx_memoryview_slice_copy')
63349  * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<<
63350  * cdef int dim
63351  * cdef (Py_ssize_t*) shape, strides, suboffsets
63352  */
63353 
63354 static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) {
63355  int __pyx_v_dim;
63356  Py_ssize_t *__pyx_v_shape;
63357  Py_ssize_t *__pyx_v_strides;
63358  Py_ssize_t *__pyx_v_suboffsets;
63359  __Pyx_TraceDeclarations
63360  __Pyx_RefNannyDeclarations
63361  Py_ssize_t *__pyx_t_1;
63362  int __pyx_t_2;
63363  int __pyx_t_3;
63364  int __pyx_t_4;
63365  Py_ssize_t __pyx_t_5;
63366  int __pyx_lineno = 0;
63367  const char *__pyx_filename = NULL;
63368  int __pyx_clineno = 0;
63369  __Pyx_RefNannySetupContext("slice_copy", 0);
63370  __Pyx_TraceCall("slice_copy", __pyx_f[1], 1063, 0, __PYX_ERR(1, 1063, __pyx_L1_error));
63371 
63372  /* "View.MemoryView":1067
63373  * cdef (Py_ssize_t*) shape, strides, suboffsets
63374  *
63375  * shape = memview.view.shape # <<<<<<<<<<<<<<
63376  * strides = memview.view.strides
63377  * suboffsets = memview.view.suboffsets
63378  */
63379  __pyx_t_1 = __pyx_v_memview->view.shape;
63380  __pyx_v_shape = __pyx_t_1;
63381 
63382  /* "View.MemoryView":1068
63383  *
63384  * shape = memview.view.shape
63385  * strides = memview.view.strides # <<<<<<<<<<<<<<
63386  * suboffsets = memview.view.suboffsets
63387  *
63388  */
63389  __pyx_t_1 = __pyx_v_memview->view.strides;
63390  __pyx_v_strides = __pyx_t_1;
63391 
63392  /* "View.MemoryView":1069
63393  * shape = memview.view.shape
63394  * strides = memview.view.strides
63395  * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<<
63396  *
63397  * dst.memview = <__pyx_memoryview *> memview
63398  */
63399  __pyx_t_1 = __pyx_v_memview->view.suboffsets;
63400  __pyx_v_suboffsets = __pyx_t_1;
63401 
63402  /* "View.MemoryView":1071
63403  * suboffsets = memview.view.suboffsets
63404  *
63405  * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<<
63406  * dst.data = <char *> memview.view.buf
63407  *
63408  */
63409  __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview);
63410 
63411  /* "View.MemoryView":1072
63412  *
63413  * dst.memview = <__pyx_memoryview *> memview
63414  * dst.data = <char *> memview.view.buf # <<<<<<<<<<<<<<
63415  *
63416  * for dim in range(memview.view.ndim):
63417  */
63418  __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf);
63419 
63420  /* "View.MemoryView":1074
63421  * dst.data = <char *> memview.view.buf
63422  *
63423  * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<<
63424  * dst.shape[dim] = shape[dim]
63425  * dst.strides[dim] = strides[dim]
63426  */
63427  __pyx_t_2 = __pyx_v_memview->view.ndim;
63428  __pyx_t_3 = __pyx_t_2;
63429  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
63430  __pyx_v_dim = __pyx_t_4;
63431 
63432  /* "View.MemoryView":1075
63433  *
63434  * for dim in range(memview.view.ndim):
63435  * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<<
63436  * dst.strides[dim] = strides[dim]
63437  * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
63438  */
63439  (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]);
63440 
63441  /* "View.MemoryView":1076
63442  * for dim in range(memview.view.ndim):
63443  * dst.shape[dim] = shape[dim]
63444  * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<<
63445  * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
63446  *
63447  */
63448  (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]);
63449 
63450  /* "View.MemoryView":1077
63451  * dst.shape[dim] = shape[dim]
63452  * dst.strides[dim] = strides[dim]
63453  * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<<
63454  *
63455  * @cname('__pyx_memoryview_copy_object')
63456  */
63457  if ((__pyx_v_suboffsets != 0)) {
63458  __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]);
63459  } else {
63460  __pyx_t_5 = -1L;
63461  }
63462  (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5;
63463  }
63464 
63465  /* "View.MemoryView":1063
63466  *
63467  * @cname('__pyx_memoryview_slice_copy')
63468  * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<<
63469  * cdef int dim
63470  * cdef (Py_ssize_t*) shape, strides, suboffsets
63471  */
63472 
63473  /* function exit code */
63474  goto __pyx_L0;
63475  __pyx_L1_error:;
63476  __Pyx_WriteUnraisable("View.MemoryView.slice_copy", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
63477  __pyx_L0:;
63478  __Pyx_TraceReturn(Py_None, 0);
63479  __Pyx_RefNannyFinishContext();
63480 }
63481 
63482 /* "View.MemoryView":1080
63483  *
63484  * @cname('__pyx_memoryview_copy_object')
63485  * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<<
63486  * "Create a new memoryview object"
63487  * cdef __Pyx_memviewslice memviewslice
63488  */
63489 
63490 static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) {
63491  __Pyx_memviewslice __pyx_v_memviewslice;
63492  PyObject *__pyx_r = NULL;
63493  __Pyx_TraceDeclarations
63494  __Pyx_RefNannyDeclarations
63495  PyObject *__pyx_t_1 = NULL;
63496  int __pyx_lineno = 0;
63497  const char *__pyx_filename = NULL;
63498  int __pyx_clineno = 0;
63499  __Pyx_RefNannySetupContext("memoryview_copy", 0);
63500  __Pyx_TraceCall("memoryview_copy", __pyx_f[1], 1080, 0, __PYX_ERR(1, 1080, __pyx_L1_error));
63501 
63502  /* "View.MemoryView":1083
63503  * "Create a new memoryview object"
63504  * cdef __Pyx_memviewslice memviewslice
63505  * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<<
63506  * return memoryview_copy_from_slice(memview, &memviewslice)
63507  *
63508  */
63509  __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice));
63510 
63511  /* "View.MemoryView":1084
63512  * cdef __Pyx_memviewslice memviewslice
63513  * slice_copy(memview, &memviewslice)
63514  * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<<
63515  *
63516  * @cname('__pyx_memoryview_copy_object_from_slice')
63517  */
63518  __Pyx_XDECREF(__pyx_r);
63519  __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1084, __pyx_L1_error)
63520  __Pyx_GOTREF(__pyx_t_1);
63521  __pyx_r = __pyx_t_1;
63522  __pyx_t_1 = 0;
63523  goto __pyx_L0;
63524 
63525  /* "View.MemoryView":1080
63526  *
63527  * @cname('__pyx_memoryview_copy_object')
63528  * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<<
63529  * "Create a new memoryview object"
63530  * cdef __Pyx_memviewslice memviewslice
63531  */
63532 
63533  /* function exit code */
63534  __pyx_L1_error:;
63535  __Pyx_XDECREF(__pyx_t_1);
63536  __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
63537  __pyx_r = 0;
63538  __pyx_L0:;
63539  __Pyx_XGIVEREF(__pyx_r);
63540  __Pyx_TraceReturn(__pyx_r, 0);
63541  __Pyx_RefNannyFinishContext();
63542  return __pyx_r;
63543 }
63544 
63545 /* "View.MemoryView":1087
63546  *
63547  * @cname('__pyx_memoryview_copy_object_from_slice')
63548  * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<<
63549  * """
63550  * Create a new memoryview object from a given memoryview object and slice.
63551  */
63552 
63553 static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) {
63554  PyObject *(*__pyx_v_to_object_func)(char *);
63555  int (*__pyx_v_to_dtype_func)(char *, PyObject *);
63556  PyObject *__pyx_r = NULL;
63557  __Pyx_TraceDeclarations
63558  __Pyx_RefNannyDeclarations
63559  int __pyx_t_1;
63560  int __pyx_t_2;
63561  PyObject *(*__pyx_t_3)(char *);
63562  int (*__pyx_t_4)(char *, PyObject *);
63563  PyObject *__pyx_t_5 = NULL;
63564  int __pyx_lineno = 0;
63565  const char *__pyx_filename = NULL;
63566  int __pyx_clineno = 0;
63567  __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0);
63568  __Pyx_TraceCall("memoryview_copy_from_slice", __pyx_f[1], 1087, 0, __PYX_ERR(1, 1087, __pyx_L1_error));
63569 
63570  /* "View.MemoryView":1094
63571  * cdef int (*to_dtype_func)(char *, object) except 0
63572  *
63573  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
63574  * to_object_func = (<_memoryviewslice> memview).to_object_func
63575  * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
63576  */
63577  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
63578  __pyx_t_2 = (__pyx_t_1 != 0);
63579  if (__pyx_t_2) {
63580 
63581  /* "View.MemoryView":1095
63582  *
63583  * if isinstance(memview, _memoryviewslice):
63584  * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<<
63585  * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
63586  * else:
63587  */
63588  __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func;
63589  __pyx_v_to_object_func = __pyx_t_3;
63590 
63591  /* "View.MemoryView":1096
63592  * if isinstance(memview, _memoryviewslice):
63593  * to_object_func = (<_memoryviewslice> memview).to_object_func
63594  * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<<
63595  * else:
63596  * to_object_func = NULL
63597  */
63598  __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func;
63599  __pyx_v_to_dtype_func = __pyx_t_4;
63600 
63601  /* "View.MemoryView":1094
63602  * cdef int (*to_dtype_func)(char *, object) except 0
63603  *
63604  * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
63605  * to_object_func = (<_memoryviewslice> memview).to_object_func
63606  * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
63607  */
63608  goto __pyx_L3;
63609  }
63610 
63611  /* "View.MemoryView":1098
63612  * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
63613  * else:
63614  * to_object_func = NULL # <<<<<<<<<<<<<<
63615  * to_dtype_func = NULL
63616  *
63617  */
63618  /*else*/ {
63619  __pyx_v_to_object_func = NULL;
63620 
63621  /* "View.MemoryView":1099
63622  * else:
63623  * to_object_func = NULL
63624  * to_dtype_func = NULL # <<<<<<<<<<<<<<
63625  *
63626  * return memoryview_fromslice(memviewslice[0], memview.view.ndim,
63627  */
63628  __pyx_v_to_dtype_func = NULL;
63629  }
63630  __pyx_L3:;
63631 
63632  /* "View.MemoryView":1101
63633  * to_dtype_func = NULL
63634  *
63635  * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<<
63636  * to_object_func, to_dtype_func,
63637  * memview.dtype_is_object)
63638  */
63639  __Pyx_XDECREF(__pyx_r);
63640 
63641  /* "View.MemoryView":1103
63642  * return memoryview_fromslice(memviewslice[0], memview.view.ndim,
63643  * to_object_func, to_dtype_func,
63644  * memview.dtype_is_object) # <<<<<<<<<<<<<<
63645  *
63646  *
63647  */
63648  __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1101, __pyx_L1_error)
63649  __Pyx_GOTREF(__pyx_t_5);
63650  __pyx_r = __pyx_t_5;
63651  __pyx_t_5 = 0;
63652  goto __pyx_L0;
63653 
63654  /* "View.MemoryView":1087
63655  *
63656  * @cname('__pyx_memoryview_copy_object_from_slice')
63657  * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<<
63658  * """
63659  * Create a new memoryview object from a given memoryview object and slice.
63660  */
63661 
63662  /* function exit code */
63663  __pyx_L1_error:;
63664  __Pyx_XDECREF(__pyx_t_5);
63665  __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
63666  __pyx_r = 0;
63667  __pyx_L0:;
63668  __Pyx_XGIVEREF(__pyx_r);
63669  __Pyx_TraceReturn(__pyx_r, 0);
63670  __Pyx_RefNannyFinishContext();
63671  return __pyx_r;
63672 }
63673 
63674 /* "View.MemoryView":1109
63675  *
63676  *
63677  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<<
63678  * if arg < 0:
63679  * return -arg
63680  */
63681 
63682 static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) {
63683  Py_ssize_t __pyx_r;
63684  __Pyx_TraceDeclarations
63685  int __pyx_t_1;
63686  int __pyx_lineno = 0;
63687  const char *__pyx_filename = NULL;
63688  int __pyx_clineno = 0;
63689  __Pyx_TraceCall("abs_py_ssize_t", __pyx_f[1], 1109, 1, __PYX_ERR(1, 1109, __pyx_L1_error));
63690 
63691  /* "View.MemoryView":1110
63692  *
63693  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil:
63694  * if arg < 0: # <<<<<<<<<<<<<<
63695  * return -arg
63696  * else:
63697  */
63698  __pyx_t_1 = ((__pyx_v_arg < 0) != 0);
63699  if (__pyx_t_1) {
63700 
63701  /* "View.MemoryView":1111
63702  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil:
63703  * if arg < 0:
63704  * return -arg # <<<<<<<<<<<<<<
63705  * else:
63706  * return arg
63707  */
63708  __pyx_r = (-__pyx_v_arg);
63709  goto __pyx_L0;
63710 
63711  /* "View.MemoryView":1110
63712  *
63713  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil:
63714  * if arg < 0: # <<<<<<<<<<<<<<
63715  * return -arg
63716  * else:
63717  */
63718  }
63719 
63720  /* "View.MemoryView":1113
63721  * return -arg
63722  * else:
63723  * return arg # <<<<<<<<<<<<<<
63724  *
63725  * @cname('__pyx_get_best_slice_order')
63726  */
63727  /*else*/ {
63728  __pyx_r = __pyx_v_arg;
63729  goto __pyx_L0;
63730  }
63731 
63732  /* "View.MemoryView":1109
63733  *
63734  *
63735  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<<
63736  * if arg < 0:
63737  * return -arg
63738  */
63739 
63740  /* function exit code */
63741  __pyx_L1_error:;
63742  __Pyx_WriteUnraisable("View.MemoryView.abs_py_ssize_t", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
63743  __pyx_r = 0;
63744  __pyx_L0:;
63745  __Pyx_TraceReturn(Py_None, 1);
63746  return __pyx_r;
63747 }
63748 
63749 /* "View.MemoryView":1116
63750  *
63751  * @cname('__pyx_get_best_slice_order')
63752  * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<<
63753  * """
63754  * Figure out the best memory access order for a given slice.
63755  */
63756 
63757 static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) {
63758  int __pyx_v_i;
63759  Py_ssize_t __pyx_v_c_stride;
63760  Py_ssize_t __pyx_v_f_stride;
63761  char __pyx_r;
63762  __Pyx_TraceDeclarations
63763  int __pyx_t_1;
63764  int __pyx_t_2;
63765  int __pyx_t_3;
63766  int __pyx_t_4;
63767  int __pyx_lineno = 0;
63768  const char *__pyx_filename = NULL;
63769  int __pyx_clineno = 0;
63770  __Pyx_TraceCall("get_best_order", __pyx_f[1], 1116, 1, __PYX_ERR(1, 1116, __pyx_L1_error));
63771 
63772  /* "View.MemoryView":1121
63773  * """
63774  * cdef int i
63775  * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<<
63776  * cdef Py_ssize_t f_stride = 0
63777  *
63778  */
63779  __pyx_v_c_stride = 0;
63780 
63781  /* "View.MemoryView":1122
63782  * cdef int i
63783  * cdef Py_ssize_t c_stride = 0
63784  * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<<
63785  *
63786  * for i in range(ndim - 1, -1, -1):
63787  */
63788  __pyx_v_f_stride = 0;
63789 
63790  /* "View.MemoryView":1124
63791  * cdef Py_ssize_t f_stride = 0
63792  *
63793  * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
63794  * if mslice.shape[i] > 1:
63795  * c_stride = mslice.strides[i]
63796  */
63797  for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
63798  __pyx_v_i = __pyx_t_1;
63799 
63800  /* "View.MemoryView":1125
63801  *
63802  * for i in range(ndim - 1, -1, -1):
63803  * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
63804  * c_stride = mslice.strides[i]
63805  * break
63806  */
63807  __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0);
63808  if (__pyx_t_2) {
63809 
63810  /* "View.MemoryView":1126
63811  * for i in range(ndim - 1, -1, -1):
63812  * if mslice.shape[i] > 1:
63813  * c_stride = mslice.strides[i] # <<<<<<<<<<<<<<
63814  * break
63815  *
63816  */
63817  __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
63818 
63819  /* "View.MemoryView":1127
63820  * if mslice.shape[i] > 1:
63821  * c_stride = mslice.strides[i]
63822  * break # <<<<<<<<<<<<<<
63823  *
63824  * for i in range(ndim):
63825  */
63826  goto __pyx_L4_break;
63827 
63828  /* "View.MemoryView":1125
63829  *
63830  * for i in range(ndim - 1, -1, -1):
63831  * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
63832  * c_stride = mslice.strides[i]
63833  * break
63834  */
63835  }
63836  }
63837  __pyx_L4_break:;
63838 
63839  /* "View.MemoryView":1129
63840  * break
63841  *
63842  * for i in range(ndim): # <<<<<<<<<<<<<<
63843  * if mslice.shape[i] > 1:
63844  * f_stride = mslice.strides[i]
63845  */
63846  __pyx_t_1 = __pyx_v_ndim;
63847  __pyx_t_3 = __pyx_t_1;
63848  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
63849  __pyx_v_i = __pyx_t_4;
63850 
63851  /* "View.MemoryView":1130
63852  *
63853  * for i in range(ndim):
63854  * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
63855  * f_stride = mslice.strides[i]
63856  * break
63857  */
63858  __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0);
63859  if (__pyx_t_2) {
63860 
63861  /* "View.MemoryView":1131
63862  * for i in range(ndim):
63863  * if mslice.shape[i] > 1:
63864  * f_stride = mslice.strides[i] # <<<<<<<<<<<<<<
63865  * break
63866  *
63867  */
63868  __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
63869 
63870  /* "View.MemoryView":1132
63871  * if mslice.shape[i] > 1:
63872  * f_stride = mslice.strides[i]
63873  * break # <<<<<<<<<<<<<<
63874  *
63875  * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
63876  */
63877  goto __pyx_L7_break;
63878 
63879  /* "View.MemoryView":1130
63880  *
63881  * for i in range(ndim):
63882  * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
63883  * f_stride = mslice.strides[i]
63884  * break
63885  */
63886  }
63887  }
63888  __pyx_L7_break:;
63889 
63890  /* "View.MemoryView":1134
63891  * break
63892  *
63893  * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<<
63894  * return 'C'
63895  * else:
63896  */
63897  __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0);
63898  if (__pyx_t_2) {
63899 
63900  /* "View.MemoryView":1135
63901  *
63902  * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
63903  * return 'C' # <<<<<<<<<<<<<<
63904  * else:
63905  * return 'F'
63906  */
63907  __pyx_r = 'C';
63908  goto __pyx_L0;
63909 
63910  /* "View.MemoryView":1134
63911  * break
63912  *
63913  * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<<
63914  * return 'C'
63915  * else:
63916  */
63917  }
63918 
63919  /* "View.MemoryView":1137
63920  * return 'C'
63921  * else:
63922  * return 'F' # <<<<<<<<<<<<<<
63923  *
63924  * @cython.cdivision(True)
63925  */
63926  /*else*/ {
63927  __pyx_r = 'F';
63928  goto __pyx_L0;
63929  }
63930 
63931  /* "View.MemoryView":1116
63932  *
63933  * @cname('__pyx_get_best_slice_order')
63934  * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<<
63935  * """
63936  * Figure out the best memory access order for a given slice.
63937  */
63938 
63939  /* function exit code */
63940  __pyx_L1_error:;
63941  __Pyx_WriteUnraisable("View.MemoryView.get_best_order", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
63942  __pyx_r = 0;
63943  __pyx_L0:;
63944  __Pyx_TraceReturn(Py_None, 1);
63945  return __pyx_r;
63946 }
63947 
63948 /* "View.MemoryView":1140
63949  *
63950  * @cython.cdivision(True)
63951  * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<<
63952  * char *dst_data, Py_ssize_t *dst_strides,
63953  * Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
63954  */
63955 
63956 static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
63957  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
63958  CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent;
63959  Py_ssize_t __pyx_v_dst_extent;
63960  Py_ssize_t __pyx_v_src_stride;
63961  Py_ssize_t __pyx_v_dst_stride;
63962  int __pyx_t_1;
63963  int __pyx_t_2;
63964  int __pyx_t_3;
63965  Py_ssize_t __pyx_t_4;
63966  Py_ssize_t __pyx_t_5;
63967  Py_ssize_t __pyx_t_6;
63968 
63969  /* "View.MemoryView":1147
63970  *
63971  * cdef Py_ssize_t i
63972  * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<<
63973  * cdef Py_ssize_t dst_extent = dst_shape[0]
63974  * cdef Py_ssize_t src_stride = src_strides[0]
63975  */
63976  __pyx_v_src_extent = (__pyx_v_src_shape[0]);
63977 
63978  /* "View.MemoryView":1148
63979  * cdef Py_ssize_t i
63980  * cdef Py_ssize_t src_extent = src_shape[0]
63981  * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<<
63982  * cdef Py_ssize_t src_stride = src_strides[0]
63983  * cdef Py_ssize_t dst_stride = dst_strides[0]
63984  */
63985  __pyx_v_dst_extent = (__pyx_v_dst_shape[0]);
63986 
63987  /* "View.MemoryView":1149
63988  * cdef Py_ssize_t src_extent = src_shape[0]
63989  * cdef Py_ssize_t dst_extent = dst_shape[0]
63990  * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<<
63991  * cdef Py_ssize_t dst_stride = dst_strides[0]
63992  *
63993  */
63994  __pyx_v_src_stride = (__pyx_v_src_strides[0]);
63995 
63996  /* "View.MemoryView":1150
63997  * cdef Py_ssize_t dst_extent = dst_shape[0]
63998  * cdef Py_ssize_t src_stride = src_strides[0]
63999  * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<<
64000  *
64001  * if ndim == 1:
64002  */
64003  __pyx_v_dst_stride = (__pyx_v_dst_strides[0]);
64004 
64005  /* "View.MemoryView":1152
64006  * cdef Py_ssize_t dst_stride = dst_strides[0]
64007  *
64008  * if ndim == 1: # <<<<<<<<<<<<<<
64009  * if (src_stride > 0 and dst_stride > 0 and
64010  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64011  */
64012  __pyx_t_1 = ((__pyx_v_ndim == 1) != 0);
64013  if (__pyx_t_1) {
64014 
64015  /* "View.MemoryView":1153
64016  *
64017  * if ndim == 1:
64018  * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
64019  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64020  * memcpy(dst_data, src_data, itemsize * dst_extent)
64021  */
64022  __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0);
64023  if (__pyx_t_2) {
64024  } else {
64025  __pyx_t_1 = __pyx_t_2;
64026  goto __pyx_L5_bool_binop_done;
64027  }
64028  __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0);
64029  if (__pyx_t_2) {
64030  } else {
64031  __pyx_t_1 = __pyx_t_2;
64032  goto __pyx_L5_bool_binop_done;
64033  }
64034 
64035  /* "View.MemoryView":1154
64036  * if ndim == 1:
64037  * if (src_stride > 0 and dst_stride > 0 and
64038  * <size_t> src_stride == itemsize == <size_t> dst_stride): # <<<<<<<<<<<<<<
64039  * memcpy(dst_data, src_data, itemsize * dst_extent)
64040  * else:
64041  */
64042  __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize);
64043  if (__pyx_t_2) {
64044  __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride));
64045  }
64046  __pyx_t_3 = (__pyx_t_2 != 0);
64047  __pyx_t_1 = __pyx_t_3;
64048  __pyx_L5_bool_binop_done:;
64049 
64050  /* "View.MemoryView":1153
64051  *
64052  * if ndim == 1:
64053  * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
64054  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64055  * memcpy(dst_data, src_data, itemsize * dst_extent)
64056  */
64057  if (__pyx_t_1) {
64058 
64059  /* "View.MemoryView":1155
64060  * if (src_stride > 0 and dst_stride > 0 and
64061  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64062  * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<<
64063  * else:
64064  * for i in range(dst_extent):
64065  */
64066  (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)));
64067 
64068  /* "View.MemoryView":1153
64069  *
64070  * if ndim == 1:
64071  * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
64072  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64073  * memcpy(dst_data, src_data, itemsize * dst_extent)
64074  */
64075  goto __pyx_L4;
64076  }
64077 
64078  /* "View.MemoryView":1157
64079  * memcpy(dst_data, src_data, itemsize * dst_extent)
64080  * else:
64081  * for i in range(dst_extent): # <<<<<<<<<<<<<<
64082  * memcpy(dst_data, src_data, itemsize)
64083  * src_data += src_stride
64084  */
64085  /*else*/ {
64086  __pyx_t_4 = __pyx_v_dst_extent;
64087  __pyx_t_5 = __pyx_t_4;
64088  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
64089  __pyx_v_i = __pyx_t_6;
64090 
64091  /* "View.MemoryView":1158
64092  * else:
64093  * for i in range(dst_extent):
64094  * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<<
64095  * src_data += src_stride
64096  * dst_data += dst_stride
64097  */
64098  (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize));
64099 
64100  /* "View.MemoryView":1159
64101  * for i in range(dst_extent):
64102  * memcpy(dst_data, src_data, itemsize)
64103  * src_data += src_stride # <<<<<<<<<<<<<<
64104  * dst_data += dst_stride
64105  * else:
64106  */
64107  __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
64108 
64109  /* "View.MemoryView":1160
64110  * memcpy(dst_data, src_data, itemsize)
64111  * src_data += src_stride
64112  * dst_data += dst_stride # <<<<<<<<<<<<<<
64113  * else:
64114  * for i in range(dst_extent):
64115  */
64116  __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
64117  }
64118  }
64119  __pyx_L4:;
64120 
64121  /* "View.MemoryView":1152
64122  * cdef Py_ssize_t dst_stride = dst_strides[0]
64123  *
64124  * if ndim == 1: # <<<<<<<<<<<<<<
64125  * if (src_stride > 0 and dst_stride > 0 and
64126  * <size_t> src_stride == itemsize == <size_t> dst_stride):
64127  */
64128  goto __pyx_L3;
64129  }
64130 
64131  /* "View.MemoryView":1162
64132  * dst_data += dst_stride
64133  * else:
64134  * for i in range(dst_extent): # <<<<<<<<<<<<<<
64135  * _copy_strided_to_strided(src_data, src_strides + 1,
64136  * dst_data, dst_strides + 1,
64137  */
64138  /*else*/ {
64139  __pyx_t_4 = __pyx_v_dst_extent;
64140  __pyx_t_5 = __pyx_t_4;
64141  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
64142  __pyx_v_i = __pyx_t_6;
64143 
64144  /* "View.MemoryView":1163
64145  * else:
64146  * for i in range(dst_extent):
64147  * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<<
64148  * dst_data, dst_strides + 1,
64149  * src_shape + 1, dst_shape + 1,
64150  */
64151  _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize);
64152 
64153  /* "View.MemoryView":1167
64154  * src_shape + 1, dst_shape + 1,
64155  * ndim - 1, itemsize)
64156  * src_data += src_stride # <<<<<<<<<<<<<<
64157  * dst_data += dst_stride
64158  *
64159  */
64160  __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
64161 
64162  /* "View.MemoryView":1168
64163  * ndim - 1, itemsize)
64164  * src_data += src_stride
64165  * dst_data += dst_stride # <<<<<<<<<<<<<<
64166  *
64167  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,
64168  */
64169  __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
64170  }
64171  }
64172  __pyx_L3:;
64173 
64174  /* "View.MemoryView":1140
64175  *
64176  * @cython.cdivision(True)
64177  * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<<
64178  * char *dst_data, Py_ssize_t *dst_strides,
64179  * Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
64180  */
64181 
64182  /* function exit code */
64183 }
64184 
64185 /* "View.MemoryView":1170
64186  * dst_data += dst_stride
64187  *
64188  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
64189  * __Pyx_memviewslice *dst,
64190  * int ndim, size_t itemsize) nogil:
64191  */
64192 
64193 static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
64194  __Pyx_TraceDeclarations
64195  int __pyx_lineno = 0;
64196  const char *__pyx_filename = NULL;
64197  int __pyx_clineno = 0;
64198  __Pyx_TraceCall("copy_strided_to_strided", __pyx_f[1], 1170, 1, __PYX_ERR(1, 1170, __pyx_L1_error));
64199 
64200  /* "View.MemoryView":1173
64201  * __Pyx_memviewslice *dst,
64202  * int ndim, size_t itemsize) nogil:
64203  * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<<
64204  * src.shape, dst.shape, ndim, itemsize)
64205  *
64206  */
64207  _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize);
64208 
64209  /* "View.MemoryView":1170
64210  * dst_data += dst_stride
64211  *
64212  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
64213  * __Pyx_memviewslice *dst,
64214  * int ndim, size_t itemsize) nogil:
64215  */
64216 
64217  /* function exit code */
64218  goto __pyx_L0;
64219  __pyx_L1_error:;
64220  __Pyx_WriteUnraisable("View.MemoryView.copy_strided_to_strided", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
64221  __pyx_L0:;
64222  __Pyx_TraceReturn(Py_None, 1);
64223 }
64224 
64225 /* "View.MemoryView":1177
64226  *
64227  * @cname('__pyx_memoryview_slice_get_size')
64228  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<<
64229  * "Return the size of the memory occupied by the slice in number of bytes"
64230  * cdef Py_ssize_t shape, size = src.memview.view.itemsize
64231  */
64232 
64233 static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) {
64234  Py_ssize_t __pyx_v_shape;
64235  Py_ssize_t __pyx_v_size;
64236  Py_ssize_t __pyx_r;
64237  __Pyx_TraceDeclarations
64238  Py_ssize_t __pyx_t_1;
64239  Py_ssize_t *__pyx_t_2;
64240  Py_ssize_t *__pyx_t_3;
64241  Py_ssize_t *__pyx_t_4;
64242  int __pyx_lineno = 0;
64243  const char *__pyx_filename = NULL;
64244  int __pyx_clineno = 0;
64245  __Pyx_TraceCall("slice_get_size", __pyx_f[1], 1177, 1, __PYX_ERR(1, 1177, __pyx_L1_error));
64246 
64247  /* "View.MemoryView":1179
64248  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil:
64249  * "Return the size of the memory occupied by the slice in number of bytes"
64250  * cdef Py_ssize_t shape, size = src.memview.view.itemsize # <<<<<<<<<<<<<<
64251  *
64252  * for shape in src.shape[:ndim]:
64253  */
64254  __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
64255  __pyx_v_size = __pyx_t_1;
64256 
64257  /* "View.MemoryView":1181
64258  * cdef Py_ssize_t shape, size = src.memview.view.itemsize
64259  *
64260  * for shape in src.shape[:ndim]: # <<<<<<<<<<<<<<
64261  * size *= shape
64262  *
64263  */
64264  __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim);
64265  for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
64266  __pyx_t_2 = __pyx_t_4;
64267  __pyx_v_shape = (__pyx_t_2[0]);
64268 
64269  /* "View.MemoryView":1182
64270  *
64271  * for shape in src.shape[:ndim]:
64272  * size *= shape # <<<<<<<<<<<<<<
64273  *
64274  * return size
64275  */
64276  __pyx_v_size = (__pyx_v_size * __pyx_v_shape);
64277  }
64278 
64279  /* "View.MemoryView":1184
64280  * size *= shape
64281  *
64282  * return size # <<<<<<<<<<<<<<
64283  *
64284  * @cname('__pyx_fill_contig_strides_array')
64285  */
64286  __pyx_r = __pyx_v_size;
64287  goto __pyx_L0;
64288 
64289  /* "View.MemoryView":1177
64290  *
64291  * @cname('__pyx_memoryview_slice_get_size')
64292  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<<
64293  * "Return the size of the memory occupied by the slice in number of bytes"
64294  * cdef Py_ssize_t shape, size = src.memview.view.itemsize
64295  */
64296 
64297  /* function exit code */
64298  __pyx_L1_error:;
64299  __Pyx_WriteUnraisable("View.MemoryView.slice_get_size", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
64300  __pyx_r = 0;
64301  __pyx_L0:;
64302  __Pyx_TraceReturn(Py_None, 1);
64303  return __pyx_r;
64304 }
64305 
64306 /* "View.MemoryView":1187
64307  *
64308  * @cname('__pyx_fill_contig_strides_array')
64309  * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<<
64310  * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
64311  * int ndim, char order) nogil:
64312  */
64313 
64314 static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) {
64315  int __pyx_v_idx;
64316  Py_ssize_t __pyx_r;
64317  __Pyx_TraceDeclarations
64318  int __pyx_t_1;
64319  int __pyx_t_2;
64320  int __pyx_t_3;
64321  int __pyx_t_4;
64322  int __pyx_lineno = 0;
64323  const char *__pyx_filename = NULL;
64324  int __pyx_clineno = 0;
64325  __Pyx_TraceCall("fill_contig_strides_array", __pyx_f[1], 1187, 1, __PYX_ERR(1, 1187, __pyx_L1_error));
64326 
64327  /* "View.MemoryView":1196
64328  * cdef int idx
64329  *
64330  * if order == 'F': # <<<<<<<<<<<<<<
64331  * for idx in range(ndim):
64332  * strides[idx] = stride
64333  */
64334  __pyx_t_1 = ((__pyx_v_order == 'F') != 0);
64335  if (__pyx_t_1) {
64336 
64337  /* "View.MemoryView":1197
64338  *
64339  * if order == 'F':
64340  * for idx in range(ndim): # <<<<<<<<<<<<<<
64341  * strides[idx] = stride
64342  * stride *= shape[idx]
64343  */
64344  __pyx_t_2 = __pyx_v_ndim;
64345  __pyx_t_3 = __pyx_t_2;
64346  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
64347  __pyx_v_idx = __pyx_t_4;
64348 
64349  /* "View.MemoryView":1198
64350  * if order == 'F':
64351  * for idx in range(ndim):
64352  * strides[idx] = stride # <<<<<<<<<<<<<<
64353  * stride *= shape[idx]
64354  * else:
64355  */
64356  (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
64357 
64358  /* "View.MemoryView":1199
64359  * for idx in range(ndim):
64360  * strides[idx] = stride
64361  * stride *= shape[idx] # <<<<<<<<<<<<<<
64362  * else:
64363  * for idx in range(ndim - 1, -1, -1):
64364  */
64365  __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
64366  }
64367 
64368  /* "View.MemoryView":1196
64369  * cdef int idx
64370  *
64371  * if order == 'F': # <<<<<<<<<<<<<<
64372  * for idx in range(ndim):
64373  * strides[idx] = stride
64374  */
64375  goto __pyx_L3;
64376  }
64377 
64378  /* "View.MemoryView":1201
64379  * stride *= shape[idx]
64380  * else:
64381  * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
64382  * strides[idx] = stride
64383  * stride *= shape[idx]
64384  */
64385  /*else*/ {
64386  for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) {
64387  __pyx_v_idx = __pyx_t_2;
64388 
64389  /* "View.MemoryView":1202
64390  * else:
64391  * for idx in range(ndim - 1, -1, -1):
64392  * strides[idx] = stride # <<<<<<<<<<<<<<
64393  * stride *= shape[idx]
64394  *
64395  */
64396  (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
64397 
64398  /* "View.MemoryView":1203
64399  * for idx in range(ndim - 1, -1, -1):
64400  * strides[idx] = stride
64401  * stride *= shape[idx] # <<<<<<<<<<<<<<
64402  *
64403  * return stride
64404  */
64405  __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
64406  }
64407  }
64408  __pyx_L3:;
64409 
64410  /* "View.MemoryView":1205
64411  * stride *= shape[idx]
64412  *
64413  * return stride # <<<<<<<<<<<<<<
64414  *
64415  * @cname('__pyx_memoryview_copy_data_to_temp')
64416  */
64417  __pyx_r = __pyx_v_stride;
64418  goto __pyx_L0;
64419 
64420  /* "View.MemoryView":1187
64421  *
64422  * @cname('__pyx_fill_contig_strides_array')
64423  * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<<
64424  * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
64425  * int ndim, char order) nogil:
64426  */
64427 
64428  /* function exit code */
64429  __pyx_L1_error:;
64430  __Pyx_WriteUnraisable("View.MemoryView.fill_contig_strides_array", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
64431  __pyx_r = 0;
64432  __pyx_L0:;
64433  __Pyx_TraceReturn(Py_None, 1);
64434  return __pyx_r;
64435 }
64436 
64437 /* "View.MemoryView":1208
64438  *
64439  * @cname('__pyx_memoryview_copy_data_to_temp')
64440  * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
64441  * __Pyx_memviewslice *tmpslice,
64442  * char order,
64443  */
64444 
64445 static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) {
64446  int __pyx_v_i;
64447  void *__pyx_v_result;
64448  size_t __pyx_v_itemsize;
64449  size_t __pyx_v_size;
64450  void *__pyx_r;
64451  __Pyx_TraceDeclarations
64452  Py_ssize_t __pyx_t_1;
64453  int __pyx_t_2;
64454  int __pyx_t_3;
64455  struct __pyx_memoryview_obj *__pyx_t_4;
64456  int __pyx_t_5;
64457  int __pyx_t_6;
64458  int __pyx_lineno = 0;
64459  const char *__pyx_filename = NULL;
64460  int __pyx_clineno = 0;
64461  __Pyx_TraceCall("copy_data_to_temp", __pyx_f[1], 1208, 1, __PYX_ERR(1, 1208, __pyx_L1_error));
64462 
64463  /* "View.MemoryView":1219
64464  * cdef void *result
64465  *
64466  * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<<
64467  * cdef size_t size = slice_get_size(src, ndim)
64468  *
64469  */
64470  __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
64471  __pyx_v_itemsize = __pyx_t_1;
64472 
64473  /* "View.MemoryView":1220
64474  *
64475  * cdef size_t itemsize = src.memview.view.itemsize
64476  * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<<
64477  *
64478  * result = malloc(size)
64479  */
64480  __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim);
64481 
64482  /* "View.MemoryView":1222
64483  * cdef size_t size = slice_get_size(src, ndim)
64484  *
64485  * result = malloc(size) # <<<<<<<<<<<<<<
64486  * if not result:
64487  * _err(MemoryError, NULL)
64488  */
64489  __pyx_v_result = malloc(__pyx_v_size);
64490 
64491  /* "View.MemoryView":1223
64492  *
64493  * result = malloc(size)
64494  * if not result: # <<<<<<<<<<<<<<
64495  * _err(MemoryError, NULL)
64496  *
64497  */
64498  __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0);
64499  if (__pyx_t_2) {
64500 
64501  /* "View.MemoryView":1224
64502  * result = malloc(size)
64503  * if not result:
64504  * _err(MemoryError, NULL) # <<<<<<<<<<<<<<
64505  *
64506  *
64507  */
64508  __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 1224, __pyx_L1_error)
64509 
64510  /* "View.MemoryView":1223
64511  *
64512  * result = malloc(size)
64513  * if not result: # <<<<<<<<<<<<<<
64514  * _err(MemoryError, NULL)
64515  *
64516  */
64517  }
64518 
64519  /* "View.MemoryView":1227
64520  *
64521  *
64522  * tmpslice.data = <char *> result # <<<<<<<<<<<<<<
64523  * tmpslice.memview = src.memview
64524  * for i in range(ndim):
64525  */
64526  __pyx_v_tmpslice->data = ((char *)__pyx_v_result);
64527 
64528  /* "View.MemoryView":1228
64529  *
64530  * tmpslice.data = <char *> result
64531  * tmpslice.memview = src.memview # <<<<<<<<<<<<<<
64532  * for i in range(ndim):
64533  * tmpslice.shape[i] = src.shape[i]
64534  */
64535  __pyx_t_4 = __pyx_v_src->memview;
64536  __pyx_v_tmpslice->memview = __pyx_t_4;
64537 
64538  /* "View.MemoryView":1229
64539  * tmpslice.data = <char *> result
64540  * tmpslice.memview = src.memview
64541  * for i in range(ndim): # <<<<<<<<<<<<<<
64542  * tmpslice.shape[i] = src.shape[i]
64543  * tmpslice.suboffsets[i] = -1
64544  */
64545  __pyx_t_3 = __pyx_v_ndim;
64546  __pyx_t_5 = __pyx_t_3;
64547  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
64548  __pyx_v_i = __pyx_t_6;
64549 
64550  /* "View.MemoryView":1230
64551  * tmpslice.memview = src.memview
64552  * for i in range(ndim):
64553  * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<<
64554  * tmpslice.suboffsets[i] = -1
64555  *
64556  */
64557  (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]);
64558 
64559  /* "View.MemoryView":1231
64560  * for i in range(ndim):
64561  * tmpslice.shape[i] = src.shape[i]
64562  * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<<
64563  *
64564  * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize,
64565  */
64566  (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L;
64567  }
64568 
64569  /* "View.MemoryView":1233
64570  * tmpslice.suboffsets[i] = -1
64571  *
64572  * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<<
64573  * ndim, order)
64574  *
64575  */
64576  (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order));
64577 
64578  /* "View.MemoryView":1237
64579  *
64580  *
64581  * for i in range(ndim): # <<<<<<<<<<<<<<
64582  * if tmpslice.shape[i] == 1:
64583  * tmpslice.strides[i] = 0
64584  */
64585  __pyx_t_3 = __pyx_v_ndim;
64586  __pyx_t_5 = __pyx_t_3;
64587  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
64588  __pyx_v_i = __pyx_t_6;
64589 
64590  /* "View.MemoryView":1238
64591  *
64592  * for i in range(ndim):
64593  * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<<
64594  * tmpslice.strides[i] = 0
64595  *
64596  */
64597  __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0);
64598  if (__pyx_t_2) {
64599 
64600  /* "View.MemoryView":1239
64601  * for i in range(ndim):
64602  * if tmpslice.shape[i] == 1:
64603  * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<<
64604  *
64605  * if slice_is_contig(src[0], order, ndim):
64606  */
64607  (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0;
64608 
64609  /* "View.MemoryView":1238
64610  *
64611  * for i in range(ndim):
64612  * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<<
64613  * tmpslice.strides[i] = 0
64614  *
64615  */
64616  }
64617  }
64618 
64619  /* "View.MemoryView":1241
64620  * tmpslice.strides[i] = 0
64621  *
64622  * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<<
64623  * memcpy(result, src.data, size)
64624  * else:
64625  */
64626  __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0);
64627  if (__pyx_t_2) {
64628 
64629  /* "View.MemoryView":1242
64630  *
64631  * if slice_is_contig(src[0], order, ndim):
64632  * memcpy(result, src.data, size) # <<<<<<<<<<<<<<
64633  * else:
64634  * copy_strided_to_strided(src, tmpslice, ndim, itemsize)
64635  */
64636  (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size));
64637 
64638  /* "View.MemoryView":1241
64639  * tmpslice.strides[i] = 0
64640  *
64641  * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<<
64642  * memcpy(result, src.data, size)
64643  * else:
64644  */
64645  goto __pyx_L9;
64646  }
64647 
64648  /* "View.MemoryView":1244
64649  * memcpy(result, src.data, size)
64650  * else:
64651  * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<<
64652  *
64653  * return result
64654  */
64655  /*else*/ {
64656  copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize);
64657  }
64658  __pyx_L9:;
64659 
64660  /* "View.MemoryView":1246
64661  * copy_strided_to_strided(src, tmpslice, ndim, itemsize)
64662  *
64663  * return result # <<<<<<<<<<<<<<
64664  *
64665  *
64666  */
64667  __pyx_r = __pyx_v_result;
64668  goto __pyx_L0;
64669 
64670  /* "View.MemoryView":1208
64671  *
64672  * @cname('__pyx_memoryview_copy_data_to_temp')
64673  * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
64674  * __Pyx_memviewslice *tmpslice,
64675  * char order,
64676  */
64677 
64678  /* function exit code */
64679  __pyx_L1_error:;
64680  {
64681  #ifdef WITH_THREAD
64682  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
64683  #endif
64684  __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename);
64685  #ifdef WITH_THREAD
64686  __Pyx_PyGILState_Release(__pyx_gilstate_save);
64687  #endif
64688  }
64689  __pyx_r = NULL;
64690  __pyx_L0:;
64691  __Pyx_TraceReturn(Py_None, 1);
64692  return __pyx_r;
64693 }
64694 
64695 /* "View.MemoryView":1251
64696  *
64697  * @cname('__pyx_memoryview_err_extents')
64698  * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<<
64699  * Py_ssize_t extent2) except -1 with gil:
64700  * raise ValueError("got differing extents in dimension %d (got %d and %d)" %
64701  */
64702 
64703 static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) {
64704  int __pyx_r;
64705  __Pyx_TraceDeclarations
64706  __Pyx_RefNannyDeclarations
64707  PyObject *__pyx_t_1 = NULL;
64708  PyObject *__pyx_t_2 = NULL;
64709  PyObject *__pyx_t_3 = NULL;
64710  PyObject *__pyx_t_4 = NULL;
64711  int __pyx_lineno = 0;
64712  const char *__pyx_filename = NULL;
64713  int __pyx_clineno = 0;
64714  #ifdef WITH_THREAD
64715  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
64716  #endif
64717  __Pyx_RefNannySetupContext("_err_extents", 0);
64718  __Pyx_TraceCall("_err_extents", __pyx_f[1], 1251, 0, __PYX_ERR(1, 1251, __pyx_L1_error));
64719 
64720  /* "View.MemoryView":1254
64721  * Py_ssize_t extent2) except -1 with gil:
64722  * raise ValueError("got differing extents in dimension %d (got %d and %d)" %
64723  * (i, extent1, extent2)) # <<<<<<<<<<<<<<
64724  *
64725  * @cname('__pyx_memoryview_err_dim')
64726  */
64727  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1254, __pyx_L1_error)
64728  __Pyx_GOTREF(__pyx_t_1);
64729  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1254, __pyx_L1_error)
64730  __Pyx_GOTREF(__pyx_t_2);
64731  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1254, __pyx_L1_error)
64732  __Pyx_GOTREF(__pyx_t_3);
64733  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1254, __pyx_L1_error)
64734  __Pyx_GOTREF(__pyx_t_4);
64735  __Pyx_GIVEREF(__pyx_t_1);
64736  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
64737  __Pyx_GIVEREF(__pyx_t_2);
64738  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
64739  __Pyx_GIVEREF(__pyx_t_3);
64740  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
64741  __pyx_t_1 = 0;
64742  __pyx_t_2 = 0;
64743  __pyx_t_3 = 0;
64744 
64745  /* "View.MemoryView":1253
64746  * cdef int _err_extents(int i, Py_ssize_t extent1,
64747  * Py_ssize_t extent2) except -1 with gil:
64748  * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<<
64749  * (i, extent1, extent2))
64750  *
64751  */
64752  __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1253, __pyx_L1_error)
64753  __Pyx_GOTREF(__pyx_t_3);
64754  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
64755  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1253, __pyx_L1_error)
64756  __Pyx_GOTREF(__pyx_t_4);
64757  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
64758  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
64759  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
64760  __PYX_ERR(1, 1253, __pyx_L1_error)
64761 
64762  /* "View.MemoryView":1251
64763  *
64764  * @cname('__pyx_memoryview_err_extents')
64765  * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<<
64766  * Py_ssize_t extent2) except -1 with gil:
64767  * raise ValueError("got differing extents in dimension %d (got %d and %d)" %
64768  */
64769 
64770  /* function exit code */
64771  __pyx_L1_error:;
64772  __Pyx_XDECREF(__pyx_t_1);
64773  __Pyx_XDECREF(__pyx_t_2);
64774  __Pyx_XDECREF(__pyx_t_3);
64775  __Pyx_XDECREF(__pyx_t_4);
64776  __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename);
64777  __pyx_r = -1;
64778  __Pyx_TraceReturn(Py_None, 0);
64779  __Pyx_RefNannyFinishContext();
64780  #ifdef WITH_THREAD
64781  __Pyx_PyGILState_Release(__pyx_gilstate_save);
64782  #endif
64783  return __pyx_r;
64784 }
64785 
64786 /* "View.MemoryView":1257
64787  *
64788  * @cname('__pyx_memoryview_err_dim')
64789  * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<<
64790  * raise error(msg.decode('ascii') % dim)
64791  *
64792  */
64793 
64794 static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) {
64795  int __pyx_r;
64796  __Pyx_TraceDeclarations
64797  __Pyx_RefNannyDeclarations
64798  PyObject *__pyx_t_1 = NULL;
64799  PyObject *__pyx_t_2 = NULL;
64800  PyObject *__pyx_t_3 = NULL;
64801  PyObject *__pyx_t_4 = NULL;
64802  int __pyx_lineno = 0;
64803  const char *__pyx_filename = NULL;
64804  int __pyx_clineno = 0;
64805  #ifdef WITH_THREAD
64806  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
64807  #endif
64808  __Pyx_RefNannySetupContext("_err_dim", 0);
64809  __Pyx_TraceCall("_err_dim", __pyx_f[1], 1257, 0, __PYX_ERR(1, 1257, __pyx_L1_error));
64810  __Pyx_INCREF(__pyx_v_error);
64811 
64812  /* "View.MemoryView":1258
64813  * @cname('__pyx_memoryview_err_dim')
64814  * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil:
64815  * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<<
64816  *
64817  * @cname('__pyx_memoryview_err')
64818  */
64819  __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1258, __pyx_L1_error)
64820  __Pyx_GOTREF(__pyx_t_2);
64821  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1258, __pyx_L1_error)
64822  __Pyx_GOTREF(__pyx_t_3);
64823  __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1258, __pyx_L1_error)
64824  __Pyx_GOTREF(__pyx_t_4);
64825  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
64826  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
64827  __Pyx_INCREF(__pyx_v_error);
64828  __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL;
64829  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
64830  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
64831  if (likely(__pyx_t_2)) {
64832  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
64833  __Pyx_INCREF(__pyx_t_2);
64834  __Pyx_INCREF(function);
64835  __Pyx_DECREF_SET(__pyx_t_3, function);
64836  }
64837  }
64838  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
64839  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
64840  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
64841  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1258, __pyx_L1_error)
64842  __Pyx_GOTREF(__pyx_t_1);
64843  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
64844  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
64845  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64846  __PYX_ERR(1, 1258, __pyx_L1_error)
64847 
64848  /* "View.MemoryView":1257
64849  *
64850  * @cname('__pyx_memoryview_err_dim')
64851  * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<<
64852  * raise error(msg.decode('ascii') % dim)
64853  *
64854  */
64855 
64856  /* function exit code */
64857  __pyx_L1_error:;
64858  __Pyx_XDECREF(__pyx_t_1);
64859  __Pyx_XDECREF(__pyx_t_2);
64860  __Pyx_XDECREF(__pyx_t_3);
64861  __Pyx_XDECREF(__pyx_t_4);
64862  __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
64863  __pyx_r = -1;
64864  __Pyx_XDECREF(__pyx_v_error);
64865  __Pyx_TraceReturn(Py_None, 0);
64866  __Pyx_RefNannyFinishContext();
64867  #ifdef WITH_THREAD
64868  __Pyx_PyGILState_Release(__pyx_gilstate_save);
64869  #endif
64870  return __pyx_r;
64871 }
64872 
64873 /* "View.MemoryView":1261
64874  *
64875  * @cname('__pyx_memoryview_err')
64876  * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<<
64877  * if msg != NULL:
64878  * raise error(msg.decode('ascii'))
64879  */
64880 
64881 static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) {
64882  int __pyx_r;
64883  __Pyx_TraceDeclarations
64884  __Pyx_RefNannyDeclarations
64885  int __pyx_t_1;
64886  PyObject *__pyx_t_2 = NULL;
64887  PyObject *__pyx_t_3 = NULL;
64888  PyObject *__pyx_t_4 = NULL;
64889  PyObject *__pyx_t_5 = NULL;
64890  int __pyx_lineno = 0;
64891  const char *__pyx_filename = NULL;
64892  int __pyx_clineno = 0;
64893  #ifdef WITH_THREAD
64894  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
64895  #endif
64896  __Pyx_RefNannySetupContext("_err", 0);
64897  __Pyx_TraceCall("_err", __pyx_f[1], 1261, 0, __PYX_ERR(1, 1261, __pyx_L1_error));
64898  __Pyx_INCREF(__pyx_v_error);
64899 
64900  /* "View.MemoryView":1262
64901  * @cname('__pyx_memoryview_err')
64902  * cdef int _err(object error, char *msg) except -1 with gil:
64903  * if msg != NULL: # <<<<<<<<<<<<<<
64904  * raise error(msg.decode('ascii'))
64905  * else:
64906  */
64907  __pyx_t_1 = ((__pyx_v_msg != NULL) != 0);
64908  if (unlikely(__pyx_t_1)) {
64909 
64910  /* "View.MemoryView":1263
64911  * cdef int _err(object error, char *msg) except -1 with gil:
64912  * if msg != NULL:
64913  * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<<
64914  * else:
64915  * raise error
64916  */
64917  __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1263, __pyx_L1_error)
64918  __Pyx_GOTREF(__pyx_t_3);
64919  __Pyx_INCREF(__pyx_v_error);
64920  __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL;
64921  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
64922  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
64923  if (likely(__pyx_t_5)) {
64924  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
64925  __Pyx_INCREF(__pyx_t_5);
64926  __Pyx_INCREF(function);
64927  __Pyx_DECREF_SET(__pyx_t_4, function);
64928  }
64929  }
64930  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
64931  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
64932  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
64933  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1263, __pyx_L1_error)
64934  __Pyx_GOTREF(__pyx_t_2);
64935  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
64936  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
64937  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
64938  __PYX_ERR(1, 1263, __pyx_L1_error)
64939 
64940  /* "View.MemoryView":1262
64941  * @cname('__pyx_memoryview_err')
64942  * cdef int _err(object error, char *msg) except -1 with gil:
64943  * if msg != NULL: # <<<<<<<<<<<<<<
64944  * raise error(msg.decode('ascii'))
64945  * else:
64946  */
64947  }
64948 
64949  /* "View.MemoryView":1265
64950  * raise error(msg.decode('ascii'))
64951  * else:
64952  * raise error # <<<<<<<<<<<<<<
64953  *
64954  * @cname('__pyx_memoryview_copy_contents')
64955  */
64956  /*else*/ {
64957  __Pyx_Raise(__pyx_v_error, 0, 0, 0);
64958  __PYX_ERR(1, 1265, __pyx_L1_error)
64959  }
64960 
64961  /* "View.MemoryView":1261
64962  *
64963  * @cname('__pyx_memoryview_err')
64964  * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<<
64965  * if msg != NULL:
64966  * raise error(msg.decode('ascii'))
64967  */
64968 
64969  /* function exit code */
64970  __pyx_L1_error:;
64971  __Pyx_XDECREF(__pyx_t_2);
64972  __Pyx_XDECREF(__pyx_t_3);
64973  __Pyx_XDECREF(__pyx_t_4);
64974  __Pyx_XDECREF(__pyx_t_5);
64975  __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename);
64976  __pyx_r = -1;
64977  __Pyx_XDECREF(__pyx_v_error);
64978  __Pyx_TraceReturn(Py_None, 0);
64979  __Pyx_RefNannyFinishContext();
64980  #ifdef WITH_THREAD
64981  __Pyx_PyGILState_Release(__pyx_gilstate_save);
64982  #endif
64983  return __pyx_r;
64984 }
64985 
64986 /* "View.MemoryView":1268
64987  *
64988  * @cname('__pyx_memoryview_copy_contents')
64989  * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<<
64990  * __Pyx_memviewslice dst,
64991  * int src_ndim, int dst_ndim,
64992  */
64993 
64994 static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) {
64995  void *__pyx_v_tmpdata;
64996  size_t __pyx_v_itemsize;
64997  int __pyx_v_i;
64998  char __pyx_v_order;
64999  int __pyx_v_broadcasting;
65000  int __pyx_v_direct_copy;
65001  __Pyx_memviewslice __pyx_v_tmp;
65002  int __pyx_v_ndim;
65003  int __pyx_r;
65004  __Pyx_TraceDeclarations
65005  Py_ssize_t __pyx_t_1;
65006  int __pyx_t_2;
65007  int __pyx_t_3;
65008  int __pyx_t_4;
65009  int __pyx_t_5;
65010  int __pyx_t_6;
65011  void *__pyx_t_7;
65012  int __pyx_t_8;
65013  int __pyx_lineno = 0;
65014  const char *__pyx_filename = NULL;
65015  int __pyx_clineno = 0;
65016  __Pyx_TraceCall("memoryview_copy_contents", __pyx_f[1], 1268, 1, __PYX_ERR(1, 1268, __pyx_L1_error));
65017 
65018  /* "View.MemoryView":1276
65019  * Check for overlapping memory and verify the shapes.
65020  * """
65021  * cdef void *tmpdata = NULL # <<<<<<<<<<<<<<
65022  * cdef size_t itemsize = src.memview.view.itemsize
65023  * cdef int i
65024  */
65025  __pyx_v_tmpdata = NULL;
65026 
65027  /* "View.MemoryView":1277
65028  * """
65029  * cdef void *tmpdata = NULL
65030  * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<<
65031  * cdef int i
65032  * cdef char order = get_best_order(&src, src_ndim)
65033  */
65034  __pyx_t_1 = __pyx_v_src.memview->view.itemsize;
65035  __pyx_v_itemsize = __pyx_t_1;
65036 
65037  /* "View.MemoryView":1279
65038  * cdef size_t itemsize = src.memview.view.itemsize
65039  * cdef int i
65040  * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<<
65041  * cdef bint broadcasting = False
65042  * cdef bint direct_copy = False
65043  */
65044  __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim);
65045 
65046  /* "View.MemoryView":1280
65047  * cdef int i
65048  * cdef char order = get_best_order(&src, src_ndim)
65049  * cdef bint broadcasting = False # <<<<<<<<<<<<<<
65050  * cdef bint direct_copy = False
65051  * cdef __Pyx_memviewslice tmp
65052  */
65053  __pyx_v_broadcasting = 0;
65054 
65055  /* "View.MemoryView":1281
65056  * cdef char order = get_best_order(&src, src_ndim)
65057  * cdef bint broadcasting = False
65058  * cdef bint direct_copy = False # <<<<<<<<<<<<<<
65059  * cdef __Pyx_memviewslice tmp
65060  *
65061  */
65062  __pyx_v_direct_copy = 0;
65063 
65064  /* "View.MemoryView":1284
65065  * cdef __Pyx_memviewslice tmp
65066  *
65067  * if src_ndim < dst_ndim: # <<<<<<<<<<<<<<
65068  * broadcast_leading(&src, src_ndim, dst_ndim)
65069  * elif dst_ndim < src_ndim:
65070  */
65071  __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0);
65072  if (__pyx_t_2) {
65073 
65074  /* "View.MemoryView":1285
65075  *
65076  * if src_ndim < dst_ndim:
65077  * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<<
65078  * elif dst_ndim < src_ndim:
65079  * broadcast_leading(&dst, dst_ndim, src_ndim)
65080  */
65081  __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim);
65082 
65083  /* "View.MemoryView":1284
65084  * cdef __Pyx_memviewslice tmp
65085  *
65086  * if src_ndim < dst_ndim: # <<<<<<<<<<<<<<
65087  * broadcast_leading(&src, src_ndim, dst_ndim)
65088  * elif dst_ndim < src_ndim:
65089  */
65090  goto __pyx_L3;
65091  }
65092 
65093  /* "View.MemoryView":1286
65094  * if src_ndim < dst_ndim:
65095  * broadcast_leading(&src, src_ndim, dst_ndim)
65096  * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<<
65097  * broadcast_leading(&dst, dst_ndim, src_ndim)
65098  *
65099  */
65100  __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0);
65101  if (__pyx_t_2) {
65102 
65103  /* "View.MemoryView":1287
65104  * broadcast_leading(&src, src_ndim, dst_ndim)
65105  * elif dst_ndim < src_ndim:
65106  * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<<
65107  *
65108  * cdef int ndim = max(src_ndim, dst_ndim)
65109  */
65110  __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim);
65111 
65112  /* "View.MemoryView":1286
65113  * if src_ndim < dst_ndim:
65114  * broadcast_leading(&src, src_ndim, dst_ndim)
65115  * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<<
65116  * broadcast_leading(&dst, dst_ndim, src_ndim)
65117  *
65118  */
65119  }
65120  __pyx_L3:;
65121 
65122  /* "View.MemoryView":1289
65123  * broadcast_leading(&dst, dst_ndim, src_ndim)
65124  *
65125  * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<<
65126  *
65127  * for i in range(ndim):
65128  */
65129  __pyx_t_3 = __pyx_v_dst_ndim;
65130  __pyx_t_4 = __pyx_v_src_ndim;
65131  if (((__pyx_t_3 > __pyx_t_4) != 0)) {
65132  __pyx_t_5 = __pyx_t_3;
65133  } else {
65134  __pyx_t_5 = __pyx_t_4;
65135  }
65136  __pyx_v_ndim = __pyx_t_5;
65137 
65138  /* "View.MemoryView":1291
65139  * cdef int ndim = max(src_ndim, dst_ndim)
65140  *
65141  * for i in range(ndim): # <<<<<<<<<<<<<<
65142  * if src.shape[i] != dst.shape[i]:
65143  * if src.shape[i] == 1:
65144  */
65145  __pyx_t_5 = __pyx_v_ndim;
65146  __pyx_t_3 = __pyx_t_5;
65147  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
65148  __pyx_v_i = __pyx_t_4;
65149 
65150  /* "View.MemoryView":1292
65151  *
65152  * for i in range(ndim):
65153  * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<<
65154  * if src.shape[i] == 1:
65155  * broadcasting = True
65156  */
65157  __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0);
65158  if (__pyx_t_2) {
65159 
65160  /* "View.MemoryView":1293
65161  * for i in range(ndim):
65162  * if src.shape[i] != dst.shape[i]:
65163  * if src.shape[i] == 1: # <<<<<<<<<<<<<<
65164  * broadcasting = True
65165  * src.strides[i] = 0
65166  */
65167  __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0);
65168  if (__pyx_t_2) {
65169 
65170  /* "View.MemoryView":1294
65171  * if src.shape[i] != dst.shape[i]:
65172  * if src.shape[i] == 1:
65173  * broadcasting = True # <<<<<<<<<<<<<<
65174  * src.strides[i] = 0
65175  * else:
65176  */
65177  __pyx_v_broadcasting = 1;
65178 
65179  /* "View.MemoryView":1295
65180  * if src.shape[i] == 1:
65181  * broadcasting = True
65182  * src.strides[i] = 0 # <<<<<<<<<<<<<<
65183  * else:
65184  * _err_extents(i, dst.shape[i], src.shape[i])
65185  */
65186  (__pyx_v_src.strides[__pyx_v_i]) = 0;
65187 
65188  /* "View.MemoryView":1293
65189  * for i in range(ndim):
65190  * if src.shape[i] != dst.shape[i]:
65191  * if src.shape[i] == 1: # <<<<<<<<<<<<<<
65192  * broadcasting = True
65193  * src.strides[i] = 0
65194  */
65195  goto __pyx_L7;
65196  }
65197 
65198  /* "View.MemoryView":1297
65199  * src.strides[i] = 0
65200  * else:
65201  * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<<
65202  *
65203  * if src.suboffsets[i] >= 0:
65204  */
65205  /*else*/ {
65206  __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1297, __pyx_L1_error)
65207  }
65208  __pyx_L7:;
65209 
65210  /* "View.MemoryView":1292
65211  *
65212  * for i in range(ndim):
65213  * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<<
65214  * if src.shape[i] == 1:
65215  * broadcasting = True
65216  */
65217  }
65218 
65219  /* "View.MemoryView":1299
65220  * _err_extents(i, dst.shape[i], src.shape[i])
65221  *
65222  * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<<
65223  * _err_dim(ValueError, "Dimension %d is not direct", i)
65224  *
65225  */
65226  __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0);
65227  if (__pyx_t_2) {
65228 
65229  /* "View.MemoryView":1300
65230  *
65231  * if src.suboffsets[i] >= 0:
65232  * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<<
65233  *
65234  * if slices_overlap(&src, &dst, ndim, itemsize):
65235  */
65236  __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1300, __pyx_L1_error)
65237 
65238  /* "View.MemoryView":1299
65239  * _err_extents(i, dst.shape[i], src.shape[i])
65240  *
65241  * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<<
65242  * _err_dim(ValueError, "Dimension %d is not direct", i)
65243  *
65244  */
65245  }
65246  }
65247 
65248  /* "View.MemoryView":1302
65249  * _err_dim(ValueError, "Dimension %d is not direct", i)
65250  *
65251  * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<<
65252  *
65253  * if not slice_is_contig(src, order, ndim):
65254  */
65255  __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0);
65256  if (__pyx_t_2) {
65257 
65258  /* "View.MemoryView":1304
65259  * if slices_overlap(&src, &dst, ndim, itemsize):
65260  *
65261  * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<<
65262  * order = get_best_order(&dst, ndim)
65263  *
65264  */
65265  __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0);
65266  if (__pyx_t_2) {
65267 
65268  /* "View.MemoryView":1305
65269  *
65270  * if not slice_is_contig(src, order, ndim):
65271  * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<<
65272  *
65273  * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
65274  */
65275  __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim);
65276 
65277  /* "View.MemoryView":1304
65278  * if slices_overlap(&src, &dst, ndim, itemsize):
65279  *
65280  * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<<
65281  * order = get_best_order(&dst, ndim)
65282  *
65283  */
65284  }
65285 
65286  /* "View.MemoryView":1307
65287  * order = get_best_order(&dst, ndim)
65288  *
65289  * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<<
65290  * src = tmp
65291  *
65292  */
65293  __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(1, 1307, __pyx_L1_error)
65294  __pyx_v_tmpdata = __pyx_t_7;
65295 
65296  /* "View.MemoryView":1308
65297  *
65298  * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
65299  * src = tmp # <<<<<<<<<<<<<<
65300  *
65301  * if not broadcasting:
65302  */
65303  __pyx_v_src = __pyx_v_tmp;
65304 
65305  /* "View.MemoryView":1302
65306  * _err_dim(ValueError, "Dimension %d is not direct", i)
65307  *
65308  * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<<
65309  *
65310  * if not slice_is_contig(src, order, ndim):
65311  */
65312  }
65313 
65314  /* "View.MemoryView":1310
65315  * src = tmp
65316  *
65317  * if not broadcasting: # <<<<<<<<<<<<<<
65318  *
65319  *
65320  */
65321  __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0);
65322  if (__pyx_t_2) {
65323 
65324  /* "View.MemoryView":1313
65325  *
65326  *
65327  * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<<
65328  * direct_copy = slice_is_contig(dst, 'C', ndim)
65329  * elif slice_is_contig(src, 'F', ndim):
65330  */
65331  __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0);
65332  if (__pyx_t_2) {
65333 
65334  /* "View.MemoryView":1314
65335  *
65336  * if slice_is_contig(src, 'C', ndim):
65337  * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<<
65338  * elif slice_is_contig(src, 'F', ndim):
65339  * direct_copy = slice_is_contig(dst, 'F', ndim)
65340  */
65341  __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim);
65342 
65343  /* "View.MemoryView":1313
65344  *
65345  *
65346  * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<<
65347  * direct_copy = slice_is_contig(dst, 'C', ndim)
65348  * elif slice_is_contig(src, 'F', ndim):
65349  */
65350  goto __pyx_L12;
65351  }
65352 
65353  /* "View.MemoryView":1315
65354  * if slice_is_contig(src, 'C', ndim):
65355  * direct_copy = slice_is_contig(dst, 'C', ndim)
65356  * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<<
65357  * direct_copy = slice_is_contig(dst, 'F', ndim)
65358  *
65359  */
65360  __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0);
65361  if (__pyx_t_2) {
65362 
65363  /* "View.MemoryView":1316
65364  * direct_copy = slice_is_contig(dst, 'C', ndim)
65365  * elif slice_is_contig(src, 'F', ndim):
65366  * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<<
65367  *
65368  * if direct_copy:
65369  */
65370  __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim);
65371 
65372  /* "View.MemoryView":1315
65373  * if slice_is_contig(src, 'C', ndim):
65374  * direct_copy = slice_is_contig(dst, 'C', ndim)
65375  * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<<
65376  * direct_copy = slice_is_contig(dst, 'F', ndim)
65377  *
65378  */
65379  }
65380  __pyx_L12:;
65381 
65382  /* "View.MemoryView":1318
65383  * direct_copy = slice_is_contig(dst, 'F', ndim)
65384  *
65385  * if direct_copy: # <<<<<<<<<<<<<<
65386  *
65387  * refcount_copying(&dst, dtype_is_object, ndim, False)
65388  */
65389  __pyx_t_2 = (__pyx_v_direct_copy != 0);
65390  if (__pyx_t_2) {
65391 
65392  /* "View.MemoryView":1320
65393  * if direct_copy:
65394  *
65395  * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<<
65396  * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
65397  * refcount_copying(&dst, dtype_is_object, ndim, True)
65398  */
65399  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
65400 
65401  /* "View.MemoryView":1321
65402  *
65403  * refcount_copying(&dst, dtype_is_object, ndim, False)
65404  * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<<
65405  * refcount_copying(&dst, dtype_is_object, ndim, True)
65406  * free(tmpdata)
65407  */
65408  (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)));
65409 
65410  /* "View.MemoryView":1322
65411  * refcount_copying(&dst, dtype_is_object, ndim, False)
65412  * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
65413  * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<<
65414  * free(tmpdata)
65415  * return 0
65416  */
65417  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
65418 
65419  /* "View.MemoryView":1323
65420  * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
65421  * refcount_copying(&dst, dtype_is_object, ndim, True)
65422  * free(tmpdata) # <<<<<<<<<<<<<<
65423  * return 0
65424  *
65425  */
65426  free(__pyx_v_tmpdata);
65427 
65428  /* "View.MemoryView":1324
65429  * refcount_copying(&dst, dtype_is_object, ndim, True)
65430  * free(tmpdata)
65431  * return 0 # <<<<<<<<<<<<<<
65432  *
65433  * if order == 'F' == get_best_order(&dst, ndim):
65434  */
65435  __pyx_r = 0;
65436  goto __pyx_L0;
65437 
65438  /* "View.MemoryView":1318
65439  * direct_copy = slice_is_contig(dst, 'F', ndim)
65440  *
65441  * if direct_copy: # <<<<<<<<<<<<<<
65442  *
65443  * refcount_copying(&dst, dtype_is_object, ndim, False)
65444  */
65445  }
65446 
65447  /* "View.MemoryView":1310
65448  * src = tmp
65449  *
65450  * if not broadcasting: # <<<<<<<<<<<<<<
65451  *
65452  *
65453  */
65454  }
65455 
65456  /* "View.MemoryView":1326
65457  * return 0
65458  *
65459  * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<<
65460  *
65461  *
65462  */
65463  __pyx_t_2 = (__pyx_v_order == 'F');
65464  if (__pyx_t_2) {
65465  __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim));
65466  }
65467  __pyx_t_8 = (__pyx_t_2 != 0);
65468  if (__pyx_t_8) {
65469 
65470  /* "View.MemoryView":1329
65471  *
65472  *
65473  * transpose_memslice(&src) # <<<<<<<<<<<<<<
65474  * transpose_memslice(&dst)
65475  *
65476  */
65477  __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1329, __pyx_L1_error)
65478 
65479  /* "View.MemoryView":1330
65480  *
65481  * transpose_memslice(&src)
65482  * transpose_memslice(&dst) # <<<<<<<<<<<<<<
65483  *
65484  * refcount_copying(&dst, dtype_is_object, ndim, False)
65485  */
65486  __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1330, __pyx_L1_error)
65487 
65488  /* "View.MemoryView":1326
65489  * return 0
65490  *
65491  * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<<
65492  *
65493  *
65494  */
65495  }
65496 
65497  /* "View.MemoryView":1332
65498  * transpose_memslice(&dst)
65499  *
65500  * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<<
65501  * copy_strided_to_strided(&src, &dst, ndim, itemsize)
65502  * refcount_copying(&dst, dtype_is_object, ndim, True)
65503  */
65504  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
65505 
65506  /* "View.MemoryView":1333
65507  *
65508  * refcount_copying(&dst, dtype_is_object, ndim, False)
65509  * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<<
65510  * refcount_copying(&dst, dtype_is_object, ndim, True)
65511  *
65512  */
65513  copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
65514 
65515  /* "View.MemoryView":1334
65516  * refcount_copying(&dst, dtype_is_object, ndim, False)
65517  * copy_strided_to_strided(&src, &dst, ndim, itemsize)
65518  * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<<
65519  *
65520  * free(tmpdata)
65521  */
65522  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
65523 
65524  /* "View.MemoryView":1336
65525  * refcount_copying(&dst, dtype_is_object, ndim, True)
65526  *
65527  * free(tmpdata) # <<<<<<<<<<<<<<
65528  * return 0
65529  *
65530  */
65531  free(__pyx_v_tmpdata);
65532 
65533  /* "View.MemoryView":1337
65534  *
65535  * free(tmpdata)
65536  * return 0 # <<<<<<<<<<<<<<
65537  *
65538  * @cname('__pyx_memoryview_broadcast_leading')
65539  */
65540  __pyx_r = 0;
65541  goto __pyx_L0;
65542 
65543  /* "View.MemoryView":1268
65544  *
65545  * @cname('__pyx_memoryview_copy_contents')
65546  * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<<
65547  * __Pyx_memviewslice dst,
65548  * int src_ndim, int dst_ndim,
65549  */
65550 
65551  /* function exit code */
65552  __pyx_L1_error:;
65553  {
65554  #ifdef WITH_THREAD
65555  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
65556  #endif
65557  __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
65558  #ifdef WITH_THREAD
65559  __Pyx_PyGILState_Release(__pyx_gilstate_save);
65560  #endif
65561  }
65562  __pyx_r = -1;
65563  __pyx_L0:;
65564  __Pyx_TraceReturn(Py_None, 1);
65565  return __pyx_r;
65566 }
65567 
65568 /* "View.MemoryView":1340
65569  *
65570  * @cname('__pyx_memoryview_broadcast_leading')
65571  * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<<
65572  * int ndim,
65573  * int ndim_other) nogil:
65574  */
65575 
65576 static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) {
65577  int __pyx_v_i;
65578  int __pyx_v_offset;
65579  __Pyx_TraceDeclarations
65580  int __pyx_t_1;
65581  int __pyx_t_2;
65582  int __pyx_t_3;
65583  int __pyx_lineno = 0;
65584  const char *__pyx_filename = NULL;
65585  int __pyx_clineno = 0;
65586  __Pyx_TraceCall("broadcast_leading", __pyx_f[1], 1340, 1, __PYX_ERR(1, 1340, __pyx_L1_error));
65587 
65588  /* "View.MemoryView":1344
65589  * int ndim_other) nogil:
65590  * cdef int i
65591  * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<<
65592  *
65593  * for i in range(ndim - 1, -1, -1):
65594  */
65595  __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim);
65596 
65597  /* "View.MemoryView":1346
65598  * cdef int offset = ndim_other - ndim
65599  *
65600  * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
65601  * mslice.shape[i + offset] = mslice.shape[i]
65602  * mslice.strides[i + offset] = mslice.strides[i]
65603  */
65604  for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
65605  __pyx_v_i = __pyx_t_1;
65606 
65607  /* "View.MemoryView":1347
65608  *
65609  * for i in range(ndim - 1, -1, -1):
65610  * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<<
65611  * mslice.strides[i + offset] = mslice.strides[i]
65612  * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
65613  */
65614  (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]);
65615 
65616  /* "View.MemoryView":1348
65617  * for i in range(ndim - 1, -1, -1):
65618  * mslice.shape[i + offset] = mslice.shape[i]
65619  * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<<
65620  * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
65621  *
65622  */
65623  (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]);
65624 
65625  /* "View.MemoryView":1349
65626  * mslice.shape[i + offset] = mslice.shape[i]
65627  * mslice.strides[i + offset] = mslice.strides[i]
65628  * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<<
65629  *
65630  * for i in range(offset):
65631  */
65632  (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]);
65633  }
65634 
65635  /* "View.MemoryView":1351
65636  * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
65637  *
65638  * for i in range(offset): # <<<<<<<<<<<<<<
65639  * mslice.shape[i] = 1
65640  * mslice.strides[i] = mslice.strides[0]
65641  */
65642  __pyx_t_1 = __pyx_v_offset;
65643  __pyx_t_2 = __pyx_t_1;
65644  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
65645  __pyx_v_i = __pyx_t_3;
65646 
65647  /* "View.MemoryView":1352
65648  *
65649  * for i in range(offset):
65650  * mslice.shape[i] = 1 # <<<<<<<<<<<<<<
65651  * mslice.strides[i] = mslice.strides[0]
65652  * mslice.suboffsets[i] = -1
65653  */
65654  (__pyx_v_mslice->shape[__pyx_v_i]) = 1;
65655 
65656  /* "View.MemoryView":1353
65657  * for i in range(offset):
65658  * mslice.shape[i] = 1
65659  * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<<
65660  * mslice.suboffsets[i] = -1
65661  *
65662  */
65663  (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]);
65664 
65665  /* "View.MemoryView":1354
65666  * mslice.shape[i] = 1
65667  * mslice.strides[i] = mslice.strides[0]
65668  * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<<
65669  *
65670  *
65671  */
65672  (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L;
65673  }
65674 
65675  /* "View.MemoryView":1340
65676  *
65677  * @cname('__pyx_memoryview_broadcast_leading')
65678  * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<<
65679  * int ndim,
65680  * int ndim_other) nogil:
65681  */
65682 
65683  /* function exit code */
65684  goto __pyx_L0;
65685  __pyx_L1_error:;
65686  __Pyx_WriteUnraisable("View.MemoryView.broadcast_leading", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
65687  __pyx_L0:;
65688  __Pyx_TraceReturn(Py_None, 1);
65689 }
65690 
65691 /* "View.MemoryView":1362
65692  *
65693  * @cname('__pyx_memoryview_refcount_copying')
65694  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<<
65695  * int ndim, bint inc) nogil:
65696  *
65697  */
65698 
65699 static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) {
65700  __Pyx_TraceDeclarations
65701  int __pyx_t_1;
65702  int __pyx_lineno = 0;
65703  const char *__pyx_filename = NULL;
65704  int __pyx_clineno = 0;
65705  __Pyx_TraceCall("refcount_copying", __pyx_f[1], 1362, 1, __PYX_ERR(1, 1362, __pyx_L1_error));
65706 
65707  /* "View.MemoryView":1366
65708  *
65709  *
65710  * if dtype_is_object: # <<<<<<<<<<<<<<
65711  * refcount_objects_in_slice_with_gil(dst.data, dst.shape,
65712  * dst.strides, ndim, inc)
65713  */
65714  __pyx_t_1 = (__pyx_v_dtype_is_object != 0);
65715  if (__pyx_t_1) {
65716 
65717  /* "View.MemoryView":1367
65718  *
65719  * if dtype_is_object:
65720  * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<<
65721  * dst.strides, ndim, inc)
65722  *
65723  */
65724  __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc);
65725 
65726  /* "View.MemoryView":1366
65727  *
65728  *
65729  * if dtype_is_object: # <<<<<<<<<<<<<<
65730  * refcount_objects_in_slice_with_gil(dst.data, dst.shape,
65731  * dst.strides, ndim, inc)
65732  */
65733  }
65734 
65735  /* "View.MemoryView":1362
65736  *
65737  * @cname('__pyx_memoryview_refcount_copying')
65738  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<<
65739  * int ndim, bint inc) nogil:
65740  *
65741  */
65742 
65743  /* function exit code */
65744  goto __pyx_L0;
65745  __pyx_L1_error:;
65746  __Pyx_WriteUnraisable("View.MemoryView.refcount_copying", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
65747  __pyx_L0:;
65748  __Pyx_TraceReturn(Py_None, 1);
65749 }
65750 
65751 /* "View.MemoryView":1371
65752  *
65753  * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
65754  * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
65755  * Py_ssize_t *strides, int ndim,
65756  * bint inc) with gil:
65757  */
65758 
65759 static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
65760  __Pyx_TraceDeclarations
65761  __Pyx_RefNannyDeclarations
65762  int __pyx_lineno = 0;
65763  const char *__pyx_filename = NULL;
65764  int __pyx_clineno = 0;
65765  #ifdef WITH_THREAD
65766  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
65767  #endif
65768  __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0);
65769  __Pyx_TraceCall("refcount_objects_in_slice_with_gil", __pyx_f[1], 1371, 0, __PYX_ERR(1, 1371, __pyx_L1_error));
65770 
65771  /* "View.MemoryView":1374
65772  * Py_ssize_t *strides, int ndim,
65773  * bint inc) with gil:
65774  * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<<
65775  *
65776  * @cname('__pyx_memoryview_refcount_objects_in_slice')
65777  */
65778  __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc);
65779 
65780  /* "View.MemoryView":1371
65781  *
65782  * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
65783  * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
65784  * Py_ssize_t *strides, int ndim,
65785  * bint inc) with gil:
65786  */
65787 
65788  /* function exit code */
65789  goto __pyx_L0;
65790  __pyx_L1_error:;
65791  __Pyx_WriteUnraisable("View.MemoryView.refcount_objects_in_slice_with_gil", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
65792  __pyx_L0:;
65793  __Pyx_TraceReturn(Py_None, 0);
65794  __Pyx_RefNannyFinishContext();
65795  #ifdef WITH_THREAD
65796  __Pyx_PyGILState_Release(__pyx_gilstate_save);
65797  #endif
65798 }
65799 
65800 /* "View.MemoryView":1377
65801  *
65802  * @cname('__pyx_memoryview_refcount_objects_in_slice')
65803  * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
65804  * Py_ssize_t *strides, int ndim, bint inc):
65805  * cdef Py_ssize_t i
65806  */
65807 
65808 static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
65809  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
65810  __Pyx_TraceDeclarations
65811  __Pyx_RefNannyDeclarations
65812  Py_ssize_t __pyx_t_1;
65813  Py_ssize_t __pyx_t_2;
65814  Py_ssize_t __pyx_t_3;
65815  int __pyx_t_4;
65816  int __pyx_lineno = 0;
65817  const char *__pyx_filename = NULL;
65818  int __pyx_clineno = 0;
65819  __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0);
65820  __Pyx_TraceCall("refcount_objects_in_slice", __pyx_f[1], 1377, 0, __PYX_ERR(1, 1377, __pyx_L1_error));
65821 
65822  /* "View.MemoryView":1381
65823  * cdef Py_ssize_t i
65824  *
65825  * for i in range(shape[0]): # <<<<<<<<<<<<<<
65826  * if ndim == 1:
65827  * if inc:
65828  */
65829  __pyx_t_1 = (__pyx_v_shape[0]);
65830  __pyx_t_2 = __pyx_t_1;
65831  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
65832  __pyx_v_i = __pyx_t_3;
65833 
65834  /* "View.MemoryView":1382
65835  *
65836  * for i in range(shape[0]):
65837  * if ndim == 1: # <<<<<<<<<<<<<<
65838  * if inc:
65839  * Py_INCREF((<PyObject **> data)[0])
65840  */
65841  __pyx_t_4 = ((__pyx_v_ndim == 1) != 0);
65842  if (__pyx_t_4) {
65843 
65844  /* "View.MemoryView":1383
65845  * for i in range(shape[0]):
65846  * if ndim == 1:
65847  * if inc: # <<<<<<<<<<<<<<
65848  * Py_INCREF((<PyObject **> data)[0])
65849  * else:
65850  */
65851  __pyx_t_4 = (__pyx_v_inc != 0);
65852  if (__pyx_t_4) {
65853 
65854  /* "View.MemoryView":1384
65855  * if ndim == 1:
65856  * if inc:
65857  * Py_INCREF((<PyObject **> data)[0]) # <<<<<<<<<<<<<<
65858  * else:
65859  * Py_DECREF((<PyObject **> data)[0])
65860  */
65861  Py_INCREF((((PyObject **)__pyx_v_data)[0]));
65862 
65863  /* "View.MemoryView":1383
65864  * for i in range(shape[0]):
65865  * if ndim == 1:
65866  * if inc: # <<<<<<<<<<<<<<
65867  * Py_INCREF((<PyObject **> data)[0])
65868  * else:
65869  */
65870  goto __pyx_L6;
65871  }
65872 
65873  /* "View.MemoryView":1386
65874  * Py_INCREF((<PyObject **> data)[0])
65875  * else:
65876  * Py_DECREF((<PyObject **> data)[0]) # <<<<<<<<<<<<<<
65877  * else:
65878  * refcount_objects_in_slice(data, shape + 1, strides + 1,
65879  */
65880  /*else*/ {
65881  Py_DECREF((((PyObject **)__pyx_v_data)[0]));
65882  }
65883  __pyx_L6:;
65884 
65885  /* "View.MemoryView":1382
65886  *
65887  * for i in range(shape[0]):
65888  * if ndim == 1: # <<<<<<<<<<<<<<
65889  * if inc:
65890  * Py_INCREF((<PyObject **> data)[0])
65891  */
65892  goto __pyx_L5;
65893  }
65894 
65895  /* "View.MemoryView":1388
65896  * Py_DECREF((<PyObject **> data)[0])
65897  * else:
65898  * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<<
65899  * ndim - 1, inc)
65900  *
65901  */
65902  /*else*/ {
65903 
65904  /* "View.MemoryView":1389
65905  * else:
65906  * refcount_objects_in_slice(data, shape + 1, strides + 1,
65907  * ndim - 1, inc) # <<<<<<<<<<<<<<
65908  *
65909  * data += strides[0]
65910  */
65911  __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc);
65912  }
65913  __pyx_L5:;
65914 
65915  /* "View.MemoryView":1391
65916  * ndim - 1, inc)
65917  *
65918  * data += strides[0] # <<<<<<<<<<<<<<
65919  *
65920  *
65921  */
65922  __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0]));
65923  }
65924 
65925  /* "View.MemoryView":1377
65926  *
65927  * @cname('__pyx_memoryview_refcount_objects_in_slice')
65928  * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
65929  * Py_ssize_t *strides, int ndim, bint inc):
65930  * cdef Py_ssize_t i
65931  */
65932 
65933  /* function exit code */
65934  goto __pyx_L0;
65935  __pyx_L1_error:;
65936  __Pyx_WriteUnraisable("View.MemoryView.refcount_objects_in_slice", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
65937  __pyx_L0:;
65938  __Pyx_TraceReturn(Py_None, 0);
65939  __Pyx_RefNannyFinishContext();
65940 }
65941 
65942 /* "View.MemoryView":1397
65943  *
65944  * @cname('__pyx_memoryview_slice_assign_scalar')
65945  * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<<
65946  * size_t itemsize, void *item,
65947  * bint dtype_is_object) nogil:
65948  */
65949 
65950 static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) {
65951  __Pyx_TraceDeclarations
65952  int __pyx_lineno = 0;
65953  const char *__pyx_filename = NULL;
65954  int __pyx_clineno = 0;
65955  __Pyx_TraceCall("slice_assign_scalar", __pyx_f[1], 1397, 1, __PYX_ERR(1, 1397, __pyx_L1_error));
65956 
65957  /* "View.MemoryView":1400
65958  * size_t itemsize, void *item,
65959  * bint dtype_is_object) nogil:
65960  * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<<
65961  * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim,
65962  * itemsize, item)
65963  */
65964  __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
65965 
65966  /* "View.MemoryView":1401
65967  * bint dtype_is_object) nogil:
65968  * refcount_copying(dst, dtype_is_object, ndim, False)
65969  * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<<
65970  * itemsize, item)
65971  * refcount_copying(dst, dtype_is_object, ndim, True)
65972  */
65973  __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item);
65974 
65975  /* "View.MemoryView":1403
65976  * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim,
65977  * itemsize, item)
65978  * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<<
65979  *
65980  *
65981  */
65982  __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
65983 
65984  /* "View.MemoryView":1397
65985  *
65986  * @cname('__pyx_memoryview_slice_assign_scalar')
65987  * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<<
65988  * size_t itemsize, void *item,
65989  * bint dtype_is_object) nogil:
65990  */
65991 
65992  /* function exit code */
65993  goto __pyx_L0;
65994  __pyx_L1_error:;
65995  __Pyx_WriteUnraisable("View.MemoryView.slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
65996  __pyx_L0:;
65997  __Pyx_TraceReturn(Py_None, 1);
65998 }
65999 
66000 /* "View.MemoryView":1407
66001  *
66002  * @cname('__pyx_memoryview__slice_assign_scalar')
66003  * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
66004  * Py_ssize_t *strides, int ndim,
66005  * size_t itemsize, void *item) nogil:
66006  */
66007 
66008 static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) {
66009  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
66010  Py_ssize_t __pyx_v_stride;
66011  Py_ssize_t __pyx_v_extent;
66012  __Pyx_TraceDeclarations
66013  int __pyx_t_1;
66014  Py_ssize_t __pyx_t_2;
66015  Py_ssize_t __pyx_t_3;
66016  Py_ssize_t __pyx_t_4;
66017  int __pyx_lineno = 0;
66018  const char *__pyx_filename = NULL;
66019  int __pyx_clineno = 0;
66020  __Pyx_TraceCall("_slice_assign_scalar", __pyx_f[1], 1407, 1, __PYX_ERR(1, 1407, __pyx_L1_error));
66021 
66022  /* "View.MemoryView":1411
66023  * size_t itemsize, void *item) nogil:
66024  * cdef Py_ssize_t i
66025  * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<<
66026  * cdef Py_ssize_t extent = shape[0]
66027  *
66028  */
66029  __pyx_v_stride = (__pyx_v_strides[0]);
66030 
66031  /* "View.MemoryView":1412
66032  * cdef Py_ssize_t i
66033  * cdef Py_ssize_t stride = strides[0]
66034  * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<<
66035  *
66036  * if ndim == 1:
66037  */
66038  __pyx_v_extent = (__pyx_v_shape[0]);
66039 
66040  /* "View.MemoryView":1414
66041  * cdef Py_ssize_t extent = shape[0]
66042  *
66043  * if ndim == 1: # <<<<<<<<<<<<<<
66044  * for i in range(extent):
66045  * memcpy(data, item, itemsize)
66046  */
66047  __pyx_t_1 = ((__pyx_v_ndim == 1) != 0);
66048  if (__pyx_t_1) {
66049 
66050  /* "View.MemoryView":1415
66051  *
66052  * if ndim == 1:
66053  * for i in range(extent): # <<<<<<<<<<<<<<
66054  * memcpy(data, item, itemsize)
66055  * data += stride
66056  */
66057  __pyx_t_2 = __pyx_v_extent;
66058  __pyx_t_3 = __pyx_t_2;
66059  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
66060  __pyx_v_i = __pyx_t_4;
66061 
66062  /* "View.MemoryView":1416
66063  * if ndim == 1:
66064  * for i in range(extent):
66065  * memcpy(data, item, itemsize) # <<<<<<<<<<<<<<
66066  * data += stride
66067  * else:
66068  */
66069  (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize));
66070 
66071  /* "View.MemoryView":1417
66072  * for i in range(extent):
66073  * memcpy(data, item, itemsize)
66074  * data += stride # <<<<<<<<<<<<<<
66075  * else:
66076  * for i in range(extent):
66077  */
66078  __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
66079  }
66080 
66081  /* "View.MemoryView":1414
66082  * cdef Py_ssize_t extent = shape[0]
66083  *
66084  * if ndim == 1: # <<<<<<<<<<<<<<
66085  * for i in range(extent):
66086  * memcpy(data, item, itemsize)
66087  */
66088  goto __pyx_L3;
66089  }
66090 
66091  /* "View.MemoryView":1419
66092  * data += stride
66093  * else:
66094  * for i in range(extent): # <<<<<<<<<<<<<<
66095  * _slice_assign_scalar(data, shape + 1, strides + 1,
66096  * ndim - 1, itemsize, item)
66097  */
66098  /*else*/ {
66099  __pyx_t_2 = __pyx_v_extent;
66100  __pyx_t_3 = __pyx_t_2;
66101  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
66102  __pyx_v_i = __pyx_t_4;
66103 
66104  /* "View.MemoryView":1420
66105  * else:
66106  * for i in range(extent):
66107  * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<<
66108  * ndim - 1, itemsize, item)
66109  * data += stride
66110  */
66111  __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item);
66112 
66113  /* "View.MemoryView":1422
66114  * _slice_assign_scalar(data, shape + 1, strides + 1,
66115  * ndim - 1, itemsize, item)
66116  * data += stride # <<<<<<<<<<<<<<
66117  *
66118  *
66119  */
66120  __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
66121  }
66122  }
66123  __pyx_L3:;
66124 
66125  /* "View.MemoryView":1407
66126  *
66127  * @cname('__pyx_memoryview__slice_assign_scalar')
66128  * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
66129  * Py_ssize_t *strides, int ndim,
66130  * size_t itemsize, void *item) nogil:
66131  */
66132 
66133  /* function exit code */
66134  goto __pyx_L0;
66135  __pyx_L1_error:;
66136  __Pyx_WriteUnraisable("View.MemoryView._slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
66137  __pyx_L0:;
66138  __Pyx_TraceReturn(Py_None, 1);
66139 }
66140 
66141 /* "(tree fragment)":1
66142  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
66143  * cdef object __pyx_PickleError
66144  * cdef object __pyx_result
66145  */
66146 
66147 /* Python wrapper */
66148 static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66149 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0};
66150 static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66151  PyObject *__pyx_v___pyx_type = 0;
66152  long __pyx_v___pyx_checksum;
66153  PyObject *__pyx_v___pyx_state = 0;
66154  int __pyx_lineno = 0;
66155  const char *__pyx_filename = NULL;
66156  int __pyx_clineno = 0;
66157  PyObject *__pyx_r = 0;
66158  __Pyx_RefNannyDeclarations
66159  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0);
66160  {
66161  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
66162  PyObject* values[3] = {0,0,0};
66163  if (unlikely(__pyx_kwds)) {
66164  Py_ssize_t kw_args;
66165  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
66166  switch (pos_args) {
66167  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66168  CYTHON_FALLTHROUGH;
66169  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66170  CYTHON_FALLTHROUGH;
66171  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66172  CYTHON_FALLTHROUGH;
66173  case 0: break;
66174  default: goto __pyx_L5_argtuple_error;
66175  }
66176  kw_args = PyDict_Size(__pyx_kwds);
66177  switch (pos_args) {
66178  case 0:
66179  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
66180  else goto __pyx_L5_argtuple_error;
66181  CYTHON_FALLTHROUGH;
66182  case 1:
66183  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
66184  else {
66185  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
66186  }
66187  CYTHON_FALLTHROUGH;
66188  case 2:
66189  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
66190  else {
66191  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
66192  }
66193  }
66194  if (unlikely(kw_args > 0)) {
66195  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
66196  }
66197  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
66198  goto __pyx_L5_argtuple_error;
66199  } else {
66200  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66201  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66202  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66203  }
66204  __pyx_v___pyx_type = values[0];
66205  __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
66206  __pyx_v___pyx_state = values[2];
66207  }
66208  goto __pyx_L4_argument_unpacking_done;
66209  __pyx_L5_argtuple_error:;
66210  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
66211  __pyx_L3_error:;
66212  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
66213  __Pyx_RefNannyFinishContext();
66214  return NULL;
66215  __pyx_L4_argument_unpacking_done:;
66216  __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
66217 
66218  /* function exit code */
66219  __Pyx_RefNannyFinishContext();
66220  return __pyx_r;
66221 }
66222 
66223 static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
66224  PyObject *__pyx_v___pyx_PickleError = 0;
66225  PyObject *__pyx_v___pyx_result = 0;
66226  PyObject *__pyx_r = NULL;
66227  __Pyx_TraceDeclarations
66228  __Pyx_RefNannyDeclarations
66229  PyObject *__pyx_t_1 = NULL;
66230  int __pyx_t_2;
66231  int __pyx_t_3;
66232  PyObject *__pyx_t_4 = NULL;
66233  PyObject *__pyx_t_5 = NULL;
66234  PyObject *__pyx_t_6 = NULL;
66235  int __pyx_lineno = 0;
66236  const char *__pyx_filename = NULL;
66237  int __pyx_clineno = 0;
66238  __Pyx_TraceFrameInit(__pyx_codeobj__163)
66239  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0);
66240  __Pyx_TraceCall("__pyx_unpickle_Enum", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
66241 
66242  /* "(tree fragment)":4
66243  * cdef object __pyx_PickleError
66244  * cdef object __pyx_result
66245  * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): # <<<<<<<<<<<<<<
66246  * from pickle import PickleError as __pyx_PickleError
66247  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66248  */
66249  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
66250  __Pyx_GOTREF(__pyx_t_1);
66251  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__164, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error)
66252  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66253  __pyx_t_3 = (__pyx_t_2 != 0);
66254  if (__pyx_t_3) {
66255 
66256  /* "(tree fragment)":5
66257  * cdef object __pyx_result
66258  * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995):
66259  * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<<
66260  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66261  * __pyx_result = Enum.__new__(__pyx_type)
66262  */
66263  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
66264  __Pyx_GOTREF(__pyx_t_1);
66265  __Pyx_INCREF(__pyx_n_s_PickleError);
66266  __Pyx_GIVEREF(__pyx_n_s_PickleError);
66267  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError);
66268  __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
66269  __Pyx_GOTREF(__pyx_t_4);
66270  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66271  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
66272  __Pyx_GOTREF(__pyx_t_1);
66273  __Pyx_INCREF(__pyx_t_1);
66274  __pyx_v___pyx_PickleError = __pyx_t_1;
66275  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66276  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66277 
66278  /* "(tree fragment)":6
66279  * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995):
66280  * from pickle import PickleError as __pyx_PickleError
66281  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) # <<<<<<<<<<<<<<
66282  * __pyx_result = Enum.__new__(__pyx_type)
66283  * if __pyx_state is not None:
66284  */
66285  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
66286  __Pyx_GOTREF(__pyx_t_1);
66287  __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
66288  __Pyx_GOTREF(__pyx_t_5);
66289  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66290  __Pyx_INCREF(__pyx_v___pyx_PickleError);
66291  __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL;
66292  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
66293  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
66294  if (likely(__pyx_t_6)) {
66295  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
66296  __Pyx_INCREF(__pyx_t_6);
66297  __Pyx_INCREF(function);
66298  __Pyx_DECREF_SET(__pyx_t_1, function);
66299  }
66300  }
66301  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5);
66302  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
66303  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
66304  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
66305  __Pyx_GOTREF(__pyx_t_4);
66306  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66307  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
66308  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66309  __PYX_ERR(1, 6, __pyx_L1_error)
66310 
66311  /* "(tree fragment)":4
66312  * cdef object __pyx_PickleError
66313  * cdef object __pyx_result
66314  * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): # <<<<<<<<<<<<<<
66315  * from pickle import PickleError as __pyx_PickleError
66316  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66317  */
66318  }
66319 
66320  /* "(tree fragment)":7
66321  * from pickle import PickleError as __pyx_PickleError
66322  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66323  * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<<
66324  * if __pyx_state is not None:
66325  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66326  */
66327  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
66328  __Pyx_GOTREF(__pyx_t_1);
66329  __pyx_t_5 = NULL;
66330  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
66331  __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
66332  if (likely(__pyx_t_5)) {
66333  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
66334  __Pyx_INCREF(__pyx_t_5);
66335  __Pyx_INCREF(function);
66336  __Pyx_DECREF_SET(__pyx_t_1, function);
66337  }
66338  }
66339  __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type);
66340  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
66341  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error)
66342  __Pyx_GOTREF(__pyx_t_4);
66343  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66344  __pyx_v___pyx_result = __pyx_t_4;
66345  __pyx_t_4 = 0;
66346 
66347  /* "(tree fragment)":8
66348  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66349  * __pyx_result = Enum.__new__(__pyx_type)
66350  * if __pyx_state is not None: # <<<<<<<<<<<<<<
66351  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66352  * return __pyx_result
66353  */
66354  __pyx_t_3 = (__pyx_v___pyx_state != Py_None);
66355  __pyx_t_2 = (__pyx_t_3 != 0);
66356  if (__pyx_t_2) {
66357 
66358  /* "(tree fragment)":9
66359  * __pyx_result = Enum.__new__(__pyx_type)
66360  * if __pyx_state is not None:
66361  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state) # <<<<<<<<<<<<<<
66362  * return __pyx_result
66363  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
66364  */
66365  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
66366  __pyx_t_4 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
66367  __Pyx_GOTREF(__pyx_t_4);
66368  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66369 
66370  /* "(tree fragment)":8
66371  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum)
66372  * __pyx_result = Enum.__new__(__pyx_type)
66373  * if __pyx_state is not None: # <<<<<<<<<<<<<<
66374  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66375  * return __pyx_result
66376  */
66377  }
66378 
66379  /* "(tree fragment)":10
66380  * if __pyx_state is not None:
66381  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66382  * return __pyx_result # <<<<<<<<<<<<<<
66383  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
66384  * __pyx_result.name = __pyx_state[0]
66385  */
66386  __Pyx_XDECREF(__pyx_r);
66387  __Pyx_INCREF(__pyx_v___pyx_result);
66388  __pyx_r = __pyx_v___pyx_result;
66389  goto __pyx_L0;
66390 
66391  /* "(tree fragment)":1
66392  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
66393  * cdef object __pyx_PickleError
66394  * cdef object __pyx_result
66395  */
66396 
66397  /* function exit code */
66398  __pyx_L1_error:;
66399  __Pyx_XDECREF(__pyx_t_1);
66400  __Pyx_XDECREF(__pyx_t_4);
66401  __Pyx_XDECREF(__pyx_t_5);
66402  __Pyx_XDECREF(__pyx_t_6);
66403  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
66404  __pyx_r = NULL;
66405  __pyx_L0:;
66406  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
66407  __Pyx_XDECREF(__pyx_v___pyx_result);
66408  __Pyx_XGIVEREF(__pyx_r);
66409  __Pyx_TraceReturn(__pyx_r, 0);
66410  __Pyx_RefNannyFinishContext();
66411  return __pyx_r;
66412 }
66413 
66414 /* "(tree fragment)":11
66415  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66416  * return __pyx_result
66417  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
66418  * __pyx_result.name = __pyx_state[0]
66419  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
66420  */
66421 
66422 static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
66423  PyObject *__pyx_r = NULL;
66424  __Pyx_TraceDeclarations
66425  __Pyx_RefNannyDeclarations
66426  PyObject *__pyx_t_1 = NULL;
66427  int __pyx_t_2;
66428  Py_ssize_t __pyx_t_3;
66429  int __pyx_t_4;
66430  int __pyx_t_5;
66431  PyObject *__pyx_t_6 = NULL;
66432  PyObject *__pyx_t_7 = NULL;
66433  PyObject *__pyx_t_8 = NULL;
66434  int __pyx_lineno = 0;
66435  const char *__pyx_filename = NULL;
66436  int __pyx_clineno = 0;
66437  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0);
66438  __Pyx_TraceCall("__pyx_unpickle_Enum__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));
66439 
66440  /* "(tree fragment)":12
66441  * return __pyx_result
66442  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
66443  * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<<
66444  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
66445  * __pyx_result.__dict__.update(__pyx_state[1])
66446  */
66447  if (unlikely(__pyx_v___pyx_state == Py_None)) {
66448  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
66449  __PYX_ERR(1, 12, __pyx_L1_error)
66450  }
66451  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
66452  __Pyx_GOTREF(__pyx_t_1);
66453  __Pyx_GIVEREF(__pyx_t_1);
66454  __Pyx_GOTREF(__pyx_v___pyx_result->name);
66455  __Pyx_DECREF(__pyx_v___pyx_result->name);
66456  __pyx_v___pyx_result->name = __pyx_t_1;
66457  __pyx_t_1 = 0;
66458 
66459  /* "(tree fragment)":13
66460  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
66461  * __pyx_result.name = __pyx_state[0]
66462  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
66463  * __pyx_result.__dict__.update(__pyx_state[1])
66464  */
66465  if (unlikely(__pyx_v___pyx_state == Py_None)) {
66466  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
66467  __PYX_ERR(1, 13, __pyx_L1_error)
66468  }
66469  __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
66470  __pyx_t_4 = ((__pyx_t_3 > 1) != 0);
66471  if (__pyx_t_4) {
66472  } else {
66473  __pyx_t_2 = __pyx_t_4;
66474  goto __pyx_L4_bool_binop_done;
66475  }
66476  __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
66477  __pyx_t_5 = (__pyx_t_4 != 0);
66478  __pyx_t_2 = __pyx_t_5;
66479  __pyx_L4_bool_binop_done:;
66480  if (__pyx_t_2) {
66481 
66482  /* "(tree fragment)":14
66483  * __pyx_result.name = __pyx_state[0]
66484  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
66485  * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<<
66486  */
66487  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
66488  __Pyx_GOTREF(__pyx_t_6);
66489  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
66490  __Pyx_GOTREF(__pyx_t_7);
66491  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
66492  if (unlikely(__pyx_v___pyx_state == Py_None)) {
66493  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
66494  __PYX_ERR(1, 14, __pyx_L1_error)
66495  }
66496  __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
66497  __Pyx_GOTREF(__pyx_t_6);
66498  __pyx_t_8 = NULL;
66499  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
66500  __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
66501  if (likely(__pyx_t_8)) {
66502  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
66503  __Pyx_INCREF(__pyx_t_8);
66504  __Pyx_INCREF(function);
66505  __Pyx_DECREF_SET(__pyx_t_7, function);
66506  }
66507  }
66508  __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
66509  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
66510  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
66511  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
66512  __Pyx_GOTREF(__pyx_t_1);
66513  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
66514  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66515 
66516  /* "(tree fragment)":13
66517  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
66518  * __pyx_result.name = __pyx_state[0]
66519  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
66520  * __pyx_result.__dict__.update(__pyx_state[1])
66521  */
66522  }
66523 
66524  /* "(tree fragment)":11
66525  * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
66526  * return __pyx_result
66527  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
66528  * __pyx_result.name = __pyx_state[0]
66529  * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
66530  */
66531 
66532  /* function exit code */
66533  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66534  goto __pyx_L0;
66535  __pyx_L1_error:;
66536  __Pyx_XDECREF(__pyx_t_1);
66537  __Pyx_XDECREF(__pyx_t_6);
66538  __Pyx_XDECREF(__pyx_t_7);
66539  __Pyx_XDECREF(__pyx_t_8);
66540  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
66541  __pyx_r = 0;
66542  __pyx_L0:;
66543  __Pyx_XGIVEREF(__pyx_r);
66544  __Pyx_TraceReturn(__pyx_r, 0);
66545  __Pyx_RefNannyFinishContext();
66546  return __pyx_r;
66547 }
66548 
66549 /* "BufferFormatFromTypeInfo":1463
66550  *
66551  * @cname('__pyx_format_from_typeinfo')
66552  * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<<
66553  * cdef __Pyx_StructField *field
66554  * cdef __pyx_typeinfo_string fmt
66555  */
66556 
66557 static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) {
66558  __Pyx_StructField *__pyx_v_field;
66559  struct __pyx_typeinfo_string __pyx_v_fmt;
66560  PyObject *__pyx_v_part = 0;
66561  PyObject *__pyx_v_result = 0;
66562  PyObject *__pyx_v_alignment = NULL;
66563  PyObject *__pyx_v_parts = NULL;
66564  PyObject *__pyx_v_extents = NULL;
66565  int __pyx_v_i;
66566  PyObject *__pyx_r = NULL;
66567  __Pyx_TraceDeclarations
66568  __Pyx_RefNannyDeclarations
66569  int __pyx_t_1;
66570  PyObject *__pyx_t_2 = NULL;
66571  __Pyx_StructField *__pyx_t_3;
66572  PyObject *__pyx_t_4 = NULL;
66573  PyObject *__pyx_t_5 = NULL;
66574  int __pyx_t_6;
66575  int __pyx_t_7;
66576  int __pyx_t_8;
66577  int __pyx_t_9;
66578  int __pyx_lineno = 0;
66579  const char *__pyx_filename = NULL;
66580  int __pyx_clineno = 0;
66581  __Pyx_RefNannySetupContext("format_from_typeinfo", 0);
66582  __Pyx_TraceCall("format_from_typeinfo", __pyx_f[1], 1463, 0, __PYX_ERR(1, 1463, __pyx_L1_error));
66583 
66584  /* "BufferFormatFromTypeInfo":1468
66585  * cdef bytes part, result
66586  *
66587  * if type.typegroup == 'S': # <<<<<<<<<<<<<<
66588  * assert type.fields != NULL
66589  * assert type.fields.type != NULL
66590  */
66591  __pyx_t_1 = ((__pyx_v_type->typegroup == 'S') != 0);
66592  if (__pyx_t_1) {
66593 
66594  /* "BufferFormatFromTypeInfo":1469
66595  *
66596  * if type.typegroup == 'S':
66597  * assert type.fields != NULL # <<<<<<<<<<<<<<
66598  * assert type.fields.type != NULL
66599  *
66600  */
66601  #ifndef CYTHON_WITHOUT_ASSERTIONS
66602  if (unlikely(!Py_OptimizeFlag)) {
66603  if (unlikely(!((__pyx_v_type->fields != NULL) != 0))) {
66604  PyErr_SetNone(PyExc_AssertionError);
66605  __PYX_ERR(1, 1469, __pyx_L1_error)
66606  }
66607  }
66608  #endif
66609 
66610  /* "BufferFormatFromTypeInfo":1470
66611  * if type.typegroup == 'S':
66612  * assert type.fields != NULL
66613  * assert type.fields.type != NULL # <<<<<<<<<<<<<<
66614  *
66615  * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:
66616  */
66617  #ifndef CYTHON_WITHOUT_ASSERTIONS
66618  if (unlikely(!Py_OptimizeFlag)) {
66619  if (unlikely(!((__pyx_v_type->fields->type != NULL) != 0))) {
66620  PyErr_SetNone(PyExc_AssertionError);
66621  __PYX_ERR(1, 1470, __pyx_L1_error)
66622  }
66623  }
66624  #endif
66625 
66626  /* "BufferFormatFromTypeInfo":1472
66627  * assert type.fields.type != NULL
66628  *
66629  * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<<
66630  * alignment = b'^'
66631  * else:
66632  */
66633  __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0);
66634  if (__pyx_t_1) {
66635 
66636  /* "BufferFormatFromTypeInfo":1473
66637  *
66638  * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:
66639  * alignment = b'^' # <<<<<<<<<<<<<<
66640  * else:
66641  * alignment = b''
66642  */
66643  __Pyx_INCREF(__pyx_kp_b__165);
66644  __pyx_v_alignment = __pyx_kp_b__165;
66645 
66646  /* "BufferFormatFromTypeInfo":1472
66647  * assert type.fields.type != NULL
66648  *
66649  * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<<
66650  * alignment = b'^'
66651  * else:
66652  */
66653  goto __pyx_L4;
66654  }
66655 
66656  /* "BufferFormatFromTypeInfo":1475
66657  * alignment = b'^'
66658  * else:
66659  * alignment = b'' # <<<<<<<<<<<<<<
66660  *
66661  * parts = [b"T{"]
66662  */
66663  /*else*/ {
66664  __Pyx_INCREF(__pyx_kp_b__166);
66665  __pyx_v_alignment = __pyx_kp_b__166;
66666  }
66667  __pyx_L4:;
66668 
66669  /* "BufferFormatFromTypeInfo":1477
66670  * alignment = b''
66671  *
66672  * parts = [b"T{"] # <<<<<<<<<<<<<<
66673  * field = type.fields
66674  *
66675  */
66676  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1477, __pyx_L1_error)
66677  __Pyx_GOTREF(__pyx_t_2);
66678  __Pyx_INCREF(__pyx_kp_b_T);
66679  __Pyx_GIVEREF(__pyx_kp_b_T);
66680  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_kp_b_T);
66681  __pyx_v_parts = ((PyObject*)__pyx_t_2);
66682  __pyx_t_2 = 0;
66683 
66684  /* "BufferFormatFromTypeInfo":1478
66685  *
66686  * parts = [b"T{"]
66687  * field = type.fields # <<<<<<<<<<<<<<
66688  *
66689  * while field.type:
66690  */
66691  __pyx_t_3 = __pyx_v_type->fields;
66692  __pyx_v_field = __pyx_t_3;
66693 
66694  /* "BufferFormatFromTypeInfo":1480
66695  * field = type.fields
66696  *
66697  * while field.type: # <<<<<<<<<<<<<<
66698  * part = format_from_typeinfo(field.type)
66699  * parts.append(part + b':' + field.name + b':')
66700  */
66701  while (1) {
66702  __pyx_t_1 = (__pyx_v_field->type != 0);
66703  if (!__pyx_t_1) break;
66704 
66705  /* "BufferFormatFromTypeInfo":1481
66706  *
66707  * while field.type:
66708  * part = format_from_typeinfo(field.type) # <<<<<<<<<<<<<<
66709  * parts.append(part + b':' + field.name + b':')
66710  * field += 1
66711  */
66712  __pyx_t_2 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1481, __pyx_L1_error)
66713  __Pyx_GOTREF(__pyx_t_2);
66714  __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_2));
66715  __pyx_t_2 = 0;
66716 
66717  /* "BufferFormatFromTypeInfo":1482
66718  * while field.type:
66719  * part = format_from_typeinfo(field.type)
66720  * parts.append(part + b':' + field.name + b':') # <<<<<<<<<<<<<<
66721  * field += 1
66722  *
66723  */
66724  __pyx_t_2 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__167); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1482, __pyx_L1_error)
66725  __Pyx_GOTREF(__pyx_t_2);
66726  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1482, __pyx_L1_error)
66727  __Pyx_GOTREF(__pyx_t_4);
66728  __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L1_error)
66729  __Pyx_GOTREF(__pyx_t_5);
66730  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
66731  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66732  __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__167); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1482, __pyx_L1_error)
66733  __Pyx_GOTREF(__pyx_t_4);
66734  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
66735  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1482, __pyx_L1_error)
66736  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66737 
66738  /* "BufferFormatFromTypeInfo":1483
66739  * part = format_from_typeinfo(field.type)
66740  * parts.append(part + b':' + field.name + b':')
66741  * field += 1 # <<<<<<<<<<<<<<
66742  *
66743  * result = alignment.join(parts) + b'}'
66744  */
66745  __pyx_v_field = (__pyx_v_field + 1);
66746  }
66747 
66748  /* "BufferFormatFromTypeInfo":1485
66749  * field += 1
66750  *
66751  * result = alignment.join(parts) + b'}' # <<<<<<<<<<<<<<
66752  * else:
66753  * fmt = __Pyx_TypeInfoToFormat(type)
66754  */
66755  __pyx_t_4 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1485, __pyx_L1_error)
66756  __Pyx_GOTREF(__pyx_t_4);
66757  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_kp_b__168); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1485, __pyx_L1_error)
66758  __Pyx_GOTREF(__pyx_t_5);
66759  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66760  if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(1, 1485, __pyx_L1_error)
66761  __pyx_v_result = ((PyObject*)__pyx_t_5);
66762  __pyx_t_5 = 0;
66763 
66764  /* "BufferFormatFromTypeInfo":1468
66765  * cdef bytes part, result
66766  *
66767  * if type.typegroup == 'S': # <<<<<<<<<<<<<<
66768  * assert type.fields != NULL
66769  * assert type.fields.type != NULL
66770  */
66771  goto __pyx_L3;
66772  }
66773 
66774  /* "BufferFormatFromTypeInfo":1487
66775  * result = alignment.join(parts) + b'}'
66776  * else:
66777  * fmt = __Pyx_TypeInfoToFormat(type) # <<<<<<<<<<<<<<
66778  * if type.arraysize[0]:
66779  * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)]
66780  */
66781  /*else*/ {
66782  __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type);
66783 
66784  /* "BufferFormatFromTypeInfo":1488
66785  * else:
66786  * fmt = __Pyx_TypeInfoToFormat(type)
66787  * if type.arraysize[0]: # <<<<<<<<<<<<<<
66788  * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)]
66789  * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string
66790  */
66791  __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0);
66792  if (__pyx_t_1) {
66793 
66794  /* "BufferFormatFromTypeInfo":1489
66795  * fmt = __Pyx_TypeInfoToFormat(type)
66796  * if type.arraysize[0]:
66797  * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] # <<<<<<<<<<<<<<
66798  * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string
66799  * else:
66800  */
66801  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1489, __pyx_L1_error)
66802  __Pyx_GOTREF(__pyx_t_5);
66803  __pyx_t_7 = __pyx_v_type->ndim;
66804  __pyx_t_8 = __pyx_t_7;
66805  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
66806  __pyx_v_i = __pyx_t_9;
66807  __pyx_t_4 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1489, __pyx_L1_error)
66808  __Pyx_GOTREF(__pyx_t_4);
66809  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1489, __pyx_L1_error)
66810  __Pyx_GOTREF(__pyx_t_2);
66811  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
66812  if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 1489, __pyx_L1_error)
66813  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
66814  }
66815  __pyx_v_extents = ((PyObject*)__pyx_t_5);
66816  __pyx_t_5 = 0;
66817 
66818  /* "BufferFormatFromTypeInfo":1490
66819  * if type.arraysize[0]:
66820  * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)]
66821  * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string # <<<<<<<<<<<<<<
66822  * else:
66823  * result = fmt.string
66824  */
66825  __pyx_t_5 = PyUnicode_Join(__pyx_kp_u__169, __pyx_v_extents); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1490, __pyx_L1_error)
66826  __Pyx_GOTREF(__pyx_t_5);
66827  __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_s, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1490, __pyx_L1_error)
66828  __Pyx_GOTREF(__pyx_t_2);
66829  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
66830  __pyx_t_5 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1490, __pyx_L1_error)
66831  __Pyx_GOTREF(__pyx_t_5);
66832  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
66833  __pyx_t_2 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1490, __pyx_L1_error)
66834  __Pyx_GOTREF(__pyx_t_2);
66835  __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1490, __pyx_L1_error)
66836  __Pyx_GOTREF(__pyx_t_4);
66837  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
66838  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
66839  if (!(likely(PyBytes_CheckExact(__pyx_t_4))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 1490, __pyx_L1_error)
66840  __pyx_v_result = ((PyObject*)__pyx_t_4);
66841  __pyx_t_4 = 0;
66842 
66843  /* "BufferFormatFromTypeInfo":1488
66844  * else:
66845  * fmt = __Pyx_TypeInfoToFormat(type)
66846  * if type.arraysize[0]: # <<<<<<<<<<<<<<
66847  * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)]
66848  * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string
66849  */
66850  goto __pyx_L7;
66851  }
66852 
66853  /* "BufferFormatFromTypeInfo":1492
66854  * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string
66855  * else:
66856  * result = fmt.string # <<<<<<<<<<<<<<
66857  *
66858  * return result
66859  */
66860  /*else*/ {
66861  __pyx_t_4 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1492, __pyx_L1_error)
66862  __Pyx_GOTREF(__pyx_t_4);
66863  __pyx_v_result = ((PyObject*)__pyx_t_4);
66864  __pyx_t_4 = 0;
66865  }
66866  __pyx_L7:;
66867  }
66868  __pyx_L3:;
66869 
66870  /* "BufferFormatFromTypeInfo":1494
66871  * result = fmt.string
66872  *
66873  * return result # <<<<<<<<<<<<<<
66874  */
66875  __Pyx_XDECREF(__pyx_r);
66876  __Pyx_INCREF(__pyx_v_result);
66877  __pyx_r = __pyx_v_result;
66878  goto __pyx_L0;
66879 
66880  /* "BufferFormatFromTypeInfo":1463
66881  *
66882  * @cname('__pyx_format_from_typeinfo')
66883  * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<<
66884  * cdef __Pyx_StructField *field
66885  * cdef __pyx_typeinfo_string fmt
66886  */
66887 
66888  /* function exit code */
66889  __pyx_L1_error:;
66890  __Pyx_XDECREF(__pyx_t_2);
66891  __Pyx_XDECREF(__pyx_t_4);
66892  __Pyx_XDECREF(__pyx_t_5);
66893  __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
66894  __pyx_r = 0;
66895  __pyx_L0:;
66896  __Pyx_XDECREF(__pyx_v_part);
66897  __Pyx_XDECREF(__pyx_v_result);
66898  __Pyx_XDECREF(__pyx_v_alignment);
66899  __Pyx_XDECREF(__pyx_v_parts);
66900  __Pyx_XDECREF(__pyx_v_extents);
66901  __Pyx_XGIVEREF(__pyx_r);
66902  __Pyx_TraceReturn(__pyx_r, 0);
66903  __Pyx_RefNannyFinishContext();
66904  return __pyx_r;
66905 }
66906 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_BC_RANS __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS;
66907 
66908 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_BC_RANS(PyTypeObject *t, PyObject *a, PyObject *k) {
66909  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *p;
66910  PyObject *o = __pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_new(t, a, k);
66911  if (unlikely(!o)) return 0;
66912  p = ((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)o);
66913  p->__pyx_vtab = __pyx_vtabptr_6mprans_18BoundaryConditions_BC_RANS;
66914  p->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)Py_None); Py_INCREF(Py_None);
66915  p->body = Py_None; Py_INCREF(Py_None);
66916  p->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66917  p->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66918  p->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66919  p->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66920  p->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66921  p->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66922  p->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66923  p->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66924  p->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66925  p->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66926  p->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66927  p->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66928  p->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66929  p->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66930  p->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66931  p->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66932  p->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66933  p->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66934  p->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66935  p->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66936  p->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66937  p->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66938  p->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66939  p->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66940  p->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66941  p->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66942  p->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66943  p->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66944  p->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66945  p->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66946  p->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66947  p->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66948  p->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66949  p->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66950  p->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66951  p->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66952  p->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66953  p->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66954  p->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66955  p->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66956  p->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66957  p->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66958  p->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66959  p->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66960  p->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66961  p->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66962  p->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
66963  p->zero_array.data = NULL;
66964  p->zero_array.memview = NULL;
66965  p->wind_speed.data = NULL;
66966  p->wind_speed.memview = NULL;
66967  p->body_python_rot_matrix.data = NULL;
66968  p->body_python_rot_matrix.memview = NULL;
66969  p->body_python_last_pos.data = NULL;
66970  p->body_python_last_pos.memview = NULL;
66971  p->body_python_h.data = NULL;
66972  p->body_python_h.memview = NULL;
66973  return o;
66974 }
66975 
66976 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions_BC_RANS(PyObject *o) {
66977  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *p = (struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)o;
66978  #if CYTHON_USE_TP_FINALIZE
66979  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
66980  if (PyObject_CallFinalizerFromDealloc(o)) return;
66981  }
66982  #endif
66983  PyObject_GC_UnTrack(o);
66984  Py_CLEAR(p->waves);
66985  Py_CLEAR(p->body);
66986  Py_CLEAR(p->p_dirichlet);
66987  Py_CLEAR(p->u_dirichlet);
66988  Py_CLEAR(p->v_dirichlet);
66989  Py_CLEAR(p->w_dirichlet);
66990  Py_CLEAR(p->phi_dirichlet);
66991  Py_CLEAR(p->vof_dirichlet);
66992  Py_CLEAR(p->k_dirichlet);
66993  Py_CLEAR(p->dissipation_dirichlet);
66994  Py_CLEAR(p->pAddedMass_dirichlet);
66995  Py_CLEAR(p->p_advective);
66996  Py_CLEAR(p->u_advective);
66997  Py_CLEAR(p->v_advective);
66998  Py_CLEAR(p->w_advective);
66999  Py_CLEAR(p->vof_advective);
67000  Py_CLEAR(p->k_advective);
67001  Py_CLEAR(p->dissipation_advective);
67002  Py_CLEAR(p->u_diffusive);
67003  Py_CLEAR(p->v_diffusive);
67004  Py_CLEAR(p->w_diffusive);
67005  Py_CLEAR(p->k_diffusive);
67006  Py_CLEAR(p->dissipation_diffusive);
67007  Py_CLEAR(p->hx_dirichlet);
67008  Py_CLEAR(p->hy_dirichlet);
67009  Py_CLEAR(p->hz_dirichlet);
67010  Py_CLEAR(p->u_stress);
67011  Py_CLEAR(p->v_stress);
67012  Py_CLEAR(p->w_stress);
67013  Py_CLEAR(p->us_dirichlet);
67014  Py_CLEAR(p->vs_dirichlet);
67015  Py_CLEAR(p->ws_dirichlet);
67016  Py_CLEAR(p->vos_dirichlet);
67017  Py_CLEAR(p->us_advective);
67018  Py_CLEAR(p->vs_advective);
67019  Py_CLEAR(p->ws_advective);
67020  Py_CLEAR(p->vos_advective);
67021  Py_CLEAR(p->us_diffusive);
67022  Py_CLEAR(p->vs_diffusive);
67023  Py_CLEAR(p->ws_diffusive);
67024  Py_CLEAR(p->pInit_dirichlet);
67025  Py_CLEAR(p->pInc_dirichlet);
67026  Py_CLEAR(p->pInit_advective);
67027  Py_CLEAR(p->pInc_advective);
67028  Py_CLEAR(p->pInit_diffusive);
67029  Py_CLEAR(p->pInc_diffusive);
67030  Py_CLEAR(p->clsvof_dirichlet);
67031  Py_CLEAR(p->clsvof_advective);
67032  Py_CLEAR(p->clsvof_diffusive);
67033  __PYX_XDEC_MEMVIEW(&p->zero_array, 1);
67034  __PYX_XDEC_MEMVIEW(&p->wind_speed, 1);
67035  __PYX_XDEC_MEMVIEW(&p->body_python_rot_matrix, 1);
67036  __PYX_XDEC_MEMVIEW(&p->body_python_last_pos, 1);
67037  __PYX_XDEC_MEMVIEW(&p->body_python_h, 1);
67038  PyObject_GC_Track(o);
67039  if (likely(__pyx_ptype_7proteus_18BoundaryConditions_BC_Base)) __pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_dealloc(o); else __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_6mprans_18BoundaryConditions_BC_RANS);
67040 }
67041 
67042 static int __pyx_tp_traverse_6mprans_18BoundaryConditions_BC_RANS(PyObject *o, visitproc v, void *a) {
67043  int e;
67044  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *p = (struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)o;
67045  e = ((likely(__pyx_ptype_7proteus_18BoundaryConditions_BC_Base)) ? ((__pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_traverse) ? __pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_6mprans_18BoundaryConditions_BC_RANS)); if (e) return e;
67046  if (p->waves) {
67047  e = (*v)(((PyObject *)p->waves), a); if (e) return e;
67048  }
67049  if (p->body) {
67050  e = (*v)(p->body, a); if (e) return e;
67051  }
67052  if (p->p_dirichlet) {
67053  e = (*v)(((PyObject *)p->p_dirichlet), a); if (e) return e;
67054  }
67055  if (p->u_dirichlet) {
67056  e = (*v)(((PyObject *)p->u_dirichlet), a); if (e) return e;
67057  }
67058  if (p->v_dirichlet) {
67059  e = (*v)(((PyObject *)p->v_dirichlet), a); if (e) return e;
67060  }
67061  if (p->w_dirichlet) {
67062  e = (*v)(((PyObject *)p->w_dirichlet), a); if (e) return e;
67063  }
67064  if (p->phi_dirichlet) {
67065  e = (*v)(((PyObject *)p->phi_dirichlet), a); if (e) return e;
67066  }
67067  if (p->vof_dirichlet) {
67068  e = (*v)(((PyObject *)p->vof_dirichlet), a); if (e) return e;
67069  }
67070  if (p->k_dirichlet) {
67071  e = (*v)(((PyObject *)p->k_dirichlet), a); if (e) return e;
67072  }
67073  if (p->dissipation_dirichlet) {
67074  e = (*v)(((PyObject *)p->dissipation_dirichlet), a); if (e) return e;
67075  }
67076  if (p->pAddedMass_dirichlet) {
67077  e = (*v)(((PyObject *)p->pAddedMass_dirichlet), a); if (e) return e;
67078  }
67079  if (p->p_advective) {
67080  e = (*v)(((PyObject *)p->p_advective), a); if (e) return e;
67081  }
67082  if (p->u_advective) {
67083  e = (*v)(((PyObject *)p->u_advective), a); if (e) return e;
67084  }
67085  if (p->v_advective) {
67086  e = (*v)(((PyObject *)p->v_advective), a); if (e) return e;
67087  }
67088  if (p->w_advective) {
67089  e = (*v)(((PyObject *)p->w_advective), a); if (e) return e;
67090  }
67091  if (p->vof_advective) {
67092  e = (*v)(((PyObject *)p->vof_advective), a); if (e) return e;
67093  }
67094  if (p->k_advective) {
67095  e = (*v)(((PyObject *)p->k_advective), a); if (e) return e;
67096  }
67097  if (p->dissipation_advective) {
67098  e = (*v)(((PyObject *)p->dissipation_advective), a); if (e) return e;
67099  }
67100  if (p->u_diffusive) {
67101  e = (*v)(((PyObject *)p->u_diffusive), a); if (e) return e;
67102  }
67103  if (p->v_diffusive) {
67104  e = (*v)(((PyObject *)p->v_diffusive), a); if (e) return e;
67105  }
67106  if (p->w_diffusive) {
67107  e = (*v)(((PyObject *)p->w_diffusive), a); if (e) return e;
67108  }
67109  if (p->k_diffusive) {
67110  e = (*v)(((PyObject *)p->k_diffusive), a); if (e) return e;
67111  }
67112  if (p->dissipation_diffusive) {
67113  e = (*v)(((PyObject *)p->dissipation_diffusive), a); if (e) return e;
67114  }
67115  if (p->hx_dirichlet) {
67116  e = (*v)(((PyObject *)p->hx_dirichlet), a); if (e) return e;
67117  }
67118  if (p->hy_dirichlet) {
67119  e = (*v)(((PyObject *)p->hy_dirichlet), a); if (e) return e;
67120  }
67121  if (p->hz_dirichlet) {
67122  e = (*v)(((PyObject *)p->hz_dirichlet), a); if (e) return e;
67123  }
67124  if (p->u_stress) {
67125  e = (*v)(((PyObject *)p->u_stress), a); if (e) return e;
67126  }
67127  if (p->v_stress) {
67128  e = (*v)(((PyObject *)p->v_stress), a); if (e) return e;
67129  }
67130  if (p->w_stress) {
67131  e = (*v)(((PyObject *)p->w_stress), a); if (e) return e;
67132  }
67133  if (p->us_dirichlet) {
67134  e = (*v)(((PyObject *)p->us_dirichlet), a); if (e) return e;
67135  }
67136  if (p->vs_dirichlet) {
67137  e = (*v)(((PyObject *)p->vs_dirichlet), a); if (e) return e;
67138  }
67139  if (p->ws_dirichlet) {
67140  e = (*v)(((PyObject *)p->ws_dirichlet), a); if (e) return e;
67141  }
67142  if (p->vos_dirichlet) {
67143  e = (*v)(((PyObject *)p->vos_dirichlet), a); if (e) return e;
67144  }
67145  if (p->us_advective) {
67146  e = (*v)(((PyObject *)p->us_advective), a); if (e) return e;
67147  }
67148  if (p->vs_advective) {
67149  e = (*v)(((PyObject *)p->vs_advective), a); if (e) return e;
67150  }
67151  if (p->ws_advective) {
67152  e = (*v)(((PyObject *)p->ws_advective), a); if (e) return e;
67153  }
67154  if (p->vos_advective) {
67155  e = (*v)(((PyObject *)p->vos_advective), a); if (e) return e;
67156  }
67157  if (p->us_diffusive) {
67158  e = (*v)(((PyObject *)p->us_diffusive), a); if (e) return e;
67159  }
67160  if (p->vs_diffusive) {
67161  e = (*v)(((PyObject *)p->vs_diffusive), a); if (e) return e;
67162  }
67163  if (p->ws_diffusive) {
67164  e = (*v)(((PyObject *)p->ws_diffusive), a); if (e) return e;
67165  }
67166  if (p->pInit_dirichlet) {
67167  e = (*v)(((PyObject *)p->pInit_dirichlet), a); if (e) return e;
67168  }
67169  if (p->pInc_dirichlet) {
67170  e = (*v)(((PyObject *)p->pInc_dirichlet), a); if (e) return e;
67171  }
67172  if (p->pInit_advective) {
67173  e = (*v)(((PyObject *)p->pInit_advective), a); if (e) return e;
67174  }
67175  if (p->pInc_advective) {
67176  e = (*v)(((PyObject *)p->pInc_advective), a); if (e) return e;
67177  }
67178  if (p->pInit_diffusive) {
67179  e = (*v)(((PyObject *)p->pInit_diffusive), a); if (e) return e;
67180  }
67181  if (p->pInc_diffusive) {
67182  e = (*v)(((PyObject *)p->pInc_diffusive), a); if (e) return e;
67183  }
67184  if (p->clsvof_dirichlet) {
67185  e = (*v)(((PyObject *)p->clsvof_dirichlet), a); if (e) return e;
67186  }
67187  if (p->clsvof_advective) {
67188  e = (*v)(((PyObject *)p->clsvof_advective), a); if (e) return e;
67189  }
67190  if (p->clsvof_diffusive) {
67191  e = (*v)(((PyObject *)p->clsvof_diffusive), a); if (e) return e;
67192  }
67193  return 0;
67194 }
67195 
67196 static int __pyx_tp_clear_6mprans_18BoundaryConditions_BC_RANS(PyObject *o) {
67197  PyObject* tmp;
67198  struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *p = (struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)o;
67199  if (likely(__pyx_ptype_7proteus_18BoundaryConditions_BC_Base)) { if (__pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_clear) __pyx_ptype_7proteus_18BoundaryConditions_BC_Base->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_6mprans_18BoundaryConditions_BC_RANS);
67200  tmp = ((PyObject*)p->waves);
67201  p->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)Py_None); Py_INCREF(Py_None);
67202  Py_XDECREF(tmp);
67203  tmp = ((PyObject*)p->body);
67204  p->body = Py_None; Py_INCREF(Py_None);
67205  Py_XDECREF(tmp);
67206  tmp = ((PyObject*)p->p_dirichlet);
67207  p->p_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67208  Py_XDECREF(tmp);
67209  tmp = ((PyObject*)p->u_dirichlet);
67210  p->u_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67211  Py_XDECREF(tmp);
67212  tmp = ((PyObject*)p->v_dirichlet);
67213  p->v_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67214  Py_XDECREF(tmp);
67215  tmp = ((PyObject*)p->w_dirichlet);
67216  p->w_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67217  Py_XDECREF(tmp);
67218  tmp = ((PyObject*)p->phi_dirichlet);
67219  p->phi_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67220  Py_XDECREF(tmp);
67221  tmp = ((PyObject*)p->vof_dirichlet);
67222  p->vof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67223  Py_XDECREF(tmp);
67224  tmp = ((PyObject*)p->k_dirichlet);
67225  p->k_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67226  Py_XDECREF(tmp);
67227  tmp = ((PyObject*)p->dissipation_dirichlet);
67228  p->dissipation_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67229  Py_XDECREF(tmp);
67230  tmp = ((PyObject*)p->pAddedMass_dirichlet);
67231  p->pAddedMass_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67232  Py_XDECREF(tmp);
67233  tmp = ((PyObject*)p->p_advective);
67234  p->p_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67235  Py_XDECREF(tmp);
67236  tmp = ((PyObject*)p->u_advective);
67237  p->u_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67238  Py_XDECREF(tmp);
67239  tmp = ((PyObject*)p->v_advective);
67240  p->v_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67241  Py_XDECREF(tmp);
67242  tmp = ((PyObject*)p->w_advective);
67243  p->w_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67244  Py_XDECREF(tmp);
67245  tmp = ((PyObject*)p->vof_advective);
67246  p->vof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67247  Py_XDECREF(tmp);
67248  tmp = ((PyObject*)p->k_advective);
67249  p->k_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67250  Py_XDECREF(tmp);
67251  tmp = ((PyObject*)p->dissipation_advective);
67252  p->dissipation_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67253  Py_XDECREF(tmp);
67254  tmp = ((PyObject*)p->u_diffusive);
67255  p->u_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67256  Py_XDECREF(tmp);
67257  tmp = ((PyObject*)p->v_diffusive);
67258  p->v_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67259  Py_XDECREF(tmp);
67260  tmp = ((PyObject*)p->w_diffusive);
67261  p->w_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67262  Py_XDECREF(tmp);
67263  tmp = ((PyObject*)p->k_diffusive);
67264  p->k_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67265  Py_XDECREF(tmp);
67266  tmp = ((PyObject*)p->dissipation_diffusive);
67267  p->dissipation_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67268  Py_XDECREF(tmp);
67269  tmp = ((PyObject*)p->hx_dirichlet);
67270  p->hx_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67271  Py_XDECREF(tmp);
67272  tmp = ((PyObject*)p->hy_dirichlet);
67273  p->hy_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67274  Py_XDECREF(tmp);
67275  tmp = ((PyObject*)p->hz_dirichlet);
67276  p->hz_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67277  Py_XDECREF(tmp);
67278  tmp = ((PyObject*)p->u_stress);
67279  p->u_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67280  Py_XDECREF(tmp);
67281  tmp = ((PyObject*)p->v_stress);
67282  p->v_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67283  Py_XDECREF(tmp);
67284  tmp = ((PyObject*)p->w_stress);
67285  p->w_stress = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67286  Py_XDECREF(tmp);
67287  tmp = ((PyObject*)p->us_dirichlet);
67288  p->us_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67289  Py_XDECREF(tmp);
67290  tmp = ((PyObject*)p->vs_dirichlet);
67291  p->vs_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67292  Py_XDECREF(tmp);
67293  tmp = ((PyObject*)p->ws_dirichlet);
67294  p->ws_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67295  Py_XDECREF(tmp);
67296  tmp = ((PyObject*)p->vos_dirichlet);
67297  p->vos_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67298  Py_XDECREF(tmp);
67299  tmp = ((PyObject*)p->us_advective);
67300  p->us_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67301  Py_XDECREF(tmp);
67302  tmp = ((PyObject*)p->vs_advective);
67303  p->vs_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67304  Py_XDECREF(tmp);
67305  tmp = ((PyObject*)p->ws_advective);
67306  p->ws_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67307  Py_XDECREF(tmp);
67308  tmp = ((PyObject*)p->vos_advective);
67309  p->vos_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67310  Py_XDECREF(tmp);
67311  tmp = ((PyObject*)p->us_diffusive);
67312  p->us_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67313  Py_XDECREF(tmp);
67314  tmp = ((PyObject*)p->vs_diffusive);
67315  p->vs_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67316  Py_XDECREF(tmp);
67317  tmp = ((PyObject*)p->ws_diffusive);
67318  p->ws_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67319  Py_XDECREF(tmp);
67320  tmp = ((PyObject*)p->pInit_dirichlet);
67321  p->pInit_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67322  Py_XDECREF(tmp);
67323  tmp = ((PyObject*)p->pInc_dirichlet);
67324  p->pInc_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67325  Py_XDECREF(tmp);
67326  tmp = ((PyObject*)p->pInit_advective);
67327  p->pInit_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67328  Py_XDECREF(tmp);
67329  tmp = ((PyObject*)p->pInc_advective);
67330  p->pInc_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67331  Py_XDECREF(tmp);
67332  tmp = ((PyObject*)p->pInit_diffusive);
67333  p->pInit_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67334  Py_XDECREF(tmp);
67335  tmp = ((PyObject*)p->pInc_diffusive);
67336  p->pInc_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67337  Py_XDECREF(tmp);
67338  tmp = ((PyObject*)p->clsvof_dirichlet);
67339  p->clsvof_dirichlet = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67340  Py_XDECREF(tmp);
67341  tmp = ((PyObject*)p->clsvof_advective);
67342  p->clsvof_advective = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67343  Py_XDECREF(tmp);
67344  tmp = ((PyObject*)p->clsvof_diffusive);
67345  p->clsvof_diffusive = ((struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition *)Py_None); Py_INCREF(Py_None);
67346  Py_XDECREF(tmp);
67347  return 0;
67348 }
67349 
67350 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_p_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67351  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_1__get__(o);
67352 }
67353 
67354 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_p_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67355  if (v) {
67356  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_3__set__(o, v);
67357  }
67358  else {
67359  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_dirichlet_5__del__(o);
67360  }
67361 }
67362 
67363 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67364  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_1__get__(o);
67365 }
67366 
67367 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67368  if (v) {
67369  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_3__set__(o, v);
67370  }
67371  else {
67372  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_dirichlet_5__del__(o);
67373  }
67374 }
67375 
67376 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67377  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_1__get__(o);
67378 }
67379 
67380 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67381  if (v) {
67382  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_3__set__(o, v);
67383  }
67384  else {
67385  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_dirichlet_5__del__(o);
67386  }
67387 }
67388 
67389 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67390  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_1__get__(o);
67391 }
67392 
67393 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67394  if (v) {
67395  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_3__set__(o, v);
67396  }
67397  else {
67398  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_dirichlet_5__del__(o);
67399  }
67400 }
67401 
67402 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_phi_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67403  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_1__get__(o);
67404 }
67405 
67406 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_phi_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67407  if (v) {
67408  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_3__set__(o, v);
67409  }
67410  else {
67411  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13phi_dirichlet_5__del__(o);
67412  }
67413 }
67414 
67415 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vof_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67416  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_1__get__(o);
67417 }
67418 
67419 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vof_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67420  if (v) {
67421  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_3__set__(o, v);
67422  }
67423  else {
67424  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_dirichlet_5__del__(o);
67425  }
67426 }
67427 
67428 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67429  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_1__get__(o);
67430 }
67431 
67432 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67433  if (v) {
67434  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_3__set__(o, v);
67435  }
67436  else {
67437  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_dirichlet_5__del__(o);
67438  }
67439 }
67440 
67441 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67442  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_1__get__(o);
67443 }
67444 
67445 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67446  if (v) {
67447  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_3__set__(o, v);
67448  }
67449  else {
67450  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_dirichlet_5__del__(o);
67451  }
67452 }
67453 
67454 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pAddedMass_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67455  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_1__get__(o);
67456 }
67457 
67458 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pAddedMass_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67459  if (v) {
67460  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_3__set__(o, v);
67461  }
67462  else {
67463  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_20pAddedMass_dirichlet_5__del__(o);
67464  }
67465 }
67466 
67467 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_p_advective(PyObject *o, CYTHON_UNUSED void *x) {
67468  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_1__get__(o);
67469 }
67470 
67471 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_p_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67472  if (v) {
67473  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_3__set__(o, v);
67474  }
67475  else {
67476  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11p_advective_5__del__(o);
67477  }
67478 }
67479 
67480 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_advective(PyObject *o, CYTHON_UNUSED void *x) {
67481  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_1__get__(o);
67482 }
67483 
67484 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67485  if (v) {
67486  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_3__set__(o, v);
67487  }
67488  else {
67489  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_advective_5__del__(o);
67490  }
67491 }
67492 
67493 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_advective(PyObject *o, CYTHON_UNUSED void *x) {
67494  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_1__get__(o);
67495 }
67496 
67497 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67498  if (v) {
67499  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_3__set__(o, v);
67500  }
67501  else {
67502  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_advective_5__del__(o);
67503  }
67504 }
67505 
67506 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_advective(PyObject *o, CYTHON_UNUSED void *x) {
67507  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_1__get__(o);
67508 }
67509 
67510 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67511  if (v) {
67512  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_3__set__(o, v);
67513  }
67514  else {
67515  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_advective_5__del__(o);
67516  }
67517 }
67518 
67519 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vof_advective(PyObject *o, CYTHON_UNUSED void *x) {
67520  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_1__get__(o);
67521 }
67522 
67523 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vof_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67524  if (v) {
67525  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_3__set__(o, v);
67526  }
67527  else {
67528  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vof_advective_5__del__(o);
67529  }
67530 }
67531 
67532 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_advective(PyObject *o, CYTHON_UNUSED void *x) {
67533  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_1__get__(o);
67534 }
67535 
67536 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67537  if (v) {
67538  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_3__set__(o, v);
67539  }
67540  else {
67541  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_advective_5__del__(o);
67542  }
67543 }
67544 
67545 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_advective(PyObject *o, CYTHON_UNUSED void *x) {
67546  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_1__get__(o);
67547 }
67548 
67549 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67550  if (v) {
67551  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_3__set__(o, v);
67552  }
67553  else {
67554  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_advective_5__del__(o);
67555  }
67556 }
67557 
67558 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67559  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_1__get__(o);
67560 }
67561 
67562 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67563  if (v) {
67564  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_3__set__(o, v);
67565  }
67566  else {
67567  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11u_diffusive_5__del__(o);
67568  }
67569 }
67570 
67571 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67572  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_1__get__(o);
67573 }
67574 
67575 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67576  if (v) {
67577  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_3__set__(o, v);
67578  }
67579  else {
67580  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11v_diffusive_5__del__(o);
67581  }
67582 }
67583 
67584 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67585  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_1__get__(o);
67586 }
67587 
67588 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67589  if (v) {
67590  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_3__set__(o, v);
67591  }
67592  else {
67593  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11w_diffusive_5__del__(o);
67594  }
67595 }
67596 
67597 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67598  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_1__get__(o);
67599 }
67600 
67601 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67602  if (v) {
67603  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_3__set__(o, v);
67604  }
67605  else {
67606  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11k_diffusive_5__del__(o);
67607  }
67608 }
67609 
67610 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67611  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_1__get__(o);
67612 }
67613 
67614 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67615  if (v) {
67616  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_3__set__(o, v);
67617  }
67618  else {
67619  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21dissipation_diffusive_5__del__(o);
67620  }
67621 }
67622 
67623 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hx_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67624  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_1__get__(o);
67625 }
67626 
67627 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hx_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67628  if (v) {
67629  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_3__set__(o, v);
67630  }
67631  else {
67632  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hx_dirichlet_5__del__(o);
67633  }
67634 }
67635 
67636 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hy_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67637  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_1__get__(o);
67638 }
67639 
67640 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hy_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67641  if (v) {
67642  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_3__set__(o, v);
67643  }
67644  else {
67645  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hy_dirichlet_5__del__(o);
67646  }
67647 }
67648 
67649 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hz_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67650  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_1__get__(o);
67651 }
67652 
67653 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hz_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67654  if (v) {
67655  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_3__set__(o, v);
67656  }
67657  else {
67658  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12hz_dirichlet_5__del__(o);
67659  }
67660 }
67661 
67662 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_stress(PyObject *o, CYTHON_UNUSED void *x) {
67663  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_1__get__(o);
67664 }
67665 
67666 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_stress(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67667  if (v) {
67668  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_3__set__(o, v);
67669  }
67670  else {
67671  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8u_stress_5__del__(o);
67672  }
67673 }
67674 
67675 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_stress(PyObject *o, CYTHON_UNUSED void *x) {
67676  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_1__get__(o);
67677 }
67678 
67679 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_stress(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67680  if (v) {
67681  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_3__set__(o, v);
67682  }
67683  else {
67684  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8v_stress_5__del__(o);
67685  }
67686 }
67687 
67688 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_stress(PyObject *o, CYTHON_UNUSED void *x) {
67689  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_1__get__(o);
67690 }
67691 
67692 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_stress(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67693  if (v) {
67694  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_3__set__(o, v);
67695  }
67696  else {
67697  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_8w_stress_5__del__(o);
67698  }
67699 }
67700 
67701 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67702  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_1__get__(o);
67703 }
67704 
67705 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67706  if (v) {
67707  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_3__set__(o, v);
67708  }
67709  else {
67710  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_dirichlet_5__del__(o);
67711  }
67712 }
67713 
67714 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67715  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_1__get__(o);
67716 }
67717 
67718 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67719  if (v) {
67720  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_3__set__(o, v);
67721  }
67722  else {
67723  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_dirichlet_5__del__(o);
67724  }
67725 }
67726 
67727 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67728  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_1__get__(o);
67729 }
67730 
67731 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67732  if (v) {
67733  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_3__set__(o, v);
67734  }
67735  else {
67736  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_dirichlet_5__del__(o);
67737  }
67738 }
67739 
67740 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vos_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67741  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_1__get__(o);
67742 }
67743 
67744 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vos_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67745  if (v) {
67746  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_3__set__(o, v);
67747  }
67748  else {
67749  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_dirichlet_5__del__(o);
67750  }
67751 }
67752 
67753 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_advective(PyObject *o, CYTHON_UNUSED void *x) {
67754  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_1__get__(o);
67755 }
67756 
67757 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67758  if (v) {
67759  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_3__set__(o, v);
67760  }
67761  else {
67762  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_advective_5__del__(o);
67763  }
67764 }
67765 
67766 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_advective(PyObject *o, CYTHON_UNUSED void *x) {
67767  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_1__get__(o);
67768 }
67769 
67770 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67771  if (v) {
67772  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_3__set__(o, v);
67773  }
67774  else {
67775  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_advective_5__del__(o);
67776  }
67777 }
67778 
67779 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_advective(PyObject *o, CYTHON_UNUSED void *x) {
67780  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_1__get__(o);
67781 }
67782 
67783 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67784  if (v) {
67785  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_3__set__(o, v);
67786  }
67787  else {
67788  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_advective_5__del__(o);
67789  }
67790 }
67791 
67792 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vos_advective(PyObject *o, CYTHON_UNUSED void *x) {
67793  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_1__get__(o);
67794 }
67795 
67796 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vos_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67797  if (v) {
67798  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_3__set__(o, v);
67799  }
67800  else {
67801  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13vos_advective_5__del__(o);
67802  }
67803 }
67804 
67805 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67806  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_1__get__(o);
67807 }
67808 
67809 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67810  if (v) {
67811  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_3__set__(o, v);
67812  }
67813  else {
67814  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12us_diffusive_5__del__(o);
67815  }
67816 }
67817 
67818 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67819  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_1__get__(o);
67820 }
67821 
67822 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67823  if (v) {
67824  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_3__set__(o, v);
67825  }
67826  else {
67827  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12vs_diffusive_5__del__(o);
67828  }
67829 }
67830 
67831 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67832  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_1__get__(o);
67833 }
67834 
67835 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67836  if (v) {
67837  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_3__set__(o, v);
67838  }
67839  else {
67840  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_12ws_diffusive_5__del__(o);
67841  }
67842 }
67843 
67844 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67845  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_1__get__(o);
67846 }
67847 
67848 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67849  if (v) {
67850  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_3__set__(o, v);
67851  }
67852  else {
67853  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_dirichlet_5__del__(o);
67854  }
67855 }
67856 
67857 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67858  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_1__get__(o);
67859 }
67860 
67861 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67862  if (v) {
67863  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_3__set__(o, v);
67864  }
67865  else {
67866  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_dirichlet_5__del__(o);
67867  }
67868 }
67869 
67870 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_advective(PyObject *o, CYTHON_UNUSED void *x) {
67871  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_1__get__(o);
67872 }
67873 
67874 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67875  if (v) {
67876  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_3__set__(o, v);
67877  }
67878  else {
67879  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_advective_5__del__(o);
67880  }
67881 }
67882 
67883 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_advective(PyObject *o, CYTHON_UNUSED void *x) {
67884  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_1__get__(o);
67885 }
67886 
67887 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67888  if (v) {
67889  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_3__set__(o, v);
67890  }
67891  else {
67892  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_advective_5__del__(o);
67893  }
67894 }
67895 
67896 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67897  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_1__get__(o);
67898 }
67899 
67900 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67901  if (v) {
67902  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_3__set__(o, v);
67903  }
67904  else {
67905  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15pInit_diffusive_5__del__(o);
67906  }
67907 }
67908 
67909 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67910  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_1__get__(o);
67911 }
67912 
67913 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67914  if (v) {
67915  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_3__set__(o, v);
67916  }
67917  else {
67918  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_14pInc_diffusive_5__del__(o);
67919  }
67920 }
67921 
67922 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_dirichlet(PyObject *o, CYTHON_UNUSED void *x) {
67923  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_1__get__(o);
67924 }
67925 
67926 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_dirichlet(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67927  if (v) {
67928  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_3__set__(o, v);
67929  }
67930  else {
67931  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_dirichlet_5__del__(o);
67932  }
67933 }
67934 
67935 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_advective(PyObject *o, CYTHON_UNUSED void *x) {
67936  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_1__get__(o);
67937 }
67938 
67939 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_advective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67940  if (v) {
67941  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_3__set__(o, v);
67942  }
67943  else {
67944  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_advective_5__del__(o);
67945  }
67946 }
67947 
67948 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_diffusive(PyObject *o, CYTHON_UNUSED void *x) {
67949  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_1__get__(o);
67950 }
67951 
67952 static int __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_diffusive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
67953  if (v) {
67954  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_3__set__(o, v);
67955  }
67956  else {
67957  return __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_16clsvof_diffusive_5__del__(o);
67958  }
67959 }
67960 
67961 static PyMethodDef __pyx_methods_6mprans_18BoundaryConditions_BC_RANS[] = {
67962  {"reset", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_3reset, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_2reset},
67963  {"setNonMaterial", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_4setNonMaterial},
67964  {"setTank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_7setTank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_6setTank},
67965  {"setFixedNodes", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_8setFixedNodes},
67966  {"setNoSlip", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_10setNoSlip},
67967  {"setFreeSlip", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_12setFreeSlip},
67968  {"setConstantInletVelocity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_14setConstantInletVelocity},
67969  {"setConstantOutletPressure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_16setConstantOutletPressure},
67970  {"setAtmosphere", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_18setAtmosphere},
67971  {"setRigidBodyMoveMesh", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_20setRigidBodyMoveMesh},
67972  {"setChMoveMesh", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_22setChMoveMesh},
67973  {"setTurbulentDirichlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_24setTurbulentDirichlet},
67974  {"setTurbulentZeroGradient", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_26setTurbulentZeroGradient},
67975  {"setWallFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_28setWallFunction},
67976  {"setMoveMesh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_30setMoveMesh},
67977  {"setUnsteadyTwoPhaseVelocityInlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_40setUnsteadyTwoPhaseVelocityInlet},
67978  {"setTwoPhaseVelocityInlet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_42setTwoPhaseVelocityInlet},
67979  {"setHydrostaticPressureOutletWithDepth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_44setHydrostaticPressureOutletWithDepth},
67980  {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_46__reduce_cython__},
67981  {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_7BC_RANS_48__setstate_cython__},
67982  {0, 0, 0, 0}
67983 };
67984 
67985 static struct PyGetSetDef __pyx_getsets_6mprans_18BoundaryConditions_BC_RANS[] = {
67986  {(char *)"p_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_p_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_p_dirichlet, (char *)"p_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67987  {(char *)"u_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_dirichlet, (char *)"u_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67988  {(char *)"v_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_dirichlet, (char *)"v_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67989  {(char *)"w_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_dirichlet, (char *)"w_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67990  {(char *)"phi_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_phi_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_phi_dirichlet, (char *)"phi_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67991  {(char *)"vof_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vof_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vof_dirichlet, (char *)"vof_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67992  {(char *)"k_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_dirichlet, (char *)"k_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67993  {(char *)"dissipation_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_dirichlet, (char *)"dissipation_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67994  {(char *)"pAddedMass_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pAddedMass_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pAddedMass_dirichlet, (char *)"pAddedMass_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
67995  {(char *)"p_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_p_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_p_advective, (char *)"p_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
67996  {(char *)"u_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_advective, (char *)"u_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
67997  {(char *)"v_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_advective, (char *)"v_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
67998  {(char *)"w_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_advective, (char *)"w_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
67999  {(char *)"vof_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vof_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vof_advective, (char *)"vof_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68000  {(char *)"k_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_advective, (char *)"k_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68001  {(char *)"dissipation_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_advective, (char *)"dissipation_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68002  {(char *)"u_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_diffusive, (char *)"u_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68003  {(char *)"v_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_diffusive, (char *)"v_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68004  {(char *)"w_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_diffusive, (char *)"w_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68005  {(char *)"k_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_k_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_k_diffusive, (char *)"k_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68006  {(char *)"dissipation_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_dissipation_diffusive, (char *)"dissipation_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68007  {(char *)"hx_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hx_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hx_dirichlet, (char *)"hx_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68008  {(char *)"hy_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hy_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hy_dirichlet, (char *)"hy_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68009  {(char *)"hz_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_hz_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_hz_dirichlet, (char *)"hz_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68010  {(char *)"u_stress", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_u_stress, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_u_stress, (char *)"u_stress: proteus.BoundaryConditions.BoundaryCondition", 0},
68011  {(char *)"v_stress", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_v_stress, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_v_stress, (char *)"v_stress: proteus.BoundaryConditions.BoundaryCondition", 0},
68012  {(char *)"w_stress", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_w_stress, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_w_stress, (char *)"w_stress: proteus.BoundaryConditions.BoundaryCondition", 0},
68013  {(char *)"us_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_dirichlet, (char *)"us_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68014  {(char *)"vs_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_dirichlet, (char *)"vs_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68015  {(char *)"ws_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_dirichlet, (char *)"ws_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68016  {(char *)"vos_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vos_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vos_dirichlet, (char *)"vos_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68017  {(char *)"us_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_advective, (char *)"us_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68018  {(char *)"vs_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_advective, (char *)"vs_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68019  {(char *)"ws_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_advective, (char *)"ws_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68020  {(char *)"vos_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vos_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vos_advective, (char *)"vos_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68021  {(char *)"us_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_us_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_us_diffusive, (char *)"us_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68022  {(char *)"vs_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_vs_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_vs_diffusive, (char *)"vs_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68023  {(char *)"ws_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_ws_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_ws_diffusive, (char *)"ws_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68024  {(char *)"pInit_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_dirichlet, (char *)"pInit_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68025  {(char *)"pInc_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_dirichlet, (char *)"pInc_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68026  {(char *)"pInit_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_advective, (char *)"pInit_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68027  {(char *)"pInc_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_advective, (char *)"pInc_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68028  {(char *)"pInit_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInit_diffusive, (char *)"pInit_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68029  {(char *)"pInc_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_pInc_diffusive, (char *)"pInc_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68030  {(char *)"clsvof_dirichlet", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_dirichlet, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_dirichlet, (char *)"clsvof_dirichlet: proteus.BoundaryConditions.BoundaryCondition", 0},
68031  {(char *)"clsvof_advective", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_advective, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_advective, (char *)"clsvof_advective: proteus.BoundaryConditions.BoundaryCondition", 0},
68032  {(char *)"clsvof_diffusive", __pyx_getprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_diffusive, __pyx_setprop_6mprans_18BoundaryConditions_7BC_RANS_clsvof_diffusive, (char *)"clsvof_diffusive: proteus.BoundaryConditions.BoundaryCondition", 0},
68033  {0, 0, 0, 0, 0}
68034 };
68035 
68036 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions_BC_RANS = {
68037  PyVarObject_HEAD_INIT(0, 0)
68038  "mprans.BoundaryConditions.BC_RANS", /*tp_name*/
68039  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS), /*tp_basicsize*/
68040  0, /*tp_itemsize*/
68041  __pyx_tp_dealloc_6mprans_18BoundaryConditions_BC_RANS, /*tp_dealloc*/
68042  #if PY_VERSION_HEX < 0x030800b4
68043  0, /*tp_print*/
68044  #endif
68045  #if PY_VERSION_HEX >= 0x030800b4
68046  0, /*tp_vectorcall_offset*/
68047  #endif
68048  0, /*tp_getattr*/
68049  0, /*tp_setattr*/
68050  #if PY_MAJOR_VERSION < 3
68051  0, /*tp_compare*/
68052  #endif
68053  #if PY_MAJOR_VERSION >= 3
68054  0, /*tp_as_async*/
68055  #endif
68056  0, /*tp_repr*/
68057  0, /*tp_as_number*/
68058  0, /*tp_as_sequence*/
68059  0, /*tp_as_mapping*/
68060  0, /*tp_hash*/
68061  0, /*tp_call*/
68062  0, /*tp_str*/
68063  0, /*tp_getattro*/
68064  0, /*tp_setattro*/
68065  0, /*tp_as_buffer*/
68066  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68067  "BC_RANS(shape=None, name=None, b_or=None, b_i=0., nd=None)\n\n Class regrouping boundary conditions for two-phase flows\n ", /*tp_doc*/
68068  __pyx_tp_traverse_6mprans_18BoundaryConditions_BC_RANS, /*tp_traverse*/
68069  __pyx_tp_clear_6mprans_18BoundaryConditions_BC_RANS, /*tp_clear*/
68070  0, /*tp_richcompare*/
68071  0, /*tp_weaklistoffset*/
68072  0, /*tp_iter*/
68073  0, /*tp_iternext*/
68074  __pyx_methods_6mprans_18BoundaryConditions_BC_RANS, /*tp_methods*/
68075  0, /*tp_members*/
68076  __pyx_getsets_6mprans_18BoundaryConditions_BC_RANS, /*tp_getset*/
68077  0, /*tp_base*/
68078  0, /*tp_dict*/
68079  0, /*tp_descr_get*/
68080  0, /*tp_descr_set*/
68081  0, /*tp_dictoffset*/
68082  __pyx_pw_6mprans_18BoundaryConditions_7BC_RANS_1__init__, /*tp_init*/
68083  0, /*tp_alloc*/
68084  __pyx_tp_new_6mprans_18BoundaryConditions_BC_RANS, /*tp_new*/
68085  0, /*tp_free*/
68086  0, /*tp_is_gc*/
68087  0, /*tp_bases*/
68088  0, /*tp_mro*/
68089  0, /*tp_cache*/
68090  0, /*tp_subclasses*/
68091  0, /*tp_weaklist*/
68092  0, /*tp_del*/
68093  0, /*tp_version_tag*/
68094  #if PY_VERSION_HEX >= 0x030400a1
68095  0, /*tp_finalize*/
68096  #endif
68097  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
68098  0, /*tp_vectorcall*/
68099  #endif
68100  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
68101  0, /*tp_print*/
68102  #endif
68103  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
68104  0, /*tp_pypy_flags*/
68105  #endif
68106 };
68107 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZone __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone;
68108 
68109 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZone(PyTypeObject *t, PyObject *a, PyObject *k) {
68110  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *p;
68111  PyObject *o;
68112  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
68113  o = (*t->tp_alloc)(t, 0);
68114  } else {
68115  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
68116  }
68117  if (unlikely(!o)) return 0;
68118  p = ((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)o);
68119  p->__pyx_vtab = __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZone;
68120  p->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)Py_None); Py_INCREF(Py_None);
68121  p->Shape = Py_None; Py_INCREF(Py_None);
68122  p->zone_type = ((PyObject*)Py_None); Py_INCREF(Py_None);
68123  p->wind_speed.data = NULL;
68124  p->wind_speed.memview = NULL;
68125  p->u_calc.data = NULL;
68126  p->u_calc.memview = NULL;
68127  p->zero_vel.data = NULL;
68128  p->zero_vel.memview = NULL;
68129  p->center.data = NULL;
68130  p->center.memview = NULL;
68131  p->orientation.data = NULL;
68132  p->orientation.memview = NULL;
68133  if (unlikely(__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_1__cinit__(o, a, k) < 0)) goto bad;
68134  return o;
68135  bad:
68136  Py_DECREF(o); o = 0;
68137  return NULL;
68138 }
68139 
68140 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions_RelaxationZone(PyObject *o) {
68141  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)o;
68142  #if CYTHON_USE_TP_FINALIZE
68143  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
68144  if (PyObject_CallFinalizerFromDealloc(o)) return;
68145  }
68146  #endif
68147  PyObject_GC_UnTrack(o);
68148  Py_CLEAR(p->waves);
68149  Py_CLEAR(p->Shape);
68150  Py_CLEAR(p->zone_type);
68151  __PYX_XDEC_MEMVIEW(&p->wind_speed, 1);
68152  __PYX_XDEC_MEMVIEW(&p->u_calc, 1);
68153  __PYX_XDEC_MEMVIEW(&p->zero_vel, 1);
68154  __PYX_XDEC_MEMVIEW(&p->center, 1);
68155  __PYX_XDEC_MEMVIEW(&p->orientation, 1);
68156  (*Py_TYPE(o)->tp_free)(o);
68157 }
68158 
68159 static int __pyx_tp_traverse_6mprans_18BoundaryConditions_RelaxationZone(PyObject *o, visitproc v, void *a) {
68160  int e;
68161  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)o;
68162  if (p->waves) {
68163  e = (*v)(((PyObject *)p->waves), a); if (e) return e;
68164  }
68165  if (p->Shape) {
68166  e = (*v)(p->Shape, a); if (e) return e;
68167  }
68168  return 0;
68169 }
68170 
68171 static int __pyx_tp_clear_6mprans_18BoundaryConditions_RelaxationZone(PyObject *o) {
68172  PyObject* tmp;
68173  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *)o;
68174  tmp = ((PyObject*)p->waves);
68175  p->waves = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)Py_None); Py_INCREF(Py_None);
68176  Py_XDECREF(tmp);
68177  tmp = ((PyObject*)p->Shape);
68178  p->Shape = Py_None; Py_INCREF(Py_None);
68179  Py_XDECREF(tmp);
68180  return 0;
68181 }
68182 
68183 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_Shape(PyObject *o, CYTHON_UNUSED void *x) {
68184  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_1__get__(o);
68185 }
68186 
68187 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_Shape(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68188  if (v) {
68189  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_3__set__(o, v);
68190  }
68191  else {
68192  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5Shape_5__del__(o);
68193  }
68194 }
68195 
68196 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_zone_type(PyObject *o, CYTHON_UNUSED void *x) {
68197  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_1__get__(o);
68198 }
68199 
68200 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_zone_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68201  if (v) {
68202  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_3__set__(o, v);
68203  }
68204  else {
68205  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9zone_type_5__del__(o);
68206  }
68207 }
68208 
68209 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_dragAlpha(PyObject *o, CYTHON_UNUSED void *x) {
68210  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_1__get__(o);
68211 }
68212 
68213 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_dragAlpha(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68214  if (v) {
68215  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9dragAlpha_3__set__(o, v);
68216  }
68217  else {
68218  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68219  return -1;
68220  }
68221 }
68222 
68223 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_dragBeta(PyObject *o, CYTHON_UNUSED void *x) {
68224  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_1__get__(o);
68225 }
68226 
68227 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_dragBeta(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68228  if (v) {
68229  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8dragBeta_3__set__(o, v);
68230  }
68231  else {
68232  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68233  return -1;
68234  }
68235 }
68236 
68237 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_porosity(PyObject *o, CYTHON_UNUSED void *x) {
68238  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_1__get__(o);
68239 }
68240 
68241 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_porosity(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68242  if (v) {
68243  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_8porosity_3__set__(o, v);
68244  }
68245  else {
68246  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68247  return -1;
68248  }
68249 }
68250 
68251 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_solid(PyObject *o, CYTHON_UNUSED void *x) {
68252  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_1__get__(o);
68253 }
68254 
68255 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_solid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68256  if (v) {
68257  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_13epsFact_solid_3__set__(o, v);
68258  }
68259  else {
68260  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68261  return -1;
68262  }
68263 }
68264 
68265 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_porous(PyObject *o, CYTHON_UNUSED void *x) {
68266  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_1__get__(o);
68267 }
68268 
68269 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_porous(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68270  if (v) {
68271  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_14epsFact_porous_3__set__(o, v);
68272  }
68273  else {
68274  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68275  return -1;
68276  }
68277 }
68278 
68279 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_vert_axis(PyObject *o, CYTHON_UNUSED void *x) {
68280  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_1__get__(o);
68281 }
68282 
68283 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_vert_axis(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68284  if (v) {
68285  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9vert_axis_3__set__(o, v);
68286  }
68287  else {
68288  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68289  return -1;
68290  }
68291 }
68292 
68293 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_center(PyObject *o, CYTHON_UNUSED void *x) {
68294  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_1__get__(o);
68295 }
68296 
68297 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_center(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68298  if (v) {
68299  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_6center_3__set__(o, v);
68300  }
68301  else {
68302  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68303  return -1;
68304  }
68305 }
68306 
68307 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_orientation(PyObject *o, CYTHON_UNUSED void *x) {
68308  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_1__get__(o);
68309 }
68310 
68311 static int __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_orientation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68312  if (v) {
68313  return __pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11orientation_3__set__(o, v);
68314  }
68315  else {
68316  PyErr_SetString(PyExc_NotImplementedError, "__del__");
68317  return -1;
68318  }
68319 }
68320 
68321 static PyMethodDef __pyx_methods_6mprans_18BoundaryConditions_RelaxationZone[] = {
68322  {"calculate_phi_python", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python, METH_O, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_4calculate_phi_python},
68323  {"calculate_vel_python", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_6calculate_vel_python},
68324  {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_8__reduce_cython__},
68325  {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_14RelaxationZone_10__setstate_cython__},
68326  {0, 0, 0, 0}
68327 };
68328 
68329 static struct PyGetSetDef __pyx_getsets_6mprans_18BoundaryConditions_RelaxationZone[] = {
68330  {(char *)"Shape", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_Shape, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_Shape, (char *)"Shape: object", 0},
68331  {(char *)"zone_type", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_zone_type, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_zone_type, (char *)"zone_type: str", 0},
68332  {(char *)"dragAlpha", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_dragAlpha, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_dragAlpha, (char *)"dragAlpha: 'double'", 0},
68333  {(char *)"dragBeta", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_dragBeta, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_dragBeta, (char *)"dragBeta: 'double'", 0},
68334  {(char *)"porosity", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_porosity, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_porosity, (char *)"porosity: 'double'", 0},
68335  {(char *)"epsFact_solid", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_solid, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_solid, (char *)"epsFact_solid: 'double'", 0},
68336  {(char *)"epsFact_porous", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_porous, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_epsFact_porous, (char *)"epsFact_porous: 'double'", 0},
68337  {(char *)"vert_axis", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_vert_axis, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_vert_axis, (char *)"vert_axis: 'double'", 0},
68338  {(char *)"center", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_center, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_center, (char *)"center: 'double[:]'", 0},
68339  {(char *)"orientation", __pyx_getprop_6mprans_18BoundaryConditions_14RelaxationZone_orientation, __pyx_setprop_6mprans_18BoundaryConditions_14RelaxationZone_orientation, (char *)"orientation: 'double[:]'", 0},
68340  {0, 0, 0, 0, 0}
68341 };
68342 
68343 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions_RelaxationZone = {
68344  PyVarObject_HEAD_INIT(0, 0)
68345  "mprans.BoundaryConditions.RelaxationZone", /*tp_name*/
68346  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone), /*tp_basicsize*/
68347  0, /*tp_itemsize*/
68348  __pyx_tp_dealloc_6mprans_18BoundaryConditions_RelaxationZone, /*tp_dealloc*/
68349  #if PY_VERSION_HEX < 0x030800b4
68350  0, /*tp_print*/
68351  #endif
68352  #if PY_VERSION_HEX >= 0x030800b4
68353  0, /*tp_vectorcall_offset*/
68354  #endif
68355  0, /*tp_getattr*/
68356  0, /*tp_setattr*/
68357  #if PY_MAJOR_VERSION < 3
68358  0, /*tp_compare*/
68359  #endif
68360  #if PY_MAJOR_VERSION >= 3
68361  0, /*tp_as_async*/
68362  #endif
68363  0, /*tp_repr*/
68364  0, /*tp_as_number*/
68365  0, /*tp_as_sequence*/
68366  0, /*tp_as_mapping*/
68367  0, /*tp_hash*/
68368  0, /*tp_call*/
68369  0, /*tp_str*/
68370  0, /*tp_getattro*/
68371  0, /*tp_setattro*/
68372  0, /*tp_as_buffer*/
68373  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68374  "\n Holds information about a relaxation zone (wave generation/absorption\n or porous zone)\n\n Parameters\n ----------\n zone_type: string\n type of zone, can be set to 'absorption', 'generation', or 'porous'\n center: array_like\n coordinates of center of the zone\n orientation: array_like\n orientation for absorption/generation zones: from boundary to tank\n epsFact_porous: float\n half the zone length\n waves: Optional[proteus.WaveTools]\n class instance of a wave from proteus.WaveTools (must be set for\n generation zone)\n shape: Optional[proteus.SpatialTools.Shape]\n shape class instance containing region\n dragAlpha: Optional[float]\n parameter for porous zones (default: 0.5/1.005e-6)\n dragBeta: Optional[float]\n parameter for porous zones (default: 0.)\n porosity: Optional[float]\n parameter for porous zone (default: 1.)\n vert_axis: Optional[int]\n index of vertical position vector (x:0, y:1, z:2), must always be\n aligned with gravity. If not set, will be 1 in 2D (y), 2 in 3D (z).\n smoothing: Optional[float]\n smoothing distance from the free surface (usually 3*he)\n vof_water: Optional[int]\n VOF value of water (default: 0)\n vof_air: Optional[int]\n VOF value of air (default: 1)\n ", /*tp_doc*/
68375  __pyx_tp_traverse_6mprans_18BoundaryConditions_RelaxationZone, /*tp_traverse*/
68376  __pyx_tp_clear_6mprans_18BoundaryConditions_RelaxationZone, /*tp_clear*/
68377  0, /*tp_richcompare*/
68378  0, /*tp_weaklistoffset*/
68379  0, /*tp_iter*/
68380  0, /*tp_iternext*/
68381  __pyx_methods_6mprans_18BoundaryConditions_RelaxationZone, /*tp_methods*/
68382  0, /*tp_members*/
68383  __pyx_getsets_6mprans_18BoundaryConditions_RelaxationZone, /*tp_getset*/
68384  0, /*tp_base*/
68385  0, /*tp_dict*/
68386  0, /*tp_descr_get*/
68387  0, /*tp_descr_set*/
68388  0, /*tp_dictoffset*/
68389  0, /*tp_init*/
68390  0, /*tp_alloc*/
68391  __pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZone, /*tp_new*/
68392  0, /*tp_free*/
68393  0, /*tp_is_gc*/
68394  0, /*tp_bases*/
68395  0, /*tp_mro*/
68396  0, /*tp_cache*/
68397  0, /*tp_subclasses*/
68398  0, /*tp_weaklist*/
68399  0, /*tp_del*/
68400  0, /*tp_version_tag*/
68401  #if PY_VERSION_HEX >= 0x030400a1
68402  0, /*tp_finalize*/
68403  #endif
68404  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
68405  0, /*tp_vectorcall*/
68406  #endif
68407  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
68408  0, /*tp_print*/
68409  #endif
68410  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
68411  0, /*tp_pypy_flags*/
68412  #endif
68413 };
68414 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
68415 
68416 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
68417  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *p;
68418  PyObject *o;
68419  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
68420  o = (*t->tp_alloc)(t, 0);
68421  } else {
68422  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
68423  }
68424  if (unlikely(!o)) return 0;
68425  p = ((struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)o);
68426  p->__pyx_vtab = __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
68427  p->zones_array = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
68428  p->zones = ((PyObject*)Py_None); Py_INCREF(Py_None);
68429  p->model = Py_None; Py_INCREF(Py_None);
68430  p->ar = Py_None; Py_INCREF(Py_None);
68431  return o;
68432 }
68433 
68434 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator(PyObject *o) {
68435  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)o;
68436  #if CYTHON_USE_TP_FINALIZE
68437  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
68438  if (PyObject_CallFinalizerFromDealloc(o)) return;
68439  }
68440  #endif
68441  PyObject_GC_UnTrack(o);
68442  Py_CLEAR(p->zones_array);
68443  Py_CLEAR(p->zones);
68444  Py_CLEAR(p->model);
68445  Py_CLEAR(p->ar);
68446  (*Py_TYPE(o)->tp_free)(o);
68447 }
68448 
68449 static int __pyx_tp_traverse_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator(PyObject *o, visitproc v, void *a) {
68450  int e;
68451  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)o;
68452  if (p->zones_array) {
68453  e = (*v)(((PyObject *)p->zones_array), a); if (e) return e;
68454  }
68455  if (p->zones) {
68456  e = (*v)(p->zones, a); if (e) return e;
68457  }
68458  if (p->model) {
68459  e = (*v)(p->model, a); if (e) return e;
68460  }
68461  if (p->ar) {
68462  e = (*v)(p->ar, a); if (e) return e;
68463  }
68464  return 0;
68465 }
68466 
68467 static int __pyx_tp_clear_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator(PyObject *o) {
68468  PyObject* tmp;
68469  struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *p = (struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *)o;
68470  tmp = ((PyObject*)p->zones_array);
68471  p->zones_array = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
68472  Py_XDECREF(tmp);
68473  tmp = ((PyObject*)p->zones);
68474  p->zones = ((PyObject*)Py_None); Py_INCREF(Py_None);
68475  Py_XDECREF(tmp);
68476  tmp = ((PyObject*)p->model);
68477  p->model = Py_None; Py_INCREF(Py_None);
68478  Py_XDECREF(tmp);
68479  tmp = ((PyObject*)p->ar);
68480  p->ar = Py_None; Py_INCREF(Py_None);
68481  Py_XDECREF(tmp);
68482  return 0;
68483 }
68484 
68485 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_zones(PyObject *o, CYTHON_UNUSED void *x) {
68486  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_1__get__(o);
68487 }
68488 
68489 static int __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_zones(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68490  if (v) {
68491  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_3__set__(o, v);
68492  }
68493  else {
68494  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5zones_5__del__(o);
68495  }
68496 }
68497 
68498 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_model(PyObject *o, CYTHON_UNUSED void *x) {
68499  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_1__get__(o);
68500 }
68501 
68502 static int __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_model(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68503  if (v) {
68504  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_3__set__(o, v);
68505  }
68506  else {
68507  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5model_5__del__(o);
68508  }
68509 }
68510 
68511 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_ar(PyObject *o, CYTHON_UNUSED void *x) {
68512  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_1__get__(o);
68513 }
68514 
68515 static int __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_ar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68516  if (v) {
68517  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_3__set__(o, v);
68518  }
68519  else {
68520  return __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2ar_5__del__(o);
68521  }
68522 }
68523 
68524 static PyMethodDef __pyx_methods_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator[] = {
68525  {"attachModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_2attachModel},
68526  {"attachAuxiliaryVariables", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables, METH_O, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_4attachAuxiliaryVariables},
68527  {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_10__reduce_cython__},
68528  {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_12__setstate_cython__},
68529  {0, 0, 0, 0}
68530 };
68531 
68532 static struct PyGetSetDef __pyx_getsets_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator[] = {
68533  {(char *)"zones", __pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_zones, __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_zones, (char *)"zones: dict", 0},
68534  {(char *)"model", __pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_model, __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_model, (char *)"model: object", 0},
68535  {(char *)"ar", __pyx_getprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_ar, __pyx_setprop_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_ar, (char *)"ar: object", 0},
68536  {0, 0, 0, 0, 0}
68537 };
68538 
68539 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator = {
68540  PyVarObject_HEAD_INIT(0, 0)
68541  "mprans.BoundaryConditions.RelaxationZoneWaveGenerator", /*tp_name*/
68542  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator), /*tp_basicsize*/
68543  0, /*tp_itemsize*/
68544  __pyx_tp_dealloc_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_dealloc*/
68545  #if PY_VERSION_HEX < 0x030800b4
68546  0, /*tp_print*/
68547  #endif
68548  #if PY_VERSION_HEX >= 0x030800b4
68549  0, /*tp_vectorcall_offset*/
68550  #endif
68551  0, /*tp_getattr*/
68552  0, /*tp_setattr*/
68553  #if PY_MAJOR_VERSION < 3
68554  0, /*tp_compare*/
68555  #endif
68556  #if PY_MAJOR_VERSION >= 3
68557  0, /*tp_as_async*/
68558  #endif
68559  0, /*tp_repr*/
68560  0, /*tp_as_number*/
68561  0, /*tp_as_sequence*/
68562  0, /*tp_as_mapping*/
68563  0, /*tp_hash*/
68564  0, /*tp_call*/
68565  0, /*tp_str*/
68566  0, /*tp_getattro*/
68567  0, /*tp_setattro*/
68568  0, /*tp_as_buffer*/
68569  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68570  "RelaxationZoneWaveGenerator(zones, nd)\n\n Prescribe a velocity penalty scaling in a material zone via a\n Darcy-Forchheimer penalty\n\n Parameters\n ----------\n zones: dict\n dictionary with key as the region flag and values as a RelaxationZone\n class\n nd: int\n number of dimensions of domain\n ", /*tp_doc*/
68571  __pyx_tp_traverse_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_traverse*/
68572  __pyx_tp_clear_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_clear*/
68573  0, /*tp_richcompare*/
68574  0, /*tp_weaklistoffset*/
68575  0, /*tp_iter*/
68576  0, /*tp_iternext*/
68577  __pyx_methods_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_methods*/
68578  0, /*tp_members*/
68579  __pyx_getsets_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_getset*/
68580  0, /*tp_base*/
68581  0, /*tp_dict*/
68582  0, /*tp_descr_get*/
68583  0, /*tp_descr_set*/
68584  0, /*tp_dictoffset*/
68585  __pyx_pw_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_1__init__, /*tp_init*/
68586  0, /*tp_alloc*/
68587  __pyx_tp_new_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator, /*tp_new*/
68588  0, /*tp_free*/
68589  0, /*tp_is_gc*/
68590  0, /*tp_bases*/
68591  0, /*tp_mro*/
68592  0, /*tp_cache*/
68593  0, /*tp_subclasses*/
68594  0, /*tp_weaklist*/
68595  0, /*tp_del*/
68596  0, /*tp_version_tag*/
68597  #if PY_VERSION_HEX >= 0x030400a1
68598  0, /*tp_finalize*/
68599  #endif
68600  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
68601  0, /*tp_vectorcall*/
68602  #endif
68603  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
68604  0, /*tp_print*/
68605  #endif
68606  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
68607  0, /*tp_pypy_flags*/
68608  #endif
68609 };
68610 static struct __pyx_vtabstruct_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
68611 
68612 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
68613  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *p;
68614  PyObject *o;
68615  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
68616  o = (*t->tp_alloc)(t, 0);
68617  } else {
68618  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
68619  }
68620  if (unlikely(!o)) return 0;
68621  p = ((struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)o);
68622  p->__pyx_vtab = __pyx_vtabptr_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
68623  p->WT = Py_None; Py_INCREF(Py_None);
68624  p->center.data = NULL;
68625  p->center.memview = NULL;
68626  p->orientation.data = NULL;
68627  p->orientation.memview = NULL;
68628  p->zero_vel.data = NULL;
68629  p->zero_vel.memview = NULL;
68630  p->_b_or.data = NULL;
68631  p->_b_or.memview = NULL;
68632  p->wind_speed.data = NULL;
68633  p->wind_speed.memview = NULL;
68634  return o;
68635 }
68636 
68637 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics(PyObject *o) {
68638  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *p = (struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)o;
68639  #if CYTHON_USE_TP_FINALIZE
68640  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
68641  if (PyObject_CallFinalizerFromDealloc(o)) return;
68642  }
68643  #endif
68644  PyObject_GC_UnTrack(o);
68645  Py_CLEAR(p->WT);
68646  __PYX_XDEC_MEMVIEW(&p->center, 1);
68647  __PYX_XDEC_MEMVIEW(&p->orientation, 1);
68648  __PYX_XDEC_MEMVIEW(&p->zero_vel, 1);
68649  __PYX_XDEC_MEMVIEW(&p->_b_or, 1);
68650  __PYX_XDEC_MEMVIEW(&p->wind_speed, 1);
68651  (*Py_TYPE(o)->tp_free)(o);
68652 }
68653 
68654 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics(PyObject *o, visitproc v, void *a) {
68655  int e;
68656  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *p = (struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)o;
68657  if (p->WT) {
68658  e = (*v)(p->WT, a); if (e) return e;
68659  }
68660  return 0;
68661 }
68662 
68663 static int __pyx_tp_clear_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics(PyObject *o) {
68664  PyObject* tmp;
68665  struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *p = (struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *)o;
68666  tmp = ((PyObject*)p->WT);
68667  p->WT = Py_None; Py_INCREF(Py_None);
68668  Py_XDECREF(tmp);
68669  return 0;
68670 }
68671 
68672 static PyObject *__pyx_getprop_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_WT(PyObject *o, CYTHON_UNUSED void *x) {
68673  return __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_1__get__(o);
68674 }
68675 
68676 static int __pyx_setprop_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_WT(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
68677  if (v) {
68678  return __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_3__set__(o, v);
68679  }
68680  else {
68681  return __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2WT_5__del__(o);
68682  }
68683 }
68684 
68685 static PyMethodDef __pyx_methods_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics[] = {
68686  {"__reduce_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__, METH_NOARGS, __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_2__reduce_cython__},
68687  {"__setstate_cython__", (PyCFunction)__pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__, METH_O, __pyx_doc_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_4__setstate_cython__},
68688  {0, 0, 0, 0}
68689 };
68690 
68691 static struct PyGetSetDef __pyx_getsets_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics[] = {
68692  {(char *)"WT", __pyx_getprop_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_WT, __pyx_setprop_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_WT, (char *)"WT: object", 0},
68693  {0, 0, 0, 0, 0}
68694 };
68695 
68696 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics = {
68697  PyVarObject_HEAD_INIT(0, 0)
68698  "mprans.BoundaryConditions.__cppClass_WavesCharacteristics", /*tp_name*/
68699  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics), /*tp_basicsize*/
68700  0, /*tp_itemsize*/
68701  __pyx_tp_dealloc_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_dealloc*/
68702  #if PY_VERSION_HEX < 0x030800b4
68703  0, /*tp_print*/
68704  #endif
68705  #if PY_VERSION_HEX >= 0x030800b4
68706  0, /*tp_vectorcall_offset*/
68707  #endif
68708  0, /*tp_getattr*/
68709  0, /*tp_setattr*/
68710  #if PY_MAJOR_VERSION < 3
68711  0, /*tp_compare*/
68712  #endif
68713  #if PY_MAJOR_VERSION >= 3
68714  0, /*tp_as_async*/
68715  #endif
68716  0, /*tp_repr*/
68717  0, /*tp_as_number*/
68718  0, /*tp_as_sequence*/
68719  0, /*tp_as_mapping*/
68720  0, /*tp_hash*/
68721  0, /*tp_call*/
68722  0, /*tp_str*/
68723  0, /*tp_getattro*/
68724  0, /*tp_setattro*/
68725  0, /*tp_as_buffer*/
68726  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68727  "__cppClass_WavesCharacteristics(waves, vert_axis, wind_speed=None, b_or=None, smoothing=0., vof_water=0., vof_air=1.)\n\n Class holding information from WaveTools waves and cnvering it to\n boundary conditions to use for relaxation zones and wave inlet.\n This class is created automatically when passing WaveTools class\n instances to a relaxation zone or wave inlet BC.\n\n Parameters\n ----------\n wave: proteus.WaveTools\n class describing a wave (from proteus.WaveTools)\n vert_axis: int\n index of vertical position vector (x:0, y:1, z:2), must always be\n aligned with gravity. If not set, will be 1 in 2D (y), 2 in 3D (z).\n wind_speed: Optional[array_like]\n speed of air phase\n b_or: Optional[array_like]\n boundary orientation. Necessary for pressure calculations. Used\n for boundary conditions but not in relaxation zones.\n smoothing: Optional[float]\n smoothing distance from the free surface (usually 3*he)\n vof_water: Optional[float]\n VOF value of water (default: 0)\n vof_air: Optional[float]\n VOF value of air (default: 1)\n ", /*tp_doc*/
68728  __pyx_tp_traverse_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_traverse*/
68729  __pyx_tp_clear_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_clear*/
68730  0, /*tp_richcompare*/
68731  0, /*tp_weaklistoffset*/
68732  0, /*tp_iter*/
68733  0, /*tp_iternext*/
68734  __pyx_methods_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_methods*/
68735  0, /*tp_members*/
68736  __pyx_getsets_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_getset*/
68737  0, /*tp_base*/
68738  0, /*tp_dict*/
68739  0, /*tp_descr_get*/
68740  0, /*tp_descr_set*/
68741  0, /*tp_dictoffset*/
68742  __pyx_pw_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_1__init__, /*tp_init*/
68743  0, /*tp_alloc*/
68744  __pyx_tp_new_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics, /*tp_new*/
68745  0, /*tp_free*/
68746  0, /*tp_is_gc*/
68747  0, /*tp_bases*/
68748  0, /*tp_mro*/
68749  0, /*tp_cache*/
68750  0, /*tp_subclasses*/
68751  0, /*tp_weaklist*/
68752  0, /*tp_del*/
68753  0, /*tp_version_tag*/
68754  #if PY_VERSION_HEX >= 0x030400a1
68755  0, /*tp_finalize*/
68756  #endif
68757  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
68758  0, /*tp_vectorcall*/
68759  #endif
68760  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
68761  0, /*tp_print*/
68762  #endif
68763  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
68764  0, /*tp_pypy_flags*/
68765  #endif
68766 };
68767 
68768 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh[8];
68769 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh = 0;
68770 
68771 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
68772  PyObject *o;
68773  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh)))) {
68774  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh];
68775  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh));
68776  (void) PyObject_INIT(o, t);
68777  PyObject_GC_Track(o);
68778  } else {
68779  o = (*t->tp_alloc)(t, 0);
68780  if (unlikely(!o)) return 0;
68781  }
68782  return o;
68783 }
68784 
68785 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(PyObject *o) {
68786  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)o;
68787  PyObject_GC_UnTrack(o);
68788  Py_CLEAR(p->__pyx_v_body);
68789  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh)))) {
68790  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)o);
68791  } else {
68792  (*Py_TYPE(o)->tp_free)(o);
68793  }
68794 }
68795 
68796 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(PyObject *o, visitproc v, void *a) {
68797  int e;
68798  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)o;
68799  if (p->__pyx_v_body) {
68800  e = (*v)(p->__pyx_v_body, a); if (e) return e;
68801  }
68802  return 0;
68803 }
68804 
68805 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh(PyObject *o) {
68806  PyObject* tmp;
68807  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)o;
68808  tmp = ((PyObject*)p->__pyx_v_body);
68809  p->__pyx_v_body = Py_None; Py_INCREF(Py_None);
68810  Py_XDECREF(tmp);
68811  return 0;
68812 }
68813 
68814 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh = {
68815  PyVarObject_HEAD_INIT(0, 0)
68816  "mprans.BoundaryConditions.__pyx_scope_struct__setRigidBodyMoveMesh", /*tp_name*/
68817  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh), /*tp_basicsize*/
68818  0, /*tp_itemsize*/
68819  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh, /*tp_dealloc*/
68820  #if PY_VERSION_HEX < 0x030800b4
68821  0, /*tp_print*/
68822  #endif
68823  #if PY_VERSION_HEX >= 0x030800b4
68824  0, /*tp_vectorcall_offset*/
68825  #endif
68826  0, /*tp_getattr*/
68827  0, /*tp_setattr*/
68828  #if PY_MAJOR_VERSION < 3
68829  0, /*tp_compare*/
68830  #endif
68831  #if PY_MAJOR_VERSION >= 3
68832  0, /*tp_as_async*/
68833  #endif
68834  0, /*tp_repr*/
68835  0, /*tp_as_number*/
68836  0, /*tp_as_sequence*/
68837  0, /*tp_as_mapping*/
68838  0, /*tp_hash*/
68839  0, /*tp_call*/
68840  0, /*tp_str*/
68841  0, /*tp_getattro*/
68842  0, /*tp_setattro*/
68843  0, /*tp_as_buffer*/
68844  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68845  0, /*tp_doc*/
68846  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh, /*tp_traverse*/
68847  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh, /*tp_clear*/
68848  0, /*tp_richcompare*/
68849  0, /*tp_weaklistoffset*/
68850  0, /*tp_iter*/
68851  0, /*tp_iternext*/
68852  0, /*tp_methods*/
68853  0, /*tp_members*/
68854  0, /*tp_getset*/
68855  0, /*tp_base*/
68856  0, /*tp_dict*/
68857  0, /*tp_descr_get*/
68858  0, /*tp_descr_set*/
68859  0, /*tp_dictoffset*/
68860  0, /*tp_init*/
68861  0, /*tp_alloc*/
68862  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh, /*tp_new*/
68863  0, /*tp_free*/
68864  0, /*tp_is_gc*/
68865  0, /*tp_bases*/
68866  0, /*tp_mro*/
68867  0, /*tp_cache*/
68868  0, /*tp_subclasses*/
68869  0, /*tp_weaklist*/
68870  0, /*tp_del*/
68871  0, /*tp_version_tag*/
68872  #if PY_VERSION_HEX >= 0x030400a1
68873  0, /*tp_finalize*/
68874  #endif
68875  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
68876  0, /*tp_vectorcall*/
68877  #endif
68878  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
68879  0, /*tp_print*/
68880  #endif
68881  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
68882  0, /*tp_pypy_flags*/
68883  #endif
68884 };
68885 
68886 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h[8];
68887 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h = 0;
68888 
68889 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
68890  PyObject *o;
68891  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h)))) {
68892  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h];
68893  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h));
68894  (void) PyObject_INIT(o, t);
68895  PyObject_GC_Track(o);
68896  } else {
68897  o = (*t->tp_alloc)(t, 0);
68898  if (unlikely(!o)) return 0;
68899  }
68900  return o;
68901 }
68902 
68903 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(PyObject *o) {
68904  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)o;
68905  PyObject_GC_UnTrack(o);
68906  Py_CLEAR(p->__pyx_outer_scope);
68907  Py_CLEAR(p->__pyx_v_i);
68908  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h)))) {
68909  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)o);
68910  } else {
68911  (*Py_TYPE(o)->tp_free)(o);
68912  }
68913 }
68914 
68915 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(PyObject *o, visitproc v, void *a) {
68916  int e;
68917  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)o;
68918  if (p->__pyx_outer_scope) {
68919  e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
68920  }
68921  if (p->__pyx_v_i) {
68922  e = (*v)(p->__pyx_v_i, a); if (e) return e;
68923  }
68924  return 0;
68925 }
68926 
68927 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h(PyObject *o) {
68928  PyObject* tmp;
68929  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h *)o;
68930  tmp = ((PyObject*)p->__pyx_outer_scope);
68931  p->__pyx_outer_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh *)Py_None); Py_INCREF(Py_None);
68932  Py_XDECREF(tmp);
68933  tmp = ((PyObject*)p->__pyx_v_i);
68934  p->__pyx_v_i = Py_None; Py_INCREF(Py_None);
68935  Py_XDECREF(tmp);
68936  return 0;
68937 }
68938 
68939 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h = {
68940  PyVarObject_HEAD_INIT(0, 0)
68941  "mprans.BoundaryConditions.__pyx_scope_struct_1_get_DBC_h", /*tp_name*/
68942  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h), /*tp_basicsize*/
68943  0, /*tp_itemsize*/
68944  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h, /*tp_dealloc*/
68945  #if PY_VERSION_HEX < 0x030800b4
68946  0, /*tp_print*/
68947  #endif
68948  #if PY_VERSION_HEX >= 0x030800b4
68949  0, /*tp_vectorcall_offset*/
68950  #endif
68951  0, /*tp_getattr*/
68952  0, /*tp_setattr*/
68953  #if PY_MAJOR_VERSION < 3
68954  0, /*tp_compare*/
68955  #endif
68956  #if PY_MAJOR_VERSION >= 3
68957  0, /*tp_as_async*/
68958  #endif
68959  0, /*tp_repr*/
68960  0, /*tp_as_number*/
68961  0, /*tp_as_sequence*/
68962  0, /*tp_as_mapping*/
68963  0, /*tp_hash*/
68964  0, /*tp_call*/
68965  0, /*tp_str*/
68966  0, /*tp_getattro*/
68967  0, /*tp_setattro*/
68968  0, /*tp_as_buffer*/
68969  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
68970  0, /*tp_doc*/
68971  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h, /*tp_traverse*/
68972  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h, /*tp_clear*/
68973  0, /*tp_richcompare*/
68974  0, /*tp_weaklistoffset*/
68975  0, /*tp_iter*/
68976  0, /*tp_iternext*/
68977  0, /*tp_methods*/
68978  0, /*tp_members*/
68979  0, /*tp_getset*/
68980  0, /*tp_base*/
68981  0, /*tp_dict*/
68982  0, /*tp_descr_get*/
68983  0, /*tp_descr_set*/
68984  0, /*tp_dictoffset*/
68985  0, /*tp_init*/
68986  0, /*tp_alloc*/
68987  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h, /*tp_new*/
68988  0, /*tp_free*/
68989  0, /*tp_is_gc*/
68990  0, /*tp_bases*/
68991  0, /*tp_mro*/
68992  0, /*tp_cache*/
68993  0, /*tp_subclasses*/
68994  0, /*tp_weaklist*/
68995  0, /*tp_del*/
68996  0, /*tp_version_tag*/
68997  #if PY_VERSION_HEX >= 0x030400a1
68998  0, /*tp_finalize*/
68999  #endif
69000  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69001  0, /*tp_vectorcall*/
69002  #endif
69003  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69004  0, /*tp_print*/
69005  #endif
69006  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69007  0, /*tp_pypy_flags*/
69008  #endif
69009 };
69010 
69011 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh[8];
69012 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh = 0;
69013 
69014 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69015  PyObject *o;
69016  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh)))) {
69017  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh];
69018  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh));
69019  (void) PyObject_INIT(o, t);
69020  PyObject_GC_Track(o);
69021  } else {
69022  o = (*t->tp_alloc)(t, 0);
69023  if (unlikely(!o)) return 0;
69024  }
69025  return o;
69026 }
69027 
69028 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(PyObject *o) {
69029  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)o;
69030  PyObject_GC_UnTrack(o);
69031  Py_CLEAR(p->__pyx_v_body);
69032  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh)))) {
69033  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)o);
69034  } else {
69035  (*Py_TYPE(o)->tp_free)(o);
69036  }
69037 }
69038 
69039 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(PyObject *o, visitproc v, void *a) {
69040  int e;
69041  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)o;
69042  if (p->__pyx_v_body) {
69043  e = (*v)(p->__pyx_v_body, a); if (e) return e;
69044  }
69045  return 0;
69046 }
69047 
69048 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh(PyObject *o) {
69049  PyObject* tmp;
69050  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh *)o;
69051  tmp = ((PyObject*)p->__pyx_v_body);
69052  p->__pyx_v_body = Py_None; Py_INCREF(Py_None);
69053  Py_XDECREF(tmp);
69054  return 0;
69055 }
69056 
69057 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh = {
69058  PyVarObject_HEAD_INIT(0, 0)
69059  "mprans.BoundaryConditions.__pyx_scope_struct_2_setChMoveMesh", /*tp_name*/
69060  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh), /*tp_basicsize*/
69061  0, /*tp_itemsize*/
69062  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh, /*tp_dealloc*/
69063  #if PY_VERSION_HEX < 0x030800b4
69064  0, /*tp_print*/
69065  #endif
69066  #if PY_VERSION_HEX >= 0x030800b4
69067  0, /*tp_vectorcall_offset*/
69068  #endif
69069  0, /*tp_getattr*/
69070  0, /*tp_setattr*/
69071  #if PY_MAJOR_VERSION < 3
69072  0, /*tp_compare*/
69073  #endif
69074  #if PY_MAJOR_VERSION >= 3
69075  0, /*tp_as_async*/
69076  #endif
69077  0, /*tp_repr*/
69078  0, /*tp_as_number*/
69079  0, /*tp_as_sequence*/
69080  0, /*tp_as_mapping*/
69081  0, /*tp_hash*/
69082  0, /*tp_call*/
69083  0, /*tp_str*/
69084  0, /*tp_getattro*/
69085  0, /*tp_setattro*/
69086  0, /*tp_as_buffer*/
69087  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69088  0, /*tp_doc*/
69089  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh, /*tp_traverse*/
69090  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh, /*tp_clear*/
69091  0, /*tp_richcompare*/
69092  0, /*tp_weaklistoffset*/
69093  0, /*tp_iter*/
69094  0, /*tp_iternext*/
69095  0, /*tp_methods*/
69096  0, /*tp_members*/
69097  0, /*tp_getset*/
69098  0, /*tp_base*/
69099  0, /*tp_dict*/
69100  0, /*tp_descr_get*/
69101  0, /*tp_descr_set*/
69102  0, /*tp_dictoffset*/
69103  0, /*tp_init*/
69104  0, /*tp_alloc*/
69105  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh, /*tp_new*/
69106  0, /*tp_free*/
69107  0, /*tp_is_gc*/
69108  0, /*tp_bases*/
69109  0, /*tp_mro*/
69110  0, /*tp_cache*/
69111  0, /*tp_subclasses*/
69112  0, /*tp_weaklist*/
69113  0, /*tp_del*/
69114  0, /*tp_version_tag*/
69115  #if PY_VERSION_HEX >= 0x030400a1
69116  0, /*tp_finalize*/
69117  #endif
69118  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69119  0, /*tp_vectorcall*/
69120  #endif
69121  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69122  0, /*tp_print*/
69123  #endif
69124  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69125  0, /*tp_pypy_flags*/
69126  #endif
69127 };
69128 
69129 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction[8];
69130 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction = 0;
69131 
69132 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69133  PyObject *o;
69134  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction)))) {
69135  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction];
69136  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction));
69137  (void) PyObject_INIT(o, t);
69138  PyObject_GC_Track(o);
69139  } else {
69140  o = (*t->tp_alloc)(t, 0);
69141  if (unlikely(!o)) return 0;
69142  }
69143  return o;
69144 }
69145 
69146 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(PyObject *o) {
69147  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)o;
69148  PyObject_GC_UnTrack(o);
69149  Py_CLEAR(p->__pyx_v_wf);
69150  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction)))) {
69151  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)o);
69152  } else {
69153  (*Py_TYPE(o)->tp_free)(o);
69154  }
69155 }
69156 
69157 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(PyObject *o, visitproc v, void *a) {
69158  int e;
69159  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)o;
69160  if (p->__pyx_v_wf) {
69161  e = (*v)(p->__pyx_v_wf, a); if (e) return e;
69162  }
69163  return 0;
69164 }
69165 
69166 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction(PyObject *o) {
69167  PyObject* tmp;
69168  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction *)o;
69169  tmp = ((PyObject*)p->__pyx_v_wf);
69170  p->__pyx_v_wf = Py_None; Py_INCREF(Py_None);
69171  Py_XDECREF(tmp);
69172  return 0;
69173 }
69174 
69175 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction = {
69176  PyVarObject_HEAD_INIT(0, 0)
69177  "mprans.BoundaryConditions.__pyx_scope_struct_3_setWallFunction", /*tp_name*/
69178  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction), /*tp_basicsize*/
69179  0, /*tp_itemsize*/
69180  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction, /*tp_dealloc*/
69181  #if PY_VERSION_HEX < 0x030800b4
69182  0, /*tp_print*/
69183  #endif
69184  #if PY_VERSION_HEX >= 0x030800b4
69185  0, /*tp_vectorcall_offset*/
69186  #endif
69187  0, /*tp_getattr*/
69188  0, /*tp_setattr*/
69189  #if PY_MAJOR_VERSION < 3
69190  0, /*tp_compare*/
69191  #endif
69192  #if PY_MAJOR_VERSION >= 3
69193  0, /*tp_as_async*/
69194  #endif
69195  0, /*tp_repr*/
69196  0, /*tp_as_number*/
69197  0, /*tp_as_sequence*/
69198  0, /*tp_as_mapping*/
69199  0, /*tp_hash*/
69200  0, /*tp_call*/
69201  0, /*tp_str*/
69202  0, /*tp_getattro*/
69203  0, /*tp_setattro*/
69204  0, /*tp_as_buffer*/
69205  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69206  0, /*tp_doc*/
69207  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction, /*tp_traverse*/
69208  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction, /*tp_clear*/
69209  0, /*tp_richcompare*/
69210  0, /*tp_weaklistoffset*/
69211  0, /*tp_iter*/
69212  0, /*tp_iternext*/
69213  0, /*tp_methods*/
69214  0, /*tp_members*/
69215  0, /*tp_getset*/
69216  0, /*tp_base*/
69217  0, /*tp_dict*/
69218  0, /*tp_descr_get*/
69219  0, /*tp_descr_set*/
69220  0, /*tp_dictoffset*/
69221  0, /*tp_init*/
69222  0, /*tp_alloc*/
69223  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction, /*tp_new*/
69224  0, /*tp_free*/
69225  0, /*tp_is_gc*/
69226  0, /*tp_bases*/
69227  0, /*tp_mro*/
69228  0, /*tp_cache*/
69229  0, /*tp_subclasses*/
69230  0, /*tp_weaklist*/
69231  0, /*tp_del*/
69232  0, /*tp_version_tag*/
69233  #if PY_VERSION_HEX >= 0x030400a1
69234  0, /*tp_finalize*/
69235  #endif
69236  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69237  0, /*tp_vectorcall*/
69238  #endif
69239  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69240  0, /*tp_print*/
69241  #endif
69242  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69243  0, /*tp_pypy_flags*/
69244  #endif
69245 };
69246 
69247 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh[8];
69248 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh = 0;
69249 
69250 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69251  PyObject *o;
69252  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh)))) {
69253  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh];
69254  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh));
69255  (void) PyObject_INIT(o, t);
69256  PyObject_GC_Track(o);
69257  } else {
69258  o = (*t->tp_alloc)(t, 0);
69259  if (unlikely(!o)) return 0;
69260  }
69261  return o;
69262 }
69263 
69264 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(PyObject *o) {
69265  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)o;
69266  PyObject_GC_UnTrack(o);
69267  Py_CLEAR(p->__pyx_v_self);
69268  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh)))) {
69269  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)o);
69270  } else {
69271  (*Py_TYPE(o)->tp_free)(o);
69272  }
69273 }
69274 
69275 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(PyObject *o, visitproc v, void *a) {
69276  int e;
69277  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)o;
69278  if (p->__pyx_v_self) {
69279  e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
69280  }
69281  return 0;
69282 }
69283 
69284 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh(PyObject *o) {
69285  PyObject* tmp;
69286  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh *)o;
69287  tmp = ((PyObject*)p->__pyx_v_self);
69288  p->__pyx_v_self = ((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)Py_None); Py_INCREF(Py_None);
69289  Py_XDECREF(tmp);
69290  return 0;
69291 }
69292 
69293 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh = {
69294  PyVarObject_HEAD_INIT(0, 0)
69295  "mprans.BoundaryConditions.__pyx_scope_struct_4_setMoveMesh", /*tp_name*/
69296  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh), /*tp_basicsize*/
69297  0, /*tp_itemsize*/
69298  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh, /*tp_dealloc*/
69299  #if PY_VERSION_HEX < 0x030800b4
69300  0, /*tp_print*/
69301  #endif
69302  #if PY_VERSION_HEX >= 0x030800b4
69303  0, /*tp_vectorcall_offset*/
69304  #endif
69305  0, /*tp_getattr*/
69306  0, /*tp_setattr*/
69307  #if PY_MAJOR_VERSION < 3
69308  0, /*tp_compare*/
69309  #endif
69310  #if PY_MAJOR_VERSION >= 3
69311  0, /*tp_as_async*/
69312  #endif
69313  0, /*tp_repr*/
69314  0, /*tp_as_number*/
69315  0, /*tp_as_sequence*/
69316  0, /*tp_as_mapping*/
69317  0, /*tp_hash*/
69318  0, /*tp_call*/
69319  0, /*tp_str*/
69320  0, /*tp_getattro*/
69321  0, /*tp_setattro*/
69322  0, /*tp_as_buffer*/
69323  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69324  0, /*tp_doc*/
69325  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh, /*tp_traverse*/
69326  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh, /*tp_clear*/
69327  0, /*tp_richcompare*/
69328  0, /*tp_weaklistoffset*/
69329  0, /*tp_iter*/
69330  0, /*tp_iternext*/
69331  0, /*tp_methods*/
69332  0, /*tp_members*/
69333  0, /*tp_getset*/
69334  0, /*tp_base*/
69335  0, /*tp_dict*/
69336  0, /*tp_descr_get*/
69337  0, /*tp_descr_set*/
69338  0, /*tp_dictoffset*/
69339  0, /*tp_init*/
69340  0, /*tp_alloc*/
69341  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh, /*tp_new*/
69342  0, /*tp_free*/
69343  0, /*tp_is_gc*/
69344  0, /*tp_bases*/
69345  0, /*tp_mro*/
69346  0, /*tp_cache*/
69347  0, /*tp_subclasses*/
69348  0, /*tp_weaklist*/
69349  0, /*tp_del*/
69350  0, /*tp_version_tag*/
69351  #if PY_VERSION_HEX >= 0x030400a1
69352  0, /*tp_finalize*/
69353  #endif
69354  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69355  0, /*tp_vectorcall*/
69356  #endif
69357  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69358  0, /*tp_print*/
69359  #endif
69360  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69361  0, /*tp_pypy_flags*/
69362  #endif
69363 };
69364 
69365 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet[8];
69366 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet = 0;
69367 
69368 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69369  PyObject *o;
69370  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet)))) {
69371  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet];
69372  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet));
69373  (void) PyObject_INIT(o, t);
69374  PyObject_GC_Track(o);
69375  } else {
69376  o = (*t->tp_alloc)(t, 0);
69377  if (unlikely(!o)) return 0;
69378  }
69379  return o;
69380 }
69381 
69382 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(PyObject *o) {
69383  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)o;
69384  PyObject_GC_UnTrack(o);
69385  Py_CLEAR(p->__pyx_v_self);
69386  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet)))) {
69387  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)o);
69388  } else {
69389  (*Py_TYPE(o)->tp_free)(o);
69390  }
69391 }
69392 
69393 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(PyObject *o, visitproc v, void *a) {
69394  int e;
69395  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)o;
69396  if (p->__pyx_v_self) {
69397  e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
69398  }
69399  return 0;
69400 }
69401 
69402 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet(PyObject *o) {
69403  PyObject* tmp;
69404  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet *)o;
69405  tmp = ((PyObject*)p->__pyx_v_self);
69406  p->__pyx_v_self = ((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)Py_None); Py_INCREF(Py_None);
69407  Py_XDECREF(tmp);
69408  return 0;
69409 }
69410 
69411 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet = {
69412  PyVarObject_HEAD_INIT(0, 0)
69413  "mprans.BoundaryConditions.__pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet", /*tp_name*/
69414  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet), /*tp_basicsize*/
69415  0, /*tp_itemsize*/
69416  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet, /*tp_dealloc*/
69417  #if PY_VERSION_HEX < 0x030800b4
69418  0, /*tp_print*/
69419  #endif
69420  #if PY_VERSION_HEX >= 0x030800b4
69421  0, /*tp_vectorcall_offset*/
69422  #endif
69423  0, /*tp_getattr*/
69424  0, /*tp_setattr*/
69425  #if PY_MAJOR_VERSION < 3
69426  0, /*tp_compare*/
69427  #endif
69428  #if PY_MAJOR_VERSION >= 3
69429  0, /*tp_as_async*/
69430  #endif
69431  0, /*tp_repr*/
69432  0, /*tp_as_number*/
69433  0, /*tp_as_sequence*/
69434  0, /*tp_as_mapping*/
69435  0, /*tp_hash*/
69436  0, /*tp_call*/
69437  0, /*tp_str*/
69438  0, /*tp_getattro*/
69439  0, /*tp_setattro*/
69440  0, /*tp_as_buffer*/
69441  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69442  0, /*tp_doc*/
69443  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet, /*tp_traverse*/
69444  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet, /*tp_clear*/
69445  0, /*tp_richcompare*/
69446  0, /*tp_weaklistoffset*/
69447  0, /*tp_iter*/
69448  0, /*tp_iternext*/
69449  0, /*tp_methods*/
69450  0, /*tp_members*/
69451  0, /*tp_getset*/
69452  0, /*tp_base*/
69453  0, /*tp_dict*/
69454  0, /*tp_descr_get*/
69455  0, /*tp_descr_set*/
69456  0, /*tp_dictoffset*/
69457  0, /*tp_init*/
69458  0, /*tp_alloc*/
69459  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet, /*tp_new*/
69460  0, /*tp_free*/
69461  0, /*tp_is_gc*/
69462  0, /*tp_bases*/
69463  0, /*tp_mro*/
69464  0, /*tp_cache*/
69465  0, /*tp_subclasses*/
69466  0, /*tp_weaklist*/
69467  0, /*tp_del*/
69468  0, /*tp_version_tag*/
69469  #if PY_VERSION_HEX >= 0x030400a1
69470  0, /*tp_finalize*/
69471  #endif
69472  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69473  0, /*tp_vectorcall*/
69474  #endif
69475  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69476  0, /*tp_print*/
69477  #endif
69478  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69479  0, /*tp_pypy_flags*/
69480  #endif
69481 };
69482 
69483 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet[8];
69484 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet = 0;
69485 
69486 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69487  PyObject *o;
69488  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet)))) {
69489  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet];
69490  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet));
69491  (void) PyObject_INIT(o, t);
69492  PyObject_GC_Track(o);
69493  } else {
69494  o = (*t->tp_alloc)(t, 0);
69495  if (unlikely(!o)) return 0;
69496  }
69497  return o;
69498 }
69499 
69500 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(PyObject *o) {
69501  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)o;
69502  PyObject_GC_UnTrack(o);
69503  Py_CLEAR(p->__pyx_v_U);
69504  Py_CLEAR(p->__pyx_v_Uwind);
69505  Py_CLEAR(p->__pyx_v_air);
69506  Py_CLEAR(p->__pyx_v_dissipationInflow);
69507  Py_CLEAR(p->__pyx_v_dissipationInflowAir);
69508  Py_CLEAR(p->__pyx_v_kInflow);
69509  Py_CLEAR(p->__pyx_v_kInflowAir);
69510  Py_CLEAR(p->__pyx_v_self);
69511  Py_CLEAR(p->__pyx_v_smoothing);
69512  Py_CLEAR(p->__pyx_v_vert_axis);
69513  Py_CLEAR(p->__pyx_v_water);
69514  Py_CLEAR(p->__pyx_v_waterLevel);
69515  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet)))) {
69516  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)o);
69517  } else {
69518  (*Py_TYPE(o)->tp_free)(o);
69519  }
69520 }
69521 
69522 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(PyObject *o, visitproc v, void *a) {
69523  int e;
69524  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)o;
69525  if (p->__pyx_v_U) {
69526  e = (*v)(p->__pyx_v_U, a); if (e) return e;
69527  }
69528  if (p->__pyx_v_Uwind) {
69529  e = (*v)(p->__pyx_v_Uwind, a); if (e) return e;
69530  }
69531  if (p->__pyx_v_air) {
69532  e = (*v)(p->__pyx_v_air, a); if (e) return e;
69533  }
69534  if (p->__pyx_v_dissipationInflow) {
69535  e = (*v)(p->__pyx_v_dissipationInflow, a); if (e) return e;
69536  }
69537  if (p->__pyx_v_dissipationInflowAir) {
69538  e = (*v)(p->__pyx_v_dissipationInflowAir, a); if (e) return e;
69539  }
69540  if (p->__pyx_v_kInflow) {
69541  e = (*v)(p->__pyx_v_kInflow, a); if (e) return e;
69542  }
69543  if (p->__pyx_v_kInflowAir) {
69544  e = (*v)(p->__pyx_v_kInflowAir, a); if (e) return e;
69545  }
69546  if (p->__pyx_v_self) {
69547  e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
69548  }
69549  if (p->__pyx_v_smoothing) {
69550  e = (*v)(p->__pyx_v_smoothing, a); if (e) return e;
69551  }
69552  if (p->__pyx_v_vert_axis) {
69553  e = (*v)(p->__pyx_v_vert_axis, a); if (e) return e;
69554  }
69555  if (p->__pyx_v_water) {
69556  e = (*v)(p->__pyx_v_water, a); if (e) return e;
69557  }
69558  if (p->__pyx_v_waterLevel) {
69559  e = (*v)(p->__pyx_v_waterLevel, a); if (e) return e;
69560  }
69561  return 0;
69562 }
69563 
69564 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet(PyObject *o) {
69565  PyObject* tmp;
69566  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)o;
69567  tmp = ((PyObject*)p->__pyx_v_U);
69568  p->__pyx_v_U = Py_None; Py_INCREF(Py_None);
69569  Py_XDECREF(tmp);
69570  tmp = ((PyObject*)p->__pyx_v_Uwind);
69571  p->__pyx_v_Uwind = Py_None; Py_INCREF(Py_None);
69572  Py_XDECREF(tmp);
69573  tmp = ((PyObject*)p->__pyx_v_air);
69574  p->__pyx_v_air = Py_None; Py_INCREF(Py_None);
69575  Py_XDECREF(tmp);
69576  tmp = ((PyObject*)p->__pyx_v_dissipationInflow);
69577  p->__pyx_v_dissipationInflow = Py_None; Py_INCREF(Py_None);
69578  Py_XDECREF(tmp);
69579  tmp = ((PyObject*)p->__pyx_v_dissipationInflowAir);
69580  p->__pyx_v_dissipationInflowAir = Py_None; Py_INCREF(Py_None);
69581  Py_XDECREF(tmp);
69582  tmp = ((PyObject*)p->__pyx_v_kInflow);
69583  p->__pyx_v_kInflow = Py_None; Py_INCREF(Py_None);
69584  Py_XDECREF(tmp);
69585  tmp = ((PyObject*)p->__pyx_v_kInflowAir);
69586  p->__pyx_v_kInflowAir = Py_None; Py_INCREF(Py_None);
69587  Py_XDECREF(tmp);
69588  tmp = ((PyObject*)p->__pyx_v_self);
69589  p->__pyx_v_self = ((struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *)Py_None); Py_INCREF(Py_None);
69590  Py_XDECREF(tmp);
69591  tmp = ((PyObject*)p->__pyx_v_smoothing);
69592  p->__pyx_v_smoothing = Py_None; Py_INCREF(Py_None);
69593  Py_XDECREF(tmp);
69594  tmp = ((PyObject*)p->__pyx_v_vert_axis);
69595  p->__pyx_v_vert_axis = Py_None; Py_INCREF(Py_None);
69596  Py_XDECREF(tmp);
69597  tmp = ((PyObject*)p->__pyx_v_water);
69598  p->__pyx_v_water = Py_None; Py_INCREF(Py_None);
69599  Py_XDECREF(tmp);
69600  tmp = ((PyObject*)p->__pyx_v_waterLevel);
69601  p->__pyx_v_waterLevel = Py_None; Py_INCREF(Py_None);
69602  Py_XDECREF(tmp);
69603  return 0;
69604 }
69605 
69606 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet = {
69607  PyVarObject_HEAD_INIT(0, 0)
69608  "mprans.BoundaryConditions.__pyx_scope_struct_6_setTwoPhaseVelocityInlet", /*tp_name*/
69609  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet), /*tp_basicsize*/
69610  0, /*tp_itemsize*/
69611  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet, /*tp_dealloc*/
69612  #if PY_VERSION_HEX < 0x030800b4
69613  0, /*tp_print*/
69614  #endif
69615  #if PY_VERSION_HEX >= 0x030800b4
69616  0, /*tp_vectorcall_offset*/
69617  #endif
69618  0, /*tp_getattr*/
69619  0, /*tp_setattr*/
69620  #if PY_MAJOR_VERSION < 3
69621  0, /*tp_compare*/
69622  #endif
69623  #if PY_MAJOR_VERSION >= 3
69624  0, /*tp_as_async*/
69625  #endif
69626  0, /*tp_repr*/
69627  0, /*tp_as_number*/
69628  0, /*tp_as_sequence*/
69629  0, /*tp_as_mapping*/
69630  0, /*tp_hash*/
69631  0, /*tp_call*/
69632  0, /*tp_str*/
69633  0, /*tp_getattro*/
69634  0, /*tp_setattro*/
69635  0, /*tp_as_buffer*/
69636  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69637  0, /*tp_doc*/
69638  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet, /*tp_traverse*/
69639  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet, /*tp_clear*/
69640  0, /*tp_richcompare*/
69641  0, /*tp_weaklistoffset*/
69642  0, /*tp_iter*/
69643  0, /*tp_iternext*/
69644  0, /*tp_methods*/
69645  0, /*tp_members*/
69646  0, /*tp_getset*/
69647  0, /*tp_base*/
69648  0, /*tp_dict*/
69649  0, /*tp_descr_get*/
69650  0, /*tp_descr_set*/
69651  0, /*tp_dictoffset*/
69652  0, /*tp_init*/
69653  0, /*tp_alloc*/
69654  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet, /*tp_new*/
69655  0, /*tp_free*/
69656  0, /*tp_is_gc*/
69657  0, /*tp_bases*/
69658  0, /*tp_mro*/
69659  0, /*tp_cache*/
69660  0, /*tp_subclasses*/
69661  0, /*tp_weaklist*/
69662  0, /*tp_del*/
69663  0, /*tp_version_tag*/
69664  #if PY_VERSION_HEX >= 0x030400a1
69665  0, /*tp_finalize*/
69666  #endif
69667  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69668  0, /*tp_vectorcall*/
69669  #endif
69670  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69671  0, /*tp_print*/
69672  #endif
69673  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69674  0, /*tp_pypy_flags*/
69675  #endif
69676 };
69677 
69678 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet[8];
69679 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet = 0;
69680 
69681 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69682  PyObject *o;
69683  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet)))) {
69684  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet];
69685  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet));
69686  (void) PyObject_INIT(o, t);
69687  PyObject_GC_Track(o);
69688  } else {
69689  o = (*t->tp_alloc)(t, 0);
69690  if (unlikely(!o)) return 0;
69691  }
69692  return o;
69693 }
69694 
69695 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(PyObject *o) {
69696  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)o;
69697  PyObject_GC_UnTrack(o);
69698  Py_CLEAR(p->__pyx_outer_scope);
69699  Py_CLEAR(p->__pyx_v_i);
69700  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet)))) {
69701  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)o);
69702  } else {
69703  (*Py_TYPE(o)->tp_free)(o);
69704  }
69705 }
69706 
69707 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(PyObject *o, visitproc v, void *a) {
69708  int e;
69709  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)o;
69710  if (p->__pyx_outer_scope) {
69711  e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
69712  }
69713  if (p->__pyx_v_i) {
69714  e = (*v)(p->__pyx_v_i, a); if (e) return e;
69715  }
69716  return 0;
69717 }
69718 
69719 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet(PyObject *o) {
69720  PyObject* tmp;
69721  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet *)o;
69722  tmp = ((PyObject*)p->__pyx_outer_scope);
69723  p->__pyx_outer_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet *)Py_None); Py_INCREF(Py_None);
69724  Py_XDECREF(tmp);
69725  tmp = ((PyObject*)p->__pyx_v_i);
69726  p->__pyx_v_i = Py_None; Py_INCREF(Py_None);
69727  Py_XDECREF(tmp);
69728  return 0;
69729 }
69730 
69731 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet = {
69732  PyVarObject_HEAD_INIT(0, 0)
69733  "mprans.BoundaryConditions.__pyx_scope_struct_7_get_inlet_ux_dirichlet", /*tp_name*/
69734  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet), /*tp_basicsize*/
69735  0, /*tp_itemsize*/
69736  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet, /*tp_dealloc*/
69737  #if PY_VERSION_HEX < 0x030800b4
69738  0, /*tp_print*/
69739  #endif
69740  #if PY_VERSION_HEX >= 0x030800b4
69741  0, /*tp_vectorcall_offset*/
69742  #endif
69743  0, /*tp_getattr*/
69744  0, /*tp_setattr*/
69745  #if PY_MAJOR_VERSION < 3
69746  0, /*tp_compare*/
69747  #endif
69748  #if PY_MAJOR_VERSION >= 3
69749  0, /*tp_as_async*/
69750  #endif
69751  0, /*tp_repr*/
69752  0, /*tp_as_number*/
69753  0, /*tp_as_sequence*/
69754  0, /*tp_as_mapping*/
69755  0, /*tp_hash*/
69756  0, /*tp_call*/
69757  0, /*tp_str*/
69758  0, /*tp_getattro*/
69759  0, /*tp_setattro*/
69760  0, /*tp_as_buffer*/
69761  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69762  0, /*tp_doc*/
69763  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet, /*tp_traverse*/
69764  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet, /*tp_clear*/
69765  0, /*tp_richcompare*/
69766  0, /*tp_weaklistoffset*/
69767  0, /*tp_iter*/
69768  0, /*tp_iternext*/
69769  0, /*tp_methods*/
69770  0, /*tp_members*/
69771  0, /*tp_getset*/
69772  0, /*tp_base*/
69773  0, /*tp_dict*/
69774  0, /*tp_descr_get*/
69775  0, /*tp_descr_set*/
69776  0, /*tp_dictoffset*/
69777  0, /*tp_init*/
69778  0, /*tp_alloc*/
69779  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet, /*tp_new*/
69780  0, /*tp_free*/
69781  0, /*tp_is_gc*/
69782  0, /*tp_bases*/
69783  0, /*tp_mro*/
69784  0, /*tp_cache*/
69785  0, /*tp_subclasses*/
69786  0, /*tp_weaklist*/
69787  0, /*tp_del*/
69788  0, /*tp_version_tag*/
69789  #if PY_VERSION_HEX >= 0x030400a1
69790  0, /*tp_finalize*/
69791  #endif
69792  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
69793  0, /*tp_vectorcall*/
69794  #endif
69795  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
69796  0, /*tp_print*/
69797  #endif
69798  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
69799  0, /*tp_pypy_flags*/
69800  #endif
69801 };
69802 
69803 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth[8];
69804 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth = 0;
69805 
69806 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
69807  PyObject *o;
69808  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth)))) {
69809  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth];
69810  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth));
69811  (void) PyObject_INIT(o, t);
69812  PyObject_GC_Track(o);
69813  } else {
69814  o = (*t->tp_alloc)(t, 0);
69815  if (unlikely(!o)) return 0;
69816  }
69817  return o;
69818 }
69819 
69820 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(PyObject *o) {
69821  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)o;
69822  PyObject_GC_UnTrack(o);
69823  Py_CLEAR(p->__pyx_v_U);
69824  Py_CLEAR(p->__pyx_v_Uwind);
69825  Py_CLEAR(p->__pyx_v_air);
69826  Py_CLEAR(p->__pyx_v_dissipationInflow);
69827  Py_CLEAR(p->__pyx_v_dissipationInflowAir);
69828  Py_CLEAR(p->__pyx_v_g);
69829  Py_CLEAR(p->__pyx_v_kInflow);
69830  Py_CLEAR(p->__pyx_v_kInflowAir);
69831  Py_CLEAR(p->__pyx_v_pRef);
69832  Py_CLEAR(p->__pyx_v_refLevel);
69833  Py_CLEAR(p->__pyx_v_rhoDown);
69834  Py_CLEAR(p->__pyx_v_rhoUp);
69835  Py_CLEAR(p->__pyx_v_seaLevel);
69836  Py_CLEAR(p->__pyx_v_smoothing);
69837  Py_CLEAR(p->__pyx_v_vert_axis);
69838  Py_CLEAR(p->__pyx_v_water);
69839  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth)))) {
69840  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)o);
69841  } else {
69842  (*Py_TYPE(o)->tp_free)(o);
69843  }
69844 }
69845 
69846 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(PyObject *o, visitproc v, void *a) {
69847  int e;
69848  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)o;
69849  if (p->__pyx_v_U) {
69850  e = (*v)(p->__pyx_v_U, a); if (e) return e;
69851  }
69852  if (p->__pyx_v_Uwind) {
69853  e = (*v)(p->__pyx_v_Uwind, a); if (e) return e;
69854  }
69855  if (p->__pyx_v_air) {
69856  e = (*v)(p->__pyx_v_air, a); if (e) return e;
69857  }
69858  if (p->__pyx_v_dissipationInflow) {
69859  e = (*v)(p->__pyx_v_dissipationInflow, a); if (e) return e;
69860  }
69861  if (p->__pyx_v_dissipationInflowAir) {
69862  e = (*v)(p->__pyx_v_dissipationInflowAir, a); if (e) return e;
69863  }
69864  if (p->__pyx_v_g) {
69865  e = (*v)(p->__pyx_v_g, a); if (e) return e;
69866  }
69867  if (p->__pyx_v_kInflow) {
69868  e = (*v)(p->__pyx_v_kInflow, a); if (e) return e;
69869  }
69870  if (p->__pyx_v_kInflowAir) {
69871  e = (*v)(p->__pyx_v_kInflowAir, a); if (e) return e;
69872  }
69873  if (p->__pyx_v_pRef) {
69874  e = (*v)(p->__pyx_v_pRef, a); if (e) return e;
69875  }
69876  if (p->__pyx_v_refLevel) {
69877  e = (*v)(p->__pyx_v_refLevel, a); if (e) return e;
69878  }
69879  if (p->__pyx_v_rhoDown) {
69880  e = (*v)(p->__pyx_v_rhoDown, a); if (e) return e;
69881  }
69882  if (p->__pyx_v_rhoUp) {
69883  e = (*v)(p->__pyx_v_rhoUp, a); if (e) return e;
69884  }
69885  if (p->__pyx_v_seaLevel) {
69886  e = (*v)(p->__pyx_v_seaLevel, a); if (e) return e;
69887  }
69888  if (p->__pyx_v_smoothing) {
69889  e = (*v)(p->__pyx_v_smoothing, a); if (e) return e;
69890  }
69891  if (p->__pyx_v_vert_axis) {
69892  e = (*v)(p->__pyx_v_vert_axis, a); if (e) return e;
69893  }
69894  if (p->__pyx_v_water) {
69895  e = (*v)(p->__pyx_v_water, a); if (e) return e;
69896  }
69897  return 0;
69898 }
69899 
69900 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth(PyObject *o) {
69901  PyObject* tmp;
69902  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)o;
69903  tmp = ((PyObject*)p->__pyx_v_U);
69904  p->__pyx_v_U = Py_None; Py_INCREF(Py_None);
69905  Py_XDECREF(tmp);
69906  tmp = ((PyObject*)p->__pyx_v_Uwind);
69907  p->__pyx_v_Uwind = Py_None; Py_INCREF(Py_None);
69908  Py_XDECREF(tmp);
69909  tmp = ((PyObject*)p->__pyx_v_air);
69910  p->__pyx_v_air = Py_None; Py_INCREF(Py_None);
69911  Py_XDECREF(tmp);
69912  tmp = ((PyObject*)p->__pyx_v_dissipationInflow);
69913  p->__pyx_v_dissipationInflow = Py_None; Py_INCREF(Py_None);
69914  Py_XDECREF(tmp);
69915  tmp = ((PyObject*)p->__pyx_v_dissipationInflowAir);
69916  p->__pyx_v_dissipationInflowAir = Py_None; Py_INCREF(Py_None);
69917  Py_XDECREF(tmp);
69918  tmp = ((PyObject*)p->__pyx_v_g);
69919  p->__pyx_v_g = Py_None; Py_INCREF(Py_None);
69920  Py_XDECREF(tmp);
69921  tmp = ((PyObject*)p->__pyx_v_kInflow);
69922  p->__pyx_v_kInflow = Py_None; Py_INCREF(Py_None);
69923  Py_XDECREF(tmp);
69924  tmp = ((PyObject*)p->__pyx_v_kInflowAir);
69925  p->__pyx_v_kInflowAir = Py_None; Py_INCREF(Py_None);
69926  Py_XDECREF(tmp);
69927  tmp = ((PyObject*)p->__pyx_v_pRef);
69928  p->__pyx_v_pRef = Py_None; Py_INCREF(Py_None);
69929  Py_XDECREF(tmp);
69930  tmp = ((PyObject*)p->__pyx_v_refLevel);
69931  p->__pyx_v_refLevel = Py_None; Py_INCREF(Py_None);
69932  Py_XDECREF(tmp);
69933  tmp = ((PyObject*)p->__pyx_v_rhoDown);
69934  p->__pyx_v_rhoDown = Py_None; Py_INCREF(Py_None);
69935  Py_XDECREF(tmp);
69936  tmp = ((PyObject*)p->__pyx_v_rhoUp);
69937  p->__pyx_v_rhoUp = Py_None; Py_INCREF(Py_None);
69938  Py_XDECREF(tmp);
69939  tmp = ((PyObject*)p->__pyx_v_seaLevel);
69940  p->__pyx_v_seaLevel = Py_None; Py_INCREF(Py_None);
69941  Py_XDECREF(tmp);
69942  tmp = ((PyObject*)p->__pyx_v_smoothing);
69943  p->__pyx_v_smoothing = Py_None; Py_INCREF(Py_None);
69944  Py_XDECREF(tmp);
69945  tmp = ((PyObject*)p->__pyx_v_vert_axis);
69946  p->__pyx_v_vert_axis = Py_None; Py_INCREF(Py_None);
69947  Py_XDECREF(tmp);
69948  tmp = ((PyObject*)p->__pyx_v_water);
69949  p->__pyx_v_water = Py_None; Py_INCREF(Py_None);
69950  Py_XDECREF(tmp);
69951  return 0;
69952 }
69953 
69954 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth = {
69955  PyVarObject_HEAD_INIT(0, 0)
69956  "mprans.BoundaryConditions.__pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth", /*tp_name*/
69957  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth), /*tp_basicsize*/
69958  0, /*tp_itemsize*/
69959  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth, /*tp_dealloc*/
69960  #if PY_VERSION_HEX < 0x030800b4
69961  0, /*tp_print*/
69962  #endif
69963  #if PY_VERSION_HEX >= 0x030800b4
69964  0, /*tp_vectorcall_offset*/
69965  #endif
69966  0, /*tp_getattr*/
69967  0, /*tp_setattr*/
69968  #if PY_MAJOR_VERSION < 3
69969  0, /*tp_compare*/
69970  #endif
69971  #if PY_MAJOR_VERSION >= 3
69972  0, /*tp_as_async*/
69973  #endif
69974  0, /*tp_repr*/
69975  0, /*tp_as_number*/
69976  0, /*tp_as_sequence*/
69977  0, /*tp_as_mapping*/
69978  0, /*tp_hash*/
69979  0, /*tp_call*/
69980  0, /*tp_str*/
69981  0, /*tp_getattro*/
69982  0, /*tp_setattro*/
69983  0, /*tp_as_buffer*/
69984  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
69985  0, /*tp_doc*/
69986  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth, /*tp_traverse*/
69987  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth, /*tp_clear*/
69988  0, /*tp_richcompare*/
69989  0, /*tp_weaklistoffset*/
69990  0, /*tp_iter*/
69991  0, /*tp_iternext*/
69992  0, /*tp_methods*/
69993  0, /*tp_members*/
69994  0, /*tp_getset*/
69995  0, /*tp_base*/
69996  0, /*tp_dict*/
69997  0, /*tp_descr_get*/
69998  0, /*tp_descr_set*/
69999  0, /*tp_dictoffset*/
70000  0, /*tp_init*/
70001  0, /*tp_alloc*/
70002  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth, /*tp_new*/
70003  0, /*tp_free*/
70004  0, /*tp_is_gc*/
70005  0, /*tp_bases*/
70006  0, /*tp_mro*/
70007  0, /*tp_cache*/
70008  0, /*tp_subclasses*/
70009  0, /*tp_weaklist*/
70010  0, /*tp_del*/
70011  0, /*tp_version_tag*/
70012  #if PY_VERSION_HEX >= 0x030400a1
70013  0, /*tp_finalize*/
70014  #endif
70015  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70016  0, /*tp_vectorcall*/
70017  #endif
70018  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70019  0, /*tp_print*/
70020  #endif
70021  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70022  0, /*tp_pypy_flags*/
70023  #endif
70024 };
70025 
70026 static struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet[8];
70027 static int __pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet = 0;
70028 
70029 static PyObject *__pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
70030  PyObject *o;
70031  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet)))) {
70032  o = (PyObject*)__pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet[--__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet];
70033  memset(o, 0, sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet));
70034  (void) PyObject_INIT(o, t);
70035  PyObject_GC_Track(o);
70036  } else {
70037  o = (*t->tp_alloc)(t, 0);
70038  if (unlikely(!o)) return 0;
70039  }
70040  return o;
70041 }
70042 
70043 static void __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(PyObject *o) {
70044  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)o;
70045  PyObject_GC_UnTrack(o);
70046  Py_CLEAR(p->__pyx_outer_scope);
70047  Py_CLEAR(p->__pyx_v_i);
70048  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet)))) {
70049  __pyx_freelist_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet[__pyx_freecount_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet++] = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)o);
70050  } else {
70051  (*Py_TYPE(o)->tp_free)(o);
70052  }
70053 }
70054 
70055 static int __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(PyObject *o, visitproc v, void *a) {
70056  int e;
70057  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)o;
70058  if (p->__pyx_outer_scope) {
70059  e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
70060  }
70061  if (p->__pyx_v_i) {
70062  e = (*v)(p->__pyx_v_i, a); if (e) return e;
70063  }
70064  return 0;
70065 }
70066 
70067 static int __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet(PyObject *o) {
70068  PyObject* tmp;
70069  struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *p = (struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet *)o;
70070  tmp = ((PyObject*)p->__pyx_outer_scope);
70071  p->__pyx_outer_scope = ((struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth *)Py_None); Py_INCREF(Py_None);
70072  Py_XDECREF(tmp);
70073  tmp = ((PyObject*)p->__pyx_v_i);
70074  p->__pyx_v_i = Py_None; Py_INCREF(Py_None);
70075  Py_XDECREF(tmp);
70076  return 0;
70077 }
70078 
70079 static PyTypeObject __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet = {
70080  PyVarObject_HEAD_INIT(0, 0)
70081  "mprans.BoundaryConditions.__pyx_scope_struct_9_get_inlet_ux_dirichlet", /*tp_name*/
70082  sizeof(struct __pyx_obj_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet), /*tp_basicsize*/
70083  0, /*tp_itemsize*/
70084  __pyx_tp_dealloc_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet, /*tp_dealloc*/
70085  #if PY_VERSION_HEX < 0x030800b4
70086  0, /*tp_print*/
70087  #endif
70088  #if PY_VERSION_HEX >= 0x030800b4
70089  0, /*tp_vectorcall_offset*/
70090  #endif
70091  0, /*tp_getattr*/
70092  0, /*tp_setattr*/
70093  #if PY_MAJOR_VERSION < 3
70094  0, /*tp_compare*/
70095  #endif
70096  #if PY_MAJOR_VERSION >= 3
70097  0, /*tp_as_async*/
70098  #endif
70099  0, /*tp_repr*/
70100  0, /*tp_as_number*/
70101  0, /*tp_as_sequence*/
70102  0, /*tp_as_mapping*/
70103  0, /*tp_hash*/
70104  0, /*tp_call*/
70105  0, /*tp_str*/
70106  0, /*tp_getattro*/
70107  0, /*tp_setattro*/
70108  0, /*tp_as_buffer*/
70109  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
70110  0, /*tp_doc*/
70111  __pyx_tp_traverse_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet, /*tp_traverse*/
70112  __pyx_tp_clear_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet, /*tp_clear*/
70113  0, /*tp_richcompare*/
70114  0, /*tp_weaklistoffset*/
70115  0, /*tp_iter*/
70116  0, /*tp_iternext*/
70117  0, /*tp_methods*/
70118  0, /*tp_members*/
70119  0, /*tp_getset*/
70120  0, /*tp_base*/
70121  0, /*tp_dict*/
70122  0, /*tp_descr_get*/
70123  0, /*tp_descr_set*/
70124  0, /*tp_dictoffset*/
70125  0, /*tp_init*/
70126  0, /*tp_alloc*/
70127  __pyx_tp_new_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet, /*tp_new*/
70128  0, /*tp_free*/
70129  0, /*tp_is_gc*/
70130  0, /*tp_bases*/
70131  0, /*tp_mro*/
70132  0, /*tp_cache*/
70133  0, /*tp_subclasses*/
70134  0, /*tp_weaklist*/
70135  0, /*tp_del*/
70136  0, /*tp_version_tag*/
70137  #if PY_VERSION_HEX >= 0x030400a1
70138  0, /*tp_finalize*/
70139  #endif
70140  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70141  0, /*tp_vectorcall*/
70142  #endif
70143  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70144  0, /*tp_print*/
70145  #endif
70146  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70147  0, /*tp_pypy_flags*/
70148  #endif
70149 };
70150 static struct __pyx_vtabstruct_array __pyx_vtable_array;
70151 
70152 static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) {
70153  struct __pyx_array_obj *p;
70154  PyObject *o;
70155  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
70156  o = (*t->tp_alloc)(t, 0);
70157  } else {
70158  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
70159  }
70160  if (unlikely(!o)) return 0;
70161  p = ((struct __pyx_array_obj *)o);
70162  p->__pyx_vtab = __pyx_vtabptr_array;
70163  p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None);
70164  p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None);
70165  if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad;
70166  return o;
70167  bad:
70168  Py_DECREF(o); o = 0;
70169  return NULL;
70170 }
70171 
70172 static void __pyx_tp_dealloc_array(PyObject *o) {
70173  struct __pyx_array_obj *p = (struct __pyx_array_obj *)o;
70174  #if CYTHON_USE_TP_FINALIZE
70175  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
70176  if (PyObject_CallFinalizerFromDealloc(o)) return;
70177  }
70178  #endif
70179  {
70180  PyObject *etype, *eval, *etb;
70181  PyErr_Fetch(&etype, &eval, &etb);
70182  __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
70183  __pyx_array___dealloc__(o);
70184  __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
70185  PyErr_Restore(etype, eval, etb);
70186  }
70187  Py_CLEAR(p->mode);
70188  Py_CLEAR(p->_format);
70189  (*Py_TYPE(o)->tp_free)(o);
70190 }
70191 static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) {
70192  PyObject *r;
70193  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
70194  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
70195  Py_DECREF(x);
70196  return r;
70197 }
70198 
70199 static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) {
70200  if (v) {
70201  return __pyx_array___setitem__(o, i, v);
70202  }
70203  else {
70204  PyErr_Format(PyExc_NotImplementedError,
70205  "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
70206  return -1;
70207  }
70208 }
70209 
70210 static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) {
70211  PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n);
70212  if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
70213  PyErr_Clear();
70214  v = __pyx_array___getattr__(o, n);
70215  }
70216  return v;
70217 }
70218 
70219 static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) {
70220  return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o);
70221 }
70222 
70223 static PyMethodDef __pyx_methods_array[] = {
70224  {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0},
70225  {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0},
70226  {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0},
70227  {0, 0, 0, 0}
70228 };
70229 
70230 static struct PyGetSetDef __pyx_getsets_array[] = {
70231  {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0},
70232  {0, 0, 0, 0, 0}
70233 };
70234 
70235 static PySequenceMethods __pyx_tp_as_sequence_array = {
70236  __pyx_array___len__, /*sq_length*/
70237  0, /*sq_concat*/
70238  0, /*sq_repeat*/
70239  __pyx_sq_item_array, /*sq_item*/
70240  0, /*sq_slice*/
70241  0, /*sq_ass_item*/
70242  0, /*sq_ass_slice*/
70243  0, /*sq_contains*/
70244  0, /*sq_inplace_concat*/
70245  0, /*sq_inplace_repeat*/
70246 };
70247 
70248 static PyMappingMethods __pyx_tp_as_mapping_array = {
70249  __pyx_array___len__, /*mp_length*/
70250  __pyx_array___getitem__, /*mp_subscript*/
70251  __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/
70252 };
70253 
70254 static PyBufferProcs __pyx_tp_as_buffer_array = {
70255  #if PY_MAJOR_VERSION < 3
70256  0, /*bf_getreadbuffer*/
70257  #endif
70258  #if PY_MAJOR_VERSION < 3
70259  0, /*bf_getwritebuffer*/
70260  #endif
70261  #if PY_MAJOR_VERSION < 3
70262  0, /*bf_getsegcount*/
70263  #endif
70264  #if PY_MAJOR_VERSION < 3
70265  0, /*bf_getcharbuffer*/
70266  #endif
70267  __pyx_array_getbuffer, /*bf_getbuffer*/
70268  0, /*bf_releasebuffer*/
70269 };
70270 
70271 static PyTypeObject __pyx_type___pyx_array = {
70272  PyVarObject_HEAD_INIT(0, 0)
70273  "mprans.BoundaryConditions.array", /*tp_name*/
70274  sizeof(struct __pyx_array_obj), /*tp_basicsize*/
70275  0, /*tp_itemsize*/
70276  __pyx_tp_dealloc_array, /*tp_dealloc*/
70277  #if PY_VERSION_HEX < 0x030800b4
70278  0, /*tp_print*/
70279  #endif
70280  #if PY_VERSION_HEX >= 0x030800b4
70281  0, /*tp_vectorcall_offset*/
70282  #endif
70283  0, /*tp_getattr*/
70284  0, /*tp_setattr*/
70285  #if PY_MAJOR_VERSION < 3
70286  0, /*tp_compare*/
70287  #endif
70288  #if PY_MAJOR_VERSION >= 3
70289  0, /*tp_as_async*/
70290  #endif
70291  0, /*tp_repr*/
70292  0, /*tp_as_number*/
70293  &__pyx_tp_as_sequence_array, /*tp_as_sequence*/
70294  &__pyx_tp_as_mapping_array, /*tp_as_mapping*/
70295  0, /*tp_hash*/
70296  0, /*tp_call*/
70297  0, /*tp_str*/
70298  __pyx_tp_getattro_array, /*tp_getattro*/
70299  0, /*tp_setattro*/
70300  &__pyx_tp_as_buffer_array, /*tp_as_buffer*/
70301  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
70302  0, /*tp_doc*/
70303  0, /*tp_traverse*/
70304  0, /*tp_clear*/
70305  0, /*tp_richcompare*/
70306  0, /*tp_weaklistoffset*/
70307  0, /*tp_iter*/
70308  0, /*tp_iternext*/
70309  __pyx_methods_array, /*tp_methods*/
70310  0, /*tp_members*/
70311  __pyx_getsets_array, /*tp_getset*/
70312  0, /*tp_base*/
70313  0, /*tp_dict*/
70314  0, /*tp_descr_get*/
70315  0, /*tp_descr_set*/
70316  0, /*tp_dictoffset*/
70317  0, /*tp_init*/
70318  0, /*tp_alloc*/
70319  __pyx_tp_new_array, /*tp_new*/
70320  0, /*tp_free*/
70321  0, /*tp_is_gc*/
70322  0, /*tp_bases*/
70323  0, /*tp_mro*/
70324  0, /*tp_cache*/
70325  0, /*tp_subclasses*/
70326  0, /*tp_weaklist*/
70327  0, /*tp_del*/
70328  0, /*tp_version_tag*/
70329  #if PY_VERSION_HEX >= 0x030400a1
70330  0, /*tp_finalize*/
70331  #endif
70332  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70333  0, /*tp_vectorcall*/
70334  #endif
70335  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70336  0, /*tp_print*/
70337  #endif
70338  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70339  0, /*tp_pypy_flags*/
70340  #endif
70341 };
70342 
70343 static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
70344  struct __pyx_MemviewEnum_obj *p;
70345  PyObject *o;
70346  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
70347  o = (*t->tp_alloc)(t, 0);
70348  } else {
70349  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
70350  }
70351  if (unlikely(!o)) return 0;
70352  p = ((struct __pyx_MemviewEnum_obj *)o);
70353  p->name = Py_None; Py_INCREF(Py_None);
70354  return o;
70355 }
70356 
70357 static void __pyx_tp_dealloc_Enum(PyObject *o) {
70358  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
70359  #if CYTHON_USE_TP_FINALIZE
70360  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
70361  if (PyObject_CallFinalizerFromDealloc(o)) return;
70362  }
70363  #endif
70364  PyObject_GC_UnTrack(o);
70365  Py_CLEAR(p->name);
70366  (*Py_TYPE(o)->tp_free)(o);
70367 }
70368 
70369 static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) {
70370  int e;
70371  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
70372  if (p->name) {
70373  e = (*v)(p->name, a); if (e) return e;
70374  }
70375  return 0;
70376 }
70377 
70378 static int __pyx_tp_clear_Enum(PyObject *o) {
70379  PyObject* tmp;
70380  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
70381  tmp = ((PyObject*)p->name);
70382  p->name = Py_None; Py_INCREF(Py_None);
70383  Py_XDECREF(tmp);
70384  return 0;
70385 }
70386 
70387 static PyMethodDef __pyx_methods_Enum[] = {
70388  {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0},
70389  {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0},
70390  {0, 0, 0, 0}
70391 };
70392 
70393 static PyTypeObject __pyx_type___pyx_MemviewEnum = {
70394  PyVarObject_HEAD_INIT(0, 0)
70395  "mprans.BoundaryConditions.Enum", /*tp_name*/
70396  sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/
70397  0, /*tp_itemsize*/
70398  __pyx_tp_dealloc_Enum, /*tp_dealloc*/
70399  #if PY_VERSION_HEX < 0x030800b4
70400  0, /*tp_print*/
70401  #endif
70402  #if PY_VERSION_HEX >= 0x030800b4
70403  0, /*tp_vectorcall_offset*/
70404  #endif
70405  0, /*tp_getattr*/
70406  0, /*tp_setattr*/
70407  #if PY_MAJOR_VERSION < 3
70408  0, /*tp_compare*/
70409  #endif
70410  #if PY_MAJOR_VERSION >= 3
70411  0, /*tp_as_async*/
70412  #endif
70413  __pyx_MemviewEnum___repr__, /*tp_repr*/
70414  0, /*tp_as_number*/
70415  0, /*tp_as_sequence*/
70416  0, /*tp_as_mapping*/
70417  0, /*tp_hash*/
70418  0, /*tp_call*/
70419  0, /*tp_str*/
70420  0, /*tp_getattro*/
70421  0, /*tp_setattro*/
70422  0, /*tp_as_buffer*/
70423  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
70424  0, /*tp_doc*/
70425  __pyx_tp_traverse_Enum, /*tp_traverse*/
70426  __pyx_tp_clear_Enum, /*tp_clear*/
70427  0, /*tp_richcompare*/
70428  0, /*tp_weaklistoffset*/
70429  0, /*tp_iter*/
70430  0, /*tp_iternext*/
70431  __pyx_methods_Enum, /*tp_methods*/
70432  0, /*tp_members*/
70433  0, /*tp_getset*/
70434  0, /*tp_base*/
70435  0, /*tp_dict*/
70436  0, /*tp_descr_get*/
70437  0, /*tp_descr_set*/
70438  0, /*tp_dictoffset*/
70439  __pyx_MemviewEnum___init__, /*tp_init*/
70440  0, /*tp_alloc*/
70441  __pyx_tp_new_Enum, /*tp_new*/
70442  0, /*tp_free*/
70443  0, /*tp_is_gc*/
70444  0, /*tp_bases*/
70445  0, /*tp_mro*/
70446  0, /*tp_cache*/
70447  0, /*tp_subclasses*/
70448  0, /*tp_weaklist*/
70449  0, /*tp_del*/
70450  0, /*tp_version_tag*/
70451  #if PY_VERSION_HEX >= 0x030400a1
70452  0, /*tp_finalize*/
70453  #endif
70454  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70455  0, /*tp_vectorcall*/
70456  #endif
70457  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70458  0, /*tp_print*/
70459  #endif
70460  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70461  0, /*tp_pypy_flags*/
70462  #endif
70463 };
70464 static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview;
70465 
70466 static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) {
70467  struct __pyx_memoryview_obj *p;
70468  PyObject *o;
70469  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
70470  o = (*t->tp_alloc)(t, 0);
70471  } else {
70472  o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
70473  }
70474  if (unlikely(!o)) return 0;
70475  p = ((struct __pyx_memoryview_obj *)o);
70476  p->__pyx_vtab = __pyx_vtabptr_memoryview;
70477  p->obj = Py_None; Py_INCREF(Py_None);
70478  p->_size = Py_None; Py_INCREF(Py_None);
70479  p->_array_interface = Py_None; Py_INCREF(Py_None);
70480  p->view.obj = NULL;
70481  if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad;
70482  return o;
70483  bad:
70484  Py_DECREF(o); o = 0;
70485  return NULL;
70486 }
70487 
70488 static void __pyx_tp_dealloc_memoryview(PyObject *o) {
70489  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
70490  #if CYTHON_USE_TP_FINALIZE
70491  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
70492  if (PyObject_CallFinalizerFromDealloc(o)) return;
70493  }
70494  #endif
70495  PyObject_GC_UnTrack(o);
70496  {
70497  PyObject *etype, *eval, *etb;
70498  PyErr_Fetch(&etype, &eval, &etb);
70499  __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
70500  __pyx_memoryview___dealloc__(o);
70501  __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
70502  PyErr_Restore(etype, eval, etb);
70503  }
70504  Py_CLEAR(p->obj);
70505  Py_CLEAR(p->_size);
70506  Py_CLEAR(p->_array_interface);
70507  (*Py_TYPE(o)->tp_free)(o);
70508 }
70509 
70510 static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) {
70511  int e;
70512  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
70513  if (p->obj) {
70514  e = (*v)(p->obj, a); if (e) return e;
70515  }
70516  if (p->_size) {
70517  e = (*v)(p->_size, a); if (e) return e;
70518  }
70519  if (p->_array_interface) {
70520  e = (*v)(p->_array_interface, a); if (e) return e;
70521  }
70522  if (p->view.obj) {
70523  e = (*v)(p->view.obj, a); if (e) return e;
70524  }
70525  return 0;
70526 }
70527 
70528 static int __pyx_tp_clear_memoryview(PyObject *o) {
70529  PyObject* tmp;
70530  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
70531  tmp = ((PyObject*)p->obj);
70532  p->obj = Py_None; Py_INCREF(Py_None);
70533  Py_XDECREF(tmp);
70534  tmp = ((PyObject*)p->_size);
70535  p->_size = Py_None; Py_INCREF(Py_None);
70536  Py_XDECREF(tmp);
70537  tmp = ((PyObject*)p->_array_interface);
70538  p->_array_interface = Py_None; Py_INCREF(Py_None);
70539  Py_XDECREF(tmp);
70540  Py_CLEAR(p->view.obj);
70541  return 0;
70542 }
70543 static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) {
70544  PyObject *r;
70545  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
70546  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
70547  Py_DECREF(x);
70548  return r;
70549 }
70550 
70551 static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) {
70552  if (v) {
70553  return __pyx_memoryview___setitem__(o, i, v);
70554  }
70555  else {
70556  PyErr_Format(PyExc_NotImplementedError,
70557  "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
70558  return -1;
70559  }
70560 }
70561 
70562 static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) {
70563  return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o);
70564 }
70565 
70566 static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) {
70567  return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o);
70568 }
70569 
70570 static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) {
70571  return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o);
70572 }
70573 
70574 static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) {
70575  return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o);
70576 }
70577 
70578 static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) {
70579  return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o);
70580 }
70581 
70582 static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) {
70583  return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o);
70584 }
70585 
70586 static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) {
70587  return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o);
70588 }
70589 
70590 static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) {
70591  return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o);
70592 }
70593 
70594 static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) {
70595  return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o);
70596 }
70597 
70598 static PyMethodDef __pyx_methods_memoryview[] = {
70599  {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0},
70600  {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0},
70601  {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0},
70602  {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0},
70603  {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0},
70604  {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0},
70605  {0, 0, 0, 0}
70606 };
70607 
70608 static struct PyGetSetDef __pyx_getsets_memoryview[] = {
70609  {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0},
70610  {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0},
70611  {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0},
70612  {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0},
70613  {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0},
70614  {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0},
70615  {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0},
70616  {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0},
70617  {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0},
70618  {0, 0, 0, 0, 0}
70619 };
70620 
70621 static PySequenceMethods __pyx_tp_as_sequence_memoryview = {
70622  __pyx_memoryview___len__, /*sq_length*/
70623  0, /*sq_concat*/
70624  0, /*sq_repeat*/
70625  __pyx_sq_item_memoryview, /*sq_item*/
70626  0, /*sq_slice*/
70627  0, /*sq_ass_item*/
70628  0, /*sq_ass_slice*/
70629  0, /*sq_contains*/
70630  0, /*sq_inplace_concat*/
70631  0, /*sq_inplace_repeat*/
70632 };
70633 
70634 static PyMappingMethods __pyx_tp_as_mapping_memoryview = {
70635  __pyx_memoryview___len__, /*mp_length*/
70636  __pyx_memoryview___getitem__, /*mp_subscript*/
70637  __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/
70638 };
70639 
70640 static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
70641  #if PY_MAJOR_VERSION < 3
70642  0, /*bf_getreadbuffer*/
70643  #endif
70644  #if PY_MAJOR_VERSION < 3
70645  0, /*bf_getwritebuffer*/
70646  #endif
70647  #if PY_MAJOR_VERSION < 3
70648  0, /*bf_getsegcount*/
70649  #endif
70650  #if PY_MAJOR_VERSION < 3
70651  0, /*bf_getcharbuffer*/
70652  #endif
70653  __pyx_memoryview_getbuffer, /*bf_getbuffer*/
70654  0, /*bf_releasebuffer*/
70655 };
70656 
70657 static PyTypeObject __pyx_type___pyx_memoryview = {
70658  PyVarObject_HEAD_INIT(0, 0)
70659  "mprans.BoundaryConditions.memoryview", /*tp_name*/
70660  sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/
70661  0, /*tp_itemsize*/
70662  __pyx_tp_dealloc_memoryview, /*tp_dealloc*/
70663  #if PY_VERSION_HEX < 0x030800b4
70664  0, /*tp_print*/
70665  #endif
70666  #if PY_VERSION_HEX >= 0x030800b4
70667  0, /*tp_vectorcall_offset*/
70668  #endif
70669  0, /*tp_getattr*/
70670  0, /*tp_setattr*/
70671  #if PY_MAJOR_VERSION < 3
70672  0, /*tp_compare*/
70673  #endif
70674  #if PY_MAJOR_VERSION >= 3
70675  0, /*tp_as_async*/
70676  #endif
70677  __pyx_memoryview___repr__, /*tp_repr*/
70678  0, /*tp_as_number*/
70679  &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/
70680  &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/
70681  0, /*tp_hash*/
70682  0, /*tp_call*/
70683  __pyx_memoryview___str__, /*tp_str*/
70684  0, /*tp_getattro*/
70685  0, /*tp_setattro*/
70686  &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/
70687  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
70688  0, /*tp_doc*/
70689  __pyx_tp_traverse_memoryview, /*tp_traverse*/
70690  __pyx_tp_clear_memoryview, /*tp_clear*/
70691  0, /*tp_richcompare*/
70692  0, /*tp_weaklistoffset*/
70693  0, /*tp_iter*/
70694  0, /*tp_iternext*/
70695  __pyx_methods_memoryview, /*tp_methods*/
70696  0, /*tp_members*/
70697  __pyx_getsets_memoryview, /*tp_getset*/
70698  0, /*tp_base*/
70699  0, /*tp_dict*/
70700  0, /*tp_descr_get*/
70701  0, /*tp_descr_set*/
70702  0, /*tp_dictoffset*/
70703  0, /*tp_init*/
70704  0, /*tp_alloc*/
70705  __pyx_tp_new_memoryview, /*tp_new*/
70706  0, /*tp_free*/
70707  0, /*tp_is_gc*/
70708  0, /*tp_bases*/
70709  0, /*tp_mro*/
70710  0, /*tp_cache*/
70711  0, /*tp_subclasses*/
70712  0, /*tp_weaklist*/
70713  0, /*tp_del*/
70714  0, /*tp_version_tag*/
70715  #if PY_VERSION_HEX >= 0x030400a1
70716  0, /*tp_finalize*/
70717  #endif
70718  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70719  0, /*tp_vectorcall*/
70720  #endif
70721  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70722  0, /*tp_print*/
70723  #endif
70724  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70725  0, /*tp_pypy_flags*/
70726  #endif
70727 };
70728 static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice;
70729 
70730 static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) {
70731  struct __pyx_memoryviewslice_obj *p;
70732  PyObject *o = __pyx_tp_new_memoryview(t, a, k);
70733  if (unlikely(!o)) return 0;
70734  p = ((struct __pyx_memoryviewslice_obj *)o);
70735  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice;
70736  p->from_object = Py_None; Py_INCREF(Py_None);
70737  p->from_slice.memview = NULL;
70738  return o;
70739 }
70740 
70741 static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) {
70742  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
70743  #if CYTHON_USE_TP_FINALIZE
70744  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
70745  if (PyObject_CallFinalizerFromDealloc(o)) return;
70746  }
70747  #endif
70748  PyObject_GC_UnTrack(o);
70749  {
70750  PyObject *etype, *eval, *etb;
70751  PyErr_Fetch(&etype, &eval, &etb);
70752  __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
70753  __pyx_memoryviewslice___dealloc__(o);
70754  __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
70755  PyErr_Restore(etype, eval, etb);
70756  }
70757  Py_CLEAR(p->from_object);
70758  PyObject_GC_Track(o);
70759  __pyx_tp_dealloc_memoryview(o);
70760 }
70761 
70762 static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) {
70763  int e;
70764  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
70765  e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e;
70766  if (p->from_object) {
70767  e = (*v)(p->from_object, a); if (e) return e;
70768  }
70769  return 0;
70770 }
70771 
70772 static int __pyx_tp_clear__memoryviewslice(PyObject *o) {
70773  PyObject* tmp;
70774  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
70775  __pyx_tp_clear_memoryview(o);
70776  tmp = ((PyObject*)p->from_object);
70777  p->from_object = Py_None; Py_INCREF(Py_None);
70778  Py_XDECREF(tmp);
70779  __PYX_XDEC_MEMVIEW(&p->from_slice, 1);
70780  return 0;
70781 }
70782 
70783 static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) {
70784  return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o);
70785 }
70786 
70787 static PyMethodDef __pyx_methods__memoryviewslice[] = {
70788  {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0},
70789  {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0},
70790  {0, 0, 0, 0}
70791 };
70792 
70793 static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = {
70794  {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0},
70795  {0, 0, 0, 0, 0}
70796 };
70797 
70798 static PyTypeObject __pyx_type___pyx_memoryviewslice = {
70799  PyVarObject_HEAD_INIT(0, 0)
70800  "mprans.BoundaryConditions._memoryviewslice", /*tp_name*/
70801  sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/
70802  0, /*tp_itemsize*/
70803  __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/
70804  #if PY_VERSION_HEX < 0x030800b4
70805  0, /*tp_print*/
70806  #endif
70807  #if PY_VERSION_HEX >= 0x030800b4
70808  0, /*tp_vectorcall_offset*/
70809  #endif
70810  0, /*tp_getattr*/
70811  0, /*tp_setattr*/
70812  #if PY_MAJOR_VERSION < 3
70813  0, /*tp_compare*/
70814  #endif
70815  #if PY_MAJOR_VERSION >= 3
70816  0, /*tp_as_async*/
70817  #endif
70818  #if CYTHON_COMPILING_IN_PYPY
70819  __pyx_memoryview___repr__, /*tp_repr*/
70820  #else
70821  0, /*tp_repr*/
70822  #endif
70823  0, /*tp_as_number*/
70824  0, /*tp_as_sequence*/
70825  0, /*tp_as_mapping*/
70826  0, /*tp_hash*/
70827  0, /*tp_call*/
70828  #if CYTHON_COMPILING_IN_PYPY
70829  __pyx_memoryview___str__, /*tp_str*/
70830  #else
70831  0, /*tp_str*/
70832  #endif
70833  0, /*tp_getattro*/
70834  0, /*tp_setattro*/
70835  0, /*tp_as_buffer*/
70836  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
70837  "Internal class for passing memoryview slices to Python", /*tp_doc*/
70838  __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/
70839  __pyx_tp_clear__memoryviewslice, /*tp_clear*/
70840  0, /*tp_richcompare*/
70841  0, /*tp_weaklistoffset*/
70842  0, /*tp_iter*/
70843  0, /*tp_iternext*/
70844  __pyx_methods__memoryviewslice, /*tp_methods*/
70845  0, /*tp_members*/
70846  __pyx_getsets__memoryviewslice, /*tp_getset*/
70847  0, /*tp_base*/
70848  0, /*tp_dict*/
70849  0, /*tp_descr_get*/
70850  0, /*tp_descr_set*/
70851  0, /*tp_dictoffset*/
70852  0, /*tp_init*/
70853  0, /*tp_alloc*/
70854  __pyx_tp_new__memoryviewslice, /*tp_new*/
70855  0, /*tp_free*/
70856  0, /*tp_is_gc*/
70857  0, /*tp_bases*/
70858  0, /*tp_mro*/
70859  0, /*tp_cache*/
70860  0, /*tp_subclasses*/
70861  0, /*tp_weaklist*/
70862  0, /*tp_del*/
70863  0, /*tp_version_tag*/
70864  #if PY_VERSION_HEX >= 0x030400a1
70865  0, /*tp_finalize*/
70866  #endif
70867  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
70868  0, /*tp_vectorcall*/
70869  #endif
70870  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
70871  0, /*tp_print*/
70872  #endif
70873  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
70874  0, /*tp_pypy_flags*/
70875  #endif
70876 };
70877 
70878 static PyMethodDef __pyx_methods[] = {
70879  {0, 0, 0, 0}
70880 };
70881 
70882 #if PY_MAJOR_VERSION >= 3
70883 #if CYTHON_PEP489_MULTI_PHASE_INIT
70884 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
70885 static int __pyx_pymod_exec_BoundaryConditions(PyObject* module); /*proto*/
70886 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
70887  {Py_mod_create, (void*)__pyx_pymod_create},
70888  {Py_mod_exec, (void*)__pyx_pymod_exec_BoundaryConditions},
70889  {0, NULL}
70890 };
70891 #endif
70892 
70893 static struct PyModuleDef __pyx_moduledef = {
70894  PyModuleDef_HEAD_INIT,
70895  "BoundaryConditions",
70896  0, /* m_doc */
70897  #if CYTHON_PEP489_MULTI_PHASE_INIT
70898  0, /* m_size */
70899  #else
70900  -1, /* m_size */
70901  #endif
70902  __pyx_methods /* m_methods */,
70903  #if CYTHON_PEP489_MULTI_PHASE_INIT
70904  __pyx_moduledef_slots, /* m_slots */
70905  #else
70906  NULL, /* m_reload */
70907  #endif
70908  NULL, /* m_traverse */
70909  NULL, /* m_clear */
70910  NULL /* m_free */
70911 };
70912 #endif
70913 #ifndef CYTHON_SMALL_CODE
70914 #if defined(__clang__)
70915  #define CYTHON_SMALL_CODE
70916 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
70917  #define CYTHON_SMALL_CODE __attribute__((cold))
70918 #else
70919  #define CYTHON_SMALL_CODE
70920 #endif
70921 #endif
70922 
70923 static __Pyx_StringTabEntry __pyx_string_tab[] = {
70924  {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1},
70925  {&__pyx_n_s_AV_base, __pyx_k_AV_base, sizeof(__pyx_k_AV_base), 0, 0, 1, 1},
70926  {&__pyx_n_s_Atmosphere, __pyx_k_Atmosphere, sizeof(__pyx_k_Atmosphere), 0, 0, 1, 1},
70927  {&__pyx_n_s_AuxiliaryVariables, __pyx_k_AuxiliaryVariables, sizeof(__pyx_k_AuxiliaryVariables), 0, 0, 1, 1},
70928  {&__pyx_kp_s_Auxiliary_variable_used_to_calc, __pyx_k_Auxiliary_variable_used_to_calc, sizeof(__pyx_k_Auxiliary_variable_used_to_calc), 0, 0, 1, 0},
70929  {&__pyx_kp_s_Auxiliary_variable_used_to_calc_2, __pyx_k_Auxiliary_variable_used_to_calc_2, sizeof(__pyx_k_Auxiliary_variable_used_to_calc_2), 0, 0, 1, 0},
70930  {&__pyx_n_s_B, __pyx_k_B, sizeof(__pyx_k_B), 0, 0, 1, 1},
70931  {&__pyx_n_s_BC_RANS, __pyx_k_BC_RANS, sizeof(__pyx_k_BC_RANS), 0, 0, 1, 1},
70932  {&__pyx_n_s_BC_RANS___cpp_MoveMesh_h, __pyx_k_BC_RANS___cpp_MoveMesh_h, sizeof(__pyx_k_BC_RANS___cpp_MoveMesh_h), 0, 0, 1, 1},
70933  {&__pyx_n_s_BC_RANS___cpp_MoveMesh_hx, __pyx_k_BC_RANS___cpp_MoveMesh_hx, sizeof(__pyx_k_BC_RANS___cpp_MoveMesh_hx), 0, 0, 1, 1},
70934  {&__pyx_n_s_BC_RANS___cpp_MoveMesh_hy, __pyx_k_BC_RANS___cpp_MoveMesh_hy, sizeof(__pyx_k_BC_RANS___cpp_MoveMesh_hy), 0, 0, 1, 1},
70935  {&__pyx_n_s_BC_RANS___cpp_MoveMesh_hz, __pyx_k_BC_RANS___cpp_MoveMesh_hz, sizeof(__pyx_k_BC_RANS___cpp_MoveMesh_hz), 0, 0, 1, 1},
70936  {&__pyx_n_s_BC_RANS___reduce_cython, __pyx_k_BC_RANS___reduce_cython, sizeof(__pyx_k_BC_RANS___reduce_cython), 0, 0, 1, 1},
70937  {&__pyx_n_s_BC_RANS___setstate_cython, __pyx_k_BC_RANS___setstate_cython, sizeof(__pyx_k_BC_RANS___setstate_cython), 0, 0, 1, 1},
70938  {&__pyx_n_s_BC_RANS_reset, __pyx_k_BC_RANS_reset, sizeof(__pyx_k_BC_RANS_reset), 0, 0, 1, 1},
70939  {&__pyx_n_s_BC_RANS_setAtmosphere, __pyx_k_BC_RANS_setAtmosphere, sizeof(__pyx_k_BC_RANS_setAtmosphere), 0, 0, 1, 1},
70940  {&__pyx_n_s_BC_RANS_setChMoveMesh, __pyx_k_BC_RANS_setChMoveMesh, sizeof(__pyx_k_BC_RANS_setChMoveMesh), 0, 0, 1, 1},
70941  {&__pyx_n_s_BC_RANS_setConstantInletVelocity, __pyx_k_BC_RANS_setConstantInletVelocity, sizeof(__pyx_k_BC_RANS_setConstantInletVelocity), 0, 0, 1, 1},
70942  {&__pyx_n_s_BC_RANS_setConstantOutletPressur, __pyx_k_BC_RANS_setConstantOutletPressur, sizeof(__pyx_k_BC_RANS_setConstantOutletPressur), 0, 0, 1, 1},
70943  {&__pyx_n_s_BC_RANS_setFixedNodes, __pyx_k_BC_RANS_setFixedNodes, sizeof(__pyx_k_BC_RANS_setFixedNodes), 0, 0, 1, 1},
70944  {&__pyx_n_s_BC_RANS_setFreeSlip, __pyx_k_BC_RANS_setFreeSlip, sizeof(__pyx_k_BC_RANS_setFreeSlip), 0, 0, 1, 1},
70945  {&__pyx_n_s_BC_RANS_setHydrostaticPressureOu, __pyx_k_BC_RANS_setHydrostaticPressureOu, sizeof(__pyx_k_BC_RANS_setHydrostaticPressureOu), 0, 0, 1, 1},
70946  {&__pyx_n_s_BC_RANS_setMoveMesh, __pyx_k_BC_RANS_setMoveMesh, sizeof(__pyx_k_BC_RANS_setMoveMesh), 0, 0, 1, 1},
70947  {&__pyx_n_s_BC_RANS_setNoSlip, __pyx_k_BC_RANS_setNoSlip, sizeof(__pyx_k_BC_RANS_setNoSlip), 0, 0, 1, 1},
70948  {&__pyx_n_s_BC_RANS_setNonMaterial, __pyx_k_BC_RANS_setNonMaterial, sizeof(__pyx_k_BC_RANS_setNonMaterial), 0, 0, 1, 1},
70949  {&__pyx_n_s_BC_RANS_setRigidBodyMoveMesh, __pyx_k_BC_RANS_setRigidBodyMoveMesh, sizeof(__pyx_k_BC_RANS_setRigidBodyMoveMesh), 0, 0, 1, 1},
70950  {&__pyx_n_s_BC_RANS_setTank, __pyx_k_BC_RANS_setTank, sizeof(__pyx_k_BC_RANS_setTank), 0, 0, 1, 1},
70951  {&__pyx_n_s_BC_RANS_setTurbulentDirichlet, __pyx_k_BC_RANS_setTurbulentDirichlet, sizeof(__pyx_k_BC_RANS_setTurbulentDirichlet), 0, 0, 1, 1},
70952  {&__pyx_n_s_BC_RANS_setTurbulentZeroGradient, __pyx_k_BC_RANS_setTurbulentZeroGradient, sizeof(__pyx_k_BC_RANS_setTurbulentZeroGradient), 0, 0, 1, 1},
70953  {&__pyx_n_s_BC_RANS_setTwoPhaseVelocityInlet, __pyx_k_BC_RANS_setTwoPhaseVelocityInlet, sizeof(__pyx_k_BC_RANS_setTwoPhaseVelocityInlet), 0, 0, 1, 1},
70954  {&__pyx_n_s_BC_RANS_setUnsteadyTwoPhaseVeloc, __pyx_k_BC_RANS_setUnsteadyTwoPhaseVeloc, sizeof(__pyx_k_BC_RANS_setUnsteadyTwoPhaseVeloc), 0, 0, 1, 1},
70955  {&__pyx_n_s_BC_RANS_setWallFunction, __pyx_k_BC_RANS_setWallFunction, sizeof(__pyx_k_BC_RANS_setWallFunction), 0, 0, 1, 1},
70956  {&__pyx_n_s_BoundaryConditions, __pyx_k_BoundaryConditions, sizeof(__pyx_k_BoundaryConditions), 0, 0, 1, 1},
70957  {&__pyx_kp_s_Boundary_orientation_must_be_def, __pyx_k_Boundary_orientation_must_be_def, sizeof(__pyx_k_Boundary_orientation_must_be_def), 0, 0, 1, 0},
70958  {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0},
70959  {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0},
70960  {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0},
70961  {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0},
70962  {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0},
70963  {&__pyx_n_s_Closure_0_model, __pyx_k_Closure_0_model, sizeof(__pyx_k_Closure_0_model), 0, 0, 1, 1},
70964  {&__pyx_n_s_Closure_1_model, __pyx_k_Closure_1_model, sizeof(__pyx_k_Closure_1_model), 0, 0, 1, 1},
70965  {&__pyx_n_s_Cmu, __pyx_k_Cmu, sizeof(__pyx_k_Cmu), 0, 0, 1, 1},
70966  {&__pyx_n_s_Comm, __pyx_k_Comm, sizeof(__pyx_k_Comm), 0, 0, 1, 1},
70967  {&__pyx_n_s_DBC_h, __pyx_k_DBC_h, sizeof(__pyx_k_DBC_h), 0, 0, 1, 1},
70968  {&__pyx_n_s_Domain, __pyx_k_Domain, sizeof(__pyx_k_Domain), 0, 0, 1, 1},
70969  {&__pyx_n_s_E, __pyx_k_E, sizeof(__pyx_k_E), 0, 0, 1, 1},
70970  {&__pyx_kp_s_ERROR_Boundary_orientation_for_H, __pyx_k_ERROR_Boundary_orientation_for_H, sizeof(__pyx_k_ERROR_Boundary_orientation_for_H), 0, 0, 1, 0},
70971  {&__pyx_kp_s_ERROR_Boundary_orientation_for_U, __pyx_k_ERROR_Boundary_orientation_for_U, sizeof(__pyx_k_ERROR_Boundary_orientation_for_U), 0, 0, 1, 0},
70972  {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
70973  {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0},
70974  {&__pyx_n_s_FreeSlip, __pyx_k_FreeSlip, sizeof(__pyx_k_FreeSlip), 0, 0, 1, 1},
70975  {&__pyx_n_s_H, __pyx_k_H, sizeof(__pyx_k_H), 0, 0, 1, 1},
70976  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
70977  {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
70978  {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0},
70979  {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_k_Incompatible_checksums_0x_x_vs_0_3, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_3), 0, 0, 1, 0},
70980  {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_k_Incompatible_checksums_0x_x_vs_0_4, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_4), 0, 0, 1, 0},
70981  {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
70982  {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0},
70983  {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0},
70984  {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0},
70985  {&__pyx_n_s_K, __pyx_k_K, sizeof(__pyx_k_K), 0, 0, 1, 1},
70986  {&__pyx_n_s_MPI, __pyx_k_MPI, sizeof(__pyx_k_MPI), 0, 0, 1, 1},
70987  {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
70988  {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0},
70989  {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0},
70990  {&__pyx_n_s_NoSlip, __pyx_k_NoSlip, sizeof(__pyx_k_NoSlip), 0, 0, 1, 1},
70991  {&__pyx_n_s_NonMaterial, __pyx_k_NonMaterial, sizeof(__pyx_k_NonMaterial), 0, 0, 1, 1},
70992  {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1},
70993  {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0},
70994  {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1},
70995  {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
70996  {&__pyx_n_s_RelaxationZone, __pyx_k_RelaxationZone, sizeof(__pyx_k_RelaxationZone), 0, 0, 1, 1},
70997  {&__pyx_n_s_RelaxationZoneWaveGenerator, __pyx_k_RelaxationZoneWaveGenerator, sizeof(__pyx_k_RelaxationZoneWaveGenerator), 0, 0, 1, 1},
70998  {&__pyx_n_s_RelaxationZoneWaveGenerator___re, __pyx_k_RelaxationZoneWaveGenerator___re, sizeof(__pyx_k_RelaxationZoneWaveGenerator___re), 0, 0, 1, 1},
70999  {&__pyx_n_s_RelaxationZoneWaveGenerator___se, __pyx_k_RelaxationZoneWaveGenerator___se, sizeof(__pyx_k_RelaxationZoneWaveGenerator___se), 0, 0, 1, 1},
71000  {&__pyx_n_s_RelaxationZoneWaveGenerator_atta, __pyx_k_RelaxationZoneWaveGenerator_atta, sizeof(__pyx_k_RelaxationZoneWaveGenerator_atta), 0, 0, 1, 1},
71001  {&__pyx_n_s_RelaxationZoneWaveGenerator_atta_2, __pyx_k_RelaxationZoneWaveGenerator_atta_2, sizeof(__pyx_k_RelaxationZoneWaveGenerator_atta_2), 0, 0, 1, 1},
71002  {&__pyx_n_s_RelaxationZoneWaveGenerator_calc, __pyx_k_RelaxationZoneWaveGenerator_calc, sizeof(__pyx_k_RelaxationZoneWaveGenerator_calc), 0, 0, 1, 1},
71003  {&__pyx_n_s_RelaxationZoneWaveGenerator_calc_2, __pyx_k_RelaxationZoneWaveGenerator_calc_2, sizeof(__pyx_k_RelaxationZoneWaveGenerator_calc_2), 0, 0, 1, 1},
71004  {&__pyx_n_s_RelaxationZone___reduce_cython, __pyx_k_RelaxationZone___reduce_cython, sizeof(__pyx_k_RelaxationZone___reduce_cython), 0, 0, 1, 1},
71005  {&__pyx_n_s_RelaxationZone___setstate_cython, __pyx_k_RelaxationZone___setstate_cython, sizeof(__pyx_k_RelaxationZone___setstate_cython), 0, 0, 1, 1},
71006  {&__pyx_n_s_RelaxationZone_calculate_init, __pyx_k_RelaxationZone_calculate_init, sizeof(__pyx_k_RelaxationZone_calculate_init), 0, 0, 1, 1},
71007  {&__pyx_n_s_RelaxationZone_calculate_phi_pyt, __pyx_k_RelaxationZone_calculate_phi_pyt, sizeof(__pyx_k_RelaxationZone_calculate_phi_pyt), 0, 0, 1, 1},
71008  {&__pyx_n_s_RelaxationZone_calculate_vel_pyt, __pyx_k_RelaxationZone_calculate_vel_pyt, sizeof(__pyx_k_RelaxationZone_calculate_vel_pyt), 0, 0, 1, 1},
71009  {&__pyx_kp_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 0},
71010  {&__pyx_n_s_TwoPhaseVelocityInlet, __pyx_k_TwoPhaseVelocityInlet, sizeof(__pyx_k_TwoPhaseVelocityInlet), 0, 0, 1, 1},
71011  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
71012  {&__pyx_n_s_U, __pyx_k_U, sizeof(__pyx_k_U), 0, 0, 1, 1},
71013  {&__pyx_n_s_U0, __pyx_k_U0, sizeof(__pyx_k_U0), 0, 0, 1, 1},
71014  {&__pyx_n_s_Ubound, __pyx_k_Ubound, sizeof(__pyx_k_Ubound), 0, 0, 1, 1},
71015  {&__pyx_n_s_Uin, __pyx_k_Uin, sizeof(__pyx_k_Uin), 0, 0, 1, 1},
71016  {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0},
71017  {&__pyx_n_s_Up, __pyx_k_Up, sizeof(__pyx_k_Up), 0, 0, 1, 1},
71018  {&__pyx_n_s_Ustar, __pyx_k_Ustar, sizeof(__pyx_k_Ustar), 0, 0, 1, 1},
71019  {&__pyx_n_s_Uwind, __pyx_k_Uwind, sizeof(__pyx_k_Uwind), 0, 0, 1, 1},
71020  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
71021  {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
71022  {&__pyx_kp_s_WARNING_Dirichlet_condition_for, __pyx_k_WARNING_Dirichlet_condition_for, sizeof(__pyx_k_WARNING_Dirichlet_condition_for), 0, 0, 1, 0},
71023  {&__pyx_kp_s_WARNING_Dirichlet_condition_for_2, __pyx_k_WARNING_Dirichlet_condition_for_2, sizeof(__pyx_k_WARNING_Dirichlet_condition_for_2), 0, 0, 1, 0},
71024  {&__pyx_n_s_WallFunctions, __pyx_k_WallFunctions, sizeof(__pyx_k_WallFunctions), 0, 0, 1, 1},
71025  {&__pyx_n_s_WallFunctions___init, __pyx_k_WallFunctions___init, sizeof(__pyx_k_WallFunctions___init), 0, 0, 1, 1},
71026  {&__pyx_n_s_WallFunctions_attachAuxiliaryVar, __pyx_k_WallFunctions_attachAuxiliaryVar, sizeof(__pyx_k_WallFunctions_attachAuxiliaryVar), 0, 0, 1, 1},
71027  {&__pyx_n_s_WallFunctions_attachModel, __pyx_k_WallFunctions_attachModel, sizeof(__pyx_k_WallFunctions_attachModel), 0, 0, 1, 1},
71028  {&__pyx_n_s_WallFunctions_calculate, __pyx_k_WallFunctions_calculate, sizeof(__pyx_k_WallFunctions_calculate), 0, 0, 1, 1},
71029  {&__pyx_n_s_WallFunctions_calculate_init, __pyx_k_WallFunctions_calculate_init, sizeof(__pyx_k_WallFunctions_calculate_init), 0, 0, 1, 1},
71030  {&__pyx_n_s_WallFunctions_extractVelocity, __pyx_k_WallFunctions_extractVelocity, sizeof(__pyx_k_WallFunctions_extractVelocity), 0, 0, 1, 1},
71031  {&__pyx_n_s_WallFunctions_findElementContain, __pyx_k_WallFunctions_findElementContain, sizeof(__pyx_k_WallFunctions_findElementContain), 0, 0, 1, 1},
71032  {&__pyx_n_s_WallFunctions_getFluidVelocityLo, __pyx_k_WallFunctions_getFluidVelocityLo, sizeof(__pyx_k_WallFunctions_getFluidVelocityLo), 0, 0, 1, 1},
71033  {&__pyx_n_s_WallFunctions_getLocalElement, __pyx_k_WallFunctions_getLocalElement, sizeof(__pyx_k_WallFunctions_getLocalElement), 0, 0, 1, 1},
71034  {&__pyx_n_s_WallFunctions_getLocalNearestNod, __pyx_k_WallFunctions_getLocalNearestNod, sizeof(__pyx_k_WallFunctions_getLocalNearestNod), 0, 0, 1, 1},
71035  {&__pyx_n_s_WallFunctions_getVariables, __pyx_k_WallFunctions_getVariables, sizeof(__pyx_k_WallFunctions_getVariables), 0, 0, 1, 1},
71036  {&__pyx_n_s_WallFunctions_get_dissipation_di, __pyx_k_WallFunctions_get_dissipation_di, sizeof(__pyx_k_WallFunctions_get_dissipation_di), 0, 0, 1, 1},
71037  {&__pyx_n_s_WallFunctions_get_k_dirichlet, __pyx_k_WallFunctions_get_k_dirichlet, sizeof(__pyx_k_WallFunctions_get_k_dirichlet), 0, 0, 1, 1},
71038  {&__pyx_n_s_WallFunctions_get_u_diffusive, __pyx_k_WallFunctions_get_u_diffusive, sizeof(__pyx_k_WallFunctions_get_u_diffusive), 0, 0, 1, 1},
71039  {&__pyx_n_s_WallFunctions_get_u_dirichlet, __pyx_k_WallFunctions_get_u_dirichlet, sizeof(__pyx_k_WallFunctions_get_u_dirichlet), 0, 0, 1, 1},
71040  {&__pyx_n_s_WallFunctions_get_v_diffusive, __pyx_k_WallFunctions_get_v_diffusive, sizeof(__pyx_k_WallFunctions_get_v_diffusive), 0, 0, 1, 1},
71041  {&__pyx_n_s_WallFunctions_get_v_dirichlet, __pyx_k_WallFunctions_get_v_dirichlet, sizeof(__pyx_k_WallFunctions_get_v_dirichlet), 0, 0, 1, 1},
71042  {&__pyx_n_s_WallFunctions_get_w_diffusive, __pyx_k_WallFunctions_get_w_diffusive, sizeof(__pyx_k_WallFunctions_get_w_diffusive), 0, 0, 1, 1},
71043  {&__pyx_n_s_WallFunctions_get_w_dirichlet, __pyx_k_WallFunctions_get_w_dirichlet, sizeof(__pyx_k_WallFunctions_get_w_dirichlet), 0, 0, 1, 1},
71044  {&__pyx_n_s_WallFunctions_setYplusNormalDire, __pyx_k_WallFunctions_setYplusNormalDire, sizeof(__pyx_k_WallFunctions_setYplusNormalDire), 0, 0, 1, 1},
71045  {&__pyx_n_s_WallFunctions_tangentialVelocity, __pyx_k_WallFunctions_tangentialVelocity, sizeof(__pyx_k_WallFunctions_tangentialVelocity), 0, 0, 1, 1},
71046  {&__pyx_kp_s_Wall_function, __pyx_k_Wall_function, sizeof(__pyx_k_Wall_function), 0, 0, 1, 0},
71047  {&__pyx_n_s_WaveTools, __pyx_k_WaveTools, sizeof(__pyx_k_WaveTools), 0, 0, 1, 1},
71048  {&__pyx_n_s_Y, __pyx_k_Y, sizeof(__pyx_k_Y), 0, 0, 1, 1},
71049  {&__pyx_n_s_Yplus, __pyx_k_Yplus, sizeof(__pyx_k_Yplus), 0, 0, 1, 1},
71050  {&__pyx_n_s_Ystar, __pyx_k_Ystar, sizeof(__pyx_k_Ystar), 0, 0, 1, 1},
71051  {&__pyx_kp_b__165, __pyx_k__165, sizeof(__pyx_k__165), 0, 0, 0, 0},
71052  {&__pyx_kp_b__166, __pyx_k__166, sizeof(__pyx_k__166), 0, 0, 0, 0},
71053  {&__pyx_kp_b__167, __pyx_k__167, sizeof(__pyx_k__167), 0, 0, 0, 0},
71054  {&__pyx_kp_b__168, __pyx_k__168, sizeof(__pyx_k__168), 0, 0, 0, 0},
71055  {&__pyx_kp_u__169, __pyx_k__169, sizeof(__pyx_k__169), 0, 1, 0, 0},
71056  {&__pyx_n_s_a1, __pyx_k_a1, sizeof(__pyx_k_a1), 0, 0, 1, 1},
71057  {&__pyx_n_s_abs, __pyx_k_abs, sizeof(__pyx_k_abs), 0, 0, 1, 1},
71058  {&__pyx_n_s_absorption, __pyx_k_absorption, sizeof(__pyx_k_absorption), 0, 0, 1, 1},
71059  {&__pyx_n_s_acos, __pyx_k_acos, sizeof(__pyx_k_acos), 0, 0, 1, 1},
71060  {&__pyx_n_s_air, __pyx_k_air, sizeof(__pyx_k_air), 0, 0, 1, 1},
71061  {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1},
71062  {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1},
71063  {&__pyx_n_s_ar, __pyx_k_ar, sizeof(__pyx_k_ar), 0, 0, 1, 1},
71064  {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
71065  {&__pyx_n_s_asin, __pyx_k_asin, sizeof(__pyx_k_asin), 0, 0, 1, 1},
71066  {&__pyx_n_s_atan2, __pyx_k_atan2, sizeof(__pyx_k_atan2), 0, 0, 1, 1},
71067  {&__pyx_n_s_attachAuxiliaryVariables, __pyx_k_attachAuxiliaryVariables, sizeof(__pyx_k_attachAuxiliaryVariables), 0, 0, 1, 1},
71068  {&__pyx_n_s_attachModel, __pyx_k_attachModel, sizeof(__pyx_k_attachModel), 0, 0, 1, 1},
71069  {&__pyx_n_s_avDict, __pyx_k_avDict, sizeof(__pyx_k_avDict), 0, 0, 1, 1},
71070  {&__pyx_n_s_b_i, __pyx_k_b_i, sizeof(__pyx_k_b_i), 0, 0, 1, 1},
71071  {&__pyx_n_s_b_or, __pyx_k_b_or, sizeof(__pyx_k_b_or), 0, 0, 1, 1},
71072  {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1},
71073  {&__pyx_n_s_body, __pyx_k_body, sizeof(__pyx_k_body), 0, 0, 1, 1},
71074  {&__pyx_n_s_builtins, __pyx_k_builtins, sizeof(__pyx_k_builtins), 0, 0, 1, 1},
71075  {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
71076  {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1},
71077  {&__pyx_n_s_cKDTree, __pyx_k_cKDTree, sizeof(__pyx_k_cKDTree), 0, 0, 1, 1},
71078  {&__pyx_n_s_calculate, __pyx_k_calculate, sizeof(__pyx_k_calculate), 0, 0, 1, 1},
71079  {&__pyx_n_s_calculate_init, __pyx_k_calculate_init, sizeof(__pyx_k_calculate_init), 0, 0, 1, 1},
71080  {&__pyx_n_s_calculate_phi_python, __pyx_k_calculate_phi_python, sizeof(__pyx_k_calculate_phi_python), 0, 0, 1, 1},
71081  {&__pyx_n_s_calculate_vel_python, __pyx_k_calculate_vel_python, sizeof(__pyx_k_calculate_vel_python), 0, 0, 1, 1},
71082  {&__pyx_n_s_center, __pyx_k_center, sizeof(__pyx_k_center), 0, 0, 1, 1},
71083  {&__pyx_n_s_checkedElements, __pyx_k_checkedElements, sizeof(__pyx_k_checkedElements), 0, 0, 1, 1},
71084  {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
71085  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
71086  {&__pyx_n_s_coefficients, __pyx_k_coefficients, sizeof(__pyx_k_coefficients), 0, 0, 1, 1},
71087  {&__pyx_n_s_comm, __pyx_k_comm, sizeof(__pyx_k_comm), 0, 0, 1, 1},
71088  {&__pyx_n_s_constant, __pyx_k_constant, sizeof(__pyx_k_constant), 0, 0, 1, 1},
71089  {&__pyx_n_s_constantInletVelocity, __pyx_k_constantInletVelocity, sizeof(__pyx_k_constantInletVelocity), 0, 0, 1, 1},
71090  {&__pyx_n_s_constantOutletPressure, __pyx_k_constantOutletPressure, sizeof(__pyx_k_constantOutletPressure), 0, 0, 1, 1},
71091  {&__pyx_n_s_constant_values, __pyx_k_constant_values, sizeof(__pyx_k_constant_values), 0, 0, 1, 1},
71092  {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0},
71093  {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0},
71094  {&__pyx_n_s_coords, __pyx_k_coords, sizeof(__pyx_k_coords), 0, 0, 1, 1},
71095  {&__pyx_n_s_coords_relax, __pyx_k_coords_relax, sizeof(__pyx_k_coords_relax), 0, 0, 1, 1},
71096  {&__pyx_n_s_cos, __pyx_k_cos, sizeof(__pyx_k_cos), 0, 0, 1, 1},
71097  {&__pyx_n_s_cppClass_WavesCharacteristics, __pyx_k_cppClass_WavesCharacteristics, sizeof(__pyx_k_cppClass_WavesCharacteristics), 0, 0, 1, 1},
71098  {&__pyx_n_s_cppClass_WavesCharacteristics_2, __pyx_k_cppClass_WavesCharacteristics_2, sizeof(__pyx_k_cppClass_WavesCharacteristics_2), 0, 0, 1, 1},
71099  {&__pyx_n_s_cppClass_WavesCharacteristics_3, __pyx_k_cppClass_WavesCharacteristics_3, sizeof(__pyx_k_cppClass_WavesCharacteristics_3), 0, 0, 1, 1},
71100  {&__pyx_n_s_cppClass_WavesCharacteristics_4, __pyx_k_cppClass_WavesCharacteristics_4, sizeof(__pyx_k_cppClass_WavesCharacteristics_4), 0, 0, 1, 1},
71101  {&__pyx_n_s_cpp_MoveMesh_h, __pyx_k_cpp_MoveMesh_h, sizeof(__pyx_k_cpp_MoveMesh_h), 0, 0, 1, 1},
71102  {&__pyx_n_s_cpp_MoveMesh_hx, __pyx_k_cpp_MoveMesh_hx, sizeof(__pyx_k_cpp_MoveMesh_hx), 0, 0, 1, 1},
71103  {&__pyx_n_s_cpp_MoveMesh_hy, __pyx_k_cpp_MoveMesh_hy, sizeof(__pyx_k_cpp_MoveMesh_hy), 0, 0, 1, 1},
71104  {&__pyx_n_s_cpp_MoveMesh_hz, __pyx_k_cpp_MoveMesh_hz, sizeof(__pyx_k_cpp_MoveMesh_hz), 0, 0, 1, 1},
71105  {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1},
71106  {&__pyx_n_s_dInflow, __pyx_k_dInflow, sizeof(__pyx_k_dInflow), 0, 0, 1, 1},
71107  {&__pyx_n_s_dd, __pyx_k_dd, sizeof(__pyx_k_dd), 0, 0, 1, 1},
71108  {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
71109  {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1},
71110  {&__pyx_n_s_dissipationInflow, __pyx_k_dissipationInflow, sizeof(__pyx_k_dissipationInflow), 0, 0, 1, 1},
71111  {&__pyx_n_s_dissipationInflowAir, __pyx_k_dissipationInflowAir, sizeof(__pyx_k_dissipationInflowAir), 0, 0, 1, 1},
71112  {&__pyx_n_s_dissipationVal, __pyx_k_dissipationVal, sizeof(__pyx_k_dissipationVal), 0, 0, 1, 1},
71113  {&__pyx_n_s_distance, __pyx_k_distance, sizeof(__pyx_k_distance), 0, 0, 1, 1},
71114  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
71115  {&__pyx_n_s_dot, __pyx_k_dot, sizeof(__pyx_k_dot), 0, 0, 1, 1},
71116  {&__pyx_n_s_dragAlpha, __pyx_k_dragAlpha, sizeof(__pyx_k_dragAlpha), 0, 0, 1, 1},
71117  {&__pyx_n_s_dragBeta, __pyx_k_dragBeta, sizeof(__pyx_k_dragBeta), 0, 0, 1, 1},
71118  {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
71119  {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1},
71120  {&__pyx_n_s_eN, __pyx_k_eN, sizeof(__pyx_k_eN), 0, 0, 1, 1},
71121  {&__pyx_n_s_eOffset, __pyx_k_eOffset, sizeof(__pyx_k_eOffset), 0, 0, 1, 1},
71122  {&__pyx_n_s_element, __pyx_k_element, sizeof(__pyx_k_element), 0, 0, 1, 1},
71123  {&__pyx_n_s_elementMaps, __pyx_k_elementMaps, sizeof(__pyx_k_elementMaps), 0, 0, 1, 1},
71124  {&__pyx_n_s_elementMaterialTypes, __pyx_k_elementMaterialTypes, sizeof(__pyx_k_elementMaterialTypes), 0, 0, 1, 1},
71125  {&__pyx_n_s_elementNodesArray, __pyx_k_elementNodesArray, sizeof(__pyx_k_elementNodesArray), 0, 0, 1, 1},
71126  {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
71127  {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
71128  {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
71129  {&__pyx_n_s_epsFact_porous, __pyx_k_epsFact_porous, sizeof(__pyx_k_epsFact_porous), 0, 0, 1, 1},
71130  {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
71131  {&__pyx_n_s_eta, __pyx_k_eta, sizeof(__pyx_k_eta), 0, 0, 1, 1},
71132  {&__pyx_n_s_exp, __pyx_k_exp, sizeof(__pyx_k_exp), 0, 0, 1, 1},
71133  {&__pyx_n_s_extractVelocity, __pyx_k_extractVelocity, sizeof(__pyx_k_extractVelocity), 0, 0, 1, 1},
71134  {&__pyx_n_s_femSpace, __pyx_k_femSpace, sizeof(__pyx_k_femSpace), 0, 0, 1, 1},
71135  {&__pyx_n_s_femSpace_velocity, __pyx_k_femSpace_velocity, sizeof(__pyx_k_femSpace_velocity), 0, 0, 1, 1},
71136  {&__pyx_n_s_findElementContainingCoords, __pyx_k_findElementContainingCoords, sizeof(__pyx_k_findElementContainingCoords), 0, 0, 1, 1},
71137  {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
71138  {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
71139  {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1},
71140  {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1},
71141  {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1},
71142  {&__pyx_n_s_generation, __pyx_k_generation, sizeof(__pyx_k_generation), 0, 0, 1, 1},
71143  {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
71144  {&__pyx_n_s_getFluidKappaLocalCoords, __pyx_k_getFluidKappaLocalCoords, sizeof(__pyx_k_getFluidKappaLocalCoords), 0, 0, 1, 1},
71145  {&__pyx_n_s_getFluidVelocityLocalCoords, __pyx_k_getFluidVelocityLocalCoords, sizeof(__pyx_k_getFluidVelocityLocalCoords), 0, 0, 1, 1},
71146  {&__pyx_n_s_getInverseValue, __pyx_k_getInverseValue, sizeof(__pyx_k_getInverseValue), 0, 0, 1, 1},
71147  {&__pyx_n_s_getKappa, __pyx_k_getKappa, sizeof(__pyx_k_getKappa), 0, 0, 1, 1},
71148  {&__pyx_n_s_getLocalElement, __pyx_k_getLocalElement, sizeof(__pyx_k_getLocalElement), 0, 0, 1, 1},
71149  {&__pyx_n_s_getLocalNearestNode, __pyx_k_getLocalNearestNode, sizeof(__pyx_k_getLocalNearestNode), 0, 0, 1, 1},
71150  {&__pyx_n_s_getValue, __pyx_k_getValue, sizeof(__pyx_k_getValue), 0, 0, 1, 1},
71151  {&__pyx_n_s_getVariables, __pyx_k_getVariables, sizeof(__pyx_k_getVariables), 0, 0, 1, 1},
71152  {&__pyx_n_s_get_DBC_h, __pyx_k_get_DBC_h, sizeof(__pyx_k_get_DBC_h), 0, 0, 1, 1},
71153  {&__pyx_n_s_get_dissipation_dirichlet, __pyx_k_get_dissipation_dirichlet, sizeof(__pyx_k_get_dissipation_dirichlet), 0, 0, 1, 1},
71154  {&__pyx_n_s_get_inlet_ux_dirichlet, __pyx_k_get_inlet_ux_dirichlet, sizeof(__pyx_k_get_inlet_ux_dirichlet), 0, 0, 1, 1},
71155  {&__pyx_n_s_get_k_dirichlet, __pyx_k_get_k_dirichlet, sizeof(__pyx_k_get_k_dirichlet), 0, 0, 1, 1},
71156  {&__pyx_n_s_get_u_diffusive, __pyx_k_get_u_diffusive, sizeof(__pyx_k_get_u_diffusive), 0, 0, 1, 1},
71157  {&__pyx_n_s_get_u_dirichlet, __pyx_k_get_u_dirichlet, sizeof(__pyx_k_get_u_dirichlet), 0, 0, 1, 1},
71158  {&__pyx_n_s_get_v_diffusive, __pyx_k_get_v_diffusive, sizeof(__pyx_k_get_v_diffusive), 0, 0, 1, 1},
71159  {&__pyx_n_s_get_v_dirichlet, __pyx_k_get_v_dirichlet, sizeof(__pyx_k_get_v_dirichlet), 0, 0, 1, 1},
71160  {&__pyx_n_s_get_w_diffusive, __pyx_k_get_w_diffusive, sizeof(__pyx_k_get_w_diffusive), 0, 0, 1, 1},
71161  {&__pyx_n_s_get_w_dirichlet, __pyx_k_get_w_dirichlet, sizeof(__pyx_k_get_w_dirichlet), 0, 0, 1, 1},
71162  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
71163  {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0},
71164  {&__pyx_n_s_gradU, __pyx_k_gradU, sizeof(__pyx_k_gradU), 0, 0, 1, 1},
71165  {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1},
71166  {&__pyx_kp_s_has_not_been_set_Ignore_if_RANS, __pyx_k_has_not_been_set_Ignore_if_RANS, sizeof(__pyx_k_has_not_been_set_Ignore_if_RANS), 0, 0, 1, 0},
71167  {&__pyx_n_s_hx, __pyx_k_hx, sizeof(__pyx_k_hx), 0, 0, 1, 1},
71168  {&__pyx_n_s_hy, __pyx_k_hy, sizeof(__pyx_k_hy), 0, 0, 1, 1},
71169  {&__pyx_n_s_hydrostaticPressureOutletWithDep, __pyx_k_hydrostaticPressureOutletWithDep, sizeof(__pyx_k_hydrostaticPressureOutletWithDep), 0, 0, 1, 1},
71170  {&__pyx_n_s_hydrostaticPressureOutletWithDep_2, __pyx_k_hydrostaticPressureOutletWithDep_2, sizeof(__pyx_k_hydrostaticPressureOutletWithDep_2), 0, 0, 1, 1},
71171  {&__pyx_n_s_hydrostaticPressureOutletWithDep_3, __pyx_k_hydrostaticPressureOutletWithDep_3, sizeof(__pyx_k_hydrostaticPressureOutletWithDep_3), 0, 0, 1, 1},
71172  {&__pyx_n_s_hz, __pyx_k_hz, sizeof(__pyx_k_hz), 0, 0, 1, 1},
71173  {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
71174  {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
71175  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
71176  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
71177  {&__pyx_n_s_inlet_dissipation_dirichlet, __pyx_k_inlet_dissipation_dirichlet, sizeof(__pyx_k_inlet_dissipation_dirichlet), 0, 0, 1, 1},
71178  {&__pyx_n_s_inlet_k_dirichlet, __pyx_k_inlet_k_dirichlet, sizeof(__pyx_k_inlet_k_dirichlet), 0, 0, 1, 1},
71179  {&__pyx_n_s_inlet_p_advective, __pyx_k_inlet_p_advective, sizeof(__pyx_k_inlet_p_advective), 0, 0, 1, 1},
71180  {&__pyx_n_s_inlet_phi_dirichlet, __pyx_k_inlet_phi_dirichlet, sizeof(__pyx_k_inlet_phi_dirichlet), 0, 0, 1, 1},
71181  {&__pyx_n_s_inlet_vof_dirichlet, __pyx_k_inlet_vof_dirichlet, sizeof(__pyx_k_inlet_vof_dirichlet), 0, 0, 1, 1},
71182  {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
71183  {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
71184  {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0},
71185  {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
71186  {&__pyx_n_s_kInflow, __pyx_k_kInflow, sizeof(__pyx_k_kInflow), 0, 0, 1, 1},
71187  {&__pyx_n_s_kInflowAir, __pyx_k_kInflowAir, sizeof(__pyx_k_kInflowAir), 0, 0, 1, 1},
71188  {&__pyx_n_s_kInit, __pyx_k_kInit, sizeof(__pyx_k_kInit), 0, 0, 1, 1},
71189  {&__pyx_n_s_kVal, __pyx_k_kVal, sizeof(__pyx_k_kVal), 0, 0, 1, 1},
71190  {&__pyx_n_s_kWall, __pyx_k_kWall, sizeof(__pyx_k_kWall), 0, 0, 1, 1},
71191  {&__pyx_n_s_kWall___init, __pyx_k_kWall___init, sizeof(__pyx_k_kWall___init), 0, 0, 1, 1},
71192  {&__pyx_n_s_kWall_attachAuxiliaryVariables, __pyx_k_kWall_attachAuxiliaryVariables, sizeof(__pyx_k_kWall_attachAuxiliaryVariables), 0, 0, 1, 1},
71193  {&__pyx_n_s_kWall_attachModel, __pyx_k_kWall_attachModel, sizeof(__pyx_k_kWall_attachModel), 0, 0, 1, 1},
71194  {&__pyx_n_s_kWall_calculate, __pyx_k_kWall_calculate, sizeof(__pyx_k_kWall_calculate), 0, 0, 1, 1},
71195  {&__pyx_n_s_kWall_calculate_init, __pyx_k_kWall_calculate_init, sizeof(__pyx_k_kWall_calculate_init), 0, 0, 1, 1},
71196  {&__pyx_n_s_kWall_getFluidKappaLocalCoords, __pyx_k_kWall_getFluidKappaLocalCoords, sizeof(__pyx_k_kWall_getFluidKappaLocalCoords), 0, 0, 1, 1},
71197  {&__pyx_n_s_kWall_getKappa, __pyx_k_kWall_getKappa, sizeof(__pyx_k_kWall_getKappa), 0, 0, 1, 1},
71198  {&__pyx_n_s_kWall_kappaNearWall, __pyx_k_kWall_kappaNearWall, sizeof(__pyx_k_kWall_kappaNearWall), 0, 0, 1, 1},
71199  {&__pyx_n_s_kappa, __pyx_k_kappa, sizeof(__pyx_k_kappa), 0, 0, 1, 1},
71200  {&__pyx_n_s_kappaNearWall, __pyx_k_kappaNearWall, sizeof(__pyx_k_kappaNearWall), 0, 0, 1, 1},
71201  {&__pyx_n_s_kdtree, __pyx_k_kdtree, sizeof(__pyx_k_kdtree), 0, 0, 1, 1},
71202  {&__pyx_n_s_ke, __pyx_k_ke, sizeof(__pyx_k_ke), 0, 0, 1, 1},
71203  {&__pyx_n_s_kk, __pyx_k_kk, sizeof(__pyx_k_kk), 0, 0, 1, 1},
71204  {&__pyx_n_s_kw, __pyx_k_kw, sizeof(__pyx_k_kw), 0, 0, 1, 1},
71205  {&__pyx_n_s_last_pos, __pyx_k_last_pos, sizeof(__pyx_k_last_pos), 0, 0, 1, 1},
71206  {&__pyx_n_s_last_position, __pyx_k_last_position, sizeof(__pyx_k_last_position), 0, 0, 1, 1},
71207  {&__pyx_n_s_levelModelList, __pyx_k_levelModelList, sizeof(__pyx_k_levelModelList), 0, 0, 1, 1},
71208  {&__pyx_n_s_local_element, __pyx_k_local_element, sizeof(__pyx_k_local_element), 0, 0, 1, 1},
71209  {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1},
71210  {&__pyx_n_s_logEvent, __pyx_k_logEvent, sizeof(__pyx_k_logEvent), 0, 0, 1, 1},
71211  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
71212  {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1},
71213  {&__pyx_n_s_meanV, __pyx_k_meanV, sizeof(__pyx_k_meanV), 0, 0, 1, 1},
71214  {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1},
71215  {&__pyx_n_s_mesh, __pyx_k_mesh, sizeof(__pyx_k_mesh), 0, 0, 1, 1},
71216  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
71217  {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
71218  {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1},
71219  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
71220  {&__pyx_n_s_mpi4py, __pyx_k_mpi4py, sizeof(__pyx_k_mpi4py), 0, 0, 1, 1},
71221  {&__pyx_n_s_mprans_BoundaryConditions, __pyx_k_mprans_BoundaryConditions, sizeof(__pyx_k_mprans_BoundaryConditions), 0, 0, 1, 1},
71222  {&__pyx_n_s_mwl, __pyx_k_mwl, sizeof(__pyx_k_mwl), 0, 0, 1, 1},
71223  {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
71224  {&__pyx_n_s_nP, __pyx_k_nP, sizeof(__pyx_k_nP), 0, 0, 1, 1},
71225  {&__pyx_n_s_nSpace_global, __pyx_k_nSpace_global, sizeof(__pyx_k_nSpace_global), 0, 0, 1, 1},
71226  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
71227  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
71228  {&__pyx_n_s_nd, __pyx_k_nd, sizeof(__pyx_k_nd), 0, 0, 1, 1},
71229  {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1},
71230  {&__pyx_n_s_nearest_node, __pyx_k_nearest_node, sizeof(__pyx_k_nearest_node), 0, 0, 1, 1},
71231  {&__pyx_n_s_nearest_node_distance, __pyx_k_nearest_node_distance, sizeof(__pyx_k_nearest_node_distance), 0, 0, 1, 1},
71232  {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
71233  {&__pyx_n_s_new_x_0, __pyx_k_new_x_0, sizeof(__pyx_k_new_x_0), 0, 0, 1, 1},
71234  {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
71235  {&__pyx_n_s_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 0, 1, 1},
71236  {&__pyx_n_s_nodeArray, __pyx_k_nodeArray, sizeof(__pyx_k_nodeArray), 0, 0, 1, 1},
71237  {&__pyx_n_s_nodeElementOffsets, __pyx_k_nodeElementOffsets, sizeof(__pyx_k_nodeElementOffsets), 0, 0, 1, 1},
71238  {&__pyx_n_s_nodeElementsArray, __pyx_k_nodeElementsArray, sizeof(__pyx_k_nodeElementsArray), 0, 0, 1, 1},
71239  {&__pyx_n_s_nodes_kdtree, __pyx_k_nodes_kdtree, sizeof(__pyx_k_nodes_kdtree), 0, 0, 1, 1},
71240  {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
71241  {&__pyx_n_s_nu, __pyx_k_nu, sizeof(__pyx_k_nu), 0, 0, 1, 1},
71242  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
71243  {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0},
71244  {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0},
71245  {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
71246  {&__pyx_n_s_old_div, __pyx_k_old_div, sizeof(__pyx_k_old_div), 0, 0, 1, 1},
71247  {&__pyx_n_s_onElement, __pyx_k_onElement, sizeof(__pyx_k_onElement), 0, 0, 1, 1},
71248  {&__pyx_n_s_orientation, __pyx_k_orientation, sizeof(__pyx_k_orientation), 0, 0, 1, 1},
71249  {&__pyx_kp_s_oritentation_must_be_set_for_BC, __pyx_k_oritentation_must_be_set_for_BC, sizeof(__pyx_k_oritentation_must_be_set_for_BC), 0, 0, 1, 0},
71250  {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
71251  {&__pyx_n_s_owning_proc, __pyx_k_owning_proc, sizeof(__pyx_k_owning_proc), 0, 0, 1, 1},
71252  {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1},
71253  {&__pyx_n_s_pRef, __pyx_k_pRef, sizeof(__pyx_k_pRef), 0, 0, 1, 1},
71254  {&__pyx_n_s_p_top, __pyx_k_p_top, sizeof(__pyx_k_p_top), 0, 0, 1, 1},
71255  {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1},
71256  {&__pyx_n_s_pad, __pyx_k_pad, sizeof(__pyx_k_pad), 0, 0, 1, 1},
71257  {&__pyx_n_s_past_utils, __pyx_k_past_utils, sizeof(__pyx_k_past_utils), 0, 0, 1, 1},
71258  {&__pyx_n_s_patchBoundaryNodes, __pyx_k_patchBoundaryNodes, sizeof(__pyx_k_patchBoundaryNodes), 0, 0, 1, 1},
71259  {&__pyx_n_s_ph, __pyx_k_ph, sizeof(__pyx_k_ph), 0, 0, 1, 1},
71260  {&__pyx_n_s_phi, __pyx_k_phi, sizeof(__pyx_k_phi), 0, 0, 1, 1},
71261  {&__pyx_n_s_phi_porous, __pyx_k_phi_porous, sizeof(__pyx_k_phi_porous), 0, 0, 1, 1},
71262  {&__pyx_n_s_phi_top, __pyx_k_phi_top, sizeof(__pyx_k_phi_top), 0, 0, 1, 1},
71263  {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
71264  {&__pyx_n_s_porosity, __pyx_k_porosity, sizeof(__pyx_k_porosity), 0, 0, 1, 1},
71265  {&__pyx_n_s_porous, __pyx_k_porous, sizeof(__pyx_k_porous), 0, 0, 1, 1},
71266  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
71267  {&__pyx_n_s_proteus, __pyx_k_proteus, sizeof(__pyx_k_proteus), 0, 0, 1, 1},
71268  {&__pyx_n_s_proteus_Profiling, __pyx_k_proteus_Profiling, sizeof(__pyx_k_proteus_Profiling), 0, 0, 1, 1},
71269  {&__pyx_n_s_proteus_ctransportCoefficients, __pyx_k_proteus_ctransportCoefficients, sizeof(__pyx_k_proteus_ctransportCoefficients), 0, 0, 1, 1},
71270  {&__pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_k_proteus_mprans_BoundaryCondition, sizeof(__pyx_k_proteus_mprans_BoundaryCondition), 0, 0, 1, 0},
71271  {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
71272  {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
71273  {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1},
71274  {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
71275  {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
71276  {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
71277  {&__pyx_n_s_pyx_unpickle_BC_RANS, __pyx_k_pyx_unpickle_BC_RANS, sizeof(__pyx_k_pyx_unpickle_BC_RANS), 0, 0, 1, 1},
71278  {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1},
71279  {&__pyx_n_s_pyx_unpickle_RelaxationZoneWav, __pyx_k_pyx_unpickle_RelaxationZoneWav, sizeof(__pyx_k_pyx_unpickle_RelaxationZoneWav), 0, 0, 1, 1},
71280  {&__pyx_n_s_pyx_unpickle___cppClass_WavesC, __pyx_k_pyx_unpickle___cppClass_WavesC, sizeof(__pyx_k_pyx_unpickle___cppClass_WavesC), 0, 0, 1, 1},
71281  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
71282  {&__pyx_n_s_q, __pyx_k_q, sizeof(__pyx_k_q), 0, 0, 1, 1},
71283  {&__pyx_n_s_q_phi, __pyx_k_q_phi, sizeof(__pyx_k_q_phi), 0, 0, 1, 1},
71284  {&__pyx_n_s_q_phi_porous, __pyx_k_q_phi_porous, sizeof(__pyx_k_q_phi_porous), 0, 0, 1, 1},
71285  {&__pyx_n_s_q_velocity_porous, __pyx_k_q_velocity_porous, sizeof(__pyx_k_q_velocity_porous), 0, 0, 1, 1},
71286  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
71287  {&__pyx_n_s_query, __pyx_k_query, sizeof(__pyx_k_query), 0, 0, 1, 1},
71288  {&__pyx_n_s_ramp, __pyx_k_ramp, sizeof(__pyx_k_ramp), 0, 0, 1, 1},
71289  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
71290  {&__pyx_n_s_rank, __pyx_k_rank, sizeof(__pyx_k_rank), 0, 0, 1, 1},
71291  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
71292  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
71293  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
71294  {&__pyx_n_s_refLevel, __pyx_k_refLevel, sizeof(__pyx_k_refLevel), 0, 0, 1, 1},
71295  {&__pyx_n_s_referenceElement, __pyx_k_referenceElement, sizeof(__pyx_k_referenceElement), 0, 0, 1, 1},
71296  {&__pyx_n_s_relax, __pyx_k_relax, sizeof(__pyx_k_relax), 0, 0, 1, 1},
71297  {&__pyx_n_s_reset, __pyx_k_reset, sizeof(__pyx_k_reset), 0, 0, 1, 1},
71298  {&__pyx_n_s_rho, __pyx_k_rho, sizeof(__pyx_k_rho), 0, 0, 1, 1},
71299  {&__pyx_n_s_rhoDown, __pyx_k_rhoDown, sizeof(__pyx_k_rhoDown), 0, 0, 1, 1},
71300  {&__pyx_n_s_rhoUp, __pyx_k_rhoUp, sizeof(__pyx_k_rhoUp), 0, 0, 1, 1},
71301  {&__pyx_n_s_rot_matrix, __pyx_k_rot_matrix, sizeof(__pyx_k_rot_matrix), 0, 0, 1, 1},
71302  {&__pyx_n_s_rotation_matrix, __pyx_k_rotation_matrix, sizeof(__pyx_k_rotation_matrix), 0, 0, 1, 1},
71303  {&__pyx_kp_u_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 1, 0, 0},
71304  {&__pyx_n_s_scipy, __pyx_k_scipy, sizeof(__pyx_k_scipy), 0, 0, 1, 1},
71305  {&__pyx_n_s_seaLevel, __pyx_k_seaLevel, sizeof(__pyx_k_seaLevel), 0, 0, 1, 1},
71306  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
71307  {&__pyx_n_s_setAtmosphere, __pyx_k_setAtmosphere, sizeof(__pyx_k_setAtmosphere), 0, 0, 1, 1},
71308  {&__pyx_n_s_setChMoveMesh, __pyx_k_setChMoveMesh, sizeof(__pyx_k_setChMoveMesh), 0, 0, 1, 1},
71309  {&__pyx_n_s_setChMoveMesh_locals_lambda, __pyx_k_setChMoveMesh_locals_lambda, sizeof(__pyx_k_setChMoveMesh_locals_lambda), 0, 0, 1, 1},
71310  {&__pyx_n_s_setConstantBC, __pyx_k_setConstantBC, sizeof(__pyx_k_setConstantBC), 0, 0, 1, 1},
71311  {&__pyx_n_s_setConstantInletVelocity, __pyx_k_setConstantInletVelocity, sizeof(__pyx_k_setConstantInletVelocity), 0, 0, 1, 1},
71312  {&__pyx_n_s_setConstantOutletPressure, __pyx_k_setConstantOutletPressure, sizeof(__pyx_k_setConstantOutletPressure), 0, 0, 1, 1},
71313  {&__pyx_n_s_setFixedNodes, __pyx_k_setFixedNodes, sizeof(__pyx_k_setFixedNodes), 0, 0, 1, 1},
71314  {&__pyx_n_s_setFreeSlip, __pyx_k_setFreeSlip, sizeof(__pyx_k_setFreeSlip), 0, 0, 1, 1},
71315  {&__pyx_n_s_setHydrostaticPressureOutletWith, __pyx_k_setHydrostaticPressureOutletWith, sizeof(__pyx_k_setHydrostaticPressureOutletWith), 0, 0, 1, 1},
71316  {&__pyx_n_s_setHydrostaticPressureOutletWith_2, __pyx_k_setHydrostaticPressureOutletWith_2, sizeof(__pyx_k_setHydrostaticPressureOutletWith_2), 0, 0, 1, 1},
71317  {&__pyx_n_s_setHydrostaticPressureOutletWith_3, __pyx_k_setHydrostaticPressureOutletWith_3, sizeof(__pyx_k_setHydrostaticPressureOutletWith_3), 0, 0, 1, 1},
71318  {&__pyx_n_s_setHydrostaticPressureOutletWith_4, __pyx_k_setHydrostaticPressureOutletWith_4, sizeof(__pyx_k_setHydrostaticPressureOutletWith_4), 0, 0, 1, 1},
71319  {&__pyx_n_s_setHydrostaticPressureOutletWith_5, __pyx_k_setHydrostaticPressureOutletWith_5, sizeof(__pyx_k_setHydrostaticPressureOutletWith_5), 0, 0, 1, 1},
71320  {&__pyx_n_s_setHydrostaticPressureOutletWith_6, __pyx_k_setHydrostaticPressureOutletWith_6, sizeof(__pyx_k_setHydrostaticPressureOutletWith_6), 0, 0, 1, 1},
71321  {&__pyx_n_s_setHydrostaticPressureOutletWith_7, __pyx_k_setHydrostaticPressureOutletWith_7, sizeof(__pyx_k_setHydrostaticPressureOutletWith_7), 0, 0, 1, 1},
71322  {&__pyx_n_s_setHydrostaticPressureOutletWith_8, __pyx_k_setHydrostaticPressureOutletWith_8, sizeof(__pyx_k_setHydrostaticPressureOutletWith_8), 0, 0, 1, 1},
71323  {&__pyx_n_s_setLinearBC, __pyx_k_setLinearBC, sizeof(__pyx_k_setLinearBC), 0, 0, 1, 1},
71324  {&__pyx_n_s_setLinearRamp, __pyx_k_setLinearRamp, sizeof(__pyx_k_setLinearRamp), 0, 0, 1, 1},
71325  {&__pyx_n_s_setMoveMesh, __pyx_k_setMoveMesh, sizeof(__pyx_k_setMoveMesh), 0, 0, 1, 1},
71326  {&__pyx_n_s_setMoveMesh_locals_lambda, __pyx_k_setMoveMesh_locals_lambda, sizeof(__pyx_k_setMoveMesh_locals_lambda), 0, 0, 1, 1},
71327  {&__pyx_n_s_setNoSlip, __pyx_k_setNoSlip, sizeof(__pyx_k_setNoSlip), 0, 0, 1, 1},
71328  {&__pyx_n_s_setNonMaterial, __pyx_k_setNonMaterial, sizeof(__pyx_k_setNonMaterial), 0, 0, 1, 1},
71329  {&__pyx_n_s_setRigidBodyMoveMesh, __pyx_k_setRigidBodyMoveMesh, sizeof(__pyx_k_setRigidBodyMoveMesh), 0, 0, 1, 1},
71330  {&__pyx_n_s_setRigidBodyMoveMesh_locals_get, __pyx_k_setRigidBodyMoveMesh_locals_get, sizeof(__pyx_k_setRigidBodyMoveMesh_locals_get), 0, 0, 1, 1},
71331  {&__pyx_n_s_setRigidBodyMoveMesh_locals_get_2, __pyx_k_setRigidBodyMoveMesh_locals_get_2, sizeof(__pyx_k_setRigidBodyMoveMesh_locals_get_2), 0, 0, 1, 1},
71332  {&__pyx_n_s_setTank, __pyx_k_setTank, sizeof(__pyx_k_setTank), 0, 0, 1, 1},
71333  {&__pyx_n_s_setTurbulentDirichlet, __pyx_k_setTurbulentDirichlet, sizeof(__pyx_k_setTurbulentDirichlet), 0, 0, 1, 1},
71334  {&__pyx_n_s_setTurbulentZeroGradient, __pyx_k_setTurbulentZeroGradient, sizeof(__pyx_k_setTurbulentZeroGradient), 0, 0, 1, 1},
71335  {&__pyx_n_s_setTwoPhaseVelocityInlet, __pyx_k_setTwoPhaseVelocityInlet, sizeof(__pyx_k_setTwoPhaseVelocityInlet), 0, 0, 1, 1},
71336  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals, __pyx_k_setTwoPhaseVelocityInlet_locals, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals), 0, 0, 1, 1},
71337  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_2, __pyx_k_setTwoPhaseVelocityInlet_locals_2, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_2), 0, 0, 1, 1},
71338  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_3, __pyx_k_setTwoPhaseVelocityInlet_locals_3, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_3), 0, 0, 1, 1},
71339  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_4, __pyx_k_setTwoPhaseVelocityInlet_locals_4, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_4), 0, 0, 1, 1},
71340  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_5, __pyx_k_setTwoPhaseVelocityInlet_locals_5, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_5), 0, 0, 1, 1},
71341  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_6, __pyx_k_setTwoPhaseVelocityInlet_locals_6, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_6), 0, 0, 1, 1},
71342  {&__pyx_n_s_setTwoPhaseVelocityInlet_locals_7, __pyx_k_setTwoPhaseVelocityInlet_locals_7, sizeof(__pyx_k_setTwoPhaseVelocityInlet_locals_7), 0, 0, 1, 1},
71343  {&__pyx_n_s_setUnsteadyTwoPhaseVelocityInlet, __pyx_k_setUnsteadyTwoPhaseVelocityInlet, sizeof(__pyx_k_setUnsteadyTwoPhaseVelocityInlet), 0, 0, 1, 1},
71344  {&__pyx_n_s_setUnsteadyTwoPhaseVelocityInlet_2, __pyx_k_setUnsteadyTwoPhaseVelocityInlet_2, sizeof(__pyx_k_setUnsteadyTwoPhaseVelocityInlet_2), 0, 0, 1, 1},
71345  {&__pyx_n_s_setWallFunction, __pyx_k_setWallFunction, sizeof(__pyx_k_setWallFunction), 0, 0, 1, 1},
71346  {&__pyx_n_s_setWallFunction_locals_lambda, __pyx_k_setWallFunction_locals_lambda, sizeof(__pyx_k_setWallFunction_locals_lambda), 0, 0, 1, 1},
71347  {&__pyx_n_s_setYplusNormalDirection, __pyx_k_setYplusNormalDirection, sizeof(__pyx_k_setYplusNormalDirection), 0, 0, 1, 1},
71348  {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
71349  {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
71350  {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
71351  {&__pyx_n_s_shearStress, __pyx_k_shearStress, sizeof(__pyx_k_shearStress), 0, 0, 1, 1},
71352  {&__pyx_n_s_sin, __pyx_k_sin, sizeof(__pyx_k_sin), 0, 0, 1, 1},
71353  {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
71354  {&__pyx_n_s_smoothedHeaviside, __pyx_k_smoothedHeaviside, sizeof(__pyx_k_smoothedHeaviside), 0, 0, 1, 1},
71355  {&__pyx_n_s_smoothedHeaviside_integral, __pyx_k_smoothedHeaviside_integral, sizeof(__pyx_k_smoothedHeaviside_integral), 0, 0, 1, 1},
71356  {&__pyx_n_s_smoothing, __pyx_k_smoothing, sizeof(__pyx_k_smoothing), 0, 0, 1, 1},
71357  {&__pyx_n_s_spatial, __pyx_k_spatial, sizeof(__pyx_k_spatial), 0, 0, 1, 1},
71358  {&__pyx_n_s_sqrt, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 0, 0, 1, 1},
71359  {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
71360  {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
71361  {&__pyx_n_s_statem1, __pyx_k_statem1, sizeof(__pyx_k_statem1), 0, 0, 1, 1},
71362  {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1},
71363  {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1},
71364  {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
71365  {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0},
71366  {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0},
71367  {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0},
71368  {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
71369  {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1},
71370  {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1},
71371  {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
71372  {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
71373  {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
71374  {&__pyx_n_s_tV, __pyx_k_tV, sizeof(__pyx_k_tV), 0, 0, 1, 1},
71375  {&__pyx_n_s_tanU, __pyx_k_tanU, sizeof(__pyx_k_tanU), 0, 0, 1, 1},
71376  {&__pyx_n_s_tangentialVelocity, __pyx_k_tangentialVelocity, sizeof(__pyx_k_tangentialVelocity), 0, 0, 1, 1},
71377  {&__pyx_n_s_tau_rho, __pyx_k_tau_rho, sizeof(__pyx_k_tau_rho), 0, 0, 1, 1},
71378  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
71379  {&__pyx_n_s_timeIntegration, __pyx_k_timeIntegration, sizeof(__pyx_k_timeIntegration), 0, 0, 1, 1},
71380  {&__pyx_n_s_tompi4py, __pyx_k_tompi4py, sizeof(__pyx_k_tompi4py), 0, 0, 1, 1},
71381  {&__pyx_n_s_tt, __pyx_k_tt, sizeof(__pyx_k_tt), 0, 0, 1, 1},
71382  {&__pyx_n_s_turbModel, __pyx_k_turbModel, sizeof(__pyx_k_turbModel), 0, 0, 1, 1},
71383  {&__pyx_n_s_u, __pyx_k_u, sizeof(__pyx_k_u), 0, 0, 1, 1},
71384  {&__pyx_n_s_u0, __pyx_k_u0, sizeof(__pyx_k_u0), 0, 0, 1, 1},
71385  {&__pyx_n_s_u1, __pyx_k_u1, sizeof(__pyx_k_u1), 0, 0, 1, 1},
71386  {&__pyx_n_s_u2, __pyx_k_u2, sizeof(__pyx_k_u2), 0, 0, 1, 1},
71387  {&__pyx_n_s_uDir, __pyx_k_uDir, sizeof(__pyx_k_uDir), 0, 0, 1, 1},
71388  {&__pyx_n_s_uInit, __pyx_k_uInit, sizeof(__pyx_k_uInit), 0, 0, 1, 1},
71389  {&__pyx_n_s_u_p, __pyx_k_u_p, sizeof(__pyx_k_u_p), 0, 0, 1, 1},
71390  {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0},
71391  {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0},
71392  {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1},
71393  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
71394  {&__pyx_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 0, 1, 1},
71395  {&__pyx_n_s_ut, __pyx_k_ut, sizeof(__pyx_k_ut), 0, 0, 1, 1},
71396  {&__pyx_n_s_utAbs, __pyx_k_utAbs, sizeof(__pyx_k_utAbs), 0, 0, 1, 1},
71397  {&__pyx_n_s_utStar, __pyx_k_utStar, sizeof(__pyx_k_utStar), 0, 0, 1, 1},
71398  {&__pyx_n_s_uu, __pyx_k_uu, sizeof(__pyx_k_uu), 0, 0, 1, 1},
71399  {&__pyx_n_s_ux_dirichlet, __pyx_k_ux_dirichlet, sizeof(__pyx_k_ux_dirichlet), 0, 0, 1, 1},
71400  {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1},
71401  {&__pyx_n_s_velocity_porous, __pyx_k_velocity_porous, sizeof(__pyx_k_velocity_porous), 0, 0, 1, 1},
71402  {&__pyx_n_s_vert_axis, __pyx_k_vert_axis, sizeof(__pyx_k_vert_axis), 0, 0, 1, 1},
71403  {&__pyx_n_s_vof, __pyx_k_vof, sizeof(__pyx_k_vof), 0, 0, 1, 1},
71404  {&__pyx_n_s_vof_air, __pyx_k_vof_air, sizeof(__pyx_k_vof_air), 0, 0, 1, 1},
71405  {&__pyx_n_s_vof_water, __pyx_k_vof_water, sizeof(__pyx_k_vof_water), 0, 0, 1, 1},
71406  {&__pyx_n_s_vv, __pyx_k_vv, sizeof(__pyx_k_vv), 0, 0, 1, 1},
71407  {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},
71408  {&__pyx_n_s_wall, __pyx_k_wall, sizeof(__pyx_k_wall), 0, 0, 1, 1},
71409  {&__pyx_n_s_water, __pyx_k_water, sizeof(__pyx_k_water), 0, 0, 1, 1},
71410  {&__pyx_n_s_waterLevel, __pyx_k_waterLevel, sizeof(__pyx_k_waterLevel), 0, 0, 1, 1},
71411  {&__pyx_n_s_wave, __pyx_k_wave, sizeof(__pyx_k_wave), 0, 0, 1, 1},
71412  {&__pyx_n_s_waves, __pyx_k_waves, sizeof(__pyx_k_waves), 0, 0, 1, 1},
71413  {&__pyx_n_s_wf, __pyx_k_wf, sizeof(__pyx_k_wf), 0, 0, 1, 1},
71414  {&__pyx_n_s_wind_speed, __pyx_k_wind_speed, sizeof(__pyx_k_wind_speed), 0, 0, 1, 1},
71415  {&__pyx_n_s_wt, __pyx_k_wt, sizeof(__pyx_k_wt), 0, 0, 1, 1},
71416  {&__pyx_n_s_ww, __pyx_k_ww, sizeof(__pyx_k_ww), 0, 0, 1, 1},
71417  {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
71418  {&__pyx_n_s_x_0, __pyx_k_x_0, sizeof(__pyx_k_x_0), 0, 0, 1, 1},
71419  {&__pyx_n_s_xi, __pyx_k_xi, sizeof(__pyx_k_xi), 0, 0, 1, 1},
71420  {&__pyx_n_s_xx, __pyx_k_xx, sizeof(__pyx_k_xx), 0, 0, 1, 1},
71421  {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
71422  {&__pyx_n_s_zone_type, __pyx_k_zone_type, sizeof(__pyx_k_zone_type), 0, 0, 1, 1},
71423  {&__pyx_n_s_zones, __pyx_k_zones, sizeof(__pyx_k_zones), 0, 0, 1, 1},
71424  {0, 0, 0, 0, 0, 0, 0}
71425 };
71426 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
71427  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 44, __pyx_L1_error)
71428  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error)
71429  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(3, 945, __pyx_L1_error)
71430  __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(1, 81, __pyx_L1_error)
71431  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 84, __pyx_L1_error)
71432  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 94, __pyx_L1_error)
71433  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 133, __pyx_L1_error)
71434  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 148, __pyx_L1_error)
71435  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 180, __pyx_L1_error)
71436  __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(1, 404, __pyx_L1_error)
71437  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 613, __pyx_L1_error)
71438  return 0;
71439  __pyx_L1_error:;
71440  return -1;
71441 }
71442 
71443 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
71444  __Pyx_RefNannyDeclarations
71445  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
71446 
71447  /* "mprans/BoundaryConditions.py":395
71448  * """
71449  * def get_DBC_h(i):
71450  * def DBC_h(x, t, n=None): # <<<<<<<<<<<<<<
71451  * x_0 = x - body.last_position
71452  * new_x_0 = np.dot(x_0, body.rotation_matrix)
71453  */
71454  __pyx_tuple__10 = PyTuple_Pack(6, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_x_0, __pyx_n_s_new_x_0, __pyx_n_s_hx); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 395, __pyx_L1_error)
71455  __Pyx_GOTREF(__pyx_tuple__10);
71456  __Pyx_GIVEREF(__pyx_tuple__10);
71457  __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_DBC_h, 395, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 395, __pyx_L1_error)
71458  __pyx_tuple__12 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 395, __pyx_L1_error)
71459  __Pyx_GOTREF(__pyx_tuple__12);
71460  __Pyx_GIVEREF(__pyx_tuple__12);
71461 
71462  /* "mprans/BoundaryConditions.py":394
71463  * without loosing their memory address
71464  * """
71465  * def get_DBC_h(i): # <<<<<<<<<<<<<<
71466  * def DBC_h(x, t, n=None):
71467  * x_0 = x - body.last_position
71468  */
71469  __pyx_tuple__14 = PyTuple_Pack(3, __pyx_n_s_i, __pyx_n_s_DBC_h, __pyx_n_s_DBC_h); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 394, __pyx_L1_error)
71470  __Pyx_GOTREF(__pyx_tuple__14);
71471  __Pyx_GIVEREF(__pyx_tuple__14);
71472  __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_DBC_h, 394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 394, __pyx_L1_error)
71473 
71474  /* "mprans/BoundaryConditions.py":407
71475  *
71476  * def setChMoveMesh(self, body):
71477  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t) # <<<<<<<<<<<<<<
71478  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
71479  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
71480  */
71481  __pyx_tuple__17 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 407, __pyx_L1_error)
71482  __Pyx_GOTREF(__pyx_tuple__17);
71483  __Pyx_GIVEREF(__pyx_tuple__17);
71484 
71485  /* "mprans/BoundaryConditions.py":408
71486  * def setChMoveMesh(self, body):
71487  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
71488  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t) # <<<<<<<<<<<<<<
71489  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
71490  *
71491  */
71492  __pyx_tuple__18 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 408, __pyx_L1_error)
71493  __Pyx_GOTREF(__pyx_tuple__18);
71494  __Pyx_GIVEREF(__pyx_tuple__18);
71495 
71496  /* "mprans/BoundaryConditions.py":409
71497  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
71498  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
71499  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t) # <<<<<<<<<<<<<<
71500  *
71501  * def setTurbulentDirichlet(self, kVal, dissipationVal):
71502  */
71503  __pyx_tuple__19 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 409, __pyx_L1_error)
71504  __Pyx_GOTREF(__pyx_tuple__19);
71505  __Pyx_GIVEREF(__pyx_tuple__19);
71506 
71507  /* "mprans/BoundaryConditions.py":472
71508  * self.BC_type = "Wall function"
71509  * self.dissipation_diffusive.resetBC()
71510  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n) # <<<<<<<<<<<<<<
71511  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
71512  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
71513  */
71514  __pyx_tuple__23 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 472, __pyx_L1_error)
71515  __Pyx_GOTREF(__pyx_tuple__23);
71516  __Pyx_GIVEREF(__pyx_tuple__23);
71517 
71518  /* "mprans/BoundaryConditions.py":473
71519  * self.dissipation_diffusive.resetBC()
71520  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
71521  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
71522  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
71523  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
71524  */
71525  __pyx_tuple__24 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 473, __pyx_L1_error)
71526  __Pyx_GOTREF(__pyx_tuple__24);
71527  __Pyx_GIVEREF(__pyx_tuple__24);
71528 
71529  /* "mprans/BoundaryConditions.py":474
71530  * self.k_dirichlet.uOfXT = lambda x, t, n=None: wf.get_k_dirichlet(x, t, n)
71531  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
71532  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
71533  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
71534  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
71535  */
71536  __pyx_tuple__25 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 474, __pyx_L1_error)
71537  __Pyx_GOTREF(__pyx_tuple__25);
71538  __Pyx_GIVEREF(__pyx_tuple__25);
71539 
71540  /* "mprans/BoundaryConditions.py":475
71541  * self.dissipation_dirichlet.uOfXT = lambda x, t, n=None: wf.get_dissipation_dirichlet(x, t ,n)
71542  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
71543  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
71544  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n)
71545  * """
71546  */
71547  __pyx_tuple__26 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 475, __pyx_L1_error)
71548  __Pyx_GOTREF(__pyx_tuple__26);
71549  __Pyx_GIVEREF(__pyx_tuple__26);
71550 
71551  /* "mprans/BoundaryConditions.py":476
71552  * self.u_dirichlet.uOfXT = lambda x, t, n=None: wf.get_u_dirichlet(x, t ,n)
71553  * self.v_dirichlet.uOfXT = lambda x, t, n=None: wf.get_v_dirichlet(x, t ,n)
71554  * self.w_dirichlet.uOfXT = lambda x, t, n=None: wf.get_w_dirichlet(x, t ,n) # <<<<<<<<<<<<<<
71555  * """
71556  * self.dissipation_dirichlet.uOfXT = lambda x, t: wf.get_dissipation_dirichlet(x, t)
71557  */
71558  __pyx_tuple__27 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 476, __pyx_L1_error)
71559  __Pyx_GOTREF(__pyx_tuple__27);
71560  __Pyx_GIVEREF(__pyx_tuple__27);
71561 
71562  /* "mprans/BoundaryConditions.py":494
71563  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
71564  * """
71565  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
71566  * """
71567  * Sets boundary conditions for moving the mesh with a rigid body
71568  */
71569  __pyx_tuple__28 = PyTuple_Pack(3, __pyx_float_0_, __pyx_float_0_, __pyx_float_0_); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 494, __pyx_L1_error)
71570  __Pyx_GOTREF(__pyx_tuple__28);
71571  __Pyx_GIVEREF(__pyx_tuple__28);
71572 
71573  /* "mprans/BoundaryConditions.py":518
71574  * self.body_python_last_pos = last_pos
71575  * self.body_python_h = h
71576  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t) # <<<<<<<<<<<<<<
71577  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
71578  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
71579  */
71580  __pyx_tuple__30 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 518, __pyx_L1_error)
71581  __Pyx_GOTREF(__pyx_tuple__30);
71582  __Pyx_GIVEREF(__pyx_tuple__30);
71583 
71584  /* "mprans/BoundaryConditions.py":519
71585  * self.body_python_h = h
71586  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
71587  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t) # <<<<<<<<<<<<<<
71588  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
71589  *
71590  */
71591  __pyx_tuple__31 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 519, __pyx_L1_error)
71592  __Pyx_GOTREF(__pyx_tuple__31);
71593  __Pyx_GIVEREF(__pyx_tuple__31);
71594 
71595  /* "mprans/BoundaryConditions.py":520
71596  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hx(x, t)
71597  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hy(x, t)
71598  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t) # <<<<<<<<<<<<<<
71599  *
71600  * def __cpp_MoveMesh_h(self, x, t):
71601  */
71602  __pyx_tuple__32 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 520, __pyx_L1_error)
71603  __Pyx_GOTREF(__pyx_tuple__32);
71604  __Pyx_GIVEREF(__pyx_tuple__32);
71605 
71606  /* "mprans/BoundaryConditions.py":583
71607  * wind_speed=wind_speed, smoothing=smoothing, vof_water=vof_water, vof_air=vof_air)
71608  *
71609  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t) # <<<<<<<<<<<<<<
71610  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
71611  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
71612  */
71613  __pyx_tuple__38 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 583, __pyx_L1_error)
71614  __Pyx_GOTREF(__pyx_tuple__38);
71615  __Pyx_GIVEREF(__pyx_tuple__38);
71616 
71617  /* "mprans/BoundaryConditions.py":584
71618  *
71619  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
71620  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t) # <<<<<<<<<<<<<<
71621  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
71622  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
71623  */
71624  __pyx_tuple__39 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 584, __pyx_L1_error)
71625  __Pyx_GOTREF(__pyx_tuple__39);
71626  __Pyx_GIVEREF(__pyx_tuple__39);
71627 
71628  /* "mprans/BoundaryConditions.py":585
71629  * self.u_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet(x, t)
71630  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
71631  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t) # <<<<<<<<<<<<<<
71632  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
71633  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
71634  */
71635  __pyx_tuple__40 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 585, __pyx_L1_error)
71636  __Pyx_GOTREF(__pyx_tuple__40);
71637  __Pyx_GIVEREF(__pyx_tuple__40);
71638 
71639  /* "mprans/BoundaryConditions.py":586
71640  * self.v_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet(x, t)
71641  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
71642  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t) # <<<<<<<<<<<<<<
71643  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
71644  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
71645  */
71646  __pyx_tuple__41 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 586, __pyx_L1_error)
71647  __Pyx_GOTREF(__pyx_tuple__41);
71648  __Pyx_GIVEREF(__pyx_tuple__41);
71649 
71650  /* "mprans/BoundaryConditions.py":587
71651  * self.w_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet(x, t)
71652  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
71653  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t) # <<<<<<<<<<<<<<
71654  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
71655  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
71656  */
71657  __pyx_tuple__42 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 587, __pyx_L1_error)
71658  __Pyx_GOTREF(__pyx_tuple__42);
71659  __Pyx_GIVEREF(__pyx_tuple__42);
71660 
71661  /* "mprans/BoundaryConditions.py":588
71662  * self.phi_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet(x, t)
71663  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
71664  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
71665  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
71666  *
71667  */
71668  __pyx_tuple__43 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 588, __pyx_L1_error)
71669  __Pyx_GOTREF(__pyx_tuple__43);
71670  __Pyx_GIVEREF(__pyx_tuple__43);
71671 
71672  /* "mprans/BoundaryConditions.py":589
71673  * self.vof_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet(x, t)
71674  * self.p_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)
71675  * self.pInc_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t) # <<<<<<<<<<<<<<
71676  *
71677  * self.pInc_diffusive.setConstantBC(0.0)
71678  */
71679  __pyx_tuple__44 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 589, __pyx_L1_error)
71680  __Pyx_GOTREF(__pyx_tuple__44);
71681  __Pyx_GIVEREF(__pyx_tuple__44);
71682 
71683  /* "mprans/BoundaryConditions.py":592
71684  *
71685  * self.pInc_diffusive.setConstantBC(0.0)
71686  * self.pInit_advective.uOfXT = lambda x, t, n=None: self.__cpp_UnsteadyTwoPhaseVelocityInlet_p_advective(x, t)#setConstantBC(0.0) # <<<<<<<<<<<<<<
71687  * self.vos_dirichlet.setConstantBC(0.0)
71688  * self.us_dirichlet.setConstantBC(0.0)
71689  */
71690  __pyx_tuple__45 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 592, __pyx_L1_error)
71691  __Pyx_GOTREF(__pyx_tuple__45);
71692  __Pyx_GIVEREF(__pyx_tuple__45);
71693 
71694  /* "mprans/BoundaryConditions.py":697
71695  *
71696  * def get_inlet_ux_dirichlet(i):
71697  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71698  * phi = x[vert_axis] - waterLevel
71699  * if phi <= 0.:
71700  */
71701  __pyx_tuple__46 = PyTuple_Pack(6, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H, __pyx_n_s_u); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 697, __pyx_L1_error)
71702  __Pyx_GOTREF(__pyx_tuple__46);
71703  __Pyx_GIVEREF(__pyx_tuple__46);
71704  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_ux_dirichlet, 697, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 697, __pyx_L1_error)
71705  __pyx_tuple__48 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 697, __pyx_L1_error)
71706  __Pyx_GOTREF(__pyx_tuple__48);
71707  __Pyx_GIVEREF(__pyx_tuple__48);
71708 
71709  /* "mprans/BoundaryConditions.py":696
71710  * Uwind = np.array(Uwind)
71711  *
71712  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
71713  * def ux_dirichlet(x, t, n=None):
71714  * phi = x[vert_axis] - waterLevel
71715  */
71716  __pyx_tuple__50 = PyTuple_Pack(3, __pyx_n_s_i, __pyx_n_s_ux_dirichlet, __pyx_n_s_ux_dirichlet); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 696, __pyx_L1_error)
71717  __Pyx_GOTREF(__pyx_tuple__50);
71718  __Pyx_GIVEREF(__pyx_tuple__50);
71719  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_inlet_ux_dirichlet, 696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 696, __pyx_L1_error)
71720 
71721  /* "mprans/BoundaryConditions.py":709
71722  * return ux_dirichlet
71723  *
71724  * def inlet_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71725  * phi = x[vert_axis] - waterLevel
71726  * return phi
71727  */
71728  __pyx_tuple__52 = PyTuple_Pack(4, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 709, __pyx_L1_error)
71729  __Pyx_GOTREF(__pyx_tuple__52);
71730  __Pyx_GIVEREF(__pyx_tuple__52);
71731  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_phi_dirichlet, 709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 709, __pyx_L1_error)
71732  __pyx_tuple__54 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 709, __pyx_L1_error)
71733  __Pyx_GOTREF(__pyx_tuple__54);
71734  __Pyx_GIVEREF(__pyx_tuple__54);
71735 
71736  /* "mprans/BoundaryConditions.py":713
71737  * return phi
71738  *
71739  * def inlet_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71740  * phi = x[vert_axis] - waterLevel
71741  * if phi >= smoothing:
71742  */
71743  __pyx_tuple__55 = PyTuple_Pack(6, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H, __pyx_n_s_vof); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 713, __pyx_L1_error)
71744  __Pyx_GOTREF(__pyx_tuple__55);
71745  __Pyx_GIVEREF(__pyx_tuple__55);
71746  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_vof_dirichlet, 713, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 713, __pyx_L1_error)
71747  __pyx_tuple__57 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 713, __pyx_L1_error)
71748  __Pyx_GOTREF(__pyx_tuple__57);
71749  __Pyx_GIVEREF(__pyx_tuple__57);
71750 
71751  /* "mprans/BoundaryConditions.py":724
71752  * return vof
71753  *
71754  * def inlet_p_advective(x, t, n=None): # <<<<<<<<<<<<<<
71755  * b_or = self._b_or
71756  * phi = x[vert_axis] - waterLevel
71757  */
71758  __pyx_tuple__58 = PyTuple_Pack(8, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_b_or, __pyx_n_s_phi, __pyx_n_s_H, __pyx_n_s_u, __pyx_n_s_u_p); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 724, __pyx_L1_error)
71759  __Pyx_GOTREF(__pyx_tuple__58);
71760  __Pyx_GIVEREF(__pyx_tuple__58);
71761  __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_p_advective, 724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 724, __pyx_L1_error)
71762  __pyx_tuple__60 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 724, __pyx_L1_error)
71763  __Pyx_GOTREF(__pyx_tuple__60);
71764  __Pyx_GIVEREF(__pyx_tuple__60);
71765 
71766  /* "mprans/BoundaryConditions.py":739
71767  * return -u_p
71768  *
71769  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71770  * phi = x[vert_axis] - waterLevel
71771  * if phi <= 0.:
71772  */
71773  __pyx_tuple__61 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 739, __pyx_L1_error)
71774  __Pyx_GOTREF(__pyx_tuple__61);
71775  __Pyx_GIVEREF(__pyx_tuple__61);
71776  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_k_dirichlet, 739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 739, __pyx_L1_error)
71777  __pyx_tuple__63 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 739, __pyx_L1_error)
71778  __Pyx_GOTREF(__pyx_tuple__63);
71779  __Pyx_GIVEREF(__pyx_tuple__63);
71780 
71781  /* "mprans/BoundaryConditions.py":749
71782  * return H * kInflowAir + (1 - H) * kInflow
71783  *
71784  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71785  * phi = x[vert_axis] - waterLevel
71786  * if phi <= 0.:
71787  */
71788  __pyx_tuple__64 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 749, __pyx_L1_error)
71789  __Pyx_GOTREF(__pyx_tuple__64);
71790  __Pyx_GIVEREF(__pyx_tuple__64);
71791  __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_dissipation_dirichlet, 749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 749, __pyx_L1_error)
71792  __pyx_tuple__66 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 749, __pyx_L1_error)
71793  __Pyx_GOTREF(__pyx_tuple__66);
71794  __Pyx_GIVEREF(__pyx_tuple__66);
71795 
71796  /* "mprans/BoundaryConditions.py":879
71797  * if U is not None:
71798  * def get_inlet_ux_dirichlet(i):
71799  * def ux_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71800  * phi = x[vert_axis] - seaLevel
71801  * if phi <= 0.:
71802  */
71803  __pyx_tuple__67 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(0, 879, __pyx_L1_error)
71804  __Pyx_GOTREF(__pyx_tuple__67);
71805  __Pyx_GIVEREF(__pyx_tuple__67);
71806  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_ux_dirichlet, 879, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 879, __pyx_L1_error)
71807  __pyx_tuple__69 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 879, __pyx_L1_error)
71808  __Pyx_GOTREF(__pyx_tuple__69);
71809  __Pyx_GIVEREF(__pyx_tuple__69);
71810 
71811  /* "mprans/BoundaryConditions.py":801
71812  * vert_axis = self.nd - 1
71813  *
71814  * def hydrostaticPressureOutletWithDepth_p_dirichlet(x, t , n=None): # <<<<<<<<<<<<<<
71815  * p_top = pRef
71816  * phi_top = refLevel - seaLevel
71817  */
71818  __pyx_tuple__71 = PyTuple_Pack(6, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_p_top, __pyx_n_s_phi_top, __pyx_n_s_phi); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 801, __pyx_L1_error)
71819  __Pyx_GOTREF(__pyx_tuple__71);
71820  __Pyx_GIVEREF(__pyx_tuple__71);
71821  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_hydrostaticPressureOutletWithDep, 801, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 801, __pyx_L1_error)
71822  __pyx_tuple__73 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 801, __pyx_L1_error)
71823  __Pyx_GOTREF(__pyx_tuple__73);
71824  __Pyx_GIVEREF(__pyx_tuple__73);
71825 
71826  /* "mprans/BoundaryConditions.py":811
71827  * smoothedHeaviside_integral(smoothing, phi)))
71828  *
71829  * def hydrostaticPressureOutletWithDepth_phi_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71830  * phi = x[vert_axis] - seaLevel
71831  * return phi
71832  */
71833  __pyx_tuple__74 = PyTuple_Pack(4, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(0, 811, __pyx_L1_error)
71834  __Pyx_GOTREF(__pyx_tuple__74);
71835  __Pyx_GIVEREF(__pyx_tuple__74);
71836  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_hydrostaticPressureOutletWithDep_2, 811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 811, __pyx_L1_error)
71837  __pyx_tuple__76 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(0, 811, __pyx_L1_error)
71838  __Pyx_GOTREF(__pyx_tuple__76);
71839  __Pyx_GIVEREF(__pyx_tuple__76);
71840 
71841  /* "mprans/BoundaryConditions.py":815
71842  * return phi
71843  *
71844  * def hydrostaticPressureOutletWithDepth_vof_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71845  * phi = x[vert_axis] - seaLevel
71846  * if phi >= smoothing:
71847  */
71848  __pyx_tuple__77 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 815, __pyx_L1_error)
71849  __Pyx_GOTREF(__pyx_tuple__77);
71850  __Pyx_GIVEREF(__pyx_tuple__77);
71851  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_hydrostaticPressureOutletWithDep_3, 815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 815, __pyx_L1_error)
71852  __pyx_tuple__79 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 815, __pyx_L1_error)
71853  __Pyx_GOTREF(__pyx_tuple__79);
71854  __Pyx_GIVEREF(__pyx_tuple__79);
71855 
71856  /* "mprans/BoundaryConditions.py":825
71857  * return H * air + (1 - H) * water
71858  *
71859  * def inlet_k_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71860  * phi = x[vert_axis] - seaLevel
71861  * if phi <= 0.:
71862  */
71863  __pyx_tuple__80 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(0, 825, __pyx_L1_error)
71864  __Pyx_GOTREF(__pyx_tuple__80);
71865  __Pyx_GIVEREF(__pyx_tuple__80);
71866  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_k_dirichlet, 825, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 825, __pyx_L1_error)
71867  __pyx_tuple__82 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(0, 825, __pyx_L1_error)
71868  __Pyx_GOTREF(__pyx_tuple__82);
71869  __Pyx_GIVEREF(__pyx_tuple__82);
71870 
71871  /* "mprans/BoundaryConditions.py":835
71872  * return H * kInflowAir + (1 - H) * kInflow
71873  *
71874  * def inlet_dissipation_dirichlet(x, t, n=None): # <<<<<<<<<<<<<<
71875  * phi = x[vert_axis] - seaLevel
71876  * if phi <= 0.:
71877  */
71878  __pyx_tuple__83 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_phi, __pyx_n_s_H); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 835, __pyx_L1_error)
71879  __Pyx_GOTREF(__pyx_tuple__83);
71880  __Pyx_GIVEREF(__pyx_tuple__83);
71881  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_inlet_dissipation_dirichlet, 835, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 835, __pyx_L1_error)
71882  __pyx_tuple__85 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 835, __pyx_L1_error)
71883  __Pyx_GOTREF(__pyx_tuple__85);
71884  __Pyx_GIVEREF(__pyx_tuple__85);
71885 
71886  /* "mprans/BoundaryConditions.py":878
71887  * self.dissipation_diffusive.setConstantBC(0.)
71888  * if U is not None:
71889  * def get_inlet_ux_dirichlet(i): # <<<<<<<<<<<<<<
71890  * def ux_dirichlet(x, t, n=None):
71891  * phi = x[vert_axis] - seaLevel
71892  */
71893  __pyx_tuple__86 = PyTuple_Pack(3, __pyx_n_s_i, __pyx_n_s_ux_dirichlet, __pyx_n_s_ux_dirichlet); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(0, 878, __pyx_L1_error)
71894  __Pyx_GOTREF(__pyx_tuple__86);
71895  __Pyx_GIVEREF(__pyx_tuple__86);
71896  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_inlet_ux_dirichlet, 878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(0, 878, __pyx_L1_error)
71897 
71898  /* "(tree fragment)":2
71899  * def __reduce_cython__(self):
71900  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
71901  * def __setstate_cython__(self, __pyx_state):
71902  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
71903  */
71904  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(1, 2, __pyx_L1_error)
71905  __Pyx_GOTREF(__pyx_tuple__96);
71906  __Pyx_GIVEREF(__pyx_tuple__96);
71907 
71908  /* "(tree fragment)":4
71909  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
71910  * def __setstate_cython__(self, __pyx_state):
71911  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
71912  */
71913  __pyx_tuple__98 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(1, 4, __pyx_L1_error)
71914  __Pyx_GOTREF(__pyx_tuple__98);
71915  __Pyx_GIVEREF(__pyx_tuple__98);
71916 
71917  /* "mprans/BoundaryConditions.py":1433
71918  * # near wall point
71919  * if len(n) < 3:
71920  * nP = (relax * self.Y * (-n[:2])) + x[:2] # <<<<<<<<<<<<<<
71921  * else:
71922  * nP = (relax * self.Y * (-n)) + x
71923  */
71924  __pyx_slice__117 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__117)) __PYX_ERR(0, 1433, __pyx_L1_error)
71925  __Pyx_GOTREF(__pyx_slice__117);
71926  __Pyx_GIVEREF(__pyx_slice__117);
71927 
71928  /* "(tree fragment)":4
71929  * cdef object __pyx_PickleError
71930  * cdef object __pyx_result
71931  * if __pyx_checksum not in (0xb56ce2c, 0x5b1bad8, 0xceba269): # <<<<<<<<<<<<<<
71932  * from pickle import PickleError as __pyx_PickleError
71933  * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb56ce2c, 0x5b1bad8, 0xceba269) = (BC_type, Shape, _b_or, body, body_python_h, body_python_last_pos, body_python_rot_matrix, clsvof_advective, clsvof_diffusive, clsvof_dirichlet, ct, dissipation_advective, dissipation_diffusive, dissipation_dirichlet, f, hx_dirichlet, hy_dirichlet, hz_dirichlet, k_advective, k_diffusive, k_dirichlet, name, nd, pAddedMass_dirichlet, pInc_advective, pInc_diffusive, pInc_dirichlet, pInit_advective, pInit_diffusive, pInit_dirichlet, p_advective, p_dirichlet, phi_dirichlet, u_advective, u_diffusive, u_dirichlet, u_stress, us_advective, us_diffusive, us_dirichlet, v_advective, v_diffusive, v_dirichlet, v_stress, vof_advective, vof_dirichlet, vos_advective, vos_dirichlet, vs_advective, vs_diffusive, vs_dirichlet, w_advective, w_diffusive, w_dirichlet, w_stress, waves, wind_speed, ws_advective, ws_diffusive, ws_dirichlet, zero_array))" % __pyx_checksum)
71934  */
71935  __pyx_tuple__138 = PyTuple_Pack(3, __pyx_int_190238252, __pyx_int_95533784, __pyx_int_216769129); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(1, 4, __pyx_L1_error)
71936  __Pyx_GOTREF(__pyx_tuple__138);
71937  __Pyx_GIVEREF(__pyx_tuple__138);
71938  __pyx_tuple__140 = PyTuple_Pack(3, __pyx_int_3281892, __pyx_int_207031348, __pyx_int_249493883); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(1, 4, __pyx_L1_error)
71939  __Pyx_GOTREF(__pyx_tuple__140);
71940  __Pyx_GIVEREF(__pyx_tuple__140);
71941  __pyx_tuple__142 = PyTuple_Pack(3, __pyx_int_24898426, __pyx_int_161222453, __pyx_int_37384334); if (unlikely(!__pyx_tuple__142)) __PYX_ERR(1, 4, __pyx_L1_error)
71942  __Pyx_GOTREF(__pyx_tuple__142);
71943  __Pyx_GIVEREF(__pyx_tuple__142);
71944 
71945  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":945
71946  * __pyx_import_array()
71947  * except Exception:
71948  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
71949  *
71950  * cdef inline int import_umath() except -1:
71951  */
71952  __pyx_tuple__143 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(3, 945, __pyx_L1_error)
71953  __Pyx_GOTREF(__pyx_tuple__143);
71954  __Pyx_GIVEREF(__pyx_tuple__143);
71955 
71956  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":951
71957  * _import_umath()
71958  * except Exception:
71959  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
71960  *
71961  * cdef inline int import_ufunc() except -1:
71962  */
71963  __pyx_tuple__144 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__144)) __PYX_ERR(3, 951, __pyx_L1_error)
71964  __Pyx_GOTREF(__pyx_tuple__144);
71965  __Pyx_GIVEREF(__pyx_tuple__144);
71966 
71967  /* "View.MemoryView":133
71968  *
71969  * if not self.ndim:
71970  * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<<
71971  *
71972  * if itemsize <= 0:
71973  */
71974  __pyx_tuple__145 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(1, 133, __pyx_L1_error)
71975  __Pyx_GOTREF(__pyx_tuple__145);
71976  __Pyx_GIVEREF(__pyx_tuple__145);
71977 
71978  /* "View.MemoryView":136
71979  *
71980  * if itemsize <= 0:
71981  * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<<
71982  *
71983  * if not isinstance(format, bytes):
71984  */
71985  __pyx_tuple__146 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__146)) __PYX_ERR(1, 136, __pyx_L1_error)
71986  __Pyx_GOTREF(__pyx_tuple__146);
71987  __Pyx_GIVEREF(__pyx_tuple__146);
71988 
71989  /* "View.MemoryView":148
71990  *
71991  * if not self._shape:
71992  * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<<
71993  *
71994  *
71995  */
71996  __pyx_tuple__147 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(1, 148, __pyx_L1_error)
71997  __Pyx_GOTREF(__pyx_tuple__147);
71998  __Pyx_GIVEREF(__pyx_tuple__147);
71999 
72000  /* "View.MemoryView":176
72001  * self.data = <char *>malloc(self.len)
72002  * if not self.data:
72003  * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<<
72004  *
72005  * if self.dtype_is_object:
72006  */
72007  __pyx_tuple__148 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(1, 176, __pyx_L1_error)
72008  __Pyx_GOTREF(__pyx_tuple__148);
72009  __Pyx_GIVEREF(__pyx_tuple__148);
72010 
72011  /* "View.MemoryView":192
72012  * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
72013  * if not (flags & bufmode):
72014  * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<<
72015  * info.buf = self.data
72016  * info.len = self.len
72017  */
72018  __pyx_tuple__149 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(1, 192, __pyx_L1_error)
72019  __Pyx_GOTREF(__pyx_tuple__149);
72020  __Pyx_GIVEREF(__pyx_tuple__149);
72021 
72022  /* "(tree fragment)":2
72023  * def __reduce_cython__(self):
72024  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72025  * def __setstate_cython__(self, __pyx_state):
72026  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72027  */
72028  __pyx_tuple__150 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(1, 2, __pyx_L1_error)
72029  __Pyx_GOTREF(__pyx_tuple__150);
72030  __Pyx_GIVEREF(__pyx_tuple__150);
72031 
72032  /* "(tree fragment)":4
72033  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72034  * def __setstate_cython__(self, __pyx_state):
72035  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72036  */
72037  __pyx_tuple__151 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(1, 4, __pyx_L1_error)
72038  __Pyx_GOTREF(__pyx_tuple__151);
72039  __Pyx_GIVEREF(__pyx_tuple__151);
72040 
72041  /* "View.MemoryView":418
72042  * def __setitem__(memoryview self, object index, object value):
72043  * if self.view.readonly:
72044  * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<<
72045  *
72046  * have_slices, index = _unellipsify(index, self.view.ndim)
72047  */
72048  __pyx_tuple__152 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__152)) __PYX_ERR(1, 418, __pyx_L1_error)
72049  __Pyx_GOTREF(__pyx_tuple__152);
72050  __Pyx_GIVEREF(__pyx_tuple__152);
72051 
72052  /* "View.MemoryView":495
72053  * result = struct.unpack(self.view.format, bytesitem)
72054  * except struct.error:
72055  * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<<
72056  * else:
72057  * if len(self.view.format) == 1:
72058  */
72059  __pyx_tuple__153 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(1, 495, __pyx_L1_error)
72060  __Pyx_GOTREF(__pyx_tuple__153);
72061  __Pyx_GIVEREF(__pyx_tuple__153);
72062 
72063  /* "View.MemoryView":520
72064  * def __getbuffer__(self, Py_buffer *info, int flags):
72065  * if flags & PyBUF_WRITABLE and self.view.readonly:
72066  * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<<
72067  *
72068  * if flags & PyBUF_ND:
72069  */
72070  __pyx_tuple__154 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(1, 520, __pyx_L1_error)
72071  __Pyx_GOTREF(__pyx_tuple__154);
72072  __Pyx_GIVEREF(__pyx_tuple__154);
72073 
72074  /* "View.MemoryView":570
72075  * if self.view.strides == NULL:
72076  *
72077  * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<<
72078  *
72079  * return tuple([stride for stride in self.view.strides[:self.view.ndim]])
72080  */
72081  __pyx_tuple__155 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(1, 570, __pyx_L1_error)
72082  __Pyx_GOTREF(__pyx_tuple__155);
72083  __Pyx_GIVEREF(__pyx_tuple__155);
72084 
72085  /* "View.MemoryView":577
72086  * def suboffsets(self):
72087  * if self.view.suboffsets == NULL:
72088  * return (-1,) * self.view.ndim # <<<<<<<<<<<<<<
72089  *
72090  * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
72091  */
72092  __pyx_tuple__156 = PyTuple_New(1); if (unlikely(!__pyx_tuple__156)) __PYX_ERR(1, 577, __pyx_L1_error)
72093  __Pyx_GOTREF(__pyx_tuple__156);
72094  __Pyx_INCREF(__pyx_int_neg_1);
72095  __Pyx_GIVEREF(__pyx_int_neg_1);
72096  PyTuple_SET_ITEM(__pyx_tuple__156, 0, __pyx_int_neg_1);
72097  __Pyx_GIVEREF(__pyx_tuple__156);
72098 
72099  /* "(tree fragment)":2
72100  * def __reduce_cython__(self):
72101  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72102  * def __setstate_cython__(self, __pyx_state):
72103  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72104  */
72105  __pyx_tuple__157 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(1, 2, __pyx_L1_error)
72106  __Pyx_GOTREF(__pyx_tuple__157);
72107  __Pyx_GIVEREF(__pyx_tuple__157);
72108 
72109  /* "(tree fragment)":4
72110  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72111  * def __setstate_cython__(self, __pyx_state):
72112  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72113  */
72114  __pyx_tuple__158 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(1, 4, __pyx_L1_error)
72115  __Pyx_GOTREF(__pyx_tuple__158);
72116  __Pyx_GIVEREF(__pyx_tuple__158);
72117 
72118  /* "View.MemoryView":682
72119  * if item is Ellipsis:
72120  * if not seen_ellipsis:
72121  * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<<
72122  * seen_ellipsis = True
72123  * else:
72124  */
72125  __pyx_slice__159 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__159)) __PYX_ERR(1, 682, __pyx_L1_error)
72126  __Pyx_GOTREF(__pyx_slice__159);
72127  __Pyx_GIVEREF(__pyx_slice__159);
72128 
72129  /* "View.MemoryView":703
72130  * for suboffset in suboffsets[:ndim]:
72131  * if suboffset >= 0:
72132  * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<<
72133  *
72134  *
72135  */
72136  __pyx_tuple__160 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(1, 703, __pyx_L1_error)
72137  __Pyx_GOTREF(__pyx_tuple__160);
72138  __Pyx_GIVEREF(__pyx_tuple__160);
72139 
72140  /* "(tree fragment)":2
72141  * def __reduce_cython__(self):
72142  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72143  * def __setstate_cython__(self, __pyx_state):
72144  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72145  */
72146  __pyx_tuple__161 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(1, 2, __pyx_L1_error)
72147  __Pyx_GOTREF(__pyx_tuple__161);
72148  __Pyx_GIVEREF(__pyx_tuple__161);
72149 
72150  /* "(tree fragment)":4
72151  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72152  * def __setstate_cython__(self, __pyx_state):
72153  * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<<
72154  */
72155  __pyx_tuple__162 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__162)) __PYX_ERR(1, 4, __pyx_L1_error)
72156  __Pyx_GOTREF(__pyx_tuple__162);
72157  __Pyx_GIVEREF(__pyx_tuple__162);
72158  __pyx_tuple__164 = PyTuple_Pack(3, __pyx_int_184977713, __pyx_int_136983863, __pyx_int_112105877); if (unlikely(!__pyx_tuple__164)) __PYX_ERR(1, 4, __pyx_L1_error)
72159  __Pyx_GOTREF(__pyx_tuple__164);
72160  __Pyx_GIVEREF(__pyx_tuple__164);
72161 
72162  /* "mprans/BoundaryConditions.py":103
72163  * self.clsvof_diffusive = BoundaryCondition()
72164  *
72165  * def reset(self): # <<<<<<<<<<<<<<
72166  * """
72167  * Resets all BoundaryCondtion functions to None, apart from the BCs
72168  */
72169  __pyx_tuple__170 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(0, 103, __pyx_L1_error)
72170  __Pyx_GOTREF(__pyx_tuple__170);
72171  __Pyx_GIVEREF(__pyx_tuple__170);
72172  __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_reset, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 103, __pyx_L1_error)
72173 
72174  /* "mprans/BoundaryConditions.py":150
72175  * self.clsvof_diffusive.resetBC()
72176  *
72177  * def setNonMaterial(self): # <<<<<<<<<<<<<<
72178  * """
72179  * Sets non-material boundary conditions (diffusive flux and advective vof
72180  */
72181  __pyx_tuple__171 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(0, 150, __pyx_L1_error)
72182  __Pyx_GOTREF(__pyx_tuple__171);
72183  __Pyx_GIVEREF(__pyx_tuple__171);
72184  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setNonMaterial, 150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 150, __pyx_L1_error)
72185 
72186  /* "mprans/BoundaryConditions.py":173
72187  * self.pInc_diffusive.setConstantBC(0.)
72188  *
72189  * def setTank(self, b_or=None): # <<<<<<<<<<<<<<
72190  * if b_or is None:
72191  * assert self._b_or is not None, 'Boundary orientation must be defined!'
72192  */
72193  __pyx_tuple__172 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_b_or); if (unlikely(!__pyx_tuple__172)) __PYX_ERR(0, 173, __pyx_L1_error)
72194  __Pyx_GOTREF(__pyx_tuple__172);
72195  __Pyx_GIVEREF(__pyx_tuple__172);
72196  __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setTank, 173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 173, __pyx_L1_error)
72197 
72198  /* "mprans/BoundaryConditions.py":193
72199  * self.w_stress.uOfXT = None
72200  *
72201  * def setFixedNodes(self): # <<<<<<<<<<<<<<
72202  * """
72203  * For moving domains: fixes nodes/boundary
72204  */
72205  __pyx_tuple__173 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 193, __pyx_L1_error)
72206  __Pyx_GOTREF(__pyx_tuple__173);
72207  __Pyx_GIVEREF(__pyx_tuple__173);
72208  __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setFixedNodes, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 193, __pyx_L1_error)
72209 
72210  /* "mprans/BoundaryConditions.py":204
72211  * self.w_stress.uOfXT = 0.
72212  *
72213  * def setNoSlip(self): # <<<<<<<<<<<<<<
72214  * """
72215  * Sets no slip conditions at the boundary
72216  */
72217  __pyx_tuple__174 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__174)) __PYX_ERR(0, 204, __pyx_L1_error)
72218  __Pyx_GOTREF(__pyx_tuple__174);
72219  __Pyx_GIVEREF(__pyx_tuple__174);
72220  __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setNoSlip, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 204, __pyx_L1_error)
72221 
72222  /* "mprans/BoundaryConditions.py":230
72223  * self.dissipation_diffusive.setConstantBC(0.)
72224  *
72225  * def setFreeSlip(self): # <<<<<<<<<<<<<<
72226  * """
72227  * Sets free slip conditions at the boundary
72228  */
72229  __pyx_tuple__175 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(0, 230, __pyx_L1_error)
72230  __Pyx_GOTREF(__pyx_tuple__175);
72231  __Pyx_GIVEREF(__pyx_tuple__175);
72232  __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setFreeSlip, 230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 230, __pyx_L1_error)
72233 
72234  /* "mprans/BoundaryConditions.py":262
72235  * self.dissipation_diffusive.setConstantBC(0.)
72236  *
72237  * def setConstantInletVelocity(self, U, ramp, kk, dd , b_or): # <<<<<<<<<<<<<<
72238  * """
72239  * Sets constant velocity in each inlet face with ramping up and turbulence properties
72240  */
72241  __pyx_tuple__176 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_U, __pyx_n_s_ramp, __pyx_n_s_kk, __pyx_n_s_dd, __pyx_n_s_b_or, __pyx_n_s_Uin, __pyx_n_s_uu, __pyx_n_s_vv, __pyx_n_s_ww); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(0, 262, __pyx_L1_error)
72242  __Pyx_GOTREF(__pyx_tuple__176);
72243  __Pyx_GIVEREF(__pyx_tuple__176);
72244  __pyx_codeobj__7 = (PyObject*)__Pyx_PyCode_New(6, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setConstantInletVelocity, 262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__7)) __PYX_ERR(0, 262, __pyx_L1_error)
72245 
72246  /* "mprans/BoundaryConditions.py":292
72247  * self.vs_diffusive.setConstantBC(0.)
72248  * self.ws_diffusive.setConstantBC(0.)
72249  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or): # <<<<<<<<<<<<<<
72250  * """
72251  * Sets constant pressure in each outlet face for single phase flows
72252  */
72253  __pyx_tuple__177 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_p, __pyx_n_s_rho, __pyx_n_s_g, __pyx_n_s_kk, __pyx_n_s_dd, __pyx_n_s_b_or, __pyx_n_s_a1); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(0, 292, __pyx_L1_error)
72254  __Pyx_GOTREF(__pyx_tuple__177);
72255  __Pyx_GIVEREF(__pyx_tuple__177);
72256  __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(7, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setConstantOutletPressure, 292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 292, __pyx_L1_error)
72257 
72258  /* "mprans/BoundaryConditions.py":326
72259  * self.ws_diffusive.setConstantBC(0.)
72260  *
72261  * def setAtmosphere(self, orientation=None, vof_air=1.,kInflow=None,dInflow=None): # <<<<<<<<<<<<<<
72262  * """
72263  * Sets atmosphere boundary conditions (water can come out)
72264  */
72265  __pyx_tuple__178 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_orientation, __pyx_n_s_vof_air, __pyx_n_s_kInflow, __pyx_n_s_dInflow); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(0, 326, __pyx_L1_error)
72266  __Pyx_GOTREF(__pyx_tuple__178);
72267  __Pyx_GIVEREF(__pyx_tuple__178);
72268  __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setAtmosphere, 326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 326, __pyx_L1_error)
72269 
72270  /* "mprans/BoundaryConditions.py":377
72271  * else:
72272  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
72273  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
72274  * """
72275  * Sets boundary conditions for moving the mesh with a rigid body
72276  */
72277  __pyx_tuple__179 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_body, __pyx_n_s_get_DBC_h, __pyx_n_s_get_DBC_h); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(0, 377, __pyx_L1_error)
72278  __Pyx_GOTREF(__pyx_tuple__179);
72279  __Pyx_GIVEREF(__pyx_tuple__179);
72280  __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setRigidBodyMoveMesh, 377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 377, __pyx_L1_error)
72281 
72282  /* "mprans/BoundaryConditions.py":406
72283  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
72284  *
72285  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
72286  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
72287  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
72288  */
72289  __pyx_tuple__180 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_body); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(0, 406, __pyx_L1_error)
72290  __Pyx_GOTREF(__pyx_tuple__180);
72291  __Pyx_GIVEREF(__pyx_tuple__180);
72292  __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setChMoveMesh, 406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 406, __pyx_L1_error)
72293 
72294  /* "mprans/BoundaryConditions.py":411
72295  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
72296  *
72297  * def setTurbulentDirichlet(self, kVal, dissipationVal): # <<<<<<<<<<<<<<
72298  * """
72299  * Sets only dirichlet conditions for turbulence at the boundary.
72300  */
72301  __pyx_tuple__181 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_kVal, __pyx_n_s_dissipationVal); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 411, __pyx_L1_error)
72302  __Pyx_GOTREF(__pyx_tuple__181);
72303  __Pyx_GIVEREF(__pyx_tuple__181);
72304  __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setTurbulentDirichlet, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 411, __pyx_L1_error)
72305 
72306  /* "mprans/BoundaryConditions.py":433
72307  * self.dissipation_diffusive.resetBC()
72308  *
72309  * def setTurbulentZeroGradient(self): # <<<<<<<<<<<<<<
72310  * """
72311  * Sets only zero-gradient conditions for turbulence at the boundary.
72312  */
72313  __pyx_tuple__182 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__182)) __PYX_ERR(0, 433, __pyx_L1_error)
72314  __Pyx_GOTREF(__pyx_tuple__182);
72315  __Pyx_GIVEREF(__pyx_tuple__182);
72316  __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setTurbulentZeroGradient, 433, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 433, __pyx_L1_error)
72317 
72318  /* "mprans/BoundaryConditions.py":446
72319  * self.dissipation_diffusive.setConstantBC(0.)
72320  *
72321  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
72322  * """
72323  * Sets turbulent boundaries for wall treatment.
72324  */
72325  __pyx_tuple__183 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_wall, __pyx_n_s_shearStress, __pyx_n_s_wf); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(0, 446, __pyx_L1_error)
72326  __Pyx_GOTREF(__pyx_tuple__183);
72327  __Pyx_GIVEREF(__pyx_tuple__183);
72328  __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setWallFunction, 446, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 446, __pyx_L1_error)
72329 
72330  /* "mprans/BoundaryConditions.py":494
72331  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
72332  * """
72333  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
72334  * """
72335  * Sets boundary conditions for moving the mesh with a rigid body
72336  */
72337  __pyx_tuple__184 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_last_pos, __pyx_n_s_h, __pyx_n_s_rot_matrix); if (unlikely(!__pyx_tuple__184)) __PYX_ERR(0, 494, __pyx_L1_error)
72338  __Pyx_GOTREF(__pyx_tuple__184);
72339  __Pyx_GIVEREF(__pyx_tuple__184);
72340  __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setMoveMesh, 494, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 494, __pyx_L1_error)
72341 
72342  /* "mprans/BoundaryConditions.py":522
72343  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
72344  *
72345  * def __cpp_MoveMesh_h(self, x, t): # <<<<<<<<<<<<<<
72346  * cython.declare(x_0=cython.double[3])
72347  * cython.declare(new_x_0=cython.double[3])
72348  */
72349  __pyx_tuple__185 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(0, 522, __pyx_L1_error)
72350  __Pyx_GOTREF(__pyx_tuple__185);
72351  __Pyx_GIVEREF(__pyx_tuple__185);
72352  __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_cpp_MoveMesh_h, 522, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 522, __pyx_L1_error)
72353 
72354  /* "mprans/BoundaryConditions.py":535
72355  * return hx
72356  *
72357  * def __cpp_MoveMesh_hx(self, x, t): # <<<<<<<<<<<<<<
72358  * return self.__cpp_MoveMesh_h(x, t)[0]
72359  *
72360  */
72361  __pyx_tuple__186 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(0, 535, __pyx_L1_error)
72362  __Pyx_GOTREF(__pyx_tuple__186);
72363  __Pyx_GIVEREF(__pyx_tuple__186);
72364  __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_cpp_MoveMesh_hx, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 535, __pyx_L1_error)
72365 
72366  /* "mprans/BoundaryConditions.py":538
72367  * return self.__cpp_MoveMesh_h(x, t)[0]
72368  *
72369  * def __cpp_MoveMesh_hy(self, x, t): # <<<<<<<<<<<<<<
72370  * return self.__cpp_MoveMesh_h(x, t)[1]
72371  *
72372  */
72373  __pyx_tuple__187 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(0, 538, __pyx_L1_error)
72374  __Pyx_GOTREF(__pyx_tuple__187);
72375  __Pyx_GIVEREF(__pyx_tuple__187);
72376  __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_cpp_MoveMesh_hy, 538, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(0, 538, __pyx_L1_error)
72377 
72378  /* "mprans/BoundaryConditions.py":541
72379  * return self.__cpp_MoveMesh_h(x, t)[1]
72380  *
72381  * def __cpp_MoveMesh_hz(self, x, t): # <<<<<<<<<<<<<<
72382  * return self.__cpp_MoveMesh_h(x, t)[2]
72383  *
72384  */
72385  __pyx_tuple__188 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(0, 541, __pyx_L1_error)
72386  __Pyx_GOTREF(__pyx_tuple__188);
72387  __Pyx_GIVEREF(__pyx_tuple__188);
72388  __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_cpp_MoveMesh_hz, 541, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 541, __pyx_L1_error)
72389 
72390  /* "mprans/BoundaryConditions.py":544
72391  * return self.__cpp_MoveMesh_h(x, t)[2]
72392  *
72393  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
72394  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
72395  * """
72396  */
72397  __pyx_tuple__189 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_wave, __pyx_n_s_smoothing, __pyx_n_s_vert_axis, __pyx_n_s_orientation, __pyx_n_s_wind_speed, __pyx_n_s_vof_air, __pyx_n_s_vof_water, __pyx_n_s_kInflow, __pyx_n_s_dInflow, __pyx_n_s_b_or); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 544, __pyx_L1_error)
72398  __Pyx_GOTREF(__pyx_tuple__189);
72399  __Pyx_GIVEREF(__pyx_tuple__189);
72400  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(10, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet_2, 544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 544, __pyx_L1_error)
72401 
72402  /* "mprans/BoundaryConditions.py":644
72403  * return self.waves.__cpp_calculate_vof(xx, t)
72404  *
72405  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
72406  * vert_axis=None, air=1., water=0.,
72407  * kInflow=None, dissipationInflow=None,
72408  */
72409  __pyx_tuple__190 = PyTuple_Pack(24, __pyx_n_s_self, __pyx_n_s_U, __pyx_n_s_waterLevel, __pyx_n_s_smoothing, __pyx_n_s_Uwind, __pyx_n_s_vert_axis, __pyx_n_s_air, __pyx_n_s_water, __pyx_n_s_kInflow, __pyx_n_s_dissipationInflow, __pyx_n_s_kInflowAir, __pyx_n_s_dissipationInflowAir, __pyx_n_s_get_inlet_ux_dirichlet, __pyx_n_s_get_inlet_ux_dirichlet, __pyx_n_s_inlet_phi_dirichlet, __pyx_n_s_inlet_phi_dirichlet, __pyx_n_s_inlet_vof_dirichlet, __pyx_n_s_inlet_vof_dirichlet, __pyx_n_s_inlet_p_advective, __pyx_n_s_inlet_p_advective, __pyx_n_s_inlet_k_dirichlet, __pyx_n_s_inlet_k_dirichlet, __pyx_n_s_inlet_dissipation_dirichlet, __pyx_n_s_inlet_dissipation_dirichlet); if (unlikely(!__pyx_tuple__190)) __PYX_ERR(0, 644, __pyx_L1_error)
72410  __Pyx_GOTREF(__pyx_tuple__190);
72411  __Pyx_GIVEREF(__pyx_tuple__190);
72412  __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(12, 0, 24, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setTwoPhaseVelocityInlet, 644, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 644, __pyx_L1_error)
72413 
72414  /* "mprans/BoundaryConditions.py":774
72415  * self.dissipation_diffusive.resetBC()
72416  *
72417  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
72418  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
72419  * pRef=0.0, vert_axis=None,
72420  */
72421  __pyx_tuple__191 = PyTuple_Pack(31, __pyx_n_s_self, __pyx_n_s_seaLevel, __pyx_n_s_rhoUp, __pyx_n_s_rhoDown, __pyx_n_s_g, __pyx_n_s_refLevel, __pyx_n_s_smoothing, __pyx_n_s_orientation, __pyx_n_s_U, __pyx_n_s_Uwind, __pyx_n_s_pRef, __pyx_n_s_vert_axis, __pyx_n_s_air, __pyx_n_s_water, __pyx_n_s_kInflow, __pyx_n_s_dissipationInflow, __pyx_n_s_kInflowAir, __pyx_n_s_dissipationInflowAir, __pyx_n_s_hydrostaticPressureOutletWithDep, __pyx_n_s_hydrostaticPressureOutletWithDep, __pyx_n_s_hydrostaticPressureOutletWithDep_2, __pyx_n_s_hydrostaticPressureOutletWithDep_2, __pyx_n_s_hydrostaticPressureOutletWithDep_3, __pyx_n_s_hydrostaticPressureOutletWithDep_3, __pyx_n_s_inlet_k_dirichlet, __pyx_n_s_inlet_k_dirichlet, __pyx_n_s_inlet_dissipation_dirichlet, __pyx_n_s_inlet_dissipation_dirichlet, __pyx_n_s_b_or, __pyx_n_s_get_inlet_ux_dirichlet, __pyx_n_s_get_inlet_ux_dirichlet); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(0, 774, __pyx_L1_error)
72422  __Pyx_GOTREF(__pyx_tuple__191);
72423  __Pyx_GIVEREF(__pyx_tuple__191);
72424  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(18, 0, 31, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setHydrostaticPressureOutletWith_8, 774, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 774, __pyx_L1_error)
72425 
72426  /* "(tree fragment)":1
72427  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
72428  * cdef tuple state
72429  * cdef object _dict
72430  */
72431  __pyx_tuple__192 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__192)) __PYX_ERR(1, 1, __pyx_L1_error)
72432  __Pyx_GOTREF(__pyx_tuple__192);
72433  __Pyx_GIVEREF(__pyx_tuple__192);
72434  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__192, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(1, 1, __pyx_L1_error)
72435 
72436  /* "(tree fragment)":16
72437  * else:
72438  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
72439  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
72440  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state)
72441  */
72442  __pyx_tuple__193 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(1, 16, __pyx_L1_error)
72443  __Pyx_GOTREF(__pyx_tuple__193);
72444  __Pyx_GIVEREF(__pyx_tuple__193);
72445  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(1, 16, __pyx_L1_error)
72446 
72447  /* "mprans/BoundaryConditions.py":949
72448  * def __cinit__(self, zone_type, center, orientation, epsFact_porous,
72449  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
72450  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0., # <<<<<<<<<<<<<<
72451  * vof_water=0., vof_air=1.):
72452  * self.Shape = shape
72453  */
72454  __pyx_tuple__194 = PyTuple_Pack(2, __pyx_float_0_5, __pyx_float_1_005eneg_6); if (unlikely(!__pyx_tuple__194)) __PYX_ERR(0, 949, __pyx_L1_error)
72455  __Pyx_GOTREF(__pyx_tuple__194);
72456  __Pyx_GIVEREF(__pyx_tuple__194);
72457 
72458  /* "mprans/BoundaryConditions.py":968
72459  * self.zero_vel = np.zeros(3)
72460  *
72461  * def calculate_init(self): # <<<<<<<<<<<<<<
72462  * if self.zone_type == 'generation':
72463  * # self.u = &self.waves.u
72464  */
72465  __pyx_tuple__195 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(0, 968, __pyx_L1_error)
72466  __Pyx_GOTREF(__pyx_tuple__195);
72467  __Pyx_GIVEREF(__pyx_tuple__195);
72468  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_init, 968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 968, __pyx_L1_error)
72469 
72470  /* "mprans/BoundaryConditions.py":1013
72471  * return self.uu(self, d, t)
72472  *
72473  * def calculate_phi_python(self, x): # <<<<<<<<<<<<<<
72474  * cython.declare(xx=cython.double[3], tt=cython.double)
72475  * xx[0] = x[0]
72476  */
72477  __pyx_tuple__196 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_tt, __pyx_n_s_ph); if (unlikely(!__pyx_tuple__196)) __PYX_ERR(0, 1013, __pyx_L1_error)
72478  __Pyx_GOTREF(__pyx_tuple__196);
72479  __Pyx_GIVEREF(__pyx_tuple__196);
72480  __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_phi_python, 1013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(0, 1013, __pyx_L1_error)
72481 
72482  /* "mprans/BoundaryConditions.py":1021
72483  * return ph
72484  *
72485  * def calculate_vel_python(self, x, t, n=None): # <<<<<<<<<<<<<<
72486  * cython.declare(xx=cython.double[3], tt=cython.double)
72487  * xx[0] = x[0]
72488  */
72489  __pyx_tuple__197 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_xx, __pyx_n_s_tt); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(0, 1021, __pyx_L1_error)
72490  __Pyx_GOTREF(__pyx_tuple__197);
72491  __Pyx_GIVEREF(__pyx_tuple__197);
72492  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_vel_python, 1021, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 1021, __pyx_L1_error)
72493 
72494  /* "(tree fragment)":1
72495  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
72496  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72497  * def __setstate_cython__(self, __pyx_state):
72498  */
72499  __pyx_tuple__198 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__198)) __PYX_ERR(1, 1, __pyx_L1_error)
72500  __Pyx_GOTREF(__pyx_tuple__198);
72501  __Pyx_GIVEREF(__pyx_tuple__198);
72502  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(1, 1, __pyx_L1_error)
72503 
72504  /* "(tree fragment)":3
72505  * def __reduce_cython__(self):
72506  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72507  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
72508  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
72509  */
72510  __pyx_tuple__199 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(1, 3, __pyx_L1_error)
72511  __Pyx_GOTREF(__pyx_tuple__199);
72512  __Pyx_GIVEREF(__pyx_tuple__199);
72513  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(1, 3, __pyx_L1_error)
72514 
72515  /* "mprans/BoundaryConditions.py":1054
72516  * self.nd = nd
72517  *
72518  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
72519  * self.model = model
72520  * self.ar = ar
72521  */
72522  __pyx_tuple__200 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_ar); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(0, 1054, __pyx_L1_error)
72523  __Pyx_GOTREF(__pyx_tuple__200);
72524  __Pyx_GIVEREF(__pyx_tuple__200);
72525  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachModel, 1054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 1054, __pyx_L1_error)
72526 
72527  /* "mprans/BoundaryConditions.py":1059
72528  * return self
72529  *
72530  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
72531  * pass
72532  *
72533  */
72534  __pyx_tuple__201 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_avDict); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(0, 1059, __pyx_L1_error)
72535  __Pyx_GOTREF(__pyx_tuple__201);
72536  __Pyx_GIVEREF(__pyx_tuple__201);
72537  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachAuxiliaryVariables, 1059, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 1059, __pyx_L1_error)
72538 
72539  /* "mprans/BoundaryConditions.py":1062
72540  * pass
72541  *
72542  * def calculate_init(self): # <<<<<<<<<<<<<<
72543  * max_key = 0
72544  * for key, zone in list(self.zones.items()):
72545  */
72546  __pyx_tuple__202 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__202)) __PYX_ERR(0, 1062, __pyx_L1_error)
72547  __Pyx_GOTREF(__pyx_tuple__202);
72548  __Pyx_GIVEREF(__pyx_tuple__202);
72549  __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_init, 1062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(0, 1062, __pyx_L1_error)
72550 
72551  /* "mprans/BoundaryConditions.py":1073
72552  * self.zones_array[key] = zone
72553  *
72554  * def calculate(self): # <<<<<<<<<<<<<<
72555  * self.__cpp_iterate()
72556  *
72557  */
72558  __pyx_tuple__203 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(0, 1073, __pyx_L1_error)
72559  __Pyx_GOTREF(__pyx_tuple__203);
72560  __Pyx_GIVEREF(__pyx_tuple__203);
72561  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__203, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate, 1073, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 1073, __pyx_L1_error)
72562 
72563  /* "(tree fragment)":1
72564  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
72565  * cdef tuple state
72566  * cdef object _dict
72567  */
72568  __pyx_tuple__204 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(1, 1, __pyx_L1_error)
72569  __Pyx_GOTREF(__pyx_tuple__204);
72570  __Pyx_GIVEREF(__pyx_tuple__204);
72571  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(1, 1, __pyx_L1_error)
72572 
72573  /* "(tree fragment)":16
72574  * else:
72575  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
72576  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
72577  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state)
72578  */
72579  __pyx_tuple__205 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(1, 16, __pyx_L1_error)
72580  __Pyx_GOTREF(__pyx_tuple__205);
72581  __Pyx_GIVEREF(__pyx_tuple__205);
72582  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(1, 16, __pyx_L1_error)
72583 
72584  /* "(tree fragment)":1
72585  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
72586  * cdef tuple state
72587  * cdef object _dict
72588  */
72589  __pyx_tuple__206 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(1, 1, __pyx_L1_error)
72590  __Pyx_GOTREF(__pyx_tuple__206);
72591  __Pyx_GIVEREF(__pyx_tuple__206);
72592  __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(1, 1, __pyx_L1_error)
72593 
72594  /* "(tree fragment)":16
72595  * else:
72596  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
72597  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
72598  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state)
72599  */
72600  __pyx_tuple__207 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(1, 16, __pyx_L1_error)
72601  __Pyx_GOTREF(__pyx_tuple__207);
72602  __Pyx_GIVEREF(__pyx_tuple__207);
72603  __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(1, 16, __pyx_L1_error)
72604 
72605  /* "mprans/BoundaryConditions.py":1225
72606  * """
72607  *
72608  * def __init__(self, turbModel, kWall, Y, Yplus, U0, nu=1.004e-6, Cmu=0.09, K=0.41, B=5.57): # <<<<<<<<<<<<<<
72609  * """
72610  * Sets turbulent boundaries for wall treatment.
72611  */
72612  __pyx_tuple__208 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_turbModel, __pyx_n_s_kWall, __pyx_n_s_Y, __pyx_n_s_Yplus, __pyx_n_s_U0, __pyx_n_s_nu, __pyx_n_s_Cmu, __pyx_n_s_K, __pyx_n_s_B); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(0, 1225, __pyx_L1_error)
72613  __Pyx_GOTREF(__pyx_tuple__208);
72614  __Pyx_GIVEREF(__pyx_tuple__208);
72615  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_init, 1225, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(0, 1225, __pyx_L1_error)
72616  __pyx_tuple__209 = PyTuple_Pack(4, ((PyObject*)__pyx_float_1_004eneg_6), ((PyObject*)__pyx_float_0_09), ((PyObject*)__pyx_float_0_41), ((PyObject*)__pyx_float_5_57)); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(0, 1225, __pyx_L1_error)
72617  __Pyx_GOTREF(__pyx_tuple__209);
72618  __Pyx_GIVEREF(__pyx_tuple__209);
72619 
72620  /* "mprans/BoundaryConditions.py":1277
72621  * self.kWall = kWall
72622  *
72623  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
72624  * """
72625  * Attaches model to auxiliary variable
72626  */
72627  __pyx_tuple__210 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_ar); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 1277, __pyx_L1_error)
72628  __Pyx_GOTREF(__pyx_tuple__210);
72629  __Pyx_GIVEREF(__pyx_tuple__210);
72630  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachModel, 1277, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(0, 1277, __pyx_L1_error)
72631 
72632  /* "mprans/BoundaryConditions.py":1288
72633  * return self
72634  *
72635  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
72636  * pass
72637  *
72638  */
72639  __pyx_tuple__211 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_avDict); if (unlikely(!__pyx_tuple__211)) __PYX_ERR(0, 1288, __pyx_L1_error)
72640  __Pyx_GOTREF(__pyx_tuple__211);
72641  __Pyx_GIVEREF(__pyx_tuple__211);
72642  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__211, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachAuxiliaryVariables, 1288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(0, 1288, __pyx_L1_error)
72643 
72644  /* "mprans/BoundaryConditions.py":1291
72645  * pass
72646  *
72647  * def calculate_init(self): # <<<<<<<<<<<<<<
72648  * pass
72649  *
72650  */
72651  __pyx_tuple__212 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__212)) __PYX_ERR(0, 1291, __pyx_L1_error)
72652  __Pyx_GOTREF(__pyx_tuple__212);
72653  __Pyx_GIVEREF(__pyx_tuple__212);
72654  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_init, 1291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(0, 1291, __pyx_L1_error)
72655 
72656  /* "mprans/BoundaryConditions.py":1294
72657  * pass
72658  *
72659  * def calculate(self): # <<<<<<<<<<<<<<
72660  * pass
72661  *
72662  */
72663  __pyx_tuple__213 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(0, 1294, __pyx_L1_error)
72664  __Pyx_GOTREF(__pyx_tuple__213);
72665  __Pyx_GIVEREF(__pyx_tuple__213);
72666  __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate, 1294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(0, 1294, __pyx_L1_error)
72667 
72668  /* "mprans/BoundaryConditions.py":1297
72669  * pass
72670  *
72671  * def getLocalNearestNode(self, coords, kdtree): # <<<<<<<<<<<<<<
72672  * """
72673  * Finds nearest node to coordinates (local)
72674  */
72675  __pyx_tuple__214 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_coords, __pyx_n_s_kdtree, __pyx_n_s_distance, __pyx_n_s_node); if (unlikely(!__pyx_tuple__214)) __PYX_ERR(0, 1297, __pyx_L1_error)
72676  __Pyx_GOTREF(__pyx_tuple__214);
72677  __Pyx_GIVEREF(__pyx_tuple__214);
72678  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getLocalNearestNode, 1297, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(0, 1297, __pyx_L1_error)
72679 
72680  /* "mprans/BoundaryConditions.py":1317
72681  * return node, distance
72682  *
72683  * def getLocalElement(self, femSpace, coords, node): # <<<<<<<<<<<<<<
72684  * """
72685  * Given coordinates and its nearest node, determine if it is on a
72686  */
72687  __pyx_tuple__215 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_femSpace, __pyx_n_s_coords, __pyx_n_s_node, __pyx_n_s_patchBoundaryNodes, __pyx_n_s_checkedElements, __pyx_n_s_statem1, __pyx_n_s_eOffset, __pyx_n_s_eN, __pyx_n_s_xi); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(0, 1317, __pyx_L1_error)
72688  __Pyx_GOTREF(__pyx_tuple__215);
72689  __Pyx_GIVEREF(__pyx_tuple__215);
72690  __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getLocalElement, 1317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(0, 1317, __pyx_L1_error)
72691 
72692  /* "mprans/BoundaryConditions.py":1363
72693  * return None
72694  *
72695  * def findElementContainingCoords(self, coords): # <<<<<<<<<<<<<<
72696  * """
72697  * Given global coordinates of a point, returns
72698  */
72699  __pyx_tuple__216 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_coords, __pyx_n_s_comm, __pyx_n_s_xi, __pyx_n_s_owning_proc, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_nodes_kdtree, __pyx_n_s_nearest_node, __pyx_n_s_nearest_node_distance, __pyx_n_s_local_element); if (unlikely(!__pyx_tuple__216)) __PYX_ERR(0, 1363, __pyx_L1_error)
72700  __Pyx_GOTREF(__pyx_tuple__216);
72701  __Pyx_GIVEREF(__pyx_tuple__216);
72702  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_findElementContainingCoords, 1363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 1363, __pyx_L1_error)
72703 
72704  /* "mprans/BoundaryConditions.py":1401
72705  * return xi, local_element, rank
72706  *
72707  * def getFluidVelocityLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
72708  * """
72709  * Given local details, returns velocity field at those coordinates.
72710  */
72711  __pyx_tuple__217 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_xi, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_comm, __pyx_n_s_u, __pyx_n_s_v, __pyx_n_s_w); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(0, 1401, __pyx_L1_error)
72712  __Pyx_GOTREF(__pyx_tuple__217);
72713  __Pyx_GIVEREF(__pyx_tuple__217);
72714  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getFluidVelocityLocalCoords, 1401, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(0, 1401, __pyx_L1_error)
72715 
72716  /* "mprans/BoundaryConditions.py":1426
72717  * return u, v, w
72718  *
72719  * def setYplusNormalDirection(self, x, t,n, relax=1.0): # <<<<<<<<<<<<<<
72720  * """
72721  * Return the point at y+ distance in normal
72722  */
72723  __pyx_tuple__218 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_relax, __pyx_n_s_nP); if (unlikely(!__pyx_tuple__218)) __PYX_ERR(0, 1426, __pyx_L1_error)
72724  __Pyx_GOTREF(__pyx_tuple__218);
72725  __Pyx_GIVEREF(__pyx_tuple__218);
72726  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_setYplusNormalDirection, 1426, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(0, 1426, __pyx_L1_error)
72727  __pyx_tuple__219 = PyTuple_Pack(1, ((PyObject*)__pyx_float_1_0)); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(0, 1426, __pyx_L1_error)
72728  __Pyx_GOTREF(__pyx_tuple__219);
72729  __Pyx_GIVEREF(__pyx_tuple__219);
72730 
72731  /* "mprans/BoundaryConditions.py":1438
72732  * return nP
72733  *
72734  * def extractVelocity(self, x, t, n): # <<<<<<<<<<<<<<
72735  * """
72736  * Extraction of the velocity at y+ distance from the boundary.
72737  */
72738  __pyx_tuple__220 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_coords, __pyx_n_s_xi, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_u, __pyx_n_s_v, __pyx_n_s_w, __pyx_n_s_relax, __pyx_n_s_coords_relax); if (unlikely(!__pyx_tuple__220)) __PYX_ERR(0, 1438, __pyx_L1_error)
72739  __Pyx_GOTREF(__pyx_tuple__220);
72740  __Pyx_GIVEREF(__pyx_tuple__220);
72741  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_extractVelocity, 1438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(0, 1438, __pyx_L1_error)
72742 
72743  /* "mprans/BoundaryConditions.py":1459
72744  * return u, v, w
72745  *
72746  * def tangentialVelocity(self, x, t, n, uInit=None): # <<<<<<<<<<<<<<
72747  * """
72748  * Given the velocity, calculates its
72749  */
72750  __pyx_tuple__221 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit, __pyx_n_s_u0, __pyx_n_s_u1, __pyx_n_s_u2); if (unlikely(!__pyx_tuple__221)) __PYX_ERR(0, 1459, __pyx_L1_error)
72751  __Pyx_GOTREF(__pyx_tuple__221);
72752  __Pyx_GIVEREF(__pyx_tuple__221);
72753  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__221, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_tangentialVelocity, 1459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(0, 1459, __pyx_L1_error)
72754  __pyx_tuple__222 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(0, 1459, __pyx_L1_error)
72755  __Pyx_GOTREF(__pyx_tuple__222);
72756  __Pyx_GIVEREF(__pyx_tuple__222);
72757 
72758  /* "mprans/BoundaryConditions.py":1481
72759  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2)))
72760  *
72761  * def getVariables(self, x, t): # <<<<<<<<<<<<<<
72762  * """
72763  * Calculates velocity, gradient of the velocity and
72764  */
72765  __pyx_tuple__223 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_comm, __pyx_n_s_Up, __pyx_n_s_E); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(0, 1481, __pyx_L1_error)
72766  __Pyx_GOTREF(__pyx_tuple__223);
72767  __Pyx_GIVEREF(__pyx_tuple__223);
72768  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getVariables, 1481, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(0, 1481, __pyx_L1_error)
72769 
72770  /* "mprans/BoundaryConditions.py":1511
72771  * self.uDir = self.tanU - (self.gradU * self.Y)
72772  *
72773  * def get_u_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
72774  * if t > 0.:
72775  * uInit = False
72776  */
72777  __pyx_tuple__224 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit); if (unlikely(!__pyx_tuple__224)) __PYX_ERR(0, 1511, __pyx_L1_error)
72778  __Pyx_GOTREF(__pyx_tuple__224);
72779  __Pyx_GIVEREF(__pyx_tuple__224);
72780  __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_u_dirichlet, 1511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(0, 1511, __pyx_L1_error)
72781 
72782  /* "mprans/BoundaryConditions.py":1520
72783  * return self.uDir[0]
72784  *
72785  * def get_v_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
72786  * if t > 0.:
72787  * uInit = False
72788  */
72789  __pyx_tuple__225 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(0, 1520, __pyx_L1_error)
72790  __Pyx_GOTREF(__pyx_tuple__225);
72791  __Pyx_GIVEREF(__pyx_tuple__225);
72792  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__225, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_v_dirichlet, 1520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(0, 1520, __pyx_L1_error)
72793 
72794  /* "mprans/BoundaryConditions.py":1529
72795  * return self.uDir[1]
72796  *
72797  * def get_w_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
72798  * if t > 0.:
72799  * uInit = False
72800  */
72801  __pyx_tuple__226 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit); if (unlikely(!__pyx_tuple__226)) __PYX_ERR(0, 1529, __pyx_L1_error)
72802  __Pyx_GOTREF(__pyx_tuple__226);
72803  __Pyx_GIVEREF(__pyx_tuple__226);
72804  __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_w_dirichlet, 1529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(0, 1529, __pyx_L1_error)
72805 
72806  /* "mprans/BoundaryConditions.py":1538
72807  * return self.uDir[2]
72808  *
72809  * def get_k_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
72810  * if t > 0.:
72811  * uInit = False
72812  */
72813  __pyx_tuple__227 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit); if (unlikely(!__pyx_tuple__227)) __PYX_ERR(0, 1538, __pyx_L1_error)
72814  __Pyx_GOTREF(__pyx_tuple__227);
72815  __Pyx_GIVEREF(__pyx_tuple__227);
72816  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__227, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_k_dirichlet, 1538, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 1538, __pyx_L1_error)
72817 
72818  /* "mprans/BoundaryConditions.py":1547
72819  * return self.kappa
72820  *
72821  * def get_dissipation_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
72822  * if t > 0.:
72823  * uInit = False
72824  */
72825  __pyx_tuple__228 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit, __pyx_n_s_d); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 1547, __pyx_L1_error)
72826  __Pyx_GOTREF(__pyx_tuple__228);
72827  __Pyx_GIVEREF(__pyx_tuple__228);
72828  __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_dissipation_dirichlet, 1547, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(0, 1547, __pyx_L1_error)
72829 
72830  /* "mprans/BoundaryConditions.py":1561
72831  * return d
72832  *
72833  * def get_u_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
72834  * if t > 0.:
72835  * uInit = False
72836  */
72837  __pyx_tuple__229 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit, __pyx_n_s_gradU); if (unlikely(!__pyx_tuple__229)) __PYX_ERR(0, 1561, __pyx_L1_error)
72838  __Pyx_GOTREF(__pyx_tuple__229);
72839  __Pyx_GIVEREF(__pyx_tuple__229);
72840  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__229, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_u_diffusive, 1561, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(0, 1561, __pyx_L1_error)
72841 
72842  /* "mprans/BoundaryConditions.py":1571
72843  * return gradU
72844  *
72845  * def get_v_diffusive(self, x, t, n ): # <<<<<<<<<<<<<<
72846  * if t > 0.:
72847  * uInit = False
72848  */
72849  __pyx_tuple__230 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit, __pyx_n_s_gradU); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 1571, __pyx_L1_error)
72850  __Pyx_GOTREF(__pyx_tuple__230);
72851  __Pyx_GIVEREF(__pyx_tuple__230);
72852  __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_v_diffusive, 1571, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(0, 1571, __pyx_L1_error)
72853 
72854  /* "mprans/BoundaryConditions.py":1581
72855  * return gradU
72856  *
72857  * def get_w_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
72858  * if t > 0.:
72859  * uInit = False
72860  */
72861  __pyx_tuple__231 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_n, __pyx_n_s_uInit, __pyx_n_s_gradU); if (unlikely(!__pyx_tuple__231)) __PYX_ERR(0, 1581, __pyx_L1_error)
72862  __Pyx_GOTREF(__pyx_tuple__231);
72863  __Pyx_GIVEREF(__pyx_tuple__231);
72864  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__231, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_get_w_diffusive, 1581, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(0, 1581, __pyx_L1_error)
72865 
72866  /* "mprans/BoundaryConditions.py":1598
72867  * """
72868  *
72869  * def __init__(self, Y, Yplus, nu=1.004e-6, Cmu=0.09): # <<<<<<<<<<<<<<
72870  * """
72871  * Sets turbulent boundaries for wall treatment.
72872  */
72873  __pyx_tuple__232 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_Y, __pyx_n_s_Yplus, __pyx_n_s_nu, __pyx_n_s_Cmu); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(0, 1598, __pyx_L1_error)
72874  __Pyx_GOTREF(__pyx_tuple__232);
72875  __Pyx_GIVEREF(__pyx_tuple__232);
72876  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_init, 1598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(0, 1598, __pyx_L1_error)
72877  __pyx_tuple__233 = PyTuple_Pack(2, ((PyObject*)__pyx_float_1_004eneg_6), ((PyObject*)__pyx_float_0_09)); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(0, 1598, __pyx_L1_error)
72878  __Pyx_GOTREF(__pyx_tuple__233);
72879  __Pyx_GIVEREF(__pyx_tuple__233);
72880 
72881  /* "mprans/BoundaryConditions.py":1609
72882  * self.Cmu = Cmu
72883  *
72884  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
72885  * """
72886  * Attaches model to auxiliary variable
72887  */
72888  __pyx_tuple__234 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_ar); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(0, 1609, __pyx_L1_error)
72889  __Pyx_GOTREF(__pyx_tuple__234);
72890  __Pyx_GIVEREF(__pyx_tuple__234);
72891  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachModel, 1609, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(0, 1609, __pyx_L1_error)
72892 
72893  /* "mprans/BoundaryConditions.py":1618
72894  * return self
72895  *
72896  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
72897  * pass
72898  *
72899  */
72900  __pyx_tuple__235 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_avDict); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(0, 1618, __pyx_L1_error)
72901  __Pyx_GOTREF(__pyx_tuple__235);
72902  __Pyx_GIVEREF(__pyx_tuple__235);
72903  __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__235, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_attachAuxiliaryVariables, 1618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 1618, __pyx_L1_error)
72904 
72905  /* "mprans/BoundaryConditions.py":1621
72906  * pass
72907  *
72908  * def calculate_init(self): # <<<<<<<<<<<<<<
72909  * pass
72910  *
72911  */
72912  __pyx_tuple__236 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(0, 1621, __pyx_L1_error)
72913  __Pyx_GOTREF(__pyx_tuple__236);
72914  __Pyx_GIVEREF(__pyx_tuple__236);
72915  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate_init, 1621, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 1621, __pyx_L1_error)
72916 
72917  /* "mprans/BoundaryConditions.py":1624
72918  * pass
72919  *
72920  * def calculate(self): # <<<<<<<<<<<<<<
72921  * pass
72922  *
72923  */
72924  __pyx_tuple__237 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__237)) __PYX_ERR(0, 1624, __pyx_L1_error)
72925  __Pyx_GOTREF(__pyx_tuple__237);
72926  __Pyx_GIVEREF(__pyx_tuple__237);
72927  __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__237, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_calculate, 1624, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(0, 1624, __pyx_L1_error)
72928 
72929  /* "mprans/BoundaryConditions.py":1627
72930  * pass
72931  *
72932  * def getFluidKappaLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
72933  * """
72934  *
72935  */
72936  __pyx_tuple__238 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_xi, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_comm, __pyx_n_s_kappa); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 1627, __pyx_L1_error)
72937  __Pyx_GOTREF(__pyx_tuple__238);
72938  __Pyx_GIVEREF(__pyx_tuple__238);
72939  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getFluidKappaLocalCoords, 1627, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 1627, __pyx_L1_error)
72940 
72941  /* "mprans/BoundaryConditions.py":1649
72942  * return kappa
72943  *
72944  * def kappaNearWall(self, xi, element, rank, kInit=None): # <<<<<<<<<<<<<<
72945  * if kInit is True or self.model is None:
72946  * self.ut = self.Yplus * self.nu / self.Y
72947  */
72948  __pyx_tuple__239 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_xi, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_kInit); if (unlikely(!__pyx_tuple__239)) __PYX_ERR(0, 1649, __pyx_L1_error)
72949  __Pyx_GOTREF(__pyx_tuple__239);
72950  __Pyx_GIVEREF(__pyx_tuple__239);
72951  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_kappaNearWall, 1649, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(0, 1649, __pyx_L1_error)
72952  __pyx_tuple__240 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(0, 1649, __pyx_L1_error)
72953  __Pyx_GOTREF(__pyx_tuple__240);
72954  __Pyx_GIVEREF(__pyx_tuple__240);
72955 
72956  /* "mprans/BoundaryConditions.py":1656
72957  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank)
72958  *
72959  * def getKappa(self, x, t, xi, element, rank): # <<<<<<<<<<<<<<
72960  * if t > 0.:
72961  * kInit = False
72962  */
72963  __pyx_tuple__241 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_t, __pyx_n_s_xi, __pyx_n_s_element, __pyx_n_s_rank, __pyx_n_s_kInit); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(0, 1656, __pyx_L1_error)
72964  __Pyx_GOTREF(__pyx_tuple__241);
72965  __Pyx_GIVEREF(__pyx_tuple__241);
72966  __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_BoundaryCondition, __pyx_n_s_getKappa, 1656, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(0, 1656, __pyx_L1_error)
72967 
72968  /* "(tree fragment)":1
72969  * def __pyx_unpickle_BC_RANS(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
72970  * cdef object __pyx_PickleError
72971  * cdef object __pyx_result
72972  */
72973  __pyx_tuple__242 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__242)) __PYX_ERR(1, 1, __pyx_L1_error)
72974  __Pyx_GOTREF(__pyx_tuple__242);
72975  __Pyx_GIVEREF(__pyx_tuple__242);
72976  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BC_RANS, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(1, 1, __pyx_L1_error)
72977  __pyx_tuple__243 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 1, __pyx_L1_error)
72978  __Pyx_GOTREF(__pyx_tuple__243);
72979  __Pyx_GIVEREF(__pyx_tuple__243);
72980  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RelaxationZoneWav, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(1, 1, __pyx_L1_error)
72981  __pyx_tuple__244 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(1, 1, __pyx_L1_error)
72982  __Pyx_GOTREF(__pyx_tuple__244);
72983  __Pyx_GIVEREF(__pyx_tuple__244);
72984  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle___cppClass_WavesC, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(1, 1, __pyx_L1_error)
72985 
72986  /* "View.MemoryView":286
72987  * return self.name
72988  *
72989  * cdef generic = Enum("<strided and direct or indirect>") # <<<<<<<<<<<<<<
72990  * cdef strided = Enum("<strided and direct>") # default
72991  * cdef indirect = Enum("<strided and indirect>")
72992  */
72993  __pyx_tuple__245 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__245)) __PYX_ERR(1, 286, __pyx_L1_error)
72994  __Pyx_GOTREF(__pyx_tuple__245);
72995  __Pyx_GIVEREF(__pyx_tuple__245);
72996 
72997  /* "View.MemoryView":287
72998  *
72999  * cdef generic = Enum("<strided and direct or indirect>")
73000  * cdef strided = Enum("<strided and direct>") # default # <<<<<<<<<<<<<<
73001  * cdef indirect = Enum("<strided and indirect>")
73002  *
73003  */
73004  __pyx_tuple__246 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(1, 287, __pyx_L1_error)
73005  __Pyx_GOTREF(__pyx_tuple__246);
73006  __Pyx_GIVEREF(__pyx_tuple__246);
73007 
73008  /* "View.MemoryView":288
73009  * cdef generic = Enum("<strided and direct or indirect>")
73010  * cdef strided = Enum("<strided and direct>") # default
73011  * cdef indirect = Enum("<strided and indirect>") # <<<<<<<<<<<<<<
73012  *
73013  *
73014  */
73015  __pyx_tuple__247 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 288, __pyx_L1_error)
73016  __Pyx_GOTREF(__pyx_tuple__247);
73017  __Pyx_GIVEREF(__pyx_tuple__247);
73018 
73019  /* "View.MemoryView":291
73020  *
73021  *
73022  * cdef contiguous = Enum("<contiguous and direct>") # <<<<<<<<<<<<<<
73023  * cdef indirect_contiguous = Enum("<contiguous and indirect>")
73024  *
73025  */
73026  __pyx_tuple__248 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 291, __pyx_L1_error)
73027  __Pyx_GOTREF(__pyx_tuple__248);
73028  __Pyx_GIVEREF(__pyx_tuple__248);
73029 
73030  /* "View.MemoryView":292
73031  *
73032  * cdef contiguous = Enum("<contiguous and direct>")
73033  * cdef indirect_contiguous = Enum("<contiguous and indirect>") # <<<<<<<<<<<<<<
73034  *
73035  *
73036  */
73037  __pyx_tuple__249 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 292, __pyx_L1_error)
73038  __Pyx_GOTREF(__pyx_tuple__249);
73039  __Pyx_GIVEREF(__pyx_tuple__249);
73040 
73041  /* "(tree fragment)":1
73042  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
73043  * cdef object __pyx_PickleError
73044  * cdef object __pyx_result
73045  */
73046  __pyx_tuple__250 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__250)) __PYX_ERR(1, 1, __pyx_L1_error)
73047  __Pyx_GOTREF(__pyx_tuple__250);
73048  __Pyx_GIVEREF(__pyx_tuple__250);
73049  __pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(1, 1, __pyx_L1_error)
73050  __Pyx_RefNannyFinishContext();
73051  return 0;
73052  __pyx_L1_error:;
73053  __Pyx_RefNannyFinishContext();
73054  return -1;
73055 }
73056 
73057 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
73058  __pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
73059  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
73060  __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error)
73061  __pyx_float_1_ = PyFloat_FromDouble(1.); if (unlikely(!__pyx_float_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
73062  __pyx_float_2_ = PyFloat_FromDouble(2.); if (unlikely(!__pyx_float_2_)) __PYX_ERR(0, 1, __pyx_L1_error)
73063  __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error)
73064  __pyx_float_0_5 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_float_0_5)) __PYX_ERR(0, 1, __pyx_L1_error)
73065  __pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_float_1_0)) __PYX_ERR(0, 1, __pyx_L1_error)
73066  __pyx_float_0_09 = PyFloat_FromDouble(0.09); if (unlikely(!__pyx_float_0_09)) __PYX_ERR(0, 1, __pyx_L1_error)
73067  __pyx_float_0_25 = PyFloat_FromDouble(0.25); if (unlikely(!__pyx_float_0_25)) __PYX_ERR(0, 1, __pyx_L1_error)
73068  __pyx_float_0_41 = PyFloat_FromDouble(0.41); if (unlikely(!__pyx_float_0_41)) __PYX_ERR(0, 1, __pyx_L1_error)
73069  __pyx_float_5_57 = PyFloat_FromDouble(5.57); if (unlikely(!__pyx_float_5_57)) __PYX_ERR(0, 1, __pyx_L1_error)
73070  __pyx_float_1eneg_10 = PyFloat_FromDouble(1e-10); if (unlikely(!__pyx_float_1eneg_10)) __PYX_ERR(0, 1, __pyx_L1_error)
73071  __pyx_float_1eneg_20 = PyFloat_FromDouble(1e-20); if (unlikely(!__pyx_float_1eneg_20)) __PYX_ERR(0, 1, __pyx_L1_error)
73072  __pyx_float_1eneg_30 = PyFloat_FromDouble(1e-30); if (unlikely(!__pyx_float_1eneg_30)) __PYX_ERR(0, 1, __pyx_L1_error)
73073  __pyx_float_11_225 = PyFloat_FromDouble(11.225); if (unlikely(!__pyx_float_11_225)) __PYX_ERR(0, 1, __pyx_L1_error)
73074  __pyx_float_1_004eneg_6 = PyFloat_FromDouble(1.004e-6); if (unlikely(!__pyx_float_1_004eneg_6)) __PYX_ERR(0, 1, __pyx_L1_error)
73075  __pyx_float_1_005eneg_6 = PyFloat_FromDouble(1.005e-6); if (unlikely(!__pyx_float_1_005eneg_6)) __PYX_ERR(0, 1, __pyx_L1_error)
73076  __pyx_float_neg_1_ = PyFloat_FromDouble(-1.); if (unlikely(!__pyx_float_neg_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
73077  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
73078  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
73079  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
73080  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
73081  __pyx_int_3281892 = PyInt_FromLong(3281892L); if (unlikely(!__pyx_int_3281892)) __PYX_ERR(0, 1, __pyx_L1_error)
73082  __pyx_int_24898426 = PyInt_FromLong(24898426L); if (unlikely(!__pyx_int_24898426)) __PYX_ERR(0, 1, __pyx_L1_error)
73083  __pyx_int_37384334 = PyInt_FromLong(37384334L); if (unlikely(!__pyx_int_37384334)) __PYX_ERR(0, 1, __pyx_L1_error)
73084  __pyx_int_95533784 = PyInt_FromLong(95533784L); if (unlikely(!__pyx_int_95533784)) __PYX_ERR(0, 1, __pyx_L1_error)
73085  __pyx_int_112105877 = PyInt_FromLong(112105877L); if (unlikely(!__pyx_int_112105877)) __PYX_ERR(0, 1, __pyx_L1_error)
73086  __pyx_int_136983863 = PyInt_FromLong(136983863L); if (unlikely(!__pyx_int_136983863)) __PYX_ERR(0, 1, __pyx_L1_error)
73087  __pyx_int_161222453 = PyInt_FromLong(161222453L); if (unlikely(!__pyx_int_161222453)) __PYX_ERR(0, 1, __pyx_L1_error)
73088  __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error)
73089  __pyx_int_190238252 = PyInt_FromLong(190238252L); if (unlikely(!__pyx_int_190238252)) __PYX_ERR(0, 1, __pyx_L1_error)
73090  __pyx_int_207031348 = PyInt_FromLong(207031348L); if (unlikely(!__pyx_int_207031348)) __PYX_ERR(0, 1, __pyx_L1_error)
73091  __pyx_int_216769129 = PyInt_FromLong(216769129L); if (unlikely(!__pyx_int_216769129)) __PYX_ERR(0, 1, __pyx_L1_error)
73092  __pyx_int_249493883 = PyInt_FromLong(249493883L); if (unlikely(!__pyx_int_249493883)) __PYX_ERR(0, 1, __pyx_L1_error)
73093  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
73094  return 0;
73095  __pyx_L1_error:;
73096  return -1;
73097 }
73098 
73099 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
73100 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
73101 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
73102 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
73103 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
73104 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
73105 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
73106 
73107 static int __Pyx_modinit_global_init_code(void) {
73108  __Pyx_RefNannyDeclarations
73109  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
73110  /*--- Global init code ---*/
73111  generic = Py_None; Py_INCREF(Py_None);
73112  strided = Py_None; Py_INCREF(Py_None);
73113  indirect = Py_None; Py_INCREF(Py_None);
73114  contiguous = Py_None; Py_INCREF(Py_None);
73115  indirect_contiguous = Py_None; Py_INCREF(Py_None);
73116  __Pyx_RefNannyFinishContext();
73117  return 0;
73118 }
73119 
73120 static int __Pyx_modinit_variable_export_code(void) {
73121  __Pyx_RefNannyDeclarations
73122  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
73123  /*--- Variable export code ---*/
73124  __Pyx_RefNannyFinishContext();
73125  return 0;
73126 }
73127 
73128 static int __Pyx_modinit_function_export_code(void) {
73129  __Pyx_RefNannyDeclarations
73130  int __pyx_lineno = 0;
73131  const char *__pyx_filename = NULL;
73132  int __pyx_clineno = 0;
73133  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
73134  /*--- Function export code ---*/
73135  if (__Pyx_ExportFunction("__x_to_cpp", (void (*)(void))__pyx_f_6mprans_18BoundaryConditions___x_to_cpp, "double *(__Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73136  __Pyx_RefNannyFinishContext();
73137  return 0;
73138  __pyx_L1_error:;
73139  __Pyx_RefNannyFinishContext();
73140  return -1;
73141 }
73142 
73143 static int __Pyx_modinit_type_init_code(void) {
73144  __Pyx_RefNannyDeclarations
73145  PyObject *__pyx_t_1 = NULL;
73146  int __pyx_lineno = 0;
73147  const char *__pyx_filename = NULL;
73148  int __pyx_clineno = 0;
73149  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
73150  /*--- Type init code ---*/
73151  __pyx_t_1 = PyImport_ImportModule("proteus.BoundaryConditions"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
73152  __Pyx_GOTREF(__pyx_t_1);
73153  __pyx_ptype_7proteus_18BoundaryConditions_BC_Base = __Pyx_ImportType(__pyx_t_1, "proteus.BoundaryConditions", "BC_Base", sizeof(struct __pyx_obj_7proteus_18BoundaryConditions_BC_Base), __Pyx_ImportType_CheckSize_Warn);
73154  if (!__pyx_ptype_7proteus_18BoundaryConditions_BC_Base) __PYX_ERR(0, 1, __pyx_L1_error)
73155  __pyx_vtabptr_6mprans_18BoundaryConditions_BC_RANS = &__pyx_vtable_6mprans_18BoundaryConditions_BC_RANS;
73156  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_MoveMesh_h = (__Pyx_memviewslice (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_h;
73157  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_MoveMesh_hx = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hx;
73158  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_MoveMesh_hy = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hy;
73159  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_MoveMesh_hz = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_MoveMesh_hz;
73160  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_u_dirichlet;
73161  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_v_dirichlet;
73162  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_w_dirichlet;
73163  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_phi_dirichlet;
73164  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_vof_dirichlet;
73165  __pyx_vtable_6mprans_18BoundaryConditions_BC_RANS.__pyx___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_BC_RANS *, __Pyx_memviewslice, double))__pyx_f_6mprans_18BoundaryConditions_7BC_RANS___cpp_UnsteadyTwoPhaseVelocityInlet_p_advective;
73166  __pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_base = __pyx_ptype_7proteus_18BoundaryConditions_BC_Base;
73167  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions_BC_RANS) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
73168  #if PY_VERSION_HEX < 0x030800B1
73169  __pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_print = 0;
73170  #endif
73171  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_getattro == PyObject_GenericGetAttr)) {
73172  __pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73173  }
73174  if (__Pyx_SetVtable(__pyx_type_6mprans_18BoundaryConditions_BC_RANS.tp_dict, __pyx_vtabptr_6mprans_18BoundaryConditions_BC_RANS) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
73175  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BC_RANS, (PyObject *)&__pyx_type_6mprans_18BoundaryConditions_BC_RANS) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
73176  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6mprans_18BoundaryConditions_BC_RANS) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
73177  __pyx_ptype_6mprans_18BoundaryConditions_BC_RANS = &__pyx_type_6mprans_18BoundaryConditions_BC_RANS;
73178  __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZone = &__pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone;
73179  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.calculate_init = (void (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_init;
73180  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.calculate_vel = (__Pyx_memviewslice (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_vel;
73181  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.__pyx___cpp_calculate_vel_wave = (__Pyx_memviewslice (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_wave;
73182  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.__pyx___cpp_calculate_vel_zero = (__Pyx_memviewslice (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *, double))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_vel_zero;
73183  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.calculate_phi = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone_calculate_phi;
73184  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.__pyx___cpp_calculate_phi_porous = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous;
73185  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZone.__pyx___cpp_calculate_phi_porous_sponge = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZone *, double *))__pyx_f_6mprans_18BoundaryConditions_14RelaxationZone___cpp_calculate_phi_porous_sponge;
73186  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions_RelaxationZone) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
73187  #if PY_VERSION_HEX < 0x030800B1
73188  __pyx_type_6mprans_18BoundaryConditions_RelaxationZone.tp_print = 0;
73189  #endif
73190  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions_RelaxationZone.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions_RelaxationZone.tp_getattro == PyObject_GenericGetAttr)) {
73191  __pyx_type_6mprans_18BoundaryConditions_RelaxationZone.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73192  }
73193  if (__Pyx_SetVtable(__pyx_type_6mprans_18BoundaryConditions_RelaxationZone.tp_dict, __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZone) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
73194  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RelaxationZone, (PyObject *)&__pyx_type_6mprans_18BoundaryConditions_RelaxationZone) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
73195  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6mprans_18BoundaryConditions_RelaxationZone) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
73196  __pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone = &__pyx_type_6mprans_18BoundaryConditions_RelaxationZone;
73197  __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator = &__pyx_vtable_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
73198  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.calculate_init = (void (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate_init;
73199  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.calculate = (void (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *, int __pyx_skip_dispatch))__pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_calculate;
73200  __pyx_vtable_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.__pyx___cpp_iterate = (void (*)(struct __pyx_obj_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator *))__pyx_f_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator___cpp_iterate;
73201  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator) < 0) __PYX_ERR(0, 1036, __pyx_L1_error)
73202  #if PY_VERSION_HEX < 0x030800B1
73203  __pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.tp_print = 0;
73204  #endif
73205  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.tp_getattro == PyObject_GenericGetAttr)) {
73206  __pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73207  }
73208  if (__Pyx_SetVtable(__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator.tp_dict, __pyx_vtabptr_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator) < 0) __PYX_ERR(0, 1036, __pyx_L1_error)
73209  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RelaxationZoneWaveGenerator, (PyObject *)&__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator) < 0) __PYX_ERR(0, 1036, __pyx_L1_error)
73210  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator) < 0) __PYX_ERR(0, 1036, __pyx_L1_error)
73211  __pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator = &__pyx_type_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator;
73212  __pyx_vtabptr_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics = &__pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
73213  __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.__pyx___cpp_calculate_velocity = (__Pyx_memviewslice (*)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double))__pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_velocity;
73214  __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.__pyx___cpp_calculate_pressure = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double))__pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_pressure;
73215  __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.__pyx___cpp_calculate_phi = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double))__pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_phi;
73216  __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.__pyx___cpp_calculate_vof = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double *, double))__pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_vof;
73217  __pyx_vtable_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.__pyx___cpp_calculate_smoothing_H = (double (*)(struct __pyx_obj_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics *, double))__pyx_f_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics___cpp_calculate_smoothing_H;
73218  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics) < 0) __PYX_ERR(0, 1109, __pyx_L1_error)
73219  #if PY_VERSION_HEX < 0x030800B1
73220  __pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.tp_print = 0;
73221  #endif
73222  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.tp_getattro == PyObject_GenericGetAttr)) {
73223  __pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73224  }
73225  if (__Pyx_SetVtable(__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics.tp_dict, __pyx_vtabptr_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics) < 0) __PYX_ERR(0, 1109, __pyx_L1_error)
73226  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_cppClass_WavesCharacteristics, (PyObject *)&__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics) < 0) __PYX_ERR(0, 1109, __pyx_L1_error)
73227  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics) < 0) __PYX_ERR(0, 1109, __pyx_L1_error)
73228  __pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics = &__pyx_type_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics;
73229  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh) < 0) __PYX_ERR(0, 377, __pyx_L1_error)
73230  #if PY_VERSION_HEX < 0x030800B1
73231  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh.tp_print = 0;
73232  #endif
73233  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh.tp_getattro == PyObject_GenericGetAttr)) {
73234  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73235  }
73236  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct__setRigidBodyMoveMesh;
73237  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h) < 0) __PYX_ERR(0, 394, __pyx_L1_error)
73238  #if PY_VERSION_HEX < 0x030800B1
73239  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h.tp_print = 0;
73240  #endif
73241  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h.tp_getattro == PyObject_GenericGetAttr)) {
73242  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73243  }
73244  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_1_get_DBC_h;
73245  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh) < 0) __PYX_ERR(0, 406, __pyx_L1_error)
73246  #if PY_VERSION_HEX < 0x030800B1
73247  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh.tp_print = 0;
73248  #endif
73249  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh.tp_getattro == PyObject_GenericGetAttr)) {
73250  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73251  }
73252  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_2_setChMoveMesh;
73253  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction) < 0) __PYX_ERR(0, 446, __pyx_L1_error)
73254  #if PY_VERSION_HEX < 0x030800B1
73255  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction.tp_print = 0;
73256  #endif
73257  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction.tp_getattro == PyObject_GenericGetAttr)) {
73258  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73259  }
73260  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_3_setWallFunction;
73261  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh) < 0) __PYX_ERR(0, 494, __pyx_L1_error)
73262  #if PY_VERSION_HEX < 0x030800B1
73263  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh.tp_print = 0;
73264  #endif
73265  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh.tp_getattro == PyObject_GenericGetAttr)) {
73266  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73267  }
73268  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_4_setMoveMesh;
73269  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet) < 0) __PYX_ERR(0, 544, __pyx_L1_error)
73270  #if PY_VERSION_HEX < 0x030800B1
73271  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet.tp_print = 0;
73272  #endif
73273  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet.tp_getattro == PyObject_GenericGetAttr)) {
73274  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73275  }
73276  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_5_setUnsteadyTwoPhaseVelocityInlet;
73277  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet) < 0) __PYX_ERR(0, 644, __pyx_L1_error)
73278  #if PY_VERSION_HEX < 0x030800B1
73279  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet.tp_print = 0;
73280  #endif
73281  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet.tp_getattro == PyObject_GenericGetAttr)) {
73282  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73283  }
73284  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_6_setTwoPhaseVelocityInlet;
73285  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet) < 0) __PYX_ERR(0, 696, __pyx_L1_error)
73286  #if PY_VERSION_HEX < 0x030800B1
73287  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet.tp_print = 0;
73288  #endif
73289  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet.tp_getattro == PyObject_GenericGetAttr)) {
73290  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73291  }
73292  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_7_get_inlet_ux_dirichlet;
73293  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth) < 0) __PYX_ERR(0, 774, __pyx_L1_error)
73294  #if PY_VERSION_HEX < 0x030800B1
73295  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth.tp_print = 0;
73296  #endif
73297  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth.tp_getattro == PyObject_GenericGetAttr)) {
73298  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73299  }
73300  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_8_setHydrostaticPressureOutletWithDepth;
73301  if (PyType_Ready(&__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet) < 0) __PYX_ERR(0, 878, __pyx_L1_error)
73302  #if PY_VERSION_HEX < 0x030800B1
73303  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet.tp_print = 0;
73304  #endif
73305  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet.tp_dictoffset && __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet.tp_getattro == PyObject_GenericGetAttr)) {
73306  __pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
73307  }
73308  __pyx_ptype_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet = &__pyx_type_6mprans_18BoundaryConditions___pyx_scope_struct_9_get_inlet_ux_dirichlet;
73309  __pyx_vtabptr_array = &__pyx_vtable_array;
73310  __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview;
73311  if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error)
73312  #if PY_VERSION_HEX < 0x030800B1
73313  __pyx_type___pyx_array.tp_print = 0;
73314  #endif
73315  if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error)
73316  if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error)
73317  __pyx_array_type = &__pyx_type___pyx_array;
73318  if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 279, __pyx_L1_error)
73319  #if PY_VERSION_HEX < 0x030800B1
73320  __pyx_type___pyx_MemviewEnum.tp_print = 0;
73321  #endif
73322  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) {
73323  __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73324  }
73325  if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 279, __pyx_L1_error)
73326  __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
73327  __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
73328  __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
73329  __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
73330  __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment;
73331  __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar;
73332  __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed;
73333  __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object;
73334  __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object;
73335  if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error)
73336  #if PY_VERSION_HEX < 0x030800B1
73337  __pyx_type___pyx_memoryview.tp_print = 0;
73338  #endif
73339  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) {
73340  __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73341  }
73342  if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error)
73343  if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error)
73344  __pyx_memoryview_type = &__pyx_type___pyx_memoryview;
73345  __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
73346  __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
73347  __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object;
73348  __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object;
73349  __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type;
73350  if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error)
73351  #if PY_VERSION_HEX < 0x030800B1
73352  __pyx_type___pyx_memoryviewslice.tp_print = 0;
73353  #endif
73354  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) {
73355  __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr;
73356  }
73357  if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error)
73358  if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error)
73359  __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
73360  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73361  __Pyx_RefNannyFinishContext();
73362  return 0;
73363  __pyx_L1_error:;
73364  __Pyx_XDECREF(__pyx_t_1);
73365  __Pyx_RefNannyFinishContext();
73366  return -1;
73367 }
73368 
73369 static int __Pyx_modinit_type_import_code(void) {
73370  __Pyx_RefNannyDeclarations
73371  PyObject *__pyx_t_1 = NULL;
73372  int __pyx_lineno = 0;
73373  const char *__pyx_filename = NULL;
73374  int __pyx_clineno = 0;
73375  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
73376  /*--- Type import code ---*/
73377  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error)
73378  __Pyx_GOTREF(__pyx_t_1);
73379  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
73380  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
73381  sizeof(PyTypeObject),
73382  #else
73383  sizeof(PyHeapTypeObject),
73384  #endif
73385  __Pyx_ImportType_CheckSize_Warn);
73386  if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
73387  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73388  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 200, __pyx_L1_error)
73389  __Pyx_GOTREF(__pyx_t_1);
73390  __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
73391  if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(3, 200, __pyx_L1_error)
73392  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore);
73393  if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 223, __pyx_L1_error)
73394  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore);
73395  if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 227, __pyx_L1_error)
73396  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
73397  if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 239, __pyx_L1_error)
73398  __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73399  if (!__pyx_ptype_5numpy_generic) __PYX_ERR(3, 771, __pyx_L1_error)
73400  __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73401  if (!__pyx_ptype_5numpy_number) __PYX_ERR(3, 773, __pyx_L1_error)
73402  __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73403  if (!__pyx_ptype_5numpy_integer) __PYX_ERR(3, 775, __pyx_L1_error)
73404  __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73405  if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 777, __pyx_L1_error)
73406  __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73407  if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 779, __pyx_L1_error)
73408  __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73409  if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 781, __pyx_L1_error)
73410  __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73411  if (!__pyx_ptype_5numpy_floating) __PYX_ERR(3, 783, __pyx_L1_error)
73412  __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73413  if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 785, __pyx_L1_error)
73414  __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73415  if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 787, __pyx_L1_error)
73416  __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
73417  if (!__pyx_ptype_5numpy_character) __PYX_ERR(3, 789, __pyx_L1_error)
73418  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore);
73419  if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 827, __pyx_L1_error)
73420  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73421  __pyx_t_1 = PyImport_ImportModule("proteus.BoundaryConditions"); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 17, __pyx_L1_error)
73422  __Pyx_GOTREF(__pyx_t_1);
73423  __pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition = __Pyx_ImportType(__pyx_t_1, "proteus.BoundaryConditions", "BoundaryCondition", sizeof(struct __pyx_obj_7proteus_18BoundaryConditions_BoundaryCondition), __Pyx_ImportType_CheckSize_Warn);
73424  if (!__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition) __PYX_ERR(5, 17, __pyx_L1_error)
73425  __pyx_vtabptr_7proteus_18BoundaryConditions_BoundaryCondition = (struct __pyx_vtabstruct_7proteus_18BoundaryConditions_BoundaryCondition*)__Pyx_GetVtable(__pyx_ptype_7proteus_18BoundaryConditions_BoundaryCondition->tp_dict); if (unlikely(!__pyx_vtabptr_7proteus_18BoundaryConditions_BoundaryCondition)) __PYX_ERR(5, 17, __pyx_L1_error)
73426  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73427  __Pyx_RefNannyFinishContext();
73428  return 0;
73429  __pyx_L1_error:;
73430  __Pyx_XDECREF(__pyx_t_1);
73431  __Pyx_RefNannyFinishContext();
73432  return -1;
73433 }
73434 
73435 static int __Pyx_modinit_variable_import_code(void) {
73436  __Pyx_RefNannyDeclarations
73437  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
73438  /*--- Variable import code ---*/
73439  __Pyx_RefNannyFinishContext();
73440  return 0;
73441 }
73442 
73443 static int __Pyx_modinit_function_import_code(void) {
73444  __Pyx_RefNannyDeclarations
73445  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
73446  /*--- Function import code ---*/
73447  __Pyx_RefNannyFinishContext();
73448  return 0;
73449 }
73450 
73451 
73452 #ifndef CYTHON_NO_PYINIT_EXPORT
73453 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
73454 #elif PY_MAJOR_VERSION < 3
73455 #ifdef __cplusplus
73456 #define __Pyx_PyMODINIT_FUNC extern "C" void
73457 #else
73458 #define __Pyx_PyMODINIT_FUNC void
73459 #endif
73460 #else
73461 #ifdef __cplusplus
73462 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
73463 #else
73464 #define __Pyx_PyMODINIT_FUNC PyObject *
73465 #endif
73466 #endif
73467 
73468 
73469 #if PY_MAJOR_VERSION < 3
73470 __Pyx_PyMODINIT_FUNC initBoundaryConditions(void) CYTHON_SMALL_CODE; /*proto*/
73471 __Pyx_PyMODINIT_FUNC initBoundaryConditions(void)
73472 #else
73473 __Pyx_PyMODINIT_FUNC PyInit_BoundaryConditions(void) CYTHON_SMALL_CODE; /*proto*/
73474 __Pyx_PyMODINIT_FUNC PyInit_BoundaryConditions(void)
73475 #if CYTHON_PEP489_MULTI_PHASE_INIT
73476 {
73477  return PyModuleDef_Init(&__pyx_moduledef);
73478 }
73479 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
73480  #if PY_VERSION_HEX >= 0x030700A1
73481  static PY_INT64_T main_interpreter_id = -1;
73482  PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
73483  if (main_interpreter_id == -1) {
73484  main_interpreter_id = current_id;
73485  return (unlikely(current_id == -1)) ? -1 : 0;
73486  } else if (unlikely(main_interpreter_id != current_id))
73487  #else
73488  static PyInterpreterState *main_interpreter = NULL;
73489  PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
73490  if (!main_interpreter) {
73491  main_interpreter = current_interpreter;
73492  } else if (unlikely(main_interpreter != current_interpreter))
73493  #endif
73494  {
73495  PyErr_SetString(
73496  PyExc_ImportError,
73497  "Interpreter change detected - this module can only be loaded into one interpreter per process.");
73498  return -1;
73499  }
73500  return 0;
73501 }
73502 static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
73503  PyObject *value = PyObject_GetAttrString(spec, from_name);
73504  int result = 0;
73505  if (likely(value)) {
73506  if (allow_none || value != Py_None) {
73507  result = PyDict_SetItemString(moddict, to_name, value);
73508  }
73509  Py_DECREF(value);
73510  } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
73511  PyErr_Clear();
73512  } else {
73513  result = -1;
73514  }
73515  return result;
73516 }
73517 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
73518  PyObject *module = NULL, *moddict, *modname;
73519  if (__Pyx_check_single_interpreter())
73520  return NULL;
73521  if (__pyx_m)
73522  return __Pyx_NewRef(__pyx_m);
73523  modname = PyObject_GetAttrString(spec, "name");
73524  if (unlikely(!modname)) goto bad;
73525  module = PyModule_NewObject(modname);
73526  Py_DECREF(modname);
73527  if (unlikely(!module)) goto bad;
73528  moddict = PyModule_GetDict(module);
73529  if (unlikely(!moddict)) goto bad;
73530  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
73531  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
73532  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
73533  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
73534  return module;
73535 bad:
73536  Py_XDECREF(module);
73537  return NULL;
73538 }
73539 
73540 
73541 static CYTHON_SMALL_CODE int __pyx_pymod_exec_BoundaryConditions(PyObject *__pyx_pyinit_module)
73542 #endif
73543 #endif
73544 {
73545  __Pyx_TraceDeclarations
73546  PyObject *__pyx_t_1 = NULL;
73547  PyObject *__pyx_t_2 = NULL;
73548  PyObject *__pyx_t_3 = NULL;
73549  PyObject *__pyx_t_4 = NULL;
73550  static PyThread_type_lock __pyx_t_5[8];
73551  int __pyx_lineno = 0;
73552  const char *__pyx_filename = NULL;
73553  int __pyx_clineno = 0;
73554  __Pyx_RefNannyDeclarations
73555  #if CYTHON_PEP489_MULTI_PHASE_INIT
73556  if (__pyx_m) {
73557  if (__pyx_m == __pyx_pyinit_module) return 0;
73558  PyErr_SetString(PyExc_RuntimeError, "Module 'BoundaryConditions' has already been imported. Re-initialisation is not supported.");
73559  return -1;
73560  }
73561  #elif PY_MAJOR_VERSION >= 3
73562  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
73563  #endif
73564  #if CYTHON_REFNANNY
73565 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
73566 if (!__Pyx_RefNanny) {
73567  PyErr_Clear();
73568  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
73569  if (!__Pyx_RefNanny)
73570  Py_FatalError("failed to import 'refnanny' module");
73571 }
73572 #endif
73573  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_BoundaryConditions(void)", 0);
73574  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73575  #ifdef __Pxy_PyFrame_Initialize_Offsets
73576  __Pxy_PyFrame_Initialize_Offsets();
73577  #endif
73578  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
73579  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
73580  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
73581  #ifdef __Pyx_CyFunction_USED
73582  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73583  #endif
73584  #ifdef __Pyx_FusedFunction_USED
73585  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73586  #endif
73587  #ifdef __Pyx_Coroutine_USED
73588  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73589  #endif
73590  #ifdef __Pyx_Generator_USED
73591  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73592  #endif
73593  #ifdef __Pyx_AsyncGen_USED
73594  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73595  #endif
73596  #ifdef __Pyx_StopAsyncIteration_USED
73597  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73598  #endif
73599  /*--- Library function declarations ---*/
73600  /*--- Threads initialization code ---*/
73601  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
73602  PyEval_InitThreads();
73603  #endif
73604  /*--- Module creation code ---*/
73605  #if CYTHON_PEP489_MULTI_PHASE_INIT
73606  __pyx_m = __pyx_pyinit_module;
73607  Py_INCREF(__pyx_m);
73608  #else
73609  #if PY_MAJOR_VERSION < 3
73610  __pyx_m = Py_InitModule4("BoundaryConditions", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
73611  #else
73612  __pyx_m = PyModule_Create(&__pyx_moduledef);
73613  #endif
73614  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
73615  #endif
73616  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
73617  Py_INCREF(__pyx_d);
73618  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
73619  Py_INCREF(__pyx_b);
73620  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
73621  Py_INCREF(__pyx_cython_runtime);
73622  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
73623  /*--- Initialize various global constants etc. ---*/
73624  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73625  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
73626  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73627  #endif
73628  if (__pyx_module_is_main_mprans__BoundaryConditions) {
73629  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73630  }
73631  #if PY_MAJOR_VERSION >= 3
73632  {
73633  PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
73634  if (!PyDict_GetItemString(modules, "mprans.BoundaryConditions")) {
73635  if (unlikely(PyDict_SetItemString(modules, "mprans.BoundaryConditions", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
73636  }
73637  }
73638  #endif
73639  /*--- Builtin init code ---*/
73640  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73641  /*--- Constants init code ---*/
73642  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73643  /*--- Global type/function init code ---*/
73644  (void)__Pyx_modinit_global_init_code();
73645  (void)__Pyx_modinit_variable_export_code();
73646  if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
73647  if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
73648  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
73649  (void)__Pyx_modinit_variable_import_code();
73650  (void)__Pyx_modinit_function_import_code();
73651  /*--- Execution code ---*/
73652  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
73653  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
73654  #endif
73655  __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_BoundaryConditions(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
73656 
73657  /* "mprans/BoundaryConditions.py":9
73658  *
73659  * from __future__ import division
73660  * from builtins import str # <<<<<<<<<<<<<<
73661  * from builtins import range
73662  * from past.utils import old_div
73663  */
73664  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
73665  __Pyx_GOTREF(__pyx_t_1);
73666  __Pyx_INCREF(__pyx_n_s_str);
73667  __Pyx_GIVEREF(__pyx_n_s_str);
73668  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_str);
73669  __pyx_t_2 = __Pyx_Import(__pyx_n_s_builtins, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
73670  __Pyx_GOTREF(__pyx_t_2);
73671  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73672  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_str); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
73673  __Pyx_GOTREF(__pyx_t_1);
73674  if (PyDict_SetItem(__pyx_d, __pyx_n_s_str, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
73675  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73676  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73677 
73678  /* "mprans/BoundaryConditions.py":10
73679  * from __future__ import division
73680  * from builtins import str
73681  * from builtins import range # <<<<<<<<<<<<<<
73682  * from past.utils import old_div
73683  * import cython
73684  */
73685  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
73686  __Pyx_GOTREF(__pyx_t_2);
73687  __Pyx_INCREF(__pyx_n_s_range);
73688  __Pyx_GIVEREF(__pyx_n_s_range);
73689  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_range);
73690  __pyx_t_1 = __Pyx_Import(__pyx_n_s_builtins, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
73691  __Pyx_GOTREF(__pyx_t_1);
73692  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73693  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
73694  __Pyx_GOTREF(__pyx_t_2);
73695  if (PyDict_SetItem(__pyx_d, __pyx_n_s_range, __pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error)
73696  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73697  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73698 
73699  /* "mprans/BoundaryConditions.py":11
73700  * from builtins import str
73701  * from builtins import range
73702  * from past.utils import old_div # <<<<<<<<<<<<<<
73703  * import cython
73704  *
73705  */
73706  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
73707  __Pyx_GOTREF(__pyx_t_1);
73708  __Pyx_INCREF(__pyx_n_s_old_div);
73709  __Pyx_GIVEREF(__pyx_n_s_old_div);
73710  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_old_div);
73711  __pyx_t_2 = __Pyx_Import(__pyx_n_s_past_utils, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error)
73712  __Pyx_GOTREF(__pyx_t_2);
73713  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73714  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_old_div); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
73715  __Pyx_GOTREF(__pyx_t_1);
73716  if (PyDict_SetItem(__pyx_d, __pyx_n_s_old_div, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
73717  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73718  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73719 
73720  /* "mprans/BoundaryConditions.py":17
73721  * Module for creating boundary conditions. Imported in mprans.SpatialTools.py
73722  * """
73723  * import os, sys # <<<<<<<<<<<<<<
73724  * import numpy as np
73725  * from proteus import (AuxiliaryVariables,
73726  */
73727  __pyx_t_2 = __Pyx_Import(__pyx_n_s_os, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
73728  __Pyx_GOTREF(__pyx_t_2);
73729  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
73730  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73731  __pyx_t_2 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
73732  __Pyx_GOTREF(__pyx_t_2);
73733  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
73734  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73735 
73736  /* "mprans/BoundaryConditions.py":18
73737  * """
73738  * import os, sys
73739  * import numpy as np # <<<<<<<<<<<<<<
73740  * from proteus import (AuxiliaryVariables,
73741  * BoundaryConditions,
73742  */
73743  __pyx_t_2 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
73744  __Pyx_GOTREF(__pyx_t_2);
73745  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_2) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
73746  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73747 
73748  /* "mprans/BoundaryConditions.py":19
73749  * import os, sys
73750  * import numpy as np
73751  * from proteus import (AuxiliaryVariables, # <<<<<<<<<<<<<<
73752  * BoundaryConditions,
73753  * Comm)
73754  */
73755  __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
73756  __Pyx_GOTREF(__pyx_t_2);
73757  __Pyx_INCREF(__pyx_n_s_AuxiliaryVariables);
73758  __Pyx_GIVEREF(__pyx_n_s_AuxiliaryVariables);
73759  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_AuxiliaryVariables);
73760  __Pyx_INCREF(__pyx_n_s_BoundaryConditions);
73761  __Pyx_GIVEREF(__pyx_n_s_BoundaryConditions);
73762  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_BoundaryConditions);
73763  __Pyx_INCREF(__pyx_n_s_Comm);
73764  __Pyx_GIVEREF(__pyx_n_s_Comm);
73765  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_Comm);
73766  __pyx_t_1 = __Pyx_Import(__pyx_n_s_proteus, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
73767  __Pyx_GOTREF(__pyx_t_1);
73768  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73769  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_AuxiliaryVariables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
73770  __Pyx_GOTREF(__pyx_t_2);
73771  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AuxiliaryVariables, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
73772  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73773  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BoundaryConditions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
73774  __Pyx_GOTREF(__pyx_t_2);
73775  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BoundaryConditions, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
73776  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73777  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Comm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
73778  __Pyx_GOTREF(__pyx_t_2);
73779  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Comm, __pyx_t_2) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
73780  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73781  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73782 
73783  /* "mprans/BoundaryConditions.py":22
73784  * BoundaryConditions,
73785  * Comm)
73786  * from proteus.ctransportCoefficients import (smoothedHeaviside, # <<<<<<<<<<<<<<
73787  * smoothedHeaviside_integral)
73788  * from proteus import WaveTools as wt
73789  */
73790  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
73791  __Pyx_GOTREF(__pyx_t_1);
73792  __Pyx_INCREF(__pyx_n_s_smoothedHeaviside);
73793  __Pyx_GIVEREF(__pyx_n_s_smoothedHeaviside);
73794  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_smoothedHeaviside);
73795  __Pyx_INCREF(__pyx_n_s_smoothedHeaviside_integral);
73796  __Pyx_GIVEREF(__pyx_n_s_smoothedHeaviside_integral);
73797  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_smoothedHeaviside_integral);
73798  __pyx_t_2 = __Pyx_Import(__pyx_n_s_proteus_ctransportCoefficients, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
73799  __Pyx_GOTREF(__pyx_t_2);
73800  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73801  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_smoothedHeaviside); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
73802  __Pyx_GOTREF(__pyx_t_1);
73803  if (PyDict_SetItem(__pyx_d, __pyx_n_s_smoothedHeaviside, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
73804  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73805  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_smoothedHeaviside_integral); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
73806  __Pyx_GOTREF(__pyx_t_1);
73807  if (PyDict_SetItem(__pyx_d, __pyx_n_s_smoothedHeaviside_integral, __pyx_t_1) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
73808  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73809  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73810 
73811  /* "mprans/BoundaryConditions.py":24
73812  * from proteus.ctransportCoefficients import (smoothedHeaviside,
73813  * smoothedHeaviside_integral)
73814  * from proteus import WaveTools as wt # <<<<<<<<<<<<<<
73815  * from proteus.Profiling import logEvent
73816  * from math import cos, sin, sqrt, atan2, acos, asin
73817  */
73818  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
73819  __Pyx_GOTREF(__pyx_t_2);
73820  __Pyx_INCREF(__pyx_n_s_WaveTools);
73821  __Pyx_GIVEREF(__pyx_n_s_WaveTools);
73822  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_WaveTools);
73823  __pyx_t_1 = __Pyx_Import(__pyx_n_s_proteus, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error)
73824  __Pyx_GOTREF(__pyx_t_1);
73825  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73826  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_WaveTools); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
73827  __Pyx_GOTREF(__pyx_t_2);
73828  if (PyDict_SetItem(__pyx_d, __pyx_n_s_wt, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
73829  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73830  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73831 
73832  /* "mprans/BoundaryConditions.py":25
73833  * smoothedHeaviside_integral)
73834  * from proteus import WaveTools as wt
73835  * from proteus.Profiling import logEvent # <<<<<<<<<<<<<<
73836  * from math import cos, sin, sqrt, atan2, acos, asin
73837  * from mpi4py import MPI
73838  */
73839  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error)
73840  __Pyx_GOTREF(__pyx_t_1);
73841  __Pyx_INCREF(__pyx_n_s_logEvent);
73842  __Pyx_GIVEREF(__pyx_n_s_logEvent);
73843  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_logEvent);
73844  __pyx_t_2 = __Pyx_Import(__pyx_n_s_proteus_Profiling, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error)
73845  __Pyx_GOTREF(__pyx_t_2);
73846  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73847  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_logEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error)
73848  __Pyx_GOTREF(__pyx_t_1);
73849  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logEvent, __pyx_t_1) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
73850  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73851  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73852 
73853  /* "mprans/BoundaryConditions.py":26
73854  * from proteus import WaveTools as wt
73855  * from proteus.Profiling import logEvent
73856  * from math import cos, sin, sqrt, atan2, acos, asin # <<<<<<<<<<<<<<
73857  * from mpi4py import MPI
73858  * from scipy import spatial
73859  */
73860  __pyx_t_2 = PyList_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73861  __Pyx_GOTREF(__pyx_t_2);
73862  __Pyx_INCREF(__pyx_n_s_cos);
73863  __Pyx_GIVEREF(__pyx_n_s_cos);
73864  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_cos);
73865  __Pyx_INCREF(__pyx_n_s_sin);
73866  __Pyx_GIVEREF(__pyx_n_s_sin);
73867  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_sin);
73868  __Pyx_INCREF(__pyx_n_s_sqrt);
73869  __Pyx_GIVEREF(__pyx_n_s_sqrt);
73870  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_sqrt);
73871  __Pyx_INCREF(__pyx_n_s_atan2);
73872  __Pyx_GIVEREF(__pyx_n_s_atan2);
73873  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_atan2);
73874  __Pyx_INCREF(__pyx_n_s_acos);
73875  __Pyx_GIVEREF(__pyx_n_s_acos);
73876  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_acos);
73877  __Pyx_INCREF(__pyx_n_s_asin);
73878  __Pyx_GIVEREF(__pyx_n_s_asin);
73879  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_asin);
73880  __pyx_t_1 = __Pyx_Import(__pyx_n_s_math, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error)
73881  __Pyx_GOTREF(__pyx_t_1);
73882  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73883  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73884  __Pyx_GOTREF(__pyx_t_2);
73885  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cos, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73886  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73887  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73888  __Pyx_GOTREF(__pyx_t_2);
73889  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sin, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73890  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73891  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73892  __Pyx_GOTREF(__pyx_t_2);
73893  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sqrt, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73894  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73895  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_atan2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73896  __Pyx_GOTREF(__pyx_t_2);
73897  if (PyDict_SetItem(__pyx_d, __pyx_n_s_atan2, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73898  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73899  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_acos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73900  __Pyx_GOTREF(__pyx_t_2);
73901  if (PyDict_SetItem(__pyx_d, __pyx_n_s_acos, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73902  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73903  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_asin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
73904  __Pyx_GOTREF(__pyx_t_2);
73905  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asin, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
73906  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73907  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73908 
73909  /* "mprans/BoundaryConditions.py":27
73910  * from proteus.Profiling import logEvent
73911  * from math import cos, sin, sqrt, atan2, acos, asin
73912  * from mpi4py import MPI # <<<<<<<<<<<<<<
73913  * from scipy import spatial
73914  *
73915  */
73916  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
73917  __Pyx_GOTREF(__pyx_t_1);
73918  __Pyx_INCREF(__pyx_n_s_MPI);
73919  __Pyx_GIVEREF(__pyx_n_s_MPI);
73920  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI);
73921  __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
73922  __Pyx_GOTREF(__pyx_t_2);
73923  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73924  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
73925  __Pyx_GOTREF(__pyx_t_1);
73926  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MPI, __pyx_t_1) < 0) __PYX_ERR(0, 27, __pyx_L1_error)
73927  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73928  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73929 
73930  /* "mprans/BoundaryConditions.py":28
73931  * from math import cos, sin, sqrt, atan2, acos, asin
73932  * from mpi4py import MPI
73933  * from scipy import spatial # <<<<<<<<<<<<<<
73934  *
73935  * __all__ = ['BC_RANS',
73936  */
73937  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
73938  __Pyx_GOTREF(__pyx_t_2);
73939  __Pyx_INCREF(__pyx_n_s_spatial);
73940  __Pyx_GIVEREF(__pyx_n_s_spatial);
73941  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_spatial);
73942  __pyx_t_1 = __Pyx_Import(__pyx_n_s_scipy, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
73943  __Pyx_GOTREF(__pyx_t_1);
73944  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73945  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_spatial); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
73946  __Pyx_GOTREF(__pyx_t_2);
73947  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spatial, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
73948  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73949  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73950 
73951  /* "mprans/BoundaryConditions.py":30
73952  * from scipy import spatial
73953  *
73954  * __all__ = ['BC_RANS', # <<<<<<<<<<<<<<
73955  * 'RelaxationZone',
73956  * 'RelaxationZoneWaveGenerator',
73957  */
73958  __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error)
73959  __Pyx_GOTREF(__pyx_t_1);
73960  __Pyx_INCREF(__pyx_n_s_BC_RANS);
73961  __Pyx_GIVEREF(__pyx_n_s_BC_RANS);
73962  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_BC_RANS);
73963  __Pyx_INCREF(__pyx_n_s_RelaxationZone);
73964  __Pyx_GIVEREF(__pyx_n_s_RelaxationZone);
73965  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_RelaxationZone);
73966  __Pyx_INCREF(__pyx_n_s_RelaxationZoneWaveGenerator);
73967  __Pyx_GIVEREF(__pyx_n_s_RelaxationZoneWaveGenerator);
73968  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_RelaxationZoneWaveGenerator);
73969  __Pyx_INCREF(__pyx_n_s_cppClass_WavesCharacteristics_2);
73970  __Pyx_GIVEREF(__pyx_n_s_cppClass_WavesCharacteristics_2);
73971  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_cppClass_WavesCharacteristics_2);
73972  __Pyx_INCREF(__pyx_n_s_WallFunctions);
73973  __Pyx_GIVEREF(__pyx_n_s_WallFunctions);
73974  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_WallFunctions);
73975  __Pyx_INCREF(__pyx_n_s_kWall);
73976  __Pyx_GIVEREF(__pyx_n_s_kWall);
73977  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_kWall);
73978  if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_1) < 0) __PYX_ERR(0, 30, __pyx_L1_error)
73979  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73980 
73981  /* "mprans/BoundaryConditions.py":103
73982  * self.clsvof_diffusive = BoundaryCondition()
73983  *
73984  * def reset(self): # <<<<<<<<<<<<<<
73985  * """
73986  * Resets all BoundaryCondtion functions to None, apart from the BCs
73987  */
73988  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_3reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_reset, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error)
73989  __Pyx_GOTREF(__pyx_t_1);
73990  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_reset, __pyx_t_1) < 0) __PYX_ERR(0, 103, __pyx_L1_error)
73991  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73992  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
73993 
73994  /* "mprans/BoundaryConditions.py":150
73995  * self.clsvof_diffusive.resetBC()
73996  *
73997  * def setNonMaterial(self): # <<<<<<<<<<<<<<
73998  * """
73999  * Sets non-material boundary conditions (diffusive flux and advective vof
74000  */
74001  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_5setNonMaterial, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setNonMaterial, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
74002  __Pyx_GOTREF(__pyx_t_1);
74003  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setNonMaterial, __pyx_t_1) < 0) __PYX_ERR(0, 150, __pyx_L1_error)
74004  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74005  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74006 
74007  /* "mprans/BoundaryConditions.py":173
74008  * self.pInc_diffusive.setConstantBC(0.)
74009  *
74010  * def setTank(self, b_or=None): # <<<<<<<<<<<<<<
74011  * if b_or is None:
74012  * assert self._b_or is not None, 'Boundary orientation must be defined!'
74013  */
74014  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_7setTank, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setTank, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error)
74015  __Pyx_GOTREF(__pyx_t_1);
74016  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setTank, __pyx_t_1) < 0) __PYX_ERR(0, 173, __pyx_L1_error)
74017  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74018  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74019 
74020  /* "mprans/BoundaryConditions.py":193
74021  * self.w_stress.uOfXT = None
74022  *
74023  * def setFixedNodes(self): # <<<<<<<<<<<<<<
74024  * """
74025  * For moving domains: fixes nodes/boundary
74026  */
74027  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_9setFixedNodes, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setFixedNodes, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error)
74028  __Pyx_GOTREF(__pyx_t_1);
74029  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setFixedNodes, __pyx_t_1) < 0) __PYX_ERR(0, 193, __pyx_L1_error)
74030  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74031  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74032 
74033  /* "mprans/BoundaryConditions.py":204
74034  * self.w_stress.uOfXT = 0.
74035  *
74036  * def setNoSlip(self): # <<<<<<<<<<<<<<
74037  * """
74038  * Sets no slip conditions at the boundary
74039  */
74040  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_11setNoSlip, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setNoSlip, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
74041  __Pyx_GOTREF(__pyx_t_1);
74042  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setNoSlip, __pyx_t_1) < 0) __PYX_ERR(0, 204, __pyx_L1_error)
74043  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74044  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74045 
74046  /* "mprans/BoundaryConditions.py":230
74047  * self.dissipation_diffusive.setConstantBC(0.)
74048  *
74049  * def setFreeSlip(self): # <<<<<<<<<<<<<<
74050  * """
74051  * Sets free slip conditions at the boundary
74052  */
74053  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_13setFreeSlip, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setFreeSlip, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error)
74054  __Pyx_GOTREF(__pyx_t_1);
74055  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setFreeSlip, __pyx_t_1) < 0) __PYX_ERR(0, 230, __pyx_L1_error)
74056  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74057  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74058 
74059  /* "mprans/BoundaryConditions.py":262
74060  * self.dissipation_diffusive.setConstantBC(0.)
74061  *
74062  * def setConstantInletVelocity(self, U, ramp, kk, dd , b_or): # <<<<<<<<<<<<<<
74063  * """
74064  * Sets constant velocity in each inlet face with ramping up and turbulence properties
74065  */
74066  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_15setConstantInletVelocity, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setConstantInletVelocity, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error)
74067  __Pyx_GOTREF(__pyx_t_1);
74068  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setConstantInletVelocity, __pyx_t_1) < 0) __PYX_ERR(0, 262, __pyx_L1_error)
74069  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74070  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74071 
74072  /* "mprans/BoundaryConditions.py":292
74073  * self.vs_diffusive.setConstantBC(0.)
74074  * self.ws_diffusive.setConstantBC(0.)
74075  * def setConstantOutletPressure(self, p, rho, g ,kk, dd, b_or): # <<<<<<<<<<<<<<
74076  * """
74077  * Sets constant pressure in each outlet face for single phase flows
74078  */
74079  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_17setConstantOutletPressure, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setConstantOutletPressur, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error)
74080  __Pyx_GOTREF(__pyx_t_1);
74081  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setConstantOutletPressure, __pyx_t_1) < 0) __PYX_ERR(0, 292, __pyx_L1_error)
74082  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74083  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74084 
74085  /* "mprans/BoundaryConditions.py":326
74086  * self.ws_diffusive.setConstantBC(0.)
74087  *
74088  * def setAtmosphere(self, orientation=None, vof_air=1.,kInflow=None,dInflow=None): # <<<<<<<<<<<<<<
74089  * """
74090  * Sets atmosphere boundary conditions (water can come out)
74091  */
74092  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_19setAtmosphere, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setAtmosphere, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 326, __pyx_L1_error)
74093  __Pyx_GOTREF(__pyx_t_1);
74094  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setAtmosphere, __pyx_t_1) < 0) __PYX_ERR(0, 326, __pyx_L1_error)
74095  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74096  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74097 
74098  /* "mprans/BoundaryConditions.py":377
74099  * else:
74100  * logEvent("WARNING: Dirichlet condition for dissipation in "+str(self.BC_type)+" has not been set. Ignore if RANS is not used")
74101  * def setRigidBodyMoveMesh(self, body): # <<<<<<<<<<<<<<
74102  * """
74103  * Sets boundary conditions for moving the mesh with a rigid body
74104  */
74105  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_21setRigidBodyMoveMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setRigidBodyMoveMesh, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 377, __pyx_L1_error)
74106  __Pyx_GOTREF(__pyx_t_1);
74107  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setRigidBodyMoveMesh, __pyx_t_1) < 0) __PYX_ERR(0, 377, __pyx_L1_error)
74108  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74109  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74110 
74111  /* "mprans/BoundaryConditions.py":406
74112  * self.hz_dirichlet.uOfXT = get_DBC_h(2)
74113  *
74114  * def setChMoveMesh(self, body): # <<<<<<<<<<<<<<
74115  * self.hx_dirichlet.uOfXT = lambda x, t, n=None: body.hx(x, t)
74116  * self.hy_dirichlet.uOfXT = lambda x, t, n=None: body.hy(x, t)
74117  */
74118  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_23setChMoveMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setChMoveMesh, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L1_error)
74119  __Pyx_GOTREF(__pyx_t_1);
74120  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setChMoveMesh, __pyx_t_1) < 0) __PYX_ERR(0, 406, __pyx_L1_error)
74121  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74122  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74123 
74124  /* "mprans/BoundaryConditions.py":411
74125  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: body.hz(x, t)
74126  *
74127  * def setTurbulentDirichlet(self, kVal, dissipationVal): # <<<<<<<<<<<<<<
74128  * """
74129  * Sets only dirichlet conditions for turbulence at the boundary.
74130  */
74131  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_25setTurbulentDirichlet, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setTurbulentDirichlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error)
74132  __Pyx_GOTREF(__pyx_t_1);
74133  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setTurbulentDirichlet, __pyx_t_1) < 0) __PYX_ERR(0, 411, __pyx_L1_error)
74134  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74135  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74136 
74137  /* "mprans/BoundaryConditions.py":433
74138  * self.dissipation_diffusive.resetBC()
74139  *
74140  * def setTurbulentZeroGradient(self): # <<<<<<<<<<<<<<
74141  * """
74142  * Sets only zero-gradient conditions for turbulence at the boundary.
74143  */
74144  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_27setTurbulentZeroGradient, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setTurbulentZeroGradient, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error)
74145  __Pyx_GOTREF(__pyx_t_1);
74146  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setTurbulentZeroGradient, __pyx_t_1) < 0) __PYX_ERR(0, 433, __pyx_L1_error)
74147  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74148  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74149 
74150  /* "mprans/BoundaryConditions.py":446
74151  * self.dissipation_diffusive.setConstantBC(0.)
74152  *
74153  * def setWallFunction(self, wall, shearStress=False): # <<<<<<<<<<<<<<
74154  * """
74155  * Sets turbulent boundaries for wall treatment.
74156  */
74157  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_29setWallFunction, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setWallFunction, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error)
74158  __Pyx_GOTREF(__pyx_t_1);
74159  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setWallFunction, __pyx_t_1) < 0) __PYX_ERR(0, 446, __pyx_L1_error)
74160  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74161  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74162 
74163  /* "mprans/BoundaryConditions.py":494
74164  * self.k_dirichlet.uOfXT = lambda x, t: wf.get_k_dirichlet(x, t)
74165  * """
74166  * def setMoveMesh(self, last_pos, h=(0., 0., 0.), rot_matrix=None): # <<<<<<<<<<<<<<
74167  * """
74168  * Sets boundary conditions for moving the mesh with a rigid body
74169  */
74170  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_31setMoveMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setMoveMesh, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L1_error)
74171  __Pyx_GOTREF(__pyx_t_1);
74172  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setMoveMesh, __pyx_t_1) < 0) __PYX_ERR(0, 494, __pyx_L1_error)
74173  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74174  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74175 
74176  /* "mprans/BoundaryConditions.py":522
74177  * self.hz_dirichlet.uOfXT = lambda x, t, n=None: self.__cpp_MoveMesh_hz(x, t)
74178  *
74179  * def __cpp_MoveMesh_h(self, x, t): # <<<<<<<<<<<<<<
74180  * cython.declare(x_0=cython.double[3])
74181  * cython.declare(new_x_0=cython.double[3])
74182  */
74183  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_33__cpp_MoveMesh_h, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___cpp_MoveMesh_h, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error)
74184  __Pyx_GOTREF(__pyx_t_1);
74185  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_cpp_MoveMesh_h, __pyx_t_1) < 0) __PYX_ERR(0, 522, __pyx_L1_error)
74186  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74187  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74188 
74189  /* "mprans/BoundaryConditions.py":535
74190  * return hx
74191  *
74192  * def __cpp_MoveMesh_hx(self, x, t): # <<<<<<<<<<<<<<
74193  * return self.__cpp_MoveMesh_h(x, t)[0]
74194  *
74195  */
74196  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_35__cpp_MoveMesh_hx, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___cpp_MoveMesh_hx, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error)
74197  __Pyx_GOTREF(__pyx_t_1);
74198  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_cpp_MoveMesh_hx, __pyx_t_1) < 0) __PYX_ERR(0, 535, __pyx_L1_error)
74199  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74200  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74201 
74202  /* "mprans/BoundaryConditions.py":538
74203  * return self.__cpp_MoveMesh_h(x, t)[0]
74204  *
74205  * def __cpp_MoveMesh_hy(self, x, t): # <<<<<<<<<<<<<<
74206  * return self.__cpp_MoveMesh_h(x, t)[1]
74207  *
74208  */
74209  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_37__cpp_MoveMesh_hy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___cpp_MoveMesh_hy, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
74210  __Pyx_GOTREF(__pyx_t_1);
74211  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_cpp_MoveMesh_hy, __pyx_t_1) < 0) __PYX_ERR(0, 538, __pyx_L1_error)
74212  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74213  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74214 
74215  /* "mprans/BoundaryConditions.py":541
74216  * return self.__cpp_MoveMesh_h(x, t)[1]
74217  *
74218  * def __cpp_MoveMesh_hz(self, x, t): # <<<<<<<<<<<<<<
74219  * return self.__cpp_MoveMesh_h(x, t)[2]
74220  *
74221  */
74222  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_39__cpp_MoveMesh_hz, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___cpp_MoveMesh_hz, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 541, __pyx_L1_error)
74223  __Pyx_GOTREF(__pyx_t_1);
74224  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_cpp_MoveMesh_hz, __pyx_t_1) < 0) __PYX_ERR(0, 541, __pyx_L1_error)
74225  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74226  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74227 
74228  /* "mprans/BoundaryConditions.py":544
74229  * return self.__cpp_MoveMesh_h(x, t)[2]
74230  *
74231  * def setUnsteadyTwoPhaseVelocityInlet(self, wave, smoothing, vert_axis=None,orientation=None, # <<<<<<<<<<<<<<
74232  * wind_speed=None, vof_air=1., vof_water=0.,kInflow=1e-30, dInflow = 1e-10):
74233  * """
74234  */
74235  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_41setUnsteadyTwoPhaseVelocityInlet, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setUnsteadyTwoPhaseVeloc, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 544, __pyx_L1_error)
74236  __Pyx_GOTREF(__pyx_t_1);
74237  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setUnsteadyTwoPhaseVelocityInlet_2, __pyx_t_1) < 0) __PYX_ERR(0, 544, __pyx_L1_error)
74238  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74239  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74240 
74241  /* "mprans/BoundaryConditions.py":644
74242  * return self.waves.__cpp_calculate_vof(xx, t)
74243  *
74244  * def setTwoPhaseVelocityInlet(self, U, waterLevel, smoothing, Uwind=None, # <<<<<<<<<<<<<<
74245  * vert_axis=None, air=1., water=0.,
74246  * kInflow=None, dissipationInflow=None,
74247  */
74248  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_43setTwoPhaseVelocityInlet, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setTwoPhaseVelocityInlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L1_error)
74249  __Pyx_GOTREF(__pyx_t_1);
74250  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setTwoPhaseVelocityInlet, __pyx_t_1) < 0) __PYX_ERR(0, 644, __pyx_L1_error)
74251  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74252  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74253 
74254  /* "mprans/BoundaryConditions.py":774
74255  * self.dissipation_diffusive.resetBC()
74256  *
74257  * def setHydrostaticPressureOutletWithDepth(self, seaLevel, rhoUp, rhoDown, g, # <<<<<<<<<<<<<<
74258  * refLevel, smoothing, orientation=None,U=None, Uwind=None,
74259  * pRef=0.0, vert_axis=None,
74260  */
74261  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_45setHydrostaticPressureOutletWithDepth, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS_setHydrostaticPressureOu, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
74262  __Pyx_GOTREF(__pyx_t_1);
74263  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setHydrostaticPressureOutletWith_8, __pyx_t_1) < 0) __PYX_ERR(0, 774, __pyx_L1_error)
74264  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74265  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74266 
74267  /* "(tree fragment)":1
74268  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
74269  * cdef tuple state
74270  * cdef object _dict
74271  */
74272  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_47__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___reduce_cython, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74273  __Pyx_GOTREF(__pyx_t_1);
74274  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74275  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74276  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74277 
74278  /* "(tree fragment)":16
74279  * else:
74280  * return __pyx_unpickle_BC_RANS, (type(self), 0xb56ce2c, state)
74281  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
74282  * __pyx_unpickle_BC_RANS__set_state(self, __pyx_state)
74283  */
74284  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_7BC_RANS_49__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BC_RANS___setstate_cython, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 16, __pyx_L1_error)
74285  __Pyx_GOTREF(__pyx_t_1);
74286  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS->tp_dict, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
74287  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74288  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_BC_RANS);
74289 
74290  /* "mprans/BoundaryConditions.py":948
74291  *
74292  * def __cinit__(self, zone_type, center, orientation, epsFact_porous,
74293  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]), # <<<<<<<<<<<<<<
74294  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0.,
74295  * vof_water=0., vof_air=1.):
74296  */
74297  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error)
74298  __Pyx_GOTREF(__pyx_t_1);
74299  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 948, __pyx_L1_error)
74300  __Pyx_GOTREF(__pyx_t_2);
74301  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74302  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error)
74303  __Pyx_GOTREF(__pyx_t_1);
74304  __Pyx_INCREF(__pyx_float_0_);
74305  __Pyx_GIVEREF(__pyx_float_0_);
74306  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_);
74307  __Pyx_INCREF(__pyx_float_0_);
74308  __Pyx_GIVEREF(__pyx_float_0_);
74309  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_);
74310  __Pyx_INCREF(__pyx_float_0_);
74311  __Pyx_GIVEREF(__pyx_float_0_);
74312  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_);
74313  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error)
74314  __Pyx_GOTREF(__pyx_t_3);
74315  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74316  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74317  __pyx_k__90 = __pyx_t_3;
74318  __Pyx_GIVEREF(__pyx_t_3);
74319  __pyx_t_3 = 0;
74320 
74321  /* "mprans/BoundaryConditions.py":949
74322  * def __cinit__(self, zone_type, center, orientation, epsFact_porous,
74323  * waves=None, shape=None, wind_speed=np.array([0., 0., 0.]),
74324  * dragAlpha=old_div(0.5, 1.005e-6), dragBeta=0., porosity=1., vert_axis=None, smoothing=0., # <<<<<<<<<<<<<<
74325  * vof_water=0., vof_air=1.):
74326  * self.Shape = shape
74327  */
74328  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_old_div); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 949, __pyx_L1_error)
74329  __Pyx_GOTREF(__pyx_t_3);
74330  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__194, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error)
74331  __Pyx_GOTREF(__pyx_t_1);
74332  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74333  __pyx_k__91 = __pyx_t_1;
74334  __Pyx_GIVEREF(__pyx_t_1);
74335  __pyx_t_1 = 0;
74336 
74337  /* "mprans/BoundaryConditions.py":968
74338  * self.zero_vel = np.zeros(3)
74339  *
74340  * def calculate_init(self): # <<<<<<<<<<<<<<
74341  * if self.zone_type == 'generation':
74342  * # self.u = &self.waves.u
74343  */
74344  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_3calculate_init, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZone_calculate_init, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error)
74345  __Pyx_GOTREF(__pyx_t_1);
74346  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone->tp_dict, __pyx_n_s_calculate_init, __pyx_t_1) < 0) __PYX_ERR(0, 968, __pyx_L1_error)
74347  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74348  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone);
74349 
74350  /* "mprans/BoundaryConditions.py":1013
74351  * return self.uu(self, d, t)
74352  *
74353  * def calculate_phi_python(self, x): # <<<<<<<<<<<<<<
74354  * cython.declare(xx=cython.double[3], tt=cython.double)
74355  * xx[0] = x[0]
74356  */
74357  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_5calculate_phi_python, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZone_calculate_phi_pyt, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L1_error)
74358  __Pyx_GOTREF(__pyx_t_1);
74359  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone->tp_dict, __pyx_n_s_calculate_phi_python, __pyx_t_1) < 0) __PYX_ERR(0, 1013, __pyx_L1_error)
74360  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74361  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone);
74362 
74363  /* "mprans/BoundaryConditions.py":1021
74364  * return ph
74365  *
74366  * def calculate_vel_python(self, x, t, n=None): # <<<<<<<<<<<<<<
74367  * cython.declare(xx=cython.double[3], tt=cython.double)
74368  * xx[0] = x[0]
74369  */
74370  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_7calculate_vel_python, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZone_calculate_vel_pyt, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1021, __pyx_L1_error)
74371  __Pyx_GOTREF(__pyx_t_1);
74372  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone->tp_dict, __pyx_n_s_calculate_vel_python, __pyx_t_1) < 0) __PYX_ERR(0, 1021, __pyx_L1_error)
74373  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74374  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZone);
74375 
74376  /* "(tree fragment)":1
74377  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
74378  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
74379  * def __setstate_cython__(self, __pyx_state):
74380  */
74381  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZone___reduce_cython, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74382  __Pyx_GOTREF(__pyx_t_1);
74383  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74384  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74385 
74386  /* "(tree fragment)":3
74387  * def __reduce_cython__(self):
74388  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
74389  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
74390  * raise TypeError("no default __reduce__ due to non-trivial __cinit__")
74391  */
74392  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_14RelaxationZone_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZone___setstate_cython, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error)
74393  __Pyx_GOTREF(__pyx_t_1);
74394  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
74395  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74396 
74397  /* "mprans/BoundaryConditions.py":1054
74398  * self.nd = nd
74399  *
74400  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
74401  * self.model = model
74402  * self.ar = ar
74403  */
74404  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_3attachModel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator_atta, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1054, __pyx_L1_error)
74405  __Pyx_GOTREF(__pyx_t_1);
74406  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_attachModel, __pyx_t_1) < 0) __PYX_ERR(0, 1054, __pyx_L1_error)
74407  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74408  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74409 
74410  /* "mprans/BoundaryConditions.py":1059
74411  * return self
74412  *
74413  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
74414  * pass
74415  *
74416  */
74417  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_5attachAuxiliaryVariables, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator_atta_2, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L1_error)
74418  __Pyx_GOTREF(__pyx_t_1);
74419  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_attachAuxiliaryVariables, __pyx_t_1) < 0) __PYX_ERR(0, 1059, __pyx_L1_error)
74420  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74421  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74422 
74423  /* "mprans/BoundaryConditions.py":1062
74424  * pass
74425  *
74426  * def calculate_init(self): # <<<<<<<<<<<<<<
74427  * max_key = 0
74428  * for key, zone in list(self.zones.items()):
74429  */
74430  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_7calculate_init, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator_calc, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
74431  __Pyx_GOTREF(__pyx_t_1);
74432  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_calculate_init, __pyx_t_1) < 0) __PYX_ERR(0, 1062, __pyx_L1_error)
74433  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74434  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74435 
74436  /* "mprans/BoundaryConditions.py":1073
74437  * self.zones_array[key] = zone
74438  *
74439  * def calculate(self): # <<<<<<<<<<<<<<
74440  * self.__cpp_iterate()
74441  *
74442  */
74443  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_9calculate, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator_calc_2, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error)
74444  __Pyx_GOTREF(__pyx_t_1);
74445  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_calculate, __pyx_t_1) < 0) __PYX_ERR(0, 1073, __pyx_L1_error)
74446  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74447  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74448 
74449  /* "(tree fragment)":1
74450  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
74451  * cdef tuple state
74452  * cdef object _dict
74453  */
74454  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator___re, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74455  __Pyx_GOTREF(__pyx_t_1);
74456  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74457  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74458  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74459 
74460  /* "(tree fragment)":16
74461  * else:
74462  * return __pyx_unpickle_RelaxationZoneWaveGenerator, (type(self), 0x03213e4, state)
74463  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
74464  * __pyx_unpickle_RelaxationZoneWaveGenerator__set_state(self, __pyx_state)
74465  */
74466  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_27RelaxationZoneWaveGenerator_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RelaxationZoneWaveGenerator___se, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 16, __pyx_L1_error)
74467  __Pyx_GOTREF(__pyx_t_1);
74468  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator->tp_dict, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
74469  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74470  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions_RelaxationZoneWaveGenerator);
74471 
74472  /* "(tree fragment)":1
74473  * def __reduce_cython__(self): # <<<<<<<<<<<<<<
74474  * cdef tuple state
74475  * cdef object _dict
74476  */
74477  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cppClass_WavesCharacteristics_3, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74478  __Pyx_GOTREF(__pyx_t_1);
74479  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics->tp_dict, __pyx_n_s_reduce_cython, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74480  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74481  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics);
74482 
74483  /* "(tree fragment)":16
74484  * else:
74485  * return __pyx_unpickle___cppClass_WavesCharacteristics, (type(self), 0x17beb7a, state)
74486  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
74487  * __pyx_unpickle___cppClass_WavesCharacteristics__set_state(self, __pyx_state)
74488  */
74489  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_31__cppClass_WavesCharacteristics_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_cppClass_WavesCharacteristics_4, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 16, __pyx_L1_error)
74490  __Pyx_GOTREF(__pyx_t_1);
74491  if (PyDict_SetItem((PyObject *)__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics->tp_dict, __pyx_n_s_setstate_cython, __pyx_t_1) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
74492  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74493  PyType_Modified(__pyx_ptype_6mprans_18BoundaryConditions___cppClass_WavesCharacteristics);
74494 
74495  /* "mprans/BoundaryConditions.py":1219
74496  *
74497  *
74498  * class WallFunctions(AuxiliaryVariables.AV_base): # <<<<<<<<<<<<<<
74499  * """
74500  * Auxiliary variable used to calculate attributes of an associated shape
74501  */
74502  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AuxiliaryVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1219, __pyx_L1_error)
74503  __Pyx_GOTREF(__pyx_t_1);
74504  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AV_base); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1219, __pyx_L1_error)
74505  __Pyx_GOTREF(__pyx_t_3);
74506  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74507  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1219, __pyx_L1_error)
74508  __Pyx_GOTREF(__pyx_t_1);
74509  __Pyx_GIVEREF(__pyx_t_3);
74510  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
74511  __pyx_t_3 = 0;
74512  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1219, __pyx_L1_error)
74513  __Pyx_GOTREF(__pyx_t_3);
74514  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_1, __pyx_n_s_WallFunctions, __pyx_n_s_WallFunctions, (PyObject *) NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_kp_s_Auxiliary_variable_used_to_calc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1219, __pyx_L1_error)
74515  __Pyx_GOTREF(__pyx_t_2);
74516 
74517  /* "mprans/BoundaryConditions.py":1225
74518  * """
74519  *
74520  * def __init__(self, turbModel, kWall, Y, Yplus, U0, nu=1.004e-6, Cmu=0.09, K=0.41, B=5.57): # <<<<<<<<<<<<<<
74521  * """
74522  * Sets turbulent boundaries for wall treatment.
74523  */
74524  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_1__init__, 0, __pyx_n_s_WallFunctions___init, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1225, __pyx_L1_error)
74525  __Pyx_GOTREF(__pyx_t_4);
74526  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__209);
74527  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(0, 1225, __pyx_L1_error)
74528  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74529 
74530  /* "mprans/BoundaryConditions.py":1277
74531  * self.kWall = kWall
74532  *
74533  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
74534  * """
74535  * Attaches model to auxiliary variable
74536  */
74537  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_3attachModel, 0, __pyx_n_s_WallFunctions_attachModel, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1277, __pyx_L1_error)
74538  __Pyx_GOTREF(__pyx_t_4);
74539  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_attachModel, __pyx_t_4) < 0) __PYX_ERR(0, 1277, __pyx_L1_error)
74540  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74541 
74542  /* "mprans/BoundaryConditions.py":1288
74543  * return self
74544  *
74545  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
74546  * pass
74547  *
74548  */
74549  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_5attachAuxiliaryVariables, 0, __pyx_n_s_WallFunctions_attachAuxiliaryVar, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1288, __pyx_L1_error)
74550  __Pyx_GOTREF(__pyx_t_4);
74551  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_attachAuxiliaryVariables, __pyx_t_4) < 0) __PYX_ERR(0, 1288, __pyx_L1_error)
74552  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74553 
74554  /* "mprans/BoundaryConditions.py":1291
74555  * pass
74556  *
74557  * def calculate_init(self): # <<<<<<<<<<<<<<
74558  * pass
74559  *
74560  */
74561  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_7calculate_init, 0, __pyx_n_s_WallFunctions_calculate_init, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1291, __pyx_L1_error)
74562  __Pyx_GOTREF(__pyx_t_4);
74563  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_calculate_init, __pyx_t_4) < 0) __PYX_ERR(0, 1291, __pyx_L1_error)
74564  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74565 
74566  /* "mprans/BoundaryConditions.py":1294
74567  * pass
74568  *
74569  * def calculate(self): # <<<<<<<<<<<<<<
74570  * pass
74571  *
74572  */
74573  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_9calculate, 0, __pyx_n_s_WallFunctions_calculate, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1294, __pyx_L1_error)
74574  __Pyx_GOTREF(__pyx_t_4);
74575  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_calculate, __pyx_t_4) < 0) __PYX_ERR(0, 1294, __pyx_L1_error)
74576  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74577 
74578  /* "mprans/BoundaryConditions.py":1297
74579  * pass
74580  *
74581  * def getLocalNearestNode(self, coords, kdtree): # <<<<<<<<<<<<<<
74582  * """
74583  * Finds nearest node to coordinates (local)
74584  */
74585  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_11getLocalNearestNode, 0, __pyx_n_s_WallFunctions_getLocalNearestNod, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1297, __pyx_L1_error)
74586  __Pyx_GOTREF(__pyx_t_4);
74587  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getLocalNearestNode, __pyx_t_4) < 0) __PYX_ERR(0, 1297, __pyx_L1_error)
74588  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74589 
74590  /* "mprans/BoundaryConditions.py":1317
74591  * return node, distance
74592  *
74593  * def getLocalElement(self, femSpace, coords, node): # <<<<<<<<<<<<<<
74594  * """
74595  * Given coordinates and its nearest node, determine if it is on a
74596  */
74597  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_13getLocalElement, 0, __pyx_n_s_WallFunctions_getLocalElement, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1317, __pyx_L1_error)
74598  __Pyx_GOTREF(__pyx_t_4);
74599  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getLocalElement, __pyx_t_4) < 0) __PYX_ERR(0, 1317, __pyx_L1_error)
74600  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74601 
74602  /* "mprans/BoundaryConditions.py":1363
74603  * return None
74604  *
74605  * def findElementContainingCoords(self, coords): # <<<<<<<<<<<<<<
74606  * """
74607  * Given global coordinates of a point, returns
74608  */
74609  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_15findElementContainingCoords, 0, __pyx_n_s_WallFunctions_findElementContain, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1363, __pyx_L1_error)
74610  __Pyx_GOTREF(__pyx_t_4);
74611  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_findElementContainingCoords, __pyx_t_4) < 0) __PYX_ERR(0, 1363, __pyx_L1_error)
74612  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74613 
74614  /* "mprans/BoundaryConditions.py":1401
74615  * return xi, local_element, rank
74616  *
74617  * def getFluidVelocityLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
74618  * """
74619  * Given local details, returns velocity field at those coordinates.
74620  */
74621  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_17getFluidVelocityLocalCoords, 0, __pyx_n_s_WallFunctions_getFluidVelocityLo, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1401, __pyx_L1_error)
74622  __Pyx_GOTREF(__pyx_t_4);
74623  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getFluidVelocityLocalCoords, __pyx_t_4) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
74624  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74625 
74626  /* "mprans/BoundaryConditions.py":1426
74627  * return u, v, w
74628  *
74629  * def setYplusNormalDirection(self, x, t,n, relax=1.0): # <<<<<<<<<<<<<<
74630  * """
74631  * Return the point at y+ distance in normal
74632  */
74633  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_19setYplusNormalDirection, 0, __pyx_n_s_WallFunctions_setYplusNormalDire, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1426, __pyx_L1_error)
74634  __Pyx_GOTREF(__pyx_t_4);
74635  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__219);
74636  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_setYplusNormalDirection, __pyx_t_4) < 0) __PYX_ERR(0, 1426, __pyx_L1_error)
74637  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74638 
74639  /* "mprans/BoundaryConditions.py":1438
74640  * return nP
74641  *
74642  * def extractVelocity(self, x, t, n): # <<<<<<<<<<<<<<
74643  * """
74644  * Extraction of the velocity at y+ distance from the boundary.
74645  */
74646  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_21extractVelocity, 0, __pyx_n_s_WallFunctions_extractVelocity, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1438, __pyx_L1_error)
74647  __Pyx_GOTREF(__pyx_t_4);
74648  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_extractVelocity, __pyx_t_4) < 0) __PYX_ERR(0, 1438, __pyx_L1_error)
74649  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74650 
74651  /* "mprans/BoundaryConditions.py":1459
74652  * return u, v, w
74653  *
74654  * def tangentialVelocity(self, x, t, n, uInit=None): # <<<<<<<<<<<<<<
74655  * """
74656  * Given the velocity, calculates its
74657  */
74658  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_23tangentialVelocity, 0, __pyx_n_s_WallFunctions_tangentialVelocity, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1459, __pyx_L1_error)
74659  __Pyx_GOTREF(__pyx_t_4);
74660  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__222);
74661  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_tangentialVelocity, __pyx_t_4) < 0) __PYX_ERR(0, 1459, __pyx_L1_error)
74662  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74663 
74664  /* "mprans/BoundaryConditions.py":1481
74665  * self.tV = old_div(self.tanU,np.sqrt(np.sum(self.tanU**2)))
74666  *
74667  * def getVariables(self, x, t): # <<<<<<<<<<<<<<
74668  * """
74669  * Calculates velocity, gradient of the velocity and
74670  */
74671  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_25getVariables, 0, __pyx_n_s_WallFunctions_getVariables, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1481, __pyx_L1_error)
74672  __Pyx_GOTREF(__pyx_t_4);
74673  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getVariables, __pyx_t_4) < 0) __PYX_ERR(0, 1481, __pyx_L1_error)
74674  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74675 
74676  /* "mprans/BoundaryConditions.py":1511
74677  * self.uDir = self.tanU - (self.gradU * self.Y)
74678  *
74679  * def get_u_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
74680  * if t > 0.:
74681  * uInit = False
74682  */
74683  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_27get_u_dirichlet, 0, __pyx_n_s_WallFunctions_get_u_dirichlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1511, __pyx_L1_error)
74684  __Pyx_GOTREF(__pyx_t_4);
74685  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_u_dirichlet, __pyx_t_4) < 0) __PYX_ERR(0, 1511, __pyx_L1_error)
74686  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74687 
74688  /* "mprans/BoundaryConditions.py":1520
74689  * return self.uDir[0]
74690  *
74691  * def get_v_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
74692  * if t > 0.:
74693  * uInit = False
74694  */
74695  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_29get_v_dirichlet, 0, __pyx_n_s_WallFunctions_get_v_dirichlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1520, __pyx_L1_error)
74696  __Pyx_GOTREF(__pyx_t_4);
74697  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_v_dirichlet, __pyx_t_4) < 0) __PYX_ERR(0, 1520, __pyx_L1_error)
74698  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74699 
74700  /* "mprans/BoundaryConditions.py":1529
74701  * return self.uDir[1]
74702  *
74703  * def get_w_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
74704  * if t > 0.:
74705  * uInit = False
74706  */
74707  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_31get_w_dirichlet, 0, __pyx_n_s_WallFunctions_get_w_dirichlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1529, __pyx_L1_error)
74708  __Pyx_GOTREF(__pyx_t_4);
74709  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_w_dirichlet, __pyx_t_4) < 0) __PYX_ERR(0, 1529, __pyx_L1_error)
74710  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74711 
74712  /* "mprans/BoundaryConditions.py":1538
74713  * return self.uDir[2]
74714  *
74715  * def get_k_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
74716  * if t > 0.:
74717  * uInit = False
74718  */
74719  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_33get_k_dirichlet, 0, __pyx_n_s_WallFunctions_get_k_dirichlet, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1538, __pyx_L1_error)
74720  __Pyx_GOTREF(__pyx_t_4);
74721  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_k_dirichlet, __pyx_t_4) < 0) __PYX_ERR(0, 1538, __pyx_L1_error)
74722  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74723 
74724  /* "mprans/BoundaryConditions.py":1547
74725  * return self.kappa
74726  *
74727  * def get_dissipation_dirichlet(self, x, t, n): # <<<<<<<<<<<<<<
74728  * if t > 0.:
74729  * uInit = False
74730  */
74731  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_35get_dissipation_dirichlet, 0, __pyx_n_s_WallFunctions_get_dissipation_di, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1547, __pyx_L1_error)
74732  __Pyx_GOTREF(__pyx_t_4);
74733  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_dissipation_dirichlet, __pyx_t_4) < 0) __PYX_ERR(0, 1547, __pyx_L1_error)
74734  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74735 
74736  /* "mprans/BoundaryConditions.py":1561
74737  * return d
74738  *
74739  * def get_u_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
74740  * if t > 0.:
74741  * uInit = False
74742  */
74743  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_37get_u_diffusive, 0, __pyx_n_s_WallFunctions_get_u_diffusive, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1561, __pyx_L1_error)
74744  __Pyx_GOTREF(__pyx_t_4);
74745  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_u_diffusive, __pyx_t_4) < 0) __PYX_ERR(0, 1561, __pyx_L1_error)
74746  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74747 
74748  /* "mprans/BoundaryConditions.py":1571
74749  * return gradU
74750  *
74751  * def get_v_diffusive(self, x, t, n ): # <<<<<<<<<<<<<<
74752  * if t > 0.:
74753  * uInit = False
74754  */
74755  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_39get_v_diffusive, 0, __pyx_n_s_WallFunctions_get_v_diffusive, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1571, __pyx_L1_error)
74756  __Pyx_GOTREF(__pyx_t_4);
74757  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_v_diffusive, __pyx_t_4) < 0) __PYX_ERR(0, 1571, __pyx_L1_error)
74758  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74759 
74760  /* "mprans/BoundaryConditions.py":1581
74761  * return gradU
74762  *
74763  * def get_w_diffusive(self, x, t, n): # <<<<<<<<<<<<<<
74764  * if t > 0.:
74765  * uInit = False
74766  */
74767  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_13WallFunctions_41get_w_diffusive, 0, __pyx_n_s_WallFunctions_get_w_diffusive, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1581, __pyx_L1_error)
74768  __Pyx_GOTREF(__pyx_t_4);
74769  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_get_w_diffusive, __pyx_t_4) < 0) __PYX_ERR(0, 1581, __pyx_L1_error)
74770  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74771 
74772  /* "mprans/BoundaryConditions.py":1219
74773  *
74774  *
74775  * class WallFunctions(AuxiliaryVariables.AV_base): # <<<<<<<<<<<<<<
74776  * """
74777  * Auxiliary variable used to calculate attributes of an associated shape
74778  */
74779  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_WallFunctions, __pyx_t_1, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1219, __pyx_L1_error)
74780  __Pyx_GOTREF(__pyx_t_4);
74781  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WallFunctions, __pyx_t_4) < 0) __PYX_ERR(0, 1219, __pyx_L1_error)
74782  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74783  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74784  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74785  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74786 
74787  /* "mprans/BoundaryConditions.py":1592
74788  *
74789  *
74790  * class kWall(AuxiliaryVariables.AV_base): # <<<<<<<<<<<<<<
74791  * """
74792  * Auxiliary variable used to calculate attributes of an associated shape
74793  */
74794  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AuxiliaryVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
74795  __Pyx_GOTREF(__pyx_t_1);
74796  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AV_base); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1592, __pyx_L1_error)
74797  __Pyx_GOTREF(__pyx_t_3);
74798  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74799  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
74800  __Pyx_GOTREF(__pyx_t_1);
74801  __Pyx_GIVEREF(__pyx_t_3);
74802  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
74803  __pyx_t_3 = 0;
74804  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1592, __pyx_L1_error)
74805  __Pyx_GOTREF(__pyx_t_3);
74806  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_1, __pyx_n_s_kWall, __pyx_n_s_kWall, (PyObject *) NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_kp_s_Auxiliary_variable_used_to_calc_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1592, __pyx_L1_error)
74807  __Pyx_GOTREF(__pyx_t_2);
74808 
74809  /* "mprans/BoundaryConditions.py":1598
74810  * """
74811  *
74812  * def __init__(self, Y, Yplus, nu=1.004e-6, Cmu=0.09): # <<<<<<<<<<<<<<
74813  * """
74814  * Sets turbulent boundaries for wall treatment.
74815  */
74816  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_1__init__, 0, __pyx_n_s_kWall___init, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1598, __pyx_L1_error)
74817  __Pyx_GOTREF(__pyx_t_4);
74818  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__233);
74819  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(0, 1598, __pyx_L1_error)
74820  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74821 
74822  /* "mprans/BoundaryConditions.py":1609
74823  * self.Cmu = Cmu
74824  *
74825  * def attachModel(self, model, ar): # <<<<<<<<<<<<<<
74826  * """
74827  * Attaches model to auxiliary variable
74828  */
74829  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_3attachModel, 0, __pyx_n_s_kWall_attachModel, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1609, __pyx_L1_error)
74830  __Pyx_GOTREF(__pyx_t_4);
74831  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_attachModel, __pyx_t_4) < 0) __PYX_ERR(0, 1609, __pyx_L1_error)
74832  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74833 
74834  /* "mprans/BoundaryConditions.py":1618
74835  * return self
74836  *
74837  * def attachAuxiliaryVariables(self, avDict): # <<<<<<<<<<<<<<
74838  * pass
74839  *
74840  */
74841  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_5attachAuxiliaryVariables, 0, __pyx_n_s_kWall_attachAuxiliaryVariables, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1618, __pyx_L1_error)
74842  __Pyx_GOTREF(__pyx_t_4);
74843  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_attachAuxiliaryVariables, __pyx_t_4) < 0) __PYX_ERR(0, 1618, __pyx_L1_error)
74844  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74845 
74846  /* "mprans/BoundaryConditions.py":1621
74847  * pass
74848  *
74849  * def calculate_init(self): # <<<<<<<<<<<<<<
74850  * pass
74851  *
74852  */
74853  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_7calculate_init, 0, __pyx_n_s_kWall_calculate_init, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1621, __pyx_L1_error)
74854  __Pyx_GOTREF(__pyx_t_4);
74855  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_calculate_init, __pyx_t_4) < 0) __PYX_ERR(0, 1621, __pyx_L1_error)
74856  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74857 
74858  /* "mprans/BoundaryConditions.py":1624
74859  * pass
74860  *
74861  * def calculate(self): # <<<<<<<<<<<<<<
74862  * pass
74863  *
74864  */
74865  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_9calculate, 0, __pyx_n_s_kWall_calculate, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1624, __pyx_L1_error)
74866  __Pyx_GOTREF(__pyx_t_4);
74867  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_calculate, __pyx_t_4) < 0) __PYX_ERR(0, 1624, __pyx_L1_error)
74868  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74869 
74870  /* "mprans/BoundaryConditions.py":1627
74871  * pass
74872  *
74873  * def getFluidKappaLocalCoords(self, xi, element, rank): # <<<<<<<<<<<<<<
74874  * """
74875  *
74876  */
74877  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_11getFluidKappaLocalCoords, 0, __pyx_n_s_kWall_getFluidKappaLocalCoords, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1627, __pyx_L1_error)
74878  __Pyx_GOTREF(__pyx_t_4);
74879  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getFluidKappaLocalCoords, __pyx_t_4) < 0) __PYX_ERR(0, 1627, __pyx_L1_error)
74880  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74881 
74882  /* "mprans/BoundaryConditions.py":1649
74883  * return kappa
74884  *
74885  * def kappaNearWall(self, xi, element, rank, kInit=None): # <<<<<<<<<<<<<<
74886  * if kInit is True or self.model is None:
74887  * self.ut = self.Yplus * self.nu / self.Y
74888  */
74889  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_13kappaNearWall, 0, __pyx_n_s_kWall_kappaNearWall, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1649, __pyx_L1_error)
74890  __Pyx_GOTREF(__pyx_t_4);
74891  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__240);
74892  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_kappaNearWall, __pyx_t_4) < 0) __PYX_ERR(0, 1649, __pyx_L1_error)
74893  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74894 
74895  /* "mprans/BoundaryConditions.py":1656
74896  * self.kappa = self.getFluidKappaLocalCoords(xi, element, rank)
74897  *
74898  * def getKappa(self, x, t, xi, element, rank): # <<<<<<<<<<<<<<
74899  * if t > 0.:
74900  * kInit = False
74901  */
74902  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5kWall_15getKappa, 0, __pyx_n_s_kWall_getKappa, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1656, __pyx_L1_error)
74903  __Pyx_GOTREF(__pyx_t_4);
74904  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getKappa, __pyx_t_4) < 0) __PYX_ERR(0, 1656, __pyx_L1_error)
74905  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74906 
74907  /* "mprans/BoundaryConditions.py":1592
74908  *
74909  *
74910  * class kWall(AuxiliaryVariables.AV_base): # <<<<<<<<<<<<<<
74911  * """
74912  * Auxiliary variable used to calculate attributes of an associated shape
74913  */
74914  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_kWall, __pyx_t_1, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1592, __pyx_L1_error)
74915  __Pyx_GOTREF(__pyx_t_4);
74916  if (PyDict_SetItem(__pyx_d, __pyx_n_s_kWall, __pyx_t_4) < 0) __PYX_ERR(0, 1592, __pyx_L1_error)
74917  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
74918  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74919  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74920  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74921 
74922  /* "(tree fragment)":1
74923  * def __pyx_unpickle_BC_RANS(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
74924  * cdef object __pyx_PickleError
74925  * cdef object __pyx_result
74926  */
74927  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_1__pyx_unpickle_BC_RANS, 0, __pyx_n_s_pyx_unpickle_BC_RANS, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74928  __Pyx_GOTREF(__pyx_t_1);
74929  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BC_RANS, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74930  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74931 
74932  /* "(tree fragment)":11
74933  * __pyx_unpickle_BC_RANS__set_state(<BC_RANS> __pyx_result, __pyx_state)
74934  * return __pyx_result
74935  * cdef __pyx_unpickle_BC_RANS__set_state(BC_RANS __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
74936  * __pyx_result.BC_type = __pyx_state[0]; __pyx_result.Shape = __pyx_state[1]; __pyx_result._b_or = __pyx_state[2]; __pyx_result.body = __pyx_state[3]; __pyx_result.body_python_h = __pyx_state[4]; __pyx_result.body_python_last_pos = __pyx_state[5]; __pyx_result.body_python_rot_matrix = __pyx_state[6]; __pyx_result.clsvof_advective = __pyx_state[7]; __pyx_result.clsvof_diffusive = __pyx_state[8]; __pyx_result.clsvof_dirichlet = __pyx_state[9]; __pyx_result.ct = __pyx_state[10]; __pyx_result.dissipation_advective = __pyx_state[11]; __pyx_result.dissipation_diffusive = __pyx_state[12]; __pyx_result.dissipation_dirichlet = __pyx_state[13]; __pyx_result.f = __pyx_state[14]; __pyx_result.hx_dirichlet = __pyx_state[15]; __pyx_result.hy_dirichlet = __pyx_state[16]; __pyx_result.hz_dirichlet = __pyx_state[17]; __pyx_result.k_advective = __pyx_state[18]; __pyx_result.k_diffusive = __pyx_state[19]; __pyx_result.k_dirichlet = __pyx_state[20]; __pyx_result.name = __pyx_state[21]; __pyx_result.nd = __pyx_state[22]; __pyx_result.pAddedMass_dirichlet = __pyx_state[23]; __pyx_result.pInc_advective = __pyx_state[24]; __pyx_result.pInc_diffusive = __pyx_state[25]; __pyx_result.pInc_dirichlet = __pyx_state[26]; __pyx_result.pInit_advective = __pyx_state[27]; __pyx_result.pInit_diffusive = __pyx_state[28]; __pyx_result.pInit_dirichlet = __pyx_state[29]; __pyx_result.p_advective = __pyx_state[30]; __pyx_result.p_dirichlet = __pyx_state[31]; __pyx_result.phi_dirichlet = __pyx_state[32]; __pyx_result.u_advective = __pyx_state[33]; __pyx_result.u_diffusive = __pyx_state[34]; __pyx_result.u_dirichlet = __pyx_state[35]; __pyx_result.u_stress = __pyx_state[36]; __pyx_result.us_advective = __pyx_state[37]; __pyx_result.us_diffusive = __pyx_state[38]; __pyx_result.us_dirichlet = __pyx_state[39]; __pyx_result.v_advective = __pyx_state[40]; __pyx_result.v_diffusive = __pyx_state[41]; __pyx_result.v_dirichlet = __pyx_state[42]; __pyx_result.v_stress = __pyx_state[43]; __pyx_result.vof_advective = __pyx_state[44]; __pyx_result.vof_dirichlet = __pyx_state[45]; __pyx_result.vos_advective = __pyx_state[46]; __pyx_result.vos_dirichlet = __pyx_state[47]; __pyx_result.vs_advective = __pyx_state[48]; __pyx_result.vs_diffusive = __pyx_state[49]; __pyx_result.vs_dirichlet = __pyx_state[50]; __pyx_result.w_advective = __pyx_state[51]; __pyx_result.w_diffusive = __pyx_state[52]; __pyx_result.w_dirichlet = __pyx_state[53]; __pyx_result.w_stress = __pyx_state[54]; __pyx_result.waves = __pyx_state[55]; __pyx_result.wind_speed = __pyx_state[56]; __pyx_result.ws_advective = __pyx_state[57]; __pyx_result.ws_diffusive = __pyx_state[58]; __pyx_result.ws_dirichlet = __pyx_state[59]; __pyx_result.zero_array = __pyx_state[60]
74937  * if len(__pyx_state) > 61 and hasattr(__pyx_result, '__dict__'):
74938  */
74939  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_3__pyx_unpickle_RelaxationZoneWaveGenerator, 0, __pyx_n_s_pyx_unpickle_RelaxationZoneWav, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74940  __Pyx_GOTREF(__pyx_t_1);
74941  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RelaxationZoneWav, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74942  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74943 
74944  /* "(tree fragment)":1
74945  * def __pyx_unpickle___cppClass_WavesCharacteristics(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
74946  * cdef object __pyx_PickleError
74947  * cdef object __pyx_result
74948  */
74949  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6mprans_18BoundaryConditions_5__pyx_unpickle___cppClass_WavesCharacteristics, 0, __pyx_n_s_pyx_unpickle___cppClass_WavesC, NULL, __pyx_n_s_mprans_BoundaryConditions, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
74950  __Pyx_GOTREF(__pyx_t_1);
74951  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle___cppClass_WavesC, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
74952  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74953 
74954  /* "mprans/BoundaryConditions.py":1
74955  * #!python # <<<<<<<<<<<<<<
74956  * # distutils: language = c++
74957  * # cython: profile=True, binding=True, embedsignature=True
74958  */
74959  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
74960  __Pyx_GOTREF(__pyx_t_1);
74961  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
74962  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74963 
74964  /* "View.MemoryView":209
74965  * info.obj = self
74966  *
74967  * __pyx_getbuffer = capsule(<void *> &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<<
74968  *
74969  * def __dealloc__(array self):
74970  */
74971  __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 209, __pyx_L1_error)
74972  __Pyx_GOTREF(__pyx_t_1);
74973  if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 209, __pyx_L1_error)
74974  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74975  PyType_Modified(__pyx_array_type);
74976 
74977  /* "View.MemoryView":286
74978  * return self.name
74979  *
74980  * cdef generic = Enum("<strided and direct or indirect>") # <<<<<<<<<<<<<<
74981  * cdef strided = Enum("<strided and direct>") # default
74982  * cdef indirect = Enum("<strided and indirect>")
74983  */
74984  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__245, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error)
74985  __Pyx_GOTREF(__pyx_t_1);
74986  __Pyx_XGOTREF(generic);
74987  __Pyx_DECREF_SET(generic, __pyx_t_1);
74988  __Pyx_GIVEREF(__pyx_t_1);
74989  __pyx_t_1 = 0;
74990 
74991  /* "View.MemoryView":287
74992  *
74993  * cdef generic = Enum("<strided and direct or indirect>")
74994  * cdef strided = Enum("<strided and direct>") # default # <<<<<<<<<<<<<<
74995  * cdef indirect = Enum("<strided and indirect>")
74996  *
74997  */
74998  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__246, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error)
74999  __Pyx_GOTREF(__pyx_t_1);
75000  __Pyx_XGOTREF(strided);
75001  __Pyx_DECREF_SET(strided, __pyx_t_1);
75002  __Pyx_GIVEREF(__pyx_t_1);
75003  __pyx_t_1 = 0;
75004 
75005  /* "View.MemoryView":288
75006  * cdef generic = Enum("<strided and direct or indirect>")
75007  * cdef strided = Enum("<strided and direct>") # default
75008  * cdef indirect = Enum("<strided and indirect>") # <<<<<<<<<<<<<<
75009  *
75010  *
75011  */
75012  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__247, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error)
75013  __Pyx_GOTREF(__pyx_t_1);
75014  __Pyx_XGOTREF(indirect);
75015  __Pyx_DECREF_SET(indirect, __pyx_t_1);
75016  __Pyx_GIVEREF(__pyx_t_1);
75017  __pyx_t_1 = 0;
75018 
75019  /* "View.MemoryView":291
75020  *
75021  *
75022  * cdef contiguous = Enum("<contiguous and direct>") # <<<<<<<<<<<<<<
75023  * cdef indirect_contiguous = Enum("<contiguous and indirect>")
75024  *
75025  */
75026  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__248, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
75027  __Pyx_GOTREF(__pyx_t_1);
75028  __Pyx_XGOTREF(contiguous);
75029  __Pyx_DECREF_SET(contiguous, __pyx_t_1);
75030  __Pyx_GIVEREF(__pyx_t_1);
75031  __pyx_t_1 = 0;
75032 
75033  /* "View.MemoryView":292
75034  *
75035  * cdef contiguous = Enum("<contiguous and direct>")
75036  * cdef indirect_contiguous = Enum("<contiguous and indirect>") # <<<<<<<<<<<<<<
75037  *
75038  *
75039  */
75040  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__249, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error)
75041  __Pyx_GOTREF(__pyx_t_1);
75042  __Pyx_XGOTREF(indirect_contiguous);
75043  __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_1);
75044  __Pyx_GIVEREF(__pyx_t_1);
75045  __pyx_t_1 = 0;
75046 
75047  /* "View.MemoryView":316
75048  *
75049  * DEF THREAD_LOCKS_PREALLOCATED = 8
75050  * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<<
75051  * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [
75052  * PyThread_allocate_lock(),
75053  */
75054  __pyx_memoryview_thread_locks_used = 0;
75055 
75056  /* "View.MemoryView":317
75057  * DEF THREAD_LOCKS_PREALLOCATED = 8
75058  * cdef int __pyx_memoryview_thread_locks_used = 0
75059  * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<<
75060  * PyThread_allocate_lock(),
75061  * PyThread_allocate_lock(),
75062  */
75063  __pyx_t_5[0] = PyThread_allocate_lock();
75064  __pyx_t_5[1] = PyThread_allocate_lock();
75065  __pyx_t_5[2] = PyThread_allocate_lock();
75066  __pyx_t_5[3] = PyThread_allocate_lock();
75067  __pyx_t_5[4] = PyThread_allocate_lock();
75068  __pyx_t_5[5] = PyThread_allocate_lock();
75069  __pyx_t_5[6] = PyThread_allocate_lock();
75070  __pyx_t_5[7] = PyThread_allocate_lock();
75071  memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_5, sizeof(__pyx_memoryview_thread_locks[0]) * (8));
75072 
75073  /* "View.MemoryView":549
75074  * info.obj = self
75075  *
75076  * __pyx_getbuffer = capsule(<void *> &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<<
75077  *
75078  *
75079  */
75080  __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 549, __pyx_L1_error)
75081  __Pyx_GOTREF(__pyx_t_1);
75082  if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 549, __pyx_L1_error)
75083  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75084  PyType_Modified(__pyx_memoryview_type);
75085 
75086  /* "View.MemoryView":995
75087  * return self.from_object
75088  *
75089  * __pyx_getbuffer = capsule(<void *> &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<<
75090  *
75091  *
75092  */
75093  __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 995, __pyx_L1_error)
75094  __Pyx_GOTREF(__pyx_t_1);
75095  if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 995, __pyx_L1_error)
75096  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75097  PyType_Modified(__pyx_memoryviewslice_type);
75098 
75099  /* "(tree fragment)":1
75100  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
75101  * cdef object __pyx_PickleError
75102  * cdef object __pyx_result
75103  */
75104  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
75105  __Pyx_GOTREF(__pyx_t_1);
75106  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
75107  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75108 
75109  /* "BufferFormatFromTypeInfo":1463
75110  *
75111  * @cname('__pyx_format_from_typeinfo')
75112  * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<<
75113  * cdef __Pyx_StructField *field
75114  * cdef __pyx_typeinfo_string fmt
75115  */
75116  __Pyx_TraceReturn(Py_None, 0);
75117 
75118  /*--- Wrapped vars code ---*/
75119 
75120  goto __pyx_L0;
75121  __pyx_L1_error:;
75122  __Pyx_XDECREF(__pyx_t_1);
75123  __Pyx_XDECREF(__pyx_t_2);
75124  __Pyx_XDECREF(__pyx_t_3);
75125  __Pyx_XDECREF(__pyx_t_4);
75126  if (__pyx_m) {
75127  if (__pyx_d) {
75128  __Pyx_AddTraceback("init mprans.BoundaryConditions", __pyx_clineno, __pyx_lineno, __pyx_filename);
75129  }
75130  Py_CLEAR(__pyx_m);
75131  } else if (!PyErr_Occurred()) {
75132  PyErr_SetString(PyExc_ImportError, "init mprans.BoundaryConditions");
75133  }
75134  __pyx_L0:;
75135  __Pyx_RefNannyFinishContext();
75136  #if CYTHON_PEP489_MULTI_PHASE_INIT
75137  return (__pyx_m != NULL) ? 0 : -1;
75138  #elif PY_MAJOR_VERSION >= 3
75139  return __pyx_m;
75140  #else
75141  return;
75142  #endif
75143 }
75144 
75145 /* --- Runtime support code --- */
75146 /* Refnanny */
75147 #if CYTHON_REFNANNY
75148 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
75149  PyObject *m = NULL, *p = NULL;
75150  void *r = NULL;
75151  m = PyImport_ImportModule(modname);
75152  if (!m) goto end;
75153  p = PyObject_GetAttrString(m, "RefNannyAPI");
75154  if (!p) goto end;
75155  r = PyLong_AsVoidPtr(p);
75156 end:
75157  Py_XDECREF(p);
75158  Py_XDECREF(m);
75159  return (__Pyx_RefNannyAPIStruct *)r;
75160 }
75161 #endif
75162 
75163 /* PyObjectGetAttrStr */
75164 #if CYTHON_USE_TYPE_SLOTS
75165 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
75166  PyTypeObject* tp = Py_TYPE(obj);
75167  if (likely(tp->tp_getattro))
75168  return tp->tp_getattro(obj, attr_name);
75169 #if PY_MAJOR_VERSION < 3
75170  if (likely(tp->tp_getattr))
75171  return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
75172 #endif
75173  return PyObject_GetAttr(obj, attr_name);
75174 }
75175 #endif
75176 
75177 /* GetBuiltinName */
75178 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
75179  PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
75180  if (unlikely(!result)) {
75181  PyErr_Format(PyExc_NameError,
75182 #if PY_MAJOR_VERSION >= 3
75183  "name '%U' is not defined", name);
75184 #else
75185  "name '%.200s' is not defined", PyString_AS_STRING(name));
75186 #endif
75187  }
75188  return result;
75189 }
75190 
75191 /* RaiseDoubleKeywords */
75192 static void __Pyx_RaiseDoubleKeywordsError(
75193  const char* func_name,
75194  PyObject* kw_name)
75195 {
75196  PyErr_Format(PyExc_TypeError,
75197  #if PY_MAJOR_VERSION >= 3
75198  "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
75199  #else
75200  "%s() got multiple values for keyword argument '%s'", func_name,
75201  PyString_AsString(kw_name));
75202  #endif
75203 }
75204 
75205 /* ParseKeywords */
75206 static int __Pyx_ParseOptionalKeywords(
75207  PyObject *kwds,
75208  PyObject **argnames[],
75209  PyObject *kwds2,
75210  PyObject *values[],
75211  Py_ssize_t num_pos_args,
75212  const char* function_name)
75213 {
75214  PyObject *key = 0, *value = 0;
75215  Py_ssize_t pos = 0;
75216  PyObject*** name;
75217  PyObject*** first_kw_arg = argnames + num_pos_args;
75218  while (PyDict_Next(kwds, &pos, &key, &value)) {
75219  name = first_kw_arg;
75220  while (*name && (**name != key)) name++;
75221  if (*name) {
75222  values[name-argnames] = value;
75223  continue;
75224  }
75225  name = first_kw_arg;
75226  #if PY_MAJOR_VERSION < 3
75227  if (likely(PyString_Check(key))) {
75228  while (*name) {
75229  if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
75230  && _PyString_Eq(**name, key)) {
75231  values[name-argnames] = value;
75232  break;
75233  }
75234  name++;
75235  }
75236  if (*name) continue;
75237  else {
75238  PyObject*** argname = argnames;
75239  while (argname != first_kw_arg) {
75240  if ((**argname == key) || (
75241  (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
75242  && _PyString_Eq(**argname, key))) {
75243  goto arg_passed_twice;
75244  }
75245  argname++;
75246  }
75247  }
75248  } else
75249  #endif
75250  if (likely(PyUnicode_Check(key))) {
75251  while (*name) {
75252  int cmp = (**name == key) ? 0 :
75253  #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
75254  (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
75255  #endif
75256  PyUnicode_Compare(**name, key);
75257  if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
75258  if (cmp == 0) {
75259  values[name-argnames] = value;
75260  break;
75261  }
75262  name++;
75263  }
75264  if (*name) continue;
75265  else {
75266  PyObject*** argname = argnames;
75267  while (argname != first_kw_arg) {
75268  int cmp = (**argname == key) ? 0 :
75269  #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
75270  (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
75271  #endif
75272  PyUnicode_Compare(**argname, key);
75273  if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
75274  if (cmp == 0) goto arg_passed_twice;
75275  argname++;
75276  }
75277  }
75278  } else
75279  goto invalid_keyword_type;
75280  if (kwds2) {
75281  if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
75282  } else {
75283  goto invalid_keyword;
75284  }
75285  }
75286  return 0;
75287 arg_passed_twice:
75288  __Pyx_RaiseDoubleKeywordsError(function_name, key);
75289  goto bad;
75290 invalid_keyword_type:
75291  PyErr_Format(PyExc_TypeError,
75292  "%.200s() keywords must be strings", function_name);
75293  goto bad;
75294 invalid_keyword:
75295  PyErr_Format(PyExc_TypeError,
75296  #if PY_MAJOR_VERSION < 3
75297  "%.200s() got an unexpected keyword argument '%.200s'",
75298  function_name, PyString_AsString(key));
75299  #else
75300  "%s() got an unexpected keyword argument '%U'",
75301  function_name, key);
75302  #endif
75303 bad:
75304  return -1;
75305 }
75306 
75307 /* RaiseArgTupleInvalid */
75308 static void __Pyx_RaiseArgtupleInvalid(
75309  const char* func_name,
75310  int exact,
75311  Py_ssize_t num_min,
75312  Py_ssize_t num_max,
75313  Py_ssize_t num_found)
75314 {
75315  Py_ssize_t num_expected;
75316  const char *more_or_less;
75317  if (num_found < num_min) {
75318  num_expected = num_min;
75319  more_or_less = "at least";
75320  } else {
75321  num_expected = num_max;
75322  more_or_less = "at most";
75323  }
75324  if (exact) {
75325  more_or_less = "exactly";
75326  }
75327  PyErr_Format(PyExc_TypeError,
75328  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
75329  func_name, more_or_less, num_expected,
75330  (num_expected == 1) ? "" : "s", num_found);
75331 }
75332 
75333 /* PyErrFetchRestore */
75334 #if CYTHON_FAST_THREAD_STATE
75335 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
75336  PyObject *tmp_type, *tmp_value, *tmp_tb;
75337  tmp_type = tstate->curexc_type;
75338  tmp_value = tstate->curexc_value;
75339  tmp_tb = tstate->curexc_traceback;
75340  tstate->curexc_type = type;
75341  tstate->curexc_value = value;
75342  tstate->curexc_traceback = tb;
75343  Py_XDECREF(tmp_type);
75344  Py_XDECREF(tmp_value);
75345  Py_XDECREF(tmp_tb);
75346 }
75347 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
75348  *type = tstate->curexc_type;
75349  *value = tstate->curexc_value;
75350  *tb = tstate->curexc_traceback;
75351  tstate->curexc_type = 0;
75352  tstate->curexc_value = 0;
75353  tstate->curexc_traceback = 0;
75354 }
75355 #endif
75356 
75357 /* Profile */
75358 #if CYTHON_PROFILE
75359 static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
75360  PyFrameObject** frame,
75361  PyThreadState* tstate,
75362  const char *funcname,
75363  const char *srcfile,
75364  int firstlineno) {
75365  PyObject *type, *value, *traceback;
75366  int retval;
75367  if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) {
75368  if (*code == NULL) {
75369  *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);
75370  if (*code == NULL) return 0;
75371  }
75372  *frame = PyFrame_New(
75373  tstate, /*PyThreadState *tstate*/
75374  *code, /*PyCodeObject *code*/
75375  __pyx_d, /*PyObject *globals*/
75376  0 /*PyObject *locals*/
75377  );
75378  if (*frame == NULL) return 0;
75379  if (CYTHON_TRACE && (*frame)->f_trace == NULL) {
75380  Py_INCREF(Py_None);
75381  (*frame)->f_trace = Py_None;
75382  }
75383 #if PY_VERSION_HEX < 0x030400B1
75384  } else {
75385  (*frame)->f_tstate = tstate;
75386 #endif
75387  }
75388  __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
75389  retval = 1;
75390  __Pyx_EnterTracing(tstate);
75391  __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
75392  #if CYTHON_TRACE
75393  if (tstate->c_tracefunc)
75394  retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0;
75395  if (retval && tstate->c_profilefunc)
75396  #endif
75397  retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0;
75398  __Pyx_LeaveTracing(tstate);
75399  if (retval) {
75400  __Pyx_ErrRestoreInState(tstate, type, value, traceback);
75401  return __Pyx_IsTracing(tstate, 0, 0) && retval;
75402  } else {
75403  Py_XDECREF(type);
75404  Py_XDECREF(value);
75405  Py_XDECREF(traceback);
75406  return -1;
75407  }
75408 }
75409 static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) {
75410  PyCodeObject *py_code = 0;
75411 #if PY_MAJOR_VERSION >= 3
75412  py_code = PyCode_NewEmpty(srcfile, funcname, firstlineno);
75413  if (likely(py_code)) {
75414  py_code->co_flags |= CO_OPTIMIZED | CO_NEWLOCALS;
75415  }
75416 #else
75417  PyObject *py_srcfile = 0;
75418  PyObject *py_funcname = 0;
75419  py_funcname = PyString_FromString(funcname);
75420  if (unlikely(!py_funcname)) goto bad;
75421  py_srcfile = PyString_FromString(srcfile);
75422  if (unlikely(!py_srcfile)) goto bad;
75423  py_code = PyCode_New(
75424  0,
75425  0,
75426  0,
75427  CO_OPTIMIZED | CO_NEWLOCALS,
75428  __pyx_empty_bytes, /*PyObject *code,*/
75429  __pyx_empty_tuple, /*PyObject *consts,*/
75430  __pyx_empty_tuple, /*PyObject *names,*/
75431  __pyx_empty_tuple, /*PyObject *varnames,*/
75432  __pyx_empty_tuple, /*PyObject *freevars,*/
75433  __pyx_empty_tuple, /*PyObject *cellvars,*/
75434  py_srcfile, /*PyObject *filename,*/
75435  py_funcname, /*PyObject *name,*/
75436  firstlineno,
75437  __pyx_empty_bytes /*PyObject *lnotab*/
75438  );
75439 bad:
75440  Py_XDECREF(py_srcfile);
75441  Py_XDECREF(py_funcname);
75442 #endif
75443  return py_code;
75444 }
75445 #endif
75446 
75447 /* PyObjectCall */
75448 #if CYTHON_COMPILING_IN_CPYTHON
75449 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
75450  PyObject *result;
75451  ternaryfunc call = Py_TYPE(func)->tp_call;
75452  if (unlikely(!call))
75453  return PyObject_Call(func, arg, kw);
75454  if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
75455  return NULL;
75456  result = (*call)(func, arg, kw);
75457  Py_LeaveRecursiveCall();
75458  if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
75459  PyErr_SetString(
75460  PyExc_SystemError,
75461  "NULL result without error in PyObject_Call");
75462  }
75463  return result;
75464 }
75465 #endif
75466 
75467 /* PyFunctionFastCall */
75468 #if CYTHON_FAST_PYCALL
75469 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
75470  PyObject *globals) {
75471  PyFrameObject *f;
75472  PyThreadState *tstate = __Pyx_PyThreadState_Current;
75473  PyObject **fastlocals;
75474  Py_ssize_t i;
75475  PyObject *result;
75476  assert(globals != NULL);
75477  /* XXX Perhaps we should create a specialized
75478  PyFrame_New() that doesn't take locals, but does
75479  take builtins without sanity checking them.
75480  */
75481  assert(tstate != NULL);
75482  f = PyFrame_New(tstate, co, globals, NULL);
75483  if (f == NULL) {
75484  return NULL;
75485  }
75486  fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
75487  for (i = 0; i < na; i++) {
75488  Py_INCREF(*args);
75489  fastlocals[i] = *args++;
75490  }
75491  result = PyEval_EvalFrameEx(f,0);
75492  ++tstate->recursion_depth;
75493  Py_DECREF(f);
75494  --tstate->recursion_depth;
75495  return result;
75496 }
75497 #if 1 || PY_VERSION_HEX < 0x030600B1
75498 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
75499  PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
75500  PyObject *globals = PyFunction_GET_GLOBALS(func);
75501  PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
75502  PyObject *closure;
75503 #if PY_MAJOR_VERSION >= 3
75504  PyObject *kwdefs;
75505 #endif
75506  PyObject *kwtuple, **k;
75507  PyObject **d;
75508  Py_ssize_t nd;
75509  Py_ssize_t nk;
75510  PyObject *result;
75511  assert(kwargs == NULL || PyDict_Check(kwargs));
75512  nk = kwargs ? PyDict_Size(kwargs) : 0;
75513  if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
75514  return NULL;
75515  }
75516  if (
75517 #if PY_MAJOR_VERSION >= 3
75518  co->co_kwonlyargcount == 0 &&
75519 #endif
75520  likely(kwargs == NULL || nk == 0) &&
75521  co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
75522  if (argdefs == NULL && co->co_argcount == nargs) {
75523  result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
75524  goto done;
75525  }
75526  else if (nargs == 0 && argdefs != NULL
75527  && co->co_argcount == Py_SIZE(argdefs)) {
75528  /* function called with no arguments, but all parameters have
75529  a default value: use default values as arguments .*/
75530  args = &PyTuple_GET_ITEM(argdefs, 0);
75531  result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
75532  goto done;
75533  }
75534  }
75535  if (kwargs != NULL) {
75536  Py_ssize_t pos, i;
75537  kwtuple = PyTuple_New(2 * nk);
75538  if (kwtuple == NULL) {
75539  result = NULL;
75540  goto done;
75541  }
75542  k = &PyTuple_GET_ITEM(kwtuple, 0);
75543  pos = i = 0;
75544  while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
75545  Py_INCREF(k[i]);
75546  Py_INCREF(k[i+1]);
75547  i += 2;
75548  }
75549  nk = i / 2;
75550  }
75551  else {
75552  kwtuple = NULL;
75553  k = NULL;
75554  }
75555  closure = PyFunction_GET_CLOSURE(func);
75556 #if PY_MAJOR_VERSION >= 3
75557  kwdefs = PyFunction_GET_KW_DEFAULTS(func);
75558 #endif
75559  if (argdefs != NULL) {
75560  d = &PyTuple_GET_ITEM(argdefs, 0);
75561  nd = Py_SIZE(argdefs);
75562  }
75563  else {
75564  d = NULL;
75565  nd = 0;
75566  }
75567 #if PY_MAJOR_VERSION >= 3
75568  result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
75569  args, (int)nargs,
75570  k, (int)nk,
75571  d, (int)nd, kwdefs, closure);
75572 #else
75573  result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
75574  args, (int)nargs,
75575  k, (int)nk,
75576  d, (int)nd, closure);
75577 #endif
75578  Py_XDECREF(kwtuple);
75579 done:
75580  Py_LeaveRecursiveCall();
75581  return result;
75582 }
75583 #endif
75584 #endif
75585 
75586 /* PyObjectCallMethO */
75587 #if CYTHON_COMPILING_IN_CPYTHON
75588 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
75589  PyObject *self, *result;
75590  PyCFunction cfunc;
75591  cfunc = PyCFunction_GET_FUNCTION(func);
75592  self = PyCFunction_GET_SELF(func);
75593  if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
75594  return NULL;
75595  result = cfunc(self, arg);
75596  Py_LeaveRecursiveCall();
75597  if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
75598  PyErr_SetString(
75599  PyExc_SystemError,
75600  "NULL result without error in PyObject_Call");
75601  }
75602  return result;
75603 }
75604 #endif
75605 
75606 /* PyObjectCallNoArg */
75607 #if CYTHON_COMPILING_IN_CPYTHON
75608 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
75609 #if CYTHON_FAST_PYCALL
75610  if (PyFunction_Check(func)) {
75611  return __Pyx_PyFunction_FastCall(func, NULL, 0);
75612  }
75613 #endif
75614 #ifdef __Pyx_CyFunction_USED
75615  if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
75616 #else
75617  if (likely(PyCFunction_Check(func)))
75618 #endif
75619  {
75620  if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
75621  return __Pyx_PyObject_CallMethO(func, NULL);
75622  }
75623  }
75624  return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
75625 }
75626 #endif
75627 
75628 /* PyCFunctionFastCall */
75629 #if CYTHON_FAST_PYCCALL
75630 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
75631  PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
75632  PyCFunction meth = PyCFunction_GET_FUNCTION(func);
75633  PyObject *self = PyCFunction_GET_SELF(func);
75634  int flags = PyCFunction_GET_FLAGS(func);
75635  assert(PyCFunction_Check(func));
75636  assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
75637  assert(nargs >= 0);
75638  assert(nargs == 0 || args != NULL);
75639  /* _PyCFunction_FastCallDict() must not be called with an exception set,
75640  because it may clear it (directly or indirectly) and so the
75641  caller loses its exception */
75642  assert(!PyErr_Occurred());
75643  if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
75644  return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
75645  } else {
75646  return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
75647  }
75648 }
75649 #endif
75650 
75651 /* PyObjectCallOneArg */
75652 #if CYTHON_COMPILING_IN_CPYTHON
75653 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
75654  PyObject *result;
75655  PyObject *args = PyTuple_New(1);
75656  if (unlikely(!args)) return NULL;
75657  Py_INCREF(arg);
75658  PyTuple_SET_ITEM(args, 0, arg);
75659  result = __Pyx_PyObject_Call(func, args, NULL);
75660  Py_DECREF(args);
75661  return result;
75662 }
75663 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
75664 #if CYTHON_FAST_PYCALL
75665  if (PyFunction_Check(func)) {
75666  return __Pyx_PyFunction_FastCall(func, &arg, 1);
75667  }
75668 #endif
75669  if (likely(PyCFunction_Check(func))) {
75670  if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
75671  return __Pyx_PyObject_CallMethO(func, arg);
75672 #if CYTHON_FAST_PYCCALL
75673  } else if (__Pyx_PyFastCFunction_Check(func)) {
75674  return __Pyx_PyCFunction_FastCall(func, &arg, 1);
75675 #endif
75676  }
75677  }
75678  return __Pyx__PyObject_CallOneArg(func, arg);
75679 }
75680 #else
75681 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
75682  PyObject *result;
75683  PyObject *args = PyTuple_Pack(1, arg);
75684  if (unlikely(!args)) return NULL;
75685  result = __Pyx_PyObject_Call(func, args, NULL);
75686  Py_DECREF(args);
75687  return result;
75688 }
75689 #endif
75690 
75691 /* PyObjectCall2Args */
75692 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
75693  PyObject *args, *result = NULL;
75694  #if CYTHON_FAST_PYCALL
75695  if (PyFunction_Check(function)) {
75696  PyObject *args[2] = {arg1, arg2};
75697  return __Pyx_PyFunction_FastCall(function, args, 2);
75698  }
75699  #endif
75700  #if CYTHON_FAST_PYCCALL
75701  if (__Pyx_PyFastCFunction_Check(function)) {
75702  PyObject *args[2] = {arg1, arg2};
75703  return __Pyx_PyCFunction_FastCall(function, args, 2);
75704  }
75705  #endif
75706  args = PyTuple_New(2);
75707  if (unlikely(!args)) goto done;
75708  Py_INCREF(arg1);
75709  PyTuple_SET_ITEM(args, 0, arg1);
75710  Py_INCREF(arg2);
75711  PyTuple_SET_ITEM(args, 1, arg2);
75712  Py_INCREF(function);
75713  result = __Pyx_PyObject_Call(function, args, NULL);
75714  Py_DECREF(args);
75715  Py_DECREF(function);
75716 done:
75717  return result;
75718 }
75719 
75720 /* PyIntCompare */
75721 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
75722  if (op1 == op2) {
75723  Py_RETURN_TRUE;
75724  }
75725  #if PY_MAJOR_VERSION < 3
75726  if (likely(PyInt_CheckExact(op1))) {
75727  const long b = intval;
75728  long a = PyInt_AS_LONG(op1);
75729  if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
75730  }
75731  #endif
75732  #if CYTHON_USE_PYLONG_INTERNALS
75733  if (likely(PyLong_CheckExact(op1))) {
75734  int unequal;
75735  unsigned long uintval;
75736  Py_ssize_t size = Py_SIZE(op1);
75737  const digit* digits = ((PyLongObject*)op1)->ob_digit;
75738  if (intval == 0) {
75739  if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
75740  } else if (intval < 0) {
75741  if (size >= 0)
75742  Py_RETURN_FALSE;
75743  intval = -intval;
75744  size = -size;
75745  } else {
75746  if (size <= 0)
75747  Py_RETURN_FALSE;
75748  }
75749  uintval = (unsigned long) intval;
75750 #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
75751  if (uintval >> (PyLong_SHIFT * 4)) {
75752  unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
75753  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
75754  } else
75755 #endif
75756 #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
75757  if (uintval >> (PyLong_SHIFT * 3)) {
75758  unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
75759  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
75760  } else
75761 #endif
75762 #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
75763  if (uintval >> (PyLong_SHIFT * 2)) {
75764  unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
75765  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
75766  } else
75767 #endif
75768 #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
75769  if (uintval >> (PyLong_SHIFT * 1)) {
75770  unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
75771  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
75772  } else
75773 #endif
75774  unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
75775  if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
75776  }
75777  #endif
75778  if (PyFloat_CheckExact(op1)) {
75779  const long b = intval;
75780  double a = PyFloat_AS_DOUBLE(op1);
75781  if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
75782  }
75783  return (
75784  PyObject_RichCompare(op1, op2, Py_EQ));
75785 }
75786 
75787 /* GetItemInt */
75788 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
75789  PyObject *r;
75790  if (!j) return NULL;
75791  r = PyObject_GetItem(o, j);
75792  Py_DECREF(j);
75793  return r;
75794 }
75795 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
75796  CYTHON_NCP_UNUSED int wraparound,
75797  CYTHON_NCP_UNUSED int boundscheck) {
75798 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
75799  Py_ssize_t wrapped_i = i;
75800  if (wraparound & unlikely(i < 0)) {
75801  wrapped_i += PyList_GET_SIZE(o);
75802  }
75803  if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
75804  PyObject *r = PyList_GET_ITEM(o, wrapped_i);
75805  Py_INCREF(r);
75806  return r;
75807  }
75808  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
75809 #else
75810  return PySequence_GetItem(o, i);
75811 #endif
75812 }
75813 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
75814  CYTHON_NCP_UNUSED int wraparound,
75815  CYTHON_NCP_UNUSED int boundscheck) {
75816 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
75817  Py_ssize_t wrapped_i = i;
75818  if (wraparound & unlikely(i < 0)) {
75819  wrapped_i += PyTuple_GET_SIZE(o);
75820  }
75821  if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
75822  PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
75823  Py_INCREF(r);
75824  return r;
75825  }
75826  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
75827 #else
75828  return PySequence_GetItem(o, i);
75829 #endif
75830 }
75831 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
75832  CYTHON_NCP_UNUSED int wraparound,
75833  CYTHON_NCP_UNUSED int boundscheck) {
75834 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
75835  if (is_list || PyList_CheckExact(o)) {
75836  Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
75837  if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
75838  PyObject *r = PyList_GET_ITEM(o, n);
75839  Py_INCREF(r);
75840  return r;
75841  }
75842  }
75843  else if (PyTuple_CheckExact(o)) {
75844  Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
75845  if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
75846  PyObject *r = PyTuple_GET_ITEM(o, n);
75847  Py_INCREF(r);
75848  return r;
75849  }
75850  } else {
75851  PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
75852  if (likely(m && m->sq_item)) {
75853  if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
75854  Py_ssize_t l = m->sq_length(o);
75855  if (likely(l >= 0)) {
75856  i += l;
75857  } else {
75858  if (!PyErr_ExceptionMatches(PyExc_OverflowError))
75859  return NULL;
75860  PyErr_Clear();
75861  }
75862  }
75863  return m->sq_item(o, i);
75864  }
75865  }
75866 #else
75867  if (is_list || PySequence_Check(o)) {
75868  return PySequence_GetItem(o, i);
75869  }
75870 #endif
75871  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
75872 }
75873 
75874 /* PyDictVersioning */
75875 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
75876 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
75877  PyObject *dict = Py_TYPE(obj)->tp_dict;
75878  return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
75879 }
75880 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
75881  PyObject **dictptr = NULL;
75882  Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
75883  if (offset) {
75884 #if CYTHON_COMPILING_IN_CPYTHON
75885  dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
75886 #else
75887  dictptr = _PyObject_GetDictPtr(obj);
75888 #endif
75889  }
75890  return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
75891 }
75892 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
75893  PyObject *dict = Py_TYPE(obj)->tp_dict;
75894  if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
75895  return 0;
75896  return obj_dict_version == __Pyx_get_object_dict_version(obj);
75897 }
75898 #endif
75899 
75900 /* GetModuleGlobalName */
75901 #if CYTHON_USE_DICT_VERSIONS
75902 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
75903 #else
75904 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
75905 #endif
75906 {
75907  PyObject *result;
75908 #if !CYTHON_AVOID_BORROWED_REFS
75909 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
75910  result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
75911  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
75912  if (likely(result)) {
75913  return __Pyx_NewRef(result);
75914  } else if (unlikely(PyErr_Occurred())) {
75915  return NULL;
75916  }
75917 #else
75918  result = PyDict_GetItem(__pyx_d, name);
75919  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
75920  if (likely(result)) {
75921  return __Pyx_NewRef(result);
75922  }
75923 #endif
75924 #else
75925  result = PyObject_GetItem(__pyx_d, name);
75926  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
75927  if (likely(result)) {
75928  return __Pyx_NewRef(result);
75929  }
75930  PyErr_Clear();
75931 #endif
75932  return __Pyx_GetBuiltinName(name);
75933 }
75934 
75935 /* PyFloatBinop */
75936 #if !CYTHON_COMPILING_IN_PYPY
75937 static PyObject* __Pyx_PyFloat_EqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
75938  const double b = floatval;
75939  double a;
75940  (void)inplace;
75941  (void)zerodivision_check;
75942  if (op1 == op2) {
75943  Py_RETURN_TRUE;
75944  }
75945  if (likely(PyFloat_CheckExact(op1))) {
75946  a = PyFloat_AS_DOUBLE(op1);
75947 
75948  } else
75949  #if PY_MAJOR_VERSION < 3
75950  if (likely(PyInt_CheckExact(op1))) {
75951  a = (double) PyInt_AS_LONG(op1);
75952 
75953  } else
75954  #endif
75955  if (likely(PyLong_CheckExact(op1))) {
75956  #if CYTHON_USE_PYLONG_INTERNALS
75957  const digit* digits = ((PyLongObject*)op1)->ob_digit;
75958  const Py_ssize_t size = Py_SIZE(op1);
75959  switch (size) {
75960  case 0: a = 0.0; break;
75961  case -1: a = -(double) digits[0]; break;
75962  case 1: a = (double) digits[0]; break;
75963  case -2:
75964  case 2:
75965  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
75966  a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
75967  if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
75968  if (size == -2)
75969  a = -a;
75970  break;
75971  }
75972  }
75973  CYTHON_FALLTHROUGH;
75974  case -3:
75975  case 3:
75976  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
75977  a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
75978  if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
75979  if (size == -3)
75980  a = -a;
75981  break;
75982  }
75983  }
75984  CYTHON_FALLTHROUGH;
75985  case -4:
75986  case 4:
75987  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
75988  a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
75989  if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
75990  if (size == -4)
75991  a = -a;
75992  break;
75993  }
75994  }
75995  CYTHON_FALLTHROUGH;
75996  default:
75997  #else
75998  {
75999  #endif
76000  return (
76001  PyFloat_Type.tp_richcompare(op2, op1, Py_EQ));
76002  }
76003  } else {
76004  return (
76005  PyObject_RichCompare(op1, op2, Py_EQ));
76006  }
76007  if (a == b) {
76008  Py_RETURN_TRUE;
76009  } else {
76010  Py_RETURN_FALSE;
76011  }
76012 }
76013 #endif
76014 
76015 /* None */
76016  static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
76017  PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
76018 }
76019 
76020 /* ObjectGetItem */
76021  #if CYTHON_USE_TYPE_SLOTS
76022 static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
76023  PyObject *runerr;
76024  Py_ssize_t key_value;
76025  PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
76026  if (unlikely(!(m && m->sq_item))) {
76027  PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
76028  return NULL;
76029  }
76030  key_value = __Pyx_PyIndex_AsSsize_t(index);
76031  if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
76032  return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
76033  }
76034  if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
76035  PyErr_Clear();
76036  PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
76037  }
76038  return NULL;
76039 }
76040 static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
76041  PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
76042  if (likely(m && m->mp_subscript)) {
76043  return m->mp_subscript(obj, key);
76044  }
76045  return __Pyx_PyObject_GetIndex(obj, key);
76046 }
76047 #endif
76048 
76049 /* FetchCommonType */
76050  static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
76051  PyObject* fake_module;
76052  PyTypeObject* cached_type = NULL;
76053  fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
76054  if (!fake_module) return NULL;
76055  Py_INCREF(fake_module);
76056  cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
76057  if (cached_type) {
76058  if (!PyType_Check((PyObject*)cached_type)) {
76059  PyErr_Format(PyExc_TypeError,
76060  "Shared Cython type %.200s is not a type object",
76061  type->tp_name);
76062  goto bad;
76063  }
76064  if (cached_type->tp_basicsize != type->tp_basicsize) {
76065  PyErr_Format(PyExc_TypeError,
76066  "Shared Cython type %.200s has the wrong size, try recompiling",
76067  type->tp_name);
76068  goto bad;
76069  }
76070  } else {
76071  if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
76072  PyErr_Clear();
76073  if (PyType_Ready(type) < 0) goto bad;
76074  if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
76075  goto bad;
76076  Py_INCREF(type);
76077  cached_type = type;
76078  }
76079 done:
76080  Py_DECREF(fake_module);
76081  return cached_type;
76082 bad:
76083  Py_XDECREF(cached_type);
76084  cached_type = NULL;
76085  goto done;
76086 }
76087 
76088 /* CythonFunctionShared */
76089  #include <structmember.h>
76090 static PyObject *
76091 __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
76092 {
76093  if (unlikely(op->func_doc == NULL)) {
76094  if (op->func.m_ml->ml_doc) {
76095 #if PY_MAJOR_VERSION >= 3
76096  op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
76097 #else
76098  op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
76099 #endif
76100  if (unlikely(op->func_doc == NULL))
76101  return NULL;
76102  } else {
76103  Py_INCREF(Py_None);
76104  return Py_None;
76105  }
76106  }
76107  Py_INCREF(op->func_doc);
76108  return op->func_doc;
76109 }
76110 static int
76111 __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
76112 {
76113  PyObject *tmp = op->func_doc;
76114  if (value == NULL) {
76115  value = Py_None;
76116  }
76117  Py_INCREF(value);
76118  op->func_doc = value;
76119  Py_XDECREF(tmp);
76120  return 0;
76121 }
76122 static PyObject *
76123 __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76124 {
76125  if (unlikely(op->func_name == NULL)) {
76126 #if PY_MAJOR_VERSION >= 3
76127  op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
76128 #else
76129  op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
76130 #endif
76131  if (unlikely(op->func_name == NULL))
76132  return NULL;
76133  }
76134  Py_INCREF(op->func_name);
76135  return op->func_name;
76136 }
76137 static int
76138 __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
76139 {
76140  PyObject *tmp;
76141 #if PY_MAJOR_VERSION >= 3
76142  if (unlikely(value == NULL || !PyUnicode_Check(value)))
76143 #else
76144  if (unlikely(value == NULL || !PyString_Check(value)))
76145 #endif
76146  {
76147  PyErr_SetString(PyExc_TypeError,
76148  "__name__ must be set to a string object");
76149  return -1;
76150  }
76151  tmp = op->func_name;
76152  Py_INCREF(value);
76153  op->func_name = value;
76154  Py_XDECREF(tmp);
76155  return 0;
76156 }
76157 static PyObject *
76158 __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76159 {
76160  Py_INCREF(op->func_qualname);
76161  return op->func_qualname;
76162 }
76163 static int
76164 __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
76165 {
76166  PyObject *tmp;
76167 #if PY_MAJOR_VERSION >= 3
76168  if (unlikely(value == NULL || !PyUnicode_Check(value)))
76169 #else
76170  if (unlikely(value == NULL || !PyString_Check(value)))
76171 #endif
76172  {
76173  PyErr_SetString(PyExc_TypeError,
76174  "__qualname__ must be set to a string object");
76175  return -1;
76176  }
76177  tmp = op->func_qualname;
76178  Py_INCREF(value);
76179  op->func_qualname = value;
76180  Py_XDECREF(tmp);
76181  return 0;
76182 }
76183 static PyObject *
76184 __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
76185 {
76186  PyObject *self;
76187  self = m->func_closure;
76188  if (self == NULL)
76189  self = Py_None;
76190  Py_INCREF(self);
76191  return self;
76192 }
76193 static PyObject *
76194 __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76195 {
76196  if (unlikely(op->func_dict == NULL)) {
76197  op->func_dict = PyDict_New();
76198  if (unlikely(op->func_dict == NULL))
76199  return NULL;
76200  }
76201  Py_INCREF(op->func_dict);
76202  return op->func_dict;
76203 }
76204 static int
76205 __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
76206 {
76207  PyObject *tmp;
76208  if (unlikely(value == NULL)) {
76209  PyErr_SetString(PyExc_TypeError,
76210  "function's dictionary may not be deleted");
76211  return -1;
76212  }
76213  if (unlikely(!PyDict_Check(value))) {
76214  PyErr_SetString(PyExc_TypeError,
76215  "setting function's dictionary to a non-dict");
76216  return -1;
76217  }
76218  tmp = op->func_dict;
76219  Py_INCREF(value);
76220  op->func_dict = value;
76221  Py_XDECREF(tmp);
76222  return 0;
76223 }
76224 static PyObject *
76225 __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76226 {
76227  Py_INCREF(op->func_globals);
76228  return op->func_globals;
76229 }
76230 static PyObject *
76231 __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76232 {
76233  Py_INCREF(Py_None);
76234  return Py_None;
76235 }
76236 static PyObject *
76237 __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
76238 {
76239  PyObject* result = (op->func_code) ? op->func_code : Py_None;
76240  Py_INCREF(result);
76241  return result;
76242 }
76243 static int
76244 __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
76245  int result = 0;
76246  PyObject *res = op->defaults_getter((PyObject *) op);
76247  if (unlikely(!res))
76248  return -1;
76249  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
76250  op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
76251  Py_INCREF(op->defaults_tuple);
76252  op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
76253  Py_INCREF(op->defaults_kwdict);
76254  #else
76255  op->defaults_tuple = PySequence_ITEM(res, 0);
76256  if (unlikely(!op->defaults_tuple)) result = -1;
76257  else {
76258  op->defaults_kwdict = PySequence_ITEM(res, 1);
76259  if (unlikely(!op->defaults_kwdict)) result = -1;
76260  }
76261  #endif
76262  Py_DECREF(res);
76263  return result;
76264 }
76265 static int
76266 __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
76267  PyObject* tmp;
76268  if (!value) {
76269  value = Py_None;
76270  } else if (value != Py_None && !PyTuple_Check(value)) {
76271  PyErr_SetString(PyExc_TypeError,
76272  "__defaults__ must be set to a tuple object");
76273  return -1;
76274  }
76275  Py_INCREF(value);
76276  tmp = op->defaults_tuple;
76277  op->defaults_tuple = value;
76278  Py_XDECREF(tmp);
76279  return 0;
76280 }
76281 static PyObject *
76282 __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
76283  PyObject* result = op->defaults_tuple;
76284  if (unlikely(!result)) {
76285  if (op->defaults_getter) {
76286  if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
76287  result = op->defaults_tuple;
76288  } else {
76289  result = Py_None;
76290  }
76291  }
76292  Py_INCREF(result);
76293  return result;
76294 }
76295 static int
76296 __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
76297  PyObject* tmp;
76298  if (!value) {
76299  value = Py_None;
76300  } else if (value != Py_None && !PyDict_Check(value)) {
76301  PyErr_SetString(PyExc_TypeError,
76302  "__kwdefaults__ must be set to a dict object");
76303  return -1;
76304  }
76305  Py_INCREF(value);
76306  tmp = op->defaults_kwdict;
76307  op->defaults_kwdict = value;
76308  Py_XDECREF(tmp);
76309  return 0;
76310 }
76311 static PyObject *
76312 __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
76313  PyObject* result = op->defaults_kwdict;
76314  if (unlikely(!result)) {
76315  if (op->defaults_getter) {
76316  if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
76317  result = op->defaults_kwdict;
76318  } else {
76319  result = Py_None;
76320  }
76321  }
76322  Py_INCREF(result);
76323  return result;
76324 }
76325 static int
76326 __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
76327  PyObject* tmp;
76328  if (!value || value == Py_None) {
76329  value = NULL;
76330  } else if (!PyDict_Check(value)) {
76331  PyErr_SetString(PyExc_TypeError,
76332  "__annotations__ must be set to a dict object");
76333  return -1;
76334  }
76335  Py_XINCREF(value);
76336  tmp = op->func_annotations;
76337  op->func_annotations = value;
76338  Py_XDECREF(tmp);
76339  return 0;
76340 }
76341 static PyObject *
76342 __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
76343  PyObject* result = op->func_annotations;
76344  if (unlikely(!result)) {
76345  result = PyDict_New();
76346  if (unlikely(!result)) return NULL;
76347  op->func_annotations = result;
76348  }
76349  Py_INCREF(result);
76350  return result;
76351 }
76352 static PyGetSetDef __pyx_CyFunction_getsets[] = {
76353  {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
76354  {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
76355  {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
76356  {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
76357  {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
76358  {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
76359  {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
76360  {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
76361  {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
76362  {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
76363  {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
76364  {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
76365  {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
76366  {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
76367  {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
76368  {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
76369  {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
76370  {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
76371  {0, 0, 0, 0, 0}
76372 };
76373 static PyMemberDef __pyx_CyFunction_members[] = {
76374  {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
76375  {0, 0, 0, 0, 0}
76376 };
76377 static PyObject *
76378 __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
76379 {
76380 #if PY_MAJOR_VERSION >= 3
76381  Py_INCREF(m->func_qualname);
76382  return m->func_qualname;
76383 #else
76384  return PyString_FromString(m->func.m_ml->ml_name);
76385 #endif
76386 }
76387 static PyMethodDef __pyx_CyFunction_methods[] = {
76388  {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
76389  {0, 0, 0, 0}
76390 };
76391 #if PY_VERSION_HEX < 0x030500A0
76392 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
76393 #else
76394 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
76395 #endif
76396 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
76397  PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
76398  if (unlikely(op == NULL))
76399  return NULL;
76400  op->flags = flags;
76401  __Pyx_CyFunction_weakreflist(op) = NULL;
76402  op->func.m_ml = ml;
76403  op->func.m_self = (PyObject *) op;
76404  Py_XINCREF(closure);
76405  op->func_closure = closure;
76406  Py_XINCREF(module);
76407  op->func.m_module = module;
76408  op->func_dict = NULL;
76409  op->func_name = NULL;
76410  Py_INCREF(qualname);
76411  op->func_qualname = qualname;
76412  op->func_doc = NULL;
76413  op->func_classobj = NULL;
76414  op->func_globals = globals;
76415  Py_INCREF(op->func_globals);
76416  Py_XINCREF(code);
76417  op->func_code = code;
76418  op->defaults_pyobjects = 0;
76419  op->defaults_size = 0;
76420  op->defaults = NULL;
76421  op->defaults_tuple = NULL;
76422  op->defaults_kwdict = NULL;
76423  op->defaults_getter = NULL;
76424  op->func_annotations = NULL;
76425  return (PyObject *) op;
76426 }
76427 static int
76428 __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
76429 {
76430  Py_CLEAR(m->func_closure);
76431  Py_CLEAR(m->func.m_module);
76432  Py_CLEAR(m->func_dict);
76433  Py_CLEAR(m->func_name);
76434  Py_CLEAR(m->func_qualname);
76435  Py_CLEAR(m->func_doc);
76436  Py_CLEAR(m->func_globals);
76437  Py_CLEAR(m->func_code);
76438  Py_CLEAR(m->func_classobj);
76439  Py_CLEAR(m->defaults_tuple);
76440  Py_CLEAR(m->defaults_kwdict);
76441  Py_CLEAR(m->func_annotations);
76442  if (m->defaults) {
76443  PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
76444  int i;
76445  for (i = 0; i < m->defaults_pyobjects; i++)
76446  Py_XDECREF(pydefaults[i]);
76447  PyObject_Free(m->defaults);
76448  m->defaults = NULL;
76449  }
76450  return 0;
76451 }
76452 static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
76453 {
76454  if (__Pyx_CyFunction_weakreflist(m) != NULL)
76455  PyObject_ClearWeakRefs((PyObject *) m);
76456  __Pyx_CyFunction_clear(m);
76457  PyObject_GC_Del(m);
76458 }
76459 static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
76460 {
76461  PyObject_GC_UnTrack(m);
76462  __Pyx__CyFunction_dealloc(m);
76463 }
76464 static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
76465 {
76466  Py_VISIT(m->func_closure);
76467  Py_VISIT(m->func.m_module);
76468  Py_VISIT(m->func_dict);
76469  Py_VISIT(m->func_name);
76470  Py_VISIT(m->func_qualname);
76471  Py_VISIT(m->func_doc);
76472  Py_VISIT(m->func_globals);
76473  Py_VISIT(m->func_code);
76474  Py_VISIT(m->func_classobj);
76475  Py_VISIT(m->defaults_tuple);
76476  Py_VISIT(m->defaults_kwdict);
76477  if (m->defaults) {
76478  PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
76479  int i;
76480  for (i = 0; i < m->defaults_pyobjects; i++)
76481  Py_VISIT(pydefaults[i]);
76482  }
76483  return 0;
76484 }
76485 static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
76486 {
76487 #if PY_MAJOR_VERSION < 3
76488  __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
76489  if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
76490  Py_INCREF(func);
76491  return func;
76492  }
76493  if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
76494  if (type == NULL)
76495  type = (PyObject *)(Py_TYPE(obj));
76496  return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
76497  }
76498  if (obj == Py_None)
76499  obj = NULL;
76500 #endif
76501  return __Pyx_PyMethod_New(func, obj, type);
76502 }
76503 static PyObject*
76504 __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
76505 {
76506 #if PY_MAJOR_VERSION >= 3
76507  return PyUnicode_FromFormat("<cyfunction %U at %p>",
76508  op->func_qualname, (void *)op);
76509 #else
76510  return PyString_FromFormat("<cyfunction %s at %p>",
76511  PyString_AsString(op->func_qualname), (void *)op);
76512 #endif
76513 }
76514 static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
76515  PyCFunctionObject* f = (PyCFunctionObject*)func;
76516  PyCFunction meth = f->m_ml->ml_meth;
76517  Py_ssize_t size;
76518  switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
76519  case METH_VARARGS:
76520  if (likely(kw == NULL || PyDict_Size(kw) == 0))
76521  return (*meth)(self, arg);
76522  break;
76523  case METH_VARARGS | METH_KEYWORDS:
76524  return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
76525  case METH_NOARGS:
76526  if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
76527  size = PyTuple_GET_SIZE(arg);
76528  if (likely(size == 0))
76529  return (*meth)(self, NULL);
76530  PyErr_Format(PyExc_TypeError,
76531  "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
76532  f->m_ml->ml_name, size);
76533  return NULL;
76534  }
76535  break;
76536  case METH_O:
76537  if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
76538  size = PyTuple_GET_SIZE(arg);
76539  if (likely(size == 1)) {
76540  PyObject *result, *arg0;
76541  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
76542  arg0 = PyTuple_GET_ITEM(arg, 0);
76543  #else
76544  arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
76545  #endif
76546  result = (*meth)(self, arg0);
76547  #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
76548  Py_DECREF(arg0);
76549  #endif
76550  return result;
76551  }
76552  PyErr_Format(PyExc_TypeError,
76553  "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
76554  f->m_ml->ml_name, size);
76555  return NULL;
76556  }
76557  break;
76558  default:
76559  PyErr_SetString(PyExc_SystemError, "Bad call flags in "
76560  "__Pyx_CyFunction_Call. METH_OLDARGS is no "
76561  "longer supported!");
76562  return NULL;
76563  }
76564  PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
76565  f->m_ml->ml_name);
76566  return NULL;
76567 }
76568 static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
76569  return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
76570 }
76571 static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
76572  PyObject *result;
76573  __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
76574  if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
76575  Py_ssize_t argc;
76576  PyObject *new_args;
76577  PyObject *self;
76578  argc = PyTuple_GET_SIZE(args);
76579  new_args = PyTuple_GetSlice(args, 1, argc);
76580  if (unlikely(!new_args))
76581  return NULL;
76582  self = PyTuple_GetItem(args, 0);
76583  if (unlikely(!self)) {
76584  Py_DECREF(new_args);
76585  PyErr_Format(PyExc_TypeError,
76586  "unbound method %.200S() needs an argument",
76587  cyfunc->func_qualname);
76588  return NULL;
76589  }
76590  result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
76591  Py_DECREF(new_args);
76592  } else {
76593  result = __Pyx_CyFunction_Call(func, args, kw);
76594  }
76595  return result;
76596 }
76597 static PyTypeObject __pyx_CyFunctionType_type = {
76598  PyVarObject_HEAD_INIT(0, 0)
76599  "cython_function_or_method",
76600  sizeof(__pyx_CyFunctionObject),
76601  0,
76602  (destructor) __Pyx_CyFunction_dealloc,
76603  0,
76604  0,
76605  0,
76606 #if PY_MAJOR_VERSION < 3
76607  0,
76608 #else
76609  0,
76610 #endif
76611  (reprfunc) __Pyx_CyFunction_repr,
76612  0,
76613  0,
76614  0,
76615  0,
76616  __Pyx_CyFunction_CallAsMethod,
76617  0,
76618  0,
76619  0,
76620  0,
76621  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
76622  0,
76623  (traverseproc) __Pyx_CyFunction_traverse,
76624  (inquiry) __Pyx_CyFunction_clear,
76625  0,
76626 #if PY_VERSION_HEX < 0x030500A0
76627  offsetof(__pyx_CyFunctionObject, func_weakreflist),
76628 #else
76629  offsetof(PyCFunctionObject, m_weakreflist),
76630 #endif
76631  0,
76632  0,
76633  __pyx_CyFunction_methods,
76634  __pyx_CyFunction_members,
76635  __pyx_CyFunction_getsets,
76636  0,
76637  0,
76638  __Pyx_CyFunction_descr_get,
76639  0,
76640  offsetof(__pyx_CyFunctionObject, func_dict),
76641  0,
76642  0,
76643  0,
76644  0,
76645  0,
76646  0,
76647  0,
76648  0,
76649  0,
76650  0,
76651  0,
76652  0,
76653 #if PY_VERSION_HEX >= 0x030400a1
76654  0,
76655 #endif
76656 #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
76657  0,
76658 #endif
76659 #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
76660  0,
76661 #endif
76662 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
76663  0,
76664 #endif
76665 };
76666 static int __pyx_CyFunction_init(void) {
76667  __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
76668  if (unlikely(__pyx_CyFunctionType == NULL)) {
76669  return -1;
76670  }
76671  return 0;
76672 }
76673 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
76674  __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
76675  m->defaults = PyObject_Malloc(size);
76676  if (unlikely(!m->defaults))
76677  return PyErr_NoMemory();
76678  memset(m->defaults, 0, size);
76679  m->defaults_pyobjects = pyobjects;
76680  m->defaults_size = size;
76681  return m->defaults;
76682 }
76683 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
76684  __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
76685  m->defaults_tuple = tuple;
76686  Py_INCREF(tuple);
76687 }
76688 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
76689  __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
76690  m->defaults_kwdict = dict;
76691  Py_INCREF(dict);
76692 }
76693 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
76694  __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
76695  m->func_annotations = dict;
76696  Py_INCREF(dict);
76697 }
76698 
76699 /* CythonFunction */
76700  static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
76701  PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
76702  PyObject *op = __Pyx_CyFunction_Init(
76703  PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
76704  ml, flags, qualname, closure, module, globals, code
76705  );
76706  if (likely(op)) {
76707  PyObject_GC_Track(op);
76708  }
76709  return op;
76710 }
76711 
76712 /* MemviewSliceInit */
76713  static int
76714 __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview,
76715  int ndim,
76716  __Pyx_memviewslice *memviewslice,
76717  int memview_is_new_reference)
76718 {
76719  __Pyx_RefNannyDeclarations
76720  int i, retval=-1;
76721  Py_buffer *buf = &memview->view;
76722  __Pyx_RefNannySetupContext("init_memviewslice", 0);
76723  if (unlikely(memviewslice->memview || memviewslice->data)) {
76724  PyErr_SetString(PyExc_ValueError,
76725  "memviewslice is already initialized!");
76726  goto fail;
76727  }
76728  if (buf->strides) {
76729  for (i = 0; i < ndim; i++) {
76730  memviewslice->strides[i] = buf->strides[i];
76731  }
76732  } else {
76733  Py_ssize_t stride = buf->itemsize;
76734  for (i = ndim - 1; i >= 0; i--) {
76735  memviewslice->strides[i] = stride;
76736  stride *= buf->shape[i];
76737  }
76738  }
76739  for (i = 0; i < ndim; i++) {
76740  memviewslice->shape[i] = buf->shape[i];
76741  if (buf->suboffsets) {
76742  memviewslice->suboffsets[i] = buf->suboffsets[i];
76743  } else {
76744  memviewslice->suboffsets[i] = -1;
76745  }
76746  }
76747  memviewslice->memview = memview;
76748  memviewslice->data = (char *)buf->buf;
76749  if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) {
76750  Py_INCREF(memview);
76751  }
76752  retval = 0;
76753  goto no_fail;
76754 fail:
76755  memviewslice->memview = 0;
76756  memviewslice->data = 0;
76757  retval = -1;
76758 no_fail:
76759  __Pyx_RefNannyFinishContext();
76760  return retval;
76761 }
76762 #ifndef Py_NO_RETURN
76763 #define Py_NO_RETURN
76764 #endif
76765 static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN {
76766  va_list vargs;
76767  char msg[200];
76768 #ifdef HAVE_STDARG_PROTOTYPES
76769  va_start(vargs, fmt);
76770 #else
76771  va_start(vargs);
76772 #endif
76773  vsnprintf(msg, 200, fmt, vargs);
76774  va_end(vargs);
76775  Py_FatalError(msg);
76776 }
76777 static CYTHON_INLINE int
76778 __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
76779  PyThread_type_lock lock)
76780 {
76781  int result;
76782  PyThread_acquire_lock(lock, 1);
76783  result = (*acquisition_count)++;
76784  PyThread_release_lock(lock);
76785  return result;
76786 }
76787 static CYTHON_INLINE int
76788 __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
76789  PyThread_type_lock lock)
76790 {
76791  int result;
76792  PyThread_acquire_lock(lock, 1);
76793  result = (*acquisition_count)--;
76794  PyThread_release_lock(lock);
76795  return result;
76796 }
76797 static CYTHON_INLINE void
76798 __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno)
76799 {
76800  int first_time;
76801  struct __pyx_memoryview_obj *memview = memslice->memview;
76802  if (unlikely(!memview || (PyObject *) memview == Py_None))
76803  return;
76804  if (unlikely(__pyx_get_slice_count(memview) < 0))
76805  __pyx_fatalerror("Acquisition count is %d (line %d)",
76806  __pyx_get_slice_count(memview), lineno);
76807  first_time = __pyx_add_acquisition_count(memview) == 0;
76808  if (unlikely(first_time)) {
76809  if (have_gil) {
76810  Py_INCREF((PyObject *) memview);
76811  } else {
76812  PyGILState_STATE _gilstate = PyGILState_Ensure();
76813  Py_INCREF((PyObject *) memview);
76814  PyGILState_Release(_gilstate);
76815  }
76816  }
76817 }
76818 static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice,
76819  int have_gil, int lineno) {
76820  int last_time;
76821  struct __pyx_memoryview_obj *memview = memslice->memview;
76822  if (unlikely(!memview || (PyObject *) memview == Py_None)) {
76823  memslice->memview = NULL;
76824  return;
76825  }
76826  if (unlikely(__pyx_get_slice_count(memview) <= 0))
76827  __pyx_fatalerror("Acquisition count is %d (line %d)",
76828  __pyx_get_slice_count(memview), lineno);
76829  last_time = __pyx_sub_acquisition_count(memview) == 1;
76830  memslice->data = NULL;
76831  if (unlikely(last_time)) {
76832  if (have_gil) {
76833  Py_CLEAR(memslice->memview);
76834  } else {
76835  PyGILState_STATE _gilstate = PyGILState_Ensure();
76836  Py_CLEAR(memslice->memview);
76837  PyGILState_Release(_gilstate);
76838  }
76839  } else {
76840  memslice->memview = NULL;
76841  }
76842 }
76843 
76844 /* ExtTypeTest */
76845  static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
76846  if (unlikely(!type)) {
76847  PyErr_SetString(PyExc_SystemError, "Missing type object");
76848  return 0;
76849  }
76850  if (likely(__Pyx_TypeCheck(obj, type)))
76851  return 1;
76852  PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
76853  Py_TYPE(obj)->tp_name, type->tp_name);
76854  return 0;
76855 }
76856 
76857 /* SetItemInt */
76858  static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
76859  int r;
76860  if (!j) return -1;
76861  r = PyObject_SetItem(o, j, v);
76862  Py_DECREF(j);
76863  return r;
76864 }
76865 static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
76866  CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
76867 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
76868  if (is_list || PyList_CheckExact(o)) {
76869  Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
76870  if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
76871  PyObject* old = PyList_GET_ITEM(o, n);
76872  Py_INCREF(v);
76873  PyList_SET_ITEM(o, n, v);
76874  Py_DECREF(old);
76875  return 1;
76876  }
76877  } else {
76878  PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
76879  if (likely(m && m->sq_ass_item)) {
76880  if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
76881  Py_ssize_t l = m->sq_length(o);
76882  if (likely(l >= 0)) {
76883  i += l;
76884  } else {
76885  if (!PyErr_ExceptionMatches(PyExc_OverflowError))
76886  return -1;
76887  PyErr_Clear();
76888  }
76889  }
76890  return m->sq_ass_item(o, i, v);
76891  }
76892  }
76893 #else
76894 #if CYTHON_COMPILING_IN_PYPY
76895  if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
76896 #else
76897  if (is_list || PySequence_Check(o))
76898 #endif
76899  {
76900  return PySequence_SetItem(o, i, v);
76901  }
76902 #endif
76903  return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
76904 }
76905 
76906 /* WriteUnraisableException */
76907  static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
76908  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
76909  int full_traceback, CYTHON_UNUSED int nogil) {
76910  PyObject *old_exc, *old_val, *old_tb;
76911  PyObject *ctx;
76912  __Pyx_PyThreadState_declare
76913 #ifdef WITH_THREAD
76914  PyGILState_STATE state;
76915  if (nogil)
76916  state = PyGILState_Ensure();
76917 #ifdef _MSC_VER
76918  else state = (PyGILState_STATE)-1;
76919 #endif
76920 #endif
76921  __Pyx_PyThreadState_assign
76922  __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
76923  if (full_traceback) {
76924  Py_XINCREF(old_exc);
76925  Py_XINCREF(old_val);
76926  Py_XINCREF(old_tb);
76927  __Pyx_ErrRestore(old_exc, old_val, old_tb);
76928  PyErr_PrintEx(1);
76929  }
76930  #if PY_MAJOR_VERSION < 3
76931  ctx = PyString_FromString(name);
76932  #else
76933  ctx = PyUnicode_FromString(name);
76934  #endif
76935  __Pyx_ErrRestore(old_exc, old_val, old_tb);
76936  if (!ctx) {
76937  PyErr_WriteUnraisable(Py_None);
76938  } else {
76939  PyErr_WriteUnraisable(ctx);
76940  Py_DECREF(ctx);
76941  }
76942 #ifdef WITH_THREAD
76943  if (nogil)
76944  PyGILState_Release(state);
76945 #endif
76946 }
76947 
76948 /* PyFloatBinop */
76949  #if !CYTHON_COMPILING_IN_PYPY
76950 static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
76951  const double b = floatval;
76952  double a, result;
76953  (void)inplace;
76954  (void)zerodivision_check;
76955  if (likely(PyFloat_CheckExact(op1))) {
76956  a = PyFloat_AS_DOUBLE(op1);
76957 
76958  } else
76959  #if PY_MAJOR_VERSION < 3
76960  if (likely(PyInt_CheckExact(op1))) {
76961  a = (double) PyInt_AS_LONG(op1);
76962 
76963  } else
76964  #endif
76965  if (likely(PyLong_CheckExact(op1))) {
76966  #if CYTHON_USE_PYLONG_INTERNALS
76967  const digit* digits = ((PyLongObject*)op1)->ob_digit;
76968  const Py_ssize_t size = Py_SIZE(op1);
76969  switch (size) {
76970  case 0: a = 0.0; break;
76971  case -1: a = -(double) digits[0]; break;
76972  case 1: a = (double) digits[0]; break;
76973  case -2:
76974  case 2:
76975  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
76976  a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
76977  if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
76978  if (size == -2)
76979  a = -a;
76980  break;
76981  }
76982  }
76983  CYTHON_FALLTHROUGH;
76984  case -3:
76985  case 3:
76986  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
76987  a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
76988  if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
76989  if (size == -3)
76990  a = -a;
76991  break;
76992  }
76993  }
76994  CYTHON_FALLTHROUGH;
76995  case -4:
76996  case 4:
76997  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
76998  a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
76999  if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
77000  if (size == -4)
77001  a = -a;
77002  break;
77003  }
77004  }
77005  CYTHON_FALLTHROUGH;
77006  default:
77007  #else
77008  {
77009  #endif
77010  a = PyLong_AsDouble(op1);
77011  if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL;
77012 
77013  }
77014  } else {
77015  return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2);
77016  }
77017 
77018  PyFPE_START_PROTECT("divide", return NULL)
77019  result = a / b;
77020  PyFPE_END_PROTECT(result)
77021  return PyFloat_FromDouble(result);
77022 }
77023 #endif
77024 
77025 /* PyIntBinop */
77026  #if !CYTHON_COMPILING_IN_PYPY
77027 static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
77028  (void)inplace;
77029  (void)zerodivision_check;
77030  #if PY_MAJOR_VERSION < 3
77031  if (likely(PyInt_CheckExact(op2))) {
77032  const long a = intval;
77033  long x;
77034  long b = PyInt_AS_LONG(op2);
77035  x = (long)((unsigned long)a - b);
77036  if (likely((x^a) >= 0 || (x^~b) >= 0))
77037  return PyInt_FromLong(x);
77038  return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
77039  }
77040  #endif
77041  #if CYTHON_USE_PYLONG_INTERNALS
77042  if (likely(PyLong_CheckExact(op2))) {
77043  const long a = intval;
77044  long b, x;
77045 #ifdef HAVE_LONG_LONG
77046  const PY_LONG_LONG lla = intval;
77047  PY_LONG_LONG llb, llx;
77048 #endif
77049  const digit* digits = ((PyLongObject*)op2)->ob_digit;
77050  const Py_ssize_t size = Py_SIZE(op2);
77051  if (likely(__Pyx_sst_abs(size) <= 1)) {
77052  b = likely(size) ? digits[0] : 0;
77053  if (size == -1) b = -b;
77054  } else {
77055  switch (size) {
77056  case -2:
77057  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77058  b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77059  break;
77060 #ifdef HAVE_LONG_LONG
77061  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77062  llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77063  goto long_long;
77064 #endif
77065  }
77066  CYTHON_FALLTHROUGH;
77067  case 2:
77068  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77069  b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77070  break;
77071 #ifdef HAVE_LONG_LONG
77072  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77073  llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77074  goto long_long;
77075 #endif
77076  }
77077  CYTHON_FALLTHROUGH;
77078  case -3:
77079  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77080  b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77081  break;
77082 #ifdef HAVE_LONG_LONG
77083  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77084  llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77085  goto long_long;
77086 #endif
77087  }
77088  CYTHON_FALLTHROUGH;
77089  case 3:
77090  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77091  b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77092  break;
77093 #ifdef HAVE_LONG_LONG
77094  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77095  llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77096  goto long_long;
77097 #endif
77098  }
77099  CYTHON_FALLTHROUGH;
77100  case -4:
77101  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77102  b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77103  break;
77104 #ifdef HAVE_LONG_LONG
77105  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77106  llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77107  goto long_long;
77108 #endif
77109  }
77110  CYTHON_FALLTHROUGH;
77111  case 4:
77112  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77113  b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77114  break;
77115 #ifdef HAVE_LONG_LONG
77116  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77117  llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77118  goto long_long;
77119 #endif
77120  }
77121  CYTHON_FALLTHROUGH;
77122  default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
77123  }
77124  }
77125  x = a - b;
77126  return PyLong_FromLong(x);
77127 #ifdef HAVE_LONG_LONG
77128  long_long:
77129  llx = lla - llb;
77130  return PyLong_FromLongLong(llx);
77131 #endif
77132 
77133 
77134  }
77135  #endif
77136  if (PyFloat_CheckExact(op2)) {
77137  const long a = intval;
77138  double b = PyFloat_AS_DOUBLE(op2);
77139  double result;
77140  PyFPE_START_PROTECT("subtract", return NULL)
77141  result = ((double)a) - (double)b;
77142  PyFPE_END_PROTECT(result)
77143  return PyFloat_FromDouble(result);
77144  }
77145  return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
77146 }
77147 #endif
77148 
77149 /* None */
77150  static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
77151  PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
77152 }
77153 
77154 /* PyErrExceptionMatches */
77155  #if CYTHON_FAST_THREAD_STATE
77156 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
77157  Py_ssize_t i, n;
77158  n = PyTuple_GET_SIZE(tuple);
77159 #if PY_MAJOR_VERSION >= 3
77160  for (i=0; i<n; i++) {
77161  if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
77162  }
77163 #endif
77164  for (i=0; i<n; i++) {
77165  if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
77166  }
77167  return 0;
77168 }
77169 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
77170  PyObject *exc_type = tstate->curexc_type;
77171  if (exc_type == err) return 1;
77172  if (unlikely(!exc_type)) return 0;
77173  if (unlikely(PyTuple_Check(err)))
77174  return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
77175  return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
77176 }
77177 #endif
77178 
77179 /* GetAttr */
77180  static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
77181 #if CYTHON_USE_TYPE_SLOTS
77182 #if PY_MAJOR_VERSION >= 3
77183  if (likely(PyUnicode_Check(n)))
77184 #else
77185  if (likely(PyString_Check(n)))
77186 #endif
77187  return __Pyx_PyObject_GetAttrStr(o, n);
77188 #endif
77189  return PyObject_GetAttr(o, n);
77190 }
77191 
77192 /* GetAttr3 */
77193  static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
77194  __Pyx_PyThreadState_declare
77195  __Pyx_PyThreadState_assign
77196  if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
77197  return NULL;
77198  __Pyx_PyErr_Clear();
77199  Py_INCREF(d);
77200  return d;
77201 }
77202 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
77203  PyObject *r = __Pyx_GetAttr(o, n);
77204  return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
77205 }
77206 
77207 /* PyIntBinop */
77208  #if !CYTHON_COMPILING_IN_PYPY
77209 static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
77210  (void)inplace;
77211  (void)zerodivision_check;
77212  #if PY_MAJOR_VERSION < 3
77213  if (likely(PyInt_CheckExact(op1))) {
77214  const long b = intval;
77215  long x;
77216  long a = PyInt_AS_LONG(op1);
77217  x = (long)((unsigned long)a - b);
77218  if (likely((x^a) >= 0 || (x^~b) >= 0))
77219  return PyInt_FromLong(x);
77220  return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
77221  }
77222  #endif
77223  #if CYTHON_USE_PYLONG_INTERNALS
77224  if (likely(PyLong_CheckExact(op1))) {
77225  const long b = intval;
77226  long a, x;
77227 #ifdef HAVE_LONG_LONG
77228  const PY_LONG_LONG llb = intval;
77229  PY_LONG_LONG lla, llx;
77230 #endif
77231  const digit* digits = ((PyLongObject*)op1)->ob_digit;
77232  const Py_ssize_t size = Py_SIZE(op1);
77233  if (likely(__Pyx_sst_abs(size) <= 1)) {
77234  a = likely(size) ? digits[0] : 0;
77235  if (size == -1) a = -a;
77236  } else {
77237  switch (size) {
77238  case -2:
77239  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77240  a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77241  break;
77242 #ifdef HAVE_LONG_LONG
77243  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77244  lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77245  goto long_long;
77246 #endif
77247  }
77248  CYTHON_FALLTHROUGH;
77249  case 2:
77250  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77251  a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77252  break;
77253 #ifdef HAVE_LONG_LONG
77254  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77255  lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77256  goto long_long;
77257 #endif
77258  }
77259  CYTHON_FALLTHROUGH;
77260  case -3:
77261  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77262  a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77263  break;
77264 #ifdef HAVE_LONG_LONG
77265  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77266  lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77267  goto long_long;
77268 #endif
77269  }
77270  CYTHON_FALLTHROUGH;
77271  case 3:
77272  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77273  a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77274  break;
77275 #ifdef HAVE_LONG_LONG
77276  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77277  lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77278  goto long_long;
77279 #endif
77280  }
77281  CYTHON_FALLTHROUGH;
77282  case -4:
77283  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77284  a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77285  break;
77286 #ifdef HAVE_LONG_LONG
77287  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77288  lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77289  goto long_long;
77290 #endif
77291  }
77292  CYTHON_FALLTHROUGH;
77293  case 4:
77294  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77295  a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77296  break;
77297 #ifdef HAVE_LONG_LONG
77298  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77299  lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77300  goto long_long;
77301 #endif
77302  }
77303  CYTHON_FALLTHROUGH;
77304  default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
77305  }
77306  }
77307  x = a - b;
77308  return PyLong_FromLong(x);
77309 #ifdef HAVE_LONG_LONG
77310  long_long:
77311  llx = lla - llb;
77312  return PyLong_FromLongLong(llx);
77313 #endif
77314 
77315 
77316  }
77317  #endif
77318  if (PyFloat_CheckExact(op1)) {
77319  const long b = intval;
77320  double a = PyFloat_AS_DOUBLE(op1);
77321  double result;
77322  PyFPE_START_PROTECT("subtract", return NULL)
77323  result = ((double)a) - (double)b;
77324  PyFPE_END_PROTECT(result)
77325  return PyFloat_FromDouble(result);
77326  }
77327  return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
77328 }
77329 #endif
77330 
77331 /* BytesEquals */
77332  static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
77333 #if CYTHON_COMPILING_IN_PYPY
77334  return PyObject_RichCompareBool(s1, s2, equals);
77335 #else
77336  if (s1 == s2) {
77337  return (equals == Py_EQ);
77338  } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
77339  const char *ps1, *ps2;
77340  Py_ssize_t length = PyBytes_GET_SIZE(s1);
77341  if (length != PyBytes_GET_SIZE(s2))
77342  return (equals == Py_NE);
77343  ps1 = PyBytes_AS_STRING(s1);
77344  ps2 = PyBytes_AS_STRING(s2);
77345  if (ps1[0] != ps2[0]) {
77346  return (equals == Py_NE);
77347  } else if (length == 1) {
77348  return (equals == Py_EQ);
77349  } else {
77350  int result;
77351 #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
77352  Py_hash_t hash1, hash2;
77353  hash1 = ((PyBytesObject*)s1)->ob_shash;
77354  hash2 = ((PyBytesObject*)s2)->ob_shash;
77355  if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
77356  return (equals == Py_NE);
77357  }
77358 #endif
77359  result = memcmp(ps1, ps2, (size_t)length);
77360  return (equals == Py_EQ) ? (result == 0) : (result != 0);
77361  }
77362  } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
77363  return (equals == Py_NE);
77364  } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
77365  return (equals == Py_NE);
77366  } else {
77367  int result;
77368  PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
77369  if (!py_result)
77370  return -1;
77371  result = __Pyx_PyObject_IsTrue(py_result);
77372  Py_DECREF(py_result);
77373  return result;
77374  }
77375 #endif
77376 }
77377 
77378 /* UnicodeEquals */
77379  static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
77380 #if CYTHON_COMPILING_IN_PYPY
77381  return PyObject_RichCompareBool(s1, s2, equals);
77382 #else
77383 #if PY_MAJOR_VERSION < 3
77384  PyObject* owned_ref = NULL;
77385 #endif
77386  int s1_is_unicode, s2_is_unicode;
77387  if (s1 == s2) {
77388  goto return_eq;
77389  }
77390  s1_is_unicode = PyUnicode_CheckExact(s1);
77391  s2_is_unicode = PyUnicode_CheckExact(s2);
77392 #if PY_MAJOR_VERSION < 3
77393  if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
77394  owned_ref = PyUnicode_FromObject(s2);
77395  if (unlikely(!owned_ref))
77396  return -1;
77397  s2 = owned_ref;
77398  s2_is_unicode = 1;
77399  } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
77400  owned_ref = PyUnicode_FromObject(s1);
77401  if (unlikely(!owned_ref))
77402  return -1;
77403  s1 = owned_ref;
77404  s1_is_unicode = 1;
77405  } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
77406  return __Pyx_PyBytes_Equals(s1, s2, equals);
77407  }
77408 #endif
77409  if (s1_is_unicode & s2_is_unicode) {
77410  Py_ssize_t length;
77411  int kind;
77412  void *data1, *data2;
77413  if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
77414  return -1;
77415  length = __Pyx_PyUnicode_GET_LENGTH(s1);
77416  if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
77417  goto return_ne;
77418  }
77419 #if CYTHON_USE_UNICODE_INTERNALS
77420  {
77421  Py_hash_t hash1, hash2;
77422  #if CYTHON_PEP393_ENABLED
77423  hash1 = ((PyASCIIObject*)s1)->hash;
77424  hash2 = ((PyASCIIObject*)s2)->hash;
77425  #else
77426  hash1 = ((PyUnicodeObject*)s1)->hash;
77427  hash2 = ((PyUnicodeObject*)s2)->hash;
77428  #endif
77429  if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
77430  goto return_ne;
77431  }
77432  }
77433 #endif
77434  kind = __Pyx_PyUnicode_KIND(s1);
77435  if (kind != __Pyx_PyUnicode_KIND(s2)) {
77436  goto return_ne;
77437  }
77438  data1 = __Pyx_PyUnicode_DATA(s1);
77439  data2 = __Pyx_PyUnicode_DATA(s2);
77440  if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
77441  goto return_ne;
77442  } else if (length == 1) {
77443  goto return_eq;
77444  } else {
77445  int result = memcmp(data1, data2, (size_t)(length * kind));
77446  #if PY_MAJOR_VERSION < 3
77447  Py_XDECREF(owned_ref);
77448  #endif
77449  return (equals == Py_EQ) ? (result == 0) : (result != 0);
77450  }
77451  } else if ((s1 == Py_None) & s2_is_unicode) {
77452  goto return_ne;
77453  } else if ((s2 == Py_None) & s1_is_unicode) {
77454  goto return_ne;
77455  } else {
77456  int result;
77457  PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
77458  #if PY_MAJOR_VERSION < 3
77459  Py_XDECREF(owned_ref);
77460  #endif
77461  if (!py_result)
77462  return -1;
77463  result = __Pyx_PyObject_IsTrue(py_result);
77464  Py_DECREF(py_result);
77465  return result;
77466  }
77467 return_eq:
77468  #if PY_MAJOR_VERSION < 3
77469  Py_XDECREF(owned_ref);
77470  #endif
77471  return (equals == Py_EQ);
77472 return_ne:
77473  #if PY_MAJOR_VERSION < 3
77474  Py_XDECREF(owned_ref);
77475  #endif
77476  return (equals == Py_NE);
77477 #endif
77478 }
77479 
77480 /* RaiseException */
77481  #if PY_MAJOR_VERSION < 3
77482 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
77483  CYTHON_UNUSED PyObject *cause) {
77484  __Pyx_PyThreadState_declare
77485  Py_XINCREF(type);
77486  if (!value || value == Py_None)
77487  value = NULL;
77488  else
77489  Py_INCREF(value);
77490  if (!tb || tb == Py_None)
77491  tb = NULL;
77492  else {
77493  Py_INCREF(tb);
77494  if (!PyTraceBack_Check(tb)) {
77495  PyErr_SetString(PyExc_TypeError,
77496  "raise: arg 3 must be a traceback or None");
77497  goto raise_error;
77498  }
77499  }
77500  if (PyType_Check(type)) {
77501 #if CYTHON_COMPILING_IN_PYPY
77502  if (!value) {
77503  Py_INCREF(Py_None);
77504  value = Py_None;
77505  }
77506 #endif
77507  PyErr_NormalizeException(&type, &value, &tb);
77508  } else {
77509  if (value) {
77510  PyErr_SetString(PyExc_TypeError,
77511  "instance exception may not have a separate value");
77512  goto raise_error;
77513  }
77514  value = type;
77515  type = (PyObject*) Py_TYPE(type);
77516  Py_INCREF(type);
77517  if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
77518  PyErr_SetString(PyExc_TypeError,
77519  "raise: exception class must be a subclass of BaseException");
77520  goto raise_error;
77521  }
77522  }
77523  __Pyx_PyThreadState_assign
77524  __Pyx_ErrRestore(type, value, tb);
77525  return;
77526 raise_error:
77527  Py_XDECREF(value);
77528  Py_XDECREF(type);
77529  Py_XDECREF(tb);
77530  return;
77531 }
77532 #else
77533 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
77534  PyObject* owned_instance = NULL;
77535  if (tb == Py_None) {
77536  tb = 0;
77537  } else if (tb && !PyTraceBack_Check(tb)) {
77538  PyErr_SetString(PyExc_TypeError,
77539  "raise: arg 3 must be a traceback or None");
77540  goto bad;
77541  }
77542  if (value == Py_None)
77543  value = 0;
77544  if (PyExceptionInstance_Check(type)) {
77545  if (value) {
77546  PyErr_SetString(PyExc_TypeError,
77547  "instance exception may not have a separate value");
77548  goto bad;
77549  }
77550  value = type;
77551  type = (PyObject*) Py_TYPE(value);
77552  } else if (PyExceptionClass_Check(type)) {
77553  PyObject *instance_class = NULL;
77554  if (value && PyExceptionInstance_Check(value)) {
77555  instance_class = (PyObject*) Py_TYPE(value);
77556  if (instance_class != type) {
77557  int is_subclass = PyObject_IsSubclass(instance_class, type);
77558  if (!is_subclass) {
77559  instance_class = NULL;
77560  } else if (unlikely(is_subclass == -1)) {
77561  goto bad;
77562  } else {
77563  type = instance_class;
77564  }
77565  }
77566  }
77567  if (!instance_class) {
77568  PyObject *args;
77569  if (!value)
77570  args = PyTuple_New(0);
77571  else if (PyTuple_Check(value)) {
77572  Py_INCREF(value);
77573  args = value;
77574  } else
77575  args = PyTuple_Pack(1, value);
77576  if (!args)
77577  goto bad;
77578  owned_instance = PyObject_Call(type, args, NULL);
77579  Py_DECREF(args);
77580  if (!owned_instance)
77581  goto bad;
77582  value = owned_instance;
77583  if (!PyExceptionInstance_Check(value)) {
77584  PyErr_Format(PyExc_TypeError,
77585  "calling %R should have returned an instance of "
77586  "BaseException, not %R",
77587  type, Py_TYPE(value));
77588  goto bad;
77589  }
77590  }
77591  } else {
77592  PyErr_SetString(PyExc_TypeError,
77593  "raise: exception class must be a subclass of BaseException");
77594  goto bad;
77595  }
77596  if (cause) {
77597  PyObject *fixed_cause;
77598  if (cause == Py_None) {
77599  fixed_cause = NULL;
77600  } else if (PyExceptionClass_Check(cause)) {
77601  fixed_cause = PyObject_CallObject(cause, NULL);
77602  if (fixed_cause == NULL)
77603  goto bad;
77604  } else if (PyExceptionInstance_Check(cause)) {
77605  fixed_cause = cause;
77606  Py_INCREF(fixed_cause);
77607  } else {
77608  PyErr_SetString(PyExc_TypeError,
77609  "exception causes must derive from "
77610  "BaseException");
77611  goto bad;
77612  }
77613  PyException_SetCause(value, fixed_cause);
77614  }
77615  PyErr_SetObject(type, value);
77616  if (tb) {
77617 #if CYTHON_COMPILING_IN_PYPY
77618  PyObject *tmp_type, *tmp_value, *tmp_tb;
77619  PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
77620  Py_INCREF(tb);
77621  PyErr_Restore(tmp_type, tmp_value, tb);
77622  Py_XDECREF(tmp_tb);
77623 #else
77624  PyThreadState *tstate = __Pyx_PyThreadState_Current;
77625  PyObject* tmp_tb = tstate->curexc_traceback;
77626  if (tb != tmp_tb) {
77627  Py_INCREF(tb);
77628  tstate->curexc_traceback = tb;
77629  Py_XDECREF(tmp_tb);
77630  }
77631 #endif
77632  }
77633 bad:
77634  Py_XDECREF(owned_instance);
77635  return;
77636 }
77637 #endif
77638 
77639 /* UnpackUnboundCMethod */
77640  static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
77641  PyObject *method;
77642  method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
77643  if (unlikely(!method))
77644  return -1;
77645  target->method = method;
77646 #if CYTHON_COMPILING_IN_CPYTHON
77647  #if PY_MAJOR_VERSION >= 3
77648  if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
77649  #endif
77650  {
77651  PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
77652  target->func = descr->d_method->ml_meth;
77653  target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
77654  }
77655 #endif
77656  return 0;
77657 }
77658 
77659 /* CallUnboundCMethod0 */
77660  static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
77661  PyObject *args, *result = NULL;
77662  if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
77663 #if CYTHON_ASSUME_SAFE_MACROS
77664  args = PyTuple_New(1);
77665  if (unlikely(!args)) goto bad;
77666  Py_INCREF(self);
77667  PyTuple_SET_ITEM(args, 0, self);
77668 #else
77669  args = PyTuple_Pack(1, self);
77670  if (unlikely(!args)) goto bad;
77671 #endif
77672  result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
77673  Py_DECREF(args);
77674 bad:
77675  return result;
77676 }
77677 
77678 /* py_dict_items */
77679  static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
77680  if (PY_MAJOR_VERSION >= 3)
77681  return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_items, d);
77682  else
77683  return PyDict_Items(d);
77684 }
77685 
77686 /* RaiseTooManyValuesToUnpack */
77687  static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
77688  PyErr_Format(PyExc_ValueError,
77689  "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
77690 }
77691 
77692 /* RaiseNeedMoreValuesToUnpack */
77693  static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
77694  PyErr_Format(PyExc_ValueError,
77695  "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
77696  index, (index == 1) ? "" : "s");
77697 }
77698 
77699 /* IterFinish */
77700  static CYTHON_INLINE int __Pyx_IterFinish(void) {
77701 #if CYTHON_FAST_THREAD_STATE
77702  PyThreadState *tstate = __Pyx_PyThreadState_Current;
77703  PyObject* exc_type = tstate->curexc_type;
77704  if (unlikely(exc_type)) {
77705  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
77706  PyObject *exc_value, *exc_tb;
77707  exc_value = tstate->curexc_value;
77708  exc_tb = tstate->curexc_traceback;
77709  tstate->curexc_type = 0;
77710  tstate->curexc_value = 0;
77711  tstate->curexc_traceback = 0;
77712  Py_DECREF(exc_type);
77713  Py_XDECREF(exc_value);
77714  Py_XDECREF(exc_tb);
77715  return 0;
77716  } else {
77717  return -1;
77718  }
77719  }
77720  return 0;
77721 #else
77722  if (unlikely(PyErr_Occurred())) {
77723  if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
77724  PyErr_Clear();
77725  return 0;
77726  } else {
77727  return -1;
77728  }
77729  }
77730  return 0;
77731 #endif
77732 }
77733 
77734 /* UnpackItemEndCheck */
77735  static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
77736  if (unlikely(retval)) {
77737  Py_DECREF(retval);
77738  __Pyx_RaiseTooManyValuesError(expected);
77739  return -1;
77740  } else {
77741  return __Pyx_IterFinish();
77742  }
77743  return 0;
77744 }
77745 
77746 /* DictGetItem */
77747  #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
77748 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
77749  PyObject *value;
77750  value = PyDict_GetItemWithError(d, key);
77751  if (unlikely(!value)) {
77752  if (!PyErr_Occurred()) {
77753  if (unlikely(PyTuple_Check(key))) {
77754  PyObject* args = PyTuple_Pack(1, key);
77755  if (likely(args)) {
77756  PyErr_SetObject(PyExc_KeyError, args);
77757  Py_DECREF(args);
77758  }
77759  } else {
77760  PyErr_SetObject(PyExc_KeyError, key);
77761  }
77762  }
77763  return NULL;
77764  }
77765  Py_INCREF(value);
77766  return value;
77767 }
77768 #endif
77769 
77770 /* PyObjectSetAttrStr */
77771  #if CYTHON_USE_TYPE_SLOTS
77772 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
77773  PyTypeObject* tp = Py_TYPE(obj);
77774  if (likely(tp->tp_setattro))
77775  return tp->tp_setattro(obj, attr_name, value);
77776 #if PY_MAJOR_VERSION < 3
77777  if (likely(tp->tp_setattr))
77778  return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
77779 #endif
77780  return PyObject_SetAttr(obj, attr_name, value);
77781 }
77782 #endif
77783 
77784 /* PyIntBinop */
77785  #if !CYTHON_COMPILING_IN_PYPY
77786 static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
77787  (void)inplace;
77788  (void)zerodivision_check;
77789  #if PY_MAJOR_VERSION < 3
77790  if (likely(PyInt_CheckExact(op1))) {
77791  const long b = intval;
77792  long x;
77793  long a = PyInt_AS_LONG(op1);
77794  x = (long)((unsigned long)a + b);
77795  if (likely((x^a) >= 0 || (x^b) >= 0))
77796  return PyInt_FromLong(x);
77797  return PyLong_Type.tp_as_number->nb_add(op1, op2);
77798  }
77799  #endif
77800  #if CYTHON_USE_PYLONG_INTERNALS
77801  if (likely(PyLong_CheckExact(op1))) {
77802  const long b = intval;
77803  long a, x;
77804 #ifdef HAVE_LONG_LONG
77805  const PY_LONG_LONG llb = intval;
77806  PY_LONG_LONG lla, llx;
77807 #endif
77808  const digit* digits = ((PyLongObject*)op1)->ob_digit;
77809  const Py_ssize_t size = Py_SIZE(op1);
77810  if (likely(__Pyx_sst_abs(size) <= 1)) {
77811  a = likely(size) ? digits[0] : 0;
77812  if (size == -1) a = -a;
77813  } else {
77814  switch (size) {
77815  case -2:
77816  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77817  a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77818  break;
77819 #ifdef HAVE_LONG_LONG
77820  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77821  lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77822  goto long_long;
77823 #endif
77824  }
77825  CYTHON_FALLTHROUGH;
77826  case 2:
77827  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
77828  a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77829  break;
77830 #ifdef HAVE_LONG_LONG
77831  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
77832  lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77833  goto long_long;
77834 #endif
77835  }
77836  CYTHON_FALLTHROUGH;
77837  case -3:
77838  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77839  a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77840  break;
77841 #ifdef HAVE_LONG_LONG
77842  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77843  lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77844  goto long_long;
77845 #endif
77846  }
77847  CYTHON_FALLTHROUGH;
77848  case 3:
77849  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
77850  a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77851  break;
77852 #ifdef HAVE_LONG_LONG
77853  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
77854  lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77855  goto long_long;
77856 #endif
77857  }
77858  CYTHON_FALLTHROUGH;
77859  case -4:
77860  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77861  a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77862  break;
77863 #ifdef HAVE_LONG_LONG
77864  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77865  lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77866  goto long_long;
77867 #endif
77868  }
77869  CYTHON_FALLTHROUGH;
77870  case 4:
77871  if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
77872  a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
77873  break;
77874 #ifdef HAVE_LONG_LONG
77875  } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
77876  lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
77877  goto long_long;
77878 #endif
77879  }
77880  CYTHON_FALLTHROUGH;
77881  default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
77882  }
77883  }
77884  x = a + b;
77885  return PyLong_FromLong(x);
77886 #ifdef HAVE_LONG_LONG
77887  long_long:
77888  llx = lla + llb;
77889  return PyLong_FromLongLong(llx);
77890 #endif
77891 
77892 
77893  }
77894  #endif
77895  if (PyFloat_CheckExact(op1)) {
77896  const long b = intval;
77897  double a = PyFloat_AS_DOUBLE(op1);
77898  double result;
77899  PyFPE_START_PROTECT("add", return NULL)
77900  result = ((double)a) + (double)b;
77901  PyFPE_END_PROTECT(result)
77902  return PyFloat_FromDouble(result);
77903  }
77904  return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
77905 }
77906 #endif
77907 
77908 /* set_iter */
77909  static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
77910  Py_ssize_t* p_orig_length, int* p_source_is_set) {
77911 #if CYTHON_COMPILING_IN_CPYTHON
77912  is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
77913  *p_source_is_set = is_set;
77914  if (likely(is_set)) {
77915  *p_orig_length = PySet_Size(iterable);
77916  Py_INCREF(iterable);
77917  return iterable;
77918  }
77919 #else
77920  (void)is_set;
77921  *p_source_is_set = 0;
77922 #endif
77923  *p_orig_length = 0;
77924  return PyObject_GetIter(iterable);
77925 }
77926 static CYTHON_INLINE int __Pyx_set_iter_next(
77927  PyObject* iter_obj, Py_ssize_t orig_length,
77928  Py_ssize_t* ppos, PyObject **value,
77929  int source_is_set) {
77930  if (!CYTHON_COMPILING_IN_CPYTHON || unlikely(!source_is_set)) {
77931  *value = PyIter_Next(iter_obj);
77932  if (unlikely(!*value)) {
77933  return __Pyx_IterFinish();
77934  }
77935  (void)orig_length;
77936  (void)ppos;
77937  return 1;
77938  }
77939 #if CYTHON_COMPILING_IN_CPYTHON
77940  if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
77941  PyErr_SetString(
77942  PyExc_RuntimeError,
77943  "set changed size during iteration");
77944  return -1;
77945  }
77946  {
77947  Py_hash_t hash;
77948  int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
77949  assert (ret != -1);
77950  if (likely(ret)) {
77951  Py_INCREF(*value);
77952  return 1;
77953  }
77954  }
77955 #endif
77956  return 0;
77957 }
77958 
77959 /* SliceObject */
77960  static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
77961  Py_ssize_t cstart, Py_ssize_t cstop,
77962  PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
77963  int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
77964 #if CYTHON_USE_TYPE_SLOTS
77965  PyMappingMethods* mp;
77966 #if PY_MAJOR_VERSION < 3
77967  PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
77968  if (likely(ms && ms->sq_slice)) {
77969  if (!has_cstart) {
77970  if (_py_start && (*_py_start != Py_None)) {
77971  cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
77972  if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
77973  } else
77974  cstart = 0;
77975  }
77976  if (!has_cstop) {
77977  if (_py_stop && (*_py_stop != Py_None)) {
77978  cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
77979  if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
77980  } else
77981  cstop = PY_SSIZE_T_MAX;
77982  }
77983  if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
77984  Py_ssize_t l = ms->sq_length(obj);
77985  if (likely(l >= 0)) {
77986  if (cstop < 0) {
77987  cstop += l;
77988  if (cstop < 0) cstop = 0;
77989  }
77990  if (cstart < 0) {
77991  cstart += l;
77992  if (cstart < 0) cstart = 0;
77993  }
77994  } else {
77995  if (!PyErr_ExceptionMatches(PyExc_OverflowError))
77996  goto bad;
77997  PyErr_Clear();
77998  }
77999  }
78000  return ms->sq_slice(obj, cstart, cstop);
78001  }
78002 #endif
78003  mp = Py_TYPE(obj)->tp_as_mapping;
78004  if (likely(mp && mp->mp_subscript))
78005 #endif
78006  {
78007  PyObject* result;
78008  PyObject *py_slice, *py_start, *py_stop;
78009  if (_py_slice) {
78010  py_slice = *_py_slice;
78011  } else {
78012  PyObject* owned_start = NULL;
78013  PyObject* owned_stop = NULL;
78014  if (_py_start) {
78015  py_start = *_py_start;
78016  } else {
78017  if (has_cstart) {
78018  owned_start = py_start = PyInt_FromSsize_t(cstart);
78019  if (unlikely(!py_start)) goto bad;
78020  } else
78021  py_start = Py_None;
78022  }
78023  if (_py_stop) {
78024  py_stop = *_py_stop;
78025  } else {
78026  if (has_cstop) {
78027  owned_stop = py_stop = PyInt_FromSsize_t(cstop);
78028  if (unlikely(!py_stop)) {
78029  Py_XDECREF(owned_start);
78030  goto bad;
78031  }
78032  } else
78033  py_stop = Py_None;
78034  }
78035  py_slice = PySlice_New(py_start, py_stop, Py_None);
78036  Py_XDECREF(owned_start);
78037  Py_XDECREF(owned_stop);
78038  if (unlikely(!py_slice)) goto bad;
78039  }
78040 #if CYTHON_USE_TYPE_SLOTS
78041  result = mp->mp_subscript(obj, py_slice);
78042 #else
78043  result = PyObject_GetItem(obj, py_slice);
78044 #endif
78045  if (!_py_slice) {
78046  Py_DECREF(py_slice);
78047  }
78048  return result;
78049  }
78050  PyErr_Format(PyExc_TypeError,
78051  "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
78052 bad:
78053  return NULL;
78054 }
78055 
78056 /* py_abs */
78057  #if CYTHON_USE_PYLONG_INTERNALS
78058 static PyObject *__Pyx_PyLong_AbsNeg(PyObject *n) {
78059  if (likely(Py_SIZE(n) == -1)) {
78060  return PyLong_FromLong(((PyLongObject*)n)->ob_digit[0]);
78061  }
78062 #if CYTHON_COMPILING_IN_CPYTHON
78063  {
78064  PyObject *copy = _PyLong_Copy((PyLongObject*)n);
78065  if (likely(copy)) {
78066  __Pyx_SET_SIZE(copy, -Py_SIZE(copy));
78067  }
78068  return copy;
78069  }
78070 #else
78071  return PyNumber_Negative(n);
78072 #endif
78073 }
78074 #endif
78075 
78076 /* Import */
78077  static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
78078  PyObject *empty_list = 0;
78079  PyObject *module = 0;
78080  PyObject *global_dict = 0;
78081  PyObject *empty_dict = 0;
78082  PyObject *list;
78083  #if PY_MAJOR_VERSION < 3
78084  PyObject *py_import;
78085  py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
78086  if (!py_import)
78087  goto bad;
78088  #endif
78089  if (from_list)
78090  list = from_list;
78091  else {
78092  empty_list = PyList_New(0);
78093  if (!empty_list)
78094  goto bad;
78095  list = empty_list;
78096  }
78097  global_dict = PyModule_GetDict(__pyx_m);
78098  if (!global_dict)
78099  goto bad;
78100  empty_dict = PyDict_New();
78101  if (!empty_dict)
78102  goto bad;
78103  {
78104  #if PY_MAJOR_VERSION >= 3
78105  if (level == -1) {
78106  if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
78107  module = PyImport_ImportModuleLevelObject(
78108  name, global_dict, empty_dict, list, 1);
78109  if (!module) {
78110  if (!PyErr_ExceptionMatches(PyExc_ImportError))
78111  goto bad;
78112  PyErr_Clear();
78113  }
78114  }
78115  level = 0;
78116  }
78117  #endif
78118  if (!module) {
78119  #if PY_MAJOR_VERSION < 3
78120  PyObject *py_level = PyInt_FromLong(level);
78121  if (!py_level)
78122  goto bad;
78123  module = PyObject_CallFunctionObjArgs(py_import,
78124  name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
78125  Py_DECREF(py_level);
78126  #else
78127  module = PyImport_ImportModuleLevelObject(
78128  name, global_dict, empty_dict, list, level);
78129  #endif
78130  }
78131  }
78132 bad:
78133  #if PY_MAJOR_VERSION < 3
78134  Py_XDECREF(py_import);
78135  #endif
78136  Py_XDECREF(empty_list);
78137  Py_XDECREF(empty_dict);
78138  return module;
78139 }
78140 
78141 /* ImportFrom */
78142  static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
78143  PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
78144  if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
78145  PyErr_Format(PyExc_ImportError,
78146  #if PY_MAJOR_VERSION < 3
78147  "cannot import name %.230s", PyString_AS_STRING(name));
78148  #else
78149  "cannot import name %S", name);
78150  #endif
78151  }
78152  return value;
78153 }
78154 
78155 /* HasAttr */
78156  static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
78157  PyObject *r;
78158  if (unlikely(!__Pyx_PyBaseString_Check(n))) {
78159  PyErr_SetString(PyExc_TypeError,
78160  "hasattr(): attribute name must be string");
78161  return -1;
78162  }
78163  r = __Pyx_GetAttr(o, n);
78164  if (unlikely(!r)) {
78165  PyErr_Clear();
78166  return 0;
78167  } else {
78168  Py_DECREF(r);
78169  return 1;
78170  }
78171 }
78172 
78173 /* GetTopmostException */
78174  #if CYTHON_USE_EXC_INFO_STACK
78175 static _PyErr_StackItem *
78176 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
78177 {
78178  _PyErr_StackItem *exc_info = tstate->exc_info;
78179  while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
78180  exc_info->previous_item != NULL)
78181  {
78182  exc_info = exc_info->previous_item;
78183  }
78184  return exc_info;
78185 }
78186 #endif
78187 
78188 /* SaveResetException */
78189  #if CYTHON_FAST_THREAD_STATE
78190 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
78191  #if CYTHON_USE_EXC_INFO_STACK
78192  _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
78193  *type = exc_info->exc_type;
78194  *value = exc_info->exc_value;
78195  *tb = exc_info->exc_traceback;
78196  #else
78197  *type = tstate->exc_type;
78198  *value = tstate->exc_value;
78199  *tb = tstate->exc_traceback;
78200  #endif
78201  Py_XINCREF(*type);
78202  Py_XINCREF(*value);
78203  Py_XINCREF(*tb);
78204 }
78205 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
78206  PyObject *tmp_type, *tmp_value, *tmp_tb;
78207  #if CYTHON_USE_EXC_INFO_STACK
78208  _PyErr_StackItem *exc_info = tstate->exc_info;
78209  tmp_type = exc_info->exc_type;
78210  tmp_value = exc_info->exc_value;
78211  tmp_tb = exc_info->exc_traceback;
78212  exc_info->exc_type = type;
78213  exc_info->exc_value = value;
78214  exc_info->exc_traceback = tb;
78215  #else
78216  tmp_type = tstate->exc_type;
78217  tmp_value = tstate->exc_value;
78218  tmp_tb = tstate->exc_traceback;
78219  tstate->exc_type = type;
78220  tstate->exc_value = value;
78221  tstate->exc_traceback = tb;
78222  #endif
78223  Py_XDECREF(tmp_type);
78224  Py_XDECREF(tmp_value);
78225  Py_XDECREF(tmp_tb);
78226 }
78227 #endif
78228 
78229 /* GetException */
78230  #if CYTHON_FAST_THREAD_STATE
78231 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
78232 #else
78233 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
78234 #endif
78235 {
78236  PyObject *local_type, *local_value, *local_tb;
78237 #if CYTHON_FAST_THREAD_STATE
78238  PyObject *tmp_type, *tmp_value, *tmp_tb;
78239  local_type = tstate->curexc_type;
78240  local_value = tstate->curexc_value;
78241  local_tb = tstate->curexc_traceback;
78242  tstate->curexc_type = 0;
78243  tstate->curexc_value = 0;
78244  tstate->curexc_traceback = 0;
78245 #else
78246  PyErr_Fetch(&local_type, &local_value, &local_tb);
78247 #endif
78248  PyErr_NormalizeException(&local_type, &local_value, &local_tb);
78249 #if CYTHON_FAST_THREAD_STATE
78250  if (unlikely(tstate->curexc_type))
78251 #else
78252  if (unlikely(PyErr_Occurred()))
78253 #endif
78254  goto bad;
78255  #if PY_MAJOR_VERSION >= 3
78256  if (local_tb) {
78257  if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
78258  goto bad;
78259  }
78260  #endif
78261  Py_XINCREF(local_tb);
78262  Py_XINCREF(local_type);
78263  Py_XINCREF(local_value);
78264  *type = local_type;
78265  *value = local_value;
78266  *tb = local_tb;
78267 #if CYTHON_FAST_THREAD_STATE
78268  #if CYTHON_USE_EXC_INFO_STACK
78269  {
78270  _PyErr_StackItem *exc_info = tstate->exc_info;
78271  tmp_type = exc_info->exc_type;
78272  tmp_value = exc_info->exc_value;
78273  tmp_tb = exc_info->exc_traceback;
78274  exc_info->exc_type = local_type;
78275  exc_info->exc_value = local_value;
78276  exc_info->exc_traceback = local_tb;
78277  }
78278  #else
78279  tmp_type = tstate->exc_type;
78280  tmp_value = tstate->exc_value;
78281  tmp_tb = tstate->exc_traceback;
78282  tstate->exc_type = local_type;
78283  tstate->exc_value = local_value;
78284  tstate->exc_traceback = local_tb;
78285  #endif
78286  Py_XDECREF(tmp_type);
78287  Py_XDECREF(tmp_value);
78288  Py_XDECREF(tmp_tb);
78289 #else
78290  PyErr_SetExcInfo(local_type, local_value, local_tb);
78291 #endif
78292  return 0;
78293 bad:
78294  *type = 0;
78295  *value = 0;
78296  *tb = 0;
78297  Py_XDECREF(local_type);
78298  Py_XDECREF(local_value);
78299  Py_XDECREF(local_tb);
78300  return -1;
78301 }
78302 
78303 /* ArgTypeTest */
78304  static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
78305 {
78306  if (unlikely(!type)) {
78307  PyErr_SetString(PyExc_SystemError, "Missing type object");
78308  return 0;
78309  }
78310  else if (exact) {
78311  #if PY_MAJOR_VERSION == 2
78312  if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
78313  #endif
78314  }
78315  else {
78316  if (likely(__Pyx_TypeCheck(obj, type))) return 1;
78317  }
78318  PyErr_Format(PyExc_TypeError,
78319  "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
78320  name, type->tp_name, Py_TYPE(obj)->tp_name);
78321  return 0;
78322 }
78323 
78324 /* DivInt[Py_ssize_t] */
78325  static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) {
78326  Py_ssize_t q = a / b;
78327  Py_ssize_t r = a - q*b;
78328  q -= ((r != 0) & ((r ^ b) < 0));
78329  return q;
78330 }
78331 
78332 /* decode_c_string */
78333  static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
78334  const char* cstring, Py_ssize_t start, Py_ssize_t stop,
78335  const char* encoding, const char* errors,
78336  PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
78337  Py_ssize_t length;
78338  if (unlikely((start < 0) | (stop < 0))) {
78339  size_t slen = strlen(cstring);
78340  if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) {
78341  PyErr_SetString(PyExc_OverflowError,
78342  "c-string too long to convert to Python");
78343  return NULL;
78344  }
78345  length = (Py_ssize_t) slen;
78346  if (start < 0) {
78347  start += length;
78348  if (start < 0)
78349  start = 0;
78350  }
78351  if (stop < 0)
78352  stop += length;
78353  }
78354  if (unlikely(stop <= start))
78355  return __Pyx_NewRef(__pyx_empty_unicode);
78356  length = stop - start;
78357  cstring += start;
78358  if (decode_func) {
78359  return decode_func(cstring, length, errors);
78360  } else {
78361  return PyUnicode_Decode(cstring, length, encoding, errors);
78362  }
78363 }
78364 
78365 /* RaiseNoneIterError */
78366  static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
78367  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
78368 }
78369 
78370 /* SwapException */
78371  #if CYTHON_FAST_THREAD_STATE
78372 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
78373  PyObject *tmp_type, *tmp_value, *tmp_tb;
78374  #if CYTHON_USE_EXC_INFO_STACK
78375  _PyErr_StackItem *exc_info = tstate->exc_info;
78376  tmp_type = exc_info->exc_type;
78377  tmp_value = exc_info->exc_value;
78378  tmp_tb = exc_info->exc_traceback;
78379  exc_info->exc_type = *type;
78380  exc_info->exc_value = *value;
78381  exc_info->exc_traceback = *tb;
78382  #else
78383  tmp_type = tstate->exc_type;
78384  tmp_value = tstate->exc_value;
78385  tmp_tb = tstate->exc_traceback;
78386  tstate->exc_type = *type;
78387  tstate->exc_value = *value;
78388  tstate->exc_traceback = *tb;
78389  #endif
78390  *type = tmp_type;
78391  *value = tmp_value;
78392  *tb = tmp_tb;
78393 }
78394 #else
78395 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
78396  PyObject *tmp_type, *tmp_value, *tmp_tb;
78397  PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
78398  PyErr_SetExcInfo(*type, *value, *tb);
78399  *type = tmp_type;
78400  *value = tmp_value;
78401  *tb = tmp_tb;
78402 }
78403 #endif
78404 
78405 /* FastTypeChecks */
78406  #if CYTHON_COMPILING_IN_CPYTHON
78407 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
78408  while (a) {
78409  a = a->tp_base;
78410  if (a == b)
78411  return 1;
78412  }
78413  return b == &PyBaseObject_Type;
78414 }
78415 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
78416  PyObject *mro;
78417  if (a == b) return 1;
78418  mro = a->tp_mro;
78419  if (likely(mro)) {
78420  Py_ssize_t i, n;
78421  n = PyTuple_GET_SIZE(mro);
78422  for (i = 0; i < n; i++) {
78423  if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
78424  return 1;
78425  }
78426  return 0;
78427  }
78428  return __Pyx_InBases(a, b);
78429 }
78430 #if PY_MAJOR_VERSION == 2
78431 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
78432  PyObject *exception, *value, *tb;
78433  int res;
78434  __Pyx_PyThreadState_declare
78435  __Pyx_PyThreadState_assign
78436  __Pyx_ErrFetch(&exception, &value, &tb);
78437  res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
78438  if (unlikely(res == -1)) {
78439  PyErr_WriteUnraisable(err);
78440  res = 0;
78441  }
78442  if (!res) {
78443  res = PyObject_IsSubclass(err, exc_type2);
78444  if (unlikely(res == -1)) {
78445  PyErr_WriteUnraisable(err);
78446  res = 0;
78447  }
78448  }
78449  __Pyx_ErrRestore(exception, value, tb);
78450  return res;
78451 }
78452 #else
78453 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
78454  int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
78455  if (!res) {
78456  res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
78457  }
78458  return res;
78459 }
78460 #endif
78461 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
78462  Py_ssize_t i, n;
78463  assert(PyExceptionClass_Check(exc_type));
78464  n = PyTuple_GET_SIZE(tuple);
78465 #if PY_MAJOR_VERSION >= 3
78466  for (i=0; i<n; i++) {
78467  if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
78468  }
78469 #endif
78470  for (i=0; i<n; i++) {
78471  PyObject *t = PyTuple_GET_ITEM(tuple, i);
78472  #if PY_MAJOR_VERSION < 3
78473  if (likely(exc_type == t)) return 1;
78474  #endif
78475  if (likely(PyExceptionClass_Check(t))) {
78476  if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
78477  } else {
78478  }
78479  }
78480  return 0;
78481 }
78482 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
78483  if (likely(err == exc_type)) return 1;
78484  if (likely(PyExceptionClass_Check(err))) {
78485  if (likely(PyExceptionClass_Check(exc_type))) {
78486  return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
78487  } else if (likely(PyTuple_Check(exc_type))) {
78488  return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
78489  } else {
78490  }
78491  }
78492  return PyErr_GivenExceptionMatches(err, exc_type);
78493 }
78494 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
78495  assert(PyExceptionClass_Check(exc_type1));
78496  assert(PyExceptionClass_Check(exc_type2));
78497  if (likely(err == exc_type1 || err == exc_type2)) return 1;
78498  if (likely(PyExceptionClass_Check(err))) {
78499  return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
78500  }
78501  return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
78502 }
78503 #endif
78504 
78505 /* DivInt[long] */
78506  static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
78507  long q = a / b;
78508  long r = a - q*b;
78509  q -= ((r != 0) & ((r ^ b) < 0));
78510  return q;
78511 }
78512 
78513 /* StringJoin */
78514  #if !CYTHON_COMPILING_IN_CPYTHON
78515 static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
78516  return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL);
78517 }
78518 #endif
78519 
78520 /* CallNextTpDealloc */
78521  static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc) {
78522  PyTypeObject* type = Py_TYPE(obj);
78523  while (type && type->tp_dealloc != current_tp_dealloc)
78524  type = type->tp_base;
78525  while (type && type->tp_dealloc == current_tp_dealloc)
78526  type = type->tp_base;
78527  if (type)
78528  type->tp_dealloc(obj);
78529 }
78530 
78531 /* CallNextTpTraverse */
78532  static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
78533  PyTypeObject* type = Py_TYPE(obj);
78534  while (type && type->tp_traverse != current_tp_traverse)
78535  type = type->tp_base;
78536  while (type && type->tp_traverse == current_tp_traverse)
78537  type = type->tp_base;
78538  if (type && type->tp_traverse)
78539  return type->tp_traverse(obj, v, a);
78540  return 0;
78541 }
78542 
78543 /* CallNextTpClear */
78544  static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
78545  PyTypeObject* type = Py_TYPE(obj);
78546  while (type && type->tp_clear != current_tp_clear)
78547  type = type->tp_base;
78548  while (type && type->tp_clear == current_tp_clear)
78549  type = type->tp_base;
78550  if (type && type->tp_clear)
78551  type->tp_clear(obj);
78552 }
78553 
78554 /* PyObject_GenericGetAttrNoDict */
78555  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
78556 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
78557  PyErr_Format(PyExc_AttributeError,
78558 #if PY_MAJOR_VERSION >= 3
78559  "'%.50s' object has no attribute '%U'",
78560  tp->tp_name, attr_name);
78561 #else
78562  "'%.50s' object has no attribute '%.400s'",
78563  tp->tp_name, PyString_AS_STRING(attr_name));
78564 #endif
78565  return NULL;
78566 }
78567 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
78568  PyObject *descr;
78569  PyTypeObject *tp = Py_TYPE(obj);
78570  if (unlikely(!PyString_Check(attr_name))) {
78571  return PyObject_GenericGetAttr(obj, attr_name);
78572  }
78573  assert(!tp->tp_dictoffset);
78574  descr = _PyType_Lookup(tp, attr_name);
78575  if (unlikely(!descr)) {
78576  return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
78577  }
78578  Py_INCREF(descr);
78579  #if PY_MAJOR_VERSION < 3
78580  if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
78581  #endif
78582  {
78583  descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
78584  if (unlikely(f)) {
78585  PyObject *res = f(descr, obj, (PyObject *)tp);
78586  Py_DECREF(descr);
78587  return res;
78588  }
78589  }
78590  return descr;
78591 }
78592 #endif
78593 
78594 /* PyObject_GenericGetAttr */
78595  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
78596 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
78597  if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
78598  return PyObject_GenericGetAttr(obj, attr_name);
78599  }
78600  return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
78601 }
78602 #endif
78603 
78604 /* TypeImport */
78605  #ifndef __PYX_HAVE_RT_ImportType
78606 #define __PYX_HAVE_RT_ImportType
78607 static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
78608  size_t size, enum __Pyx_ImportType_CheckSize check_size)
78609 {
78610  PyObject *result = 0;
78611  char warning[200];
78612  Py_ssize_t basicsize;
78613 #ifdef Py_LIMITED_API
78614  PyObject *py_basicsize;
78615 #endif
78616  result = PyObject_GetAttrString(module, class_name);
78617  if (!result)
78618  goto bad;
78619  if (!PyType_Check(result)) {
78620  PyErr_Format(PyExc_TypeError,
78621  "%.200s.%.200s is not a type object",
78622  module_name, class_name);
78623  goto bad;
78624  }
78625 #ifndef Py_LIMITED_API
78626  basicsize = ((PyTypeObject *)result)->tp_basicsize;
78627 #else
78628  py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
78629  if (!py_basicsize)
78630  goto bad;
78631  basicsize = PyLong_AsSsize_t(py_basicsize);
78632  Py_DECREF(py_basicsize);
78633  py_basicsize = 0;
78634  if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
78635  goto bad;
78636 #endif
78637  if ((size_t)basicsize < size) {
78638  PyErr_Format(PyExc_ValueError,
78639  "%.200s.%.200s size changed, may indicate binary incompatibility. "
78640  "Expected %zd from C header, got %zd from PyObject",
78641  module_name, class_name, size, basicsize);
78642  goto bad;
78643  }
78644  if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
78645  PyErr_Format(PyExc_ValueError,
78646  "%.200s.%.200s size changed, may indicate binary incompatibility. "
78647  "Expected %zd from C header, got %zd from PyObject",
78648  module_name, class_name, size, basicsize);
78649  goto bad;
78650  }
78651  else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
78652  PyOS_snprintf(warning, sizeof(warning),
78653  "%s.%s size changed, may indicate binary incompatibility. "
78654  "Expected %zd from C header, got %zd from PyObject",
78655  module_name, class_name, size, basicsize);
78656  if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
78657  }
78658  return (PyTypeObject *)result;
78659 bad:
78660  Py_XDECREF(result);
78661  return NULL;
78662 }
78663 #endif
78664 
78665 /* SetVTable */
78666  static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
78667 #if PY_VERSION_HEX >= 0x02070000
78668  PyObject *ob = PyCapsule_New(vtable, 0, 0);
78669 #else
78670  PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
78671 #endif
78672  if (!ob)
78673  goto bad;
78674  if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
78675  goto bad;
78676  Py_DECREF(ob);
78677  return 0;
78678 bad:
78679  Py_XDECREF(ob);
78680  return -1;
78681 }
78682 
78683 /* PyObjectGetAttrStrNoError */
78684  static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
78685  __Pyx_PyThreadState_declare
78686  __Pyx_PyThreadState_assign
78687  if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
78688  __Pyx_PyErr_Clear();
78689 }
78690 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
78691  PyObject *result;
78692 #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
78693  PyTypeObject* tp = Py_TYPE(obj);
78694  if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
78695  return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
78696  }
78697 #endif
78698  result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
78699  if (unlikely(!result)) {
78700  __Pyx_PyObject_GetAttrStr_ClearAttributeError();
78701  }
78702  return result;
78703 }
78704 
78705 /* SetupReduce */
78706  static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
78707  int ret;
78708  PyObject *name_attr;
78709  name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
78710  if (likely(name_attr)) {
78711  ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
78712  } else {
78713  ret = -1;
78714  }
78715  if (unlikely(ret < 0)) {
78716  PyErr_Clear();
78717  ret = 0;
78718  }
78719  Py_XDECREF(name_attr);
78720  return ret;
78721 }
78722 static int __Pyx_setup_reduce(PyObject* type_obj) {
78723  int ret = 0;
78724  PyObject *object_reduce = NULL;
78725  PyObject *object_getstate = NULL;
78726  PyObject *object_reduce_ex = NULL;
78727  PyObject *reduce = NULL;
78728  PyObject *reduce_ex = NULL;
78729  PyObject *reduce_cython = NULL;
78730  PyObject *setstate = NULL;
78731  PyObject *setstate_cython = NULL;
78732  PyObject *getstate = NULL;
78733 #if CYTHON_USE_PYTYPE_LOOKUP
78734  getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
78735 #else
78736  getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
78737  if (!getstate && PyErr_Occurred()) {
78738  goto __PYX_BAD;
78739  }
78740 #endif
78741  if (getstate) {
78742 #if CYTHON_USE_PYTYPE_LOOKUP
78743  object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
78744 #else
78745  object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
78746  if (!object_getstate && PyErr_Occurred()) {
78747  goto __PYX_BAD;
78748  }
78749 #endif
78750  if (object_getstate != getstate) {
78751  goto __PYX_GOOD;
78752  }
78753  }
78754 #if CYTHON_USE_PYTYPE_LOOKUP
78755  object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
78756 #else
78757  object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
78758 #endif
78759  reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
78760  if (reduce_ex == object_reduce_ex) {
78761 #if CYTHON_USE_PYTYPE_LOOKUP
78762  object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
78763 #else
78764  object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
78765 #endif
78766  reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
78767  if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
78768  reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
78769  if (likely(reduce_cython)) {
78770  ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
78771  ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
78772  } else if (reduce == object_reduce || PyErr_Occurred()) {
78773  goto __PYX_BAD;
78774  }
78775  setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
78776  if (!setstate) PyErr_Clear();
78777  if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
78778  setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
78779  if (likely(setstate_cython)) {
78780  ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
78781  ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
78782  } else if (!setstate || PyErr_Occurred()) {
78783  goto __PYX_BAD;
78784  }
78785  }
78786  PyType_Modified((PyTypeObject*)type_obj);
78787  }
78788  }
78789  goto __PYX_GOOD;
78790 __PYX_BAD:
78791  if (!PyErr_Occurred())
78792  PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
78793  ret = -1;
78794 __PYX_GOOD:
78795 #if !CYTHON_USE_PYTYPE_LOOKUP
78796  Py_XDECREF(object_reduce);
78797  Py_XDECREF(object_reduce_ex);
78798  Py_XDECREF(object_getstate);
78799  Py_XDECREF(getstate);
78800 #endif
78801  Py_XDECREF(reduce);
78802  Py_XDECREF(reduce_ex);
78803  Py_XDECREF(reduce_cython);
78804  Py_XDECREF(setstate);
78805  Py_XDECREF(setstate_cython);
78806  return ret;
78807 }
78808 
78809 /* GetVTable */
78810  static void* __Pyx_GetVtable(PyObject *dict) {
78811  void* ptr;
78812  PyObject *ob = PyObject_GetItem(dict, __pyx_n_s_pyx_vtable);
78813  if (!ob)
78814  goto bad;
78815 #if PY_VERSION_HEX >= 0x02070000
78816  ptr = PyCapsule_GetPointer(ob, 0);
78817 #else
78818  ptr = PyCObject_AsVoidPtr(ob);
78819 #endif
78820  if (!ptr && !PyErr_Occurred())
78821  PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
78822  Py_DECREF(ob);
78823  return ptr;
78824 bad:
78825  Py_XDECREF(ob);
78826  return NULL;
78827 }
78828 
78829 /* CalculateMetaclass */
78830  static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
78831  Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
78832  for (i=0; i < nbases; i++) {
78833  PyTypeObject *tmptype;
78834  PyObject *tmp = PyTuple_GET_ITEM(bases, i);
78835  tmptype = Py_TYPE(tmp);
78836 #if PY_MAJOR_VERSION < 3
78837  if (tmptype == &PyClass_Type)
78838  continue;
78839 #endif
78840  if (!metaclass) {
78841  metaclass = tmptype;
78842  continue;
78843  }
78844  if (PyType_IsSubtype(metaclass, tmptype))
78845  continue;
78846  if (PyType_IsSubtype(tmptype, metaclass)) {
78847  metaclass = tmptype;
78848  continue;
78849  }
78850  PyErr_SetString(PyExc_TypeError,
78851  "metaclass conflict: "
78852  "the metaclass of a derived class "
78853  "must be a (non-strict) subclass "
78854  "of the metaclasses of all its bases");
78855  return NULL;
78856  }
78857  if (!metaclass) {
78858 #if PY_MAJOR_VERSION < 3
78859  metaclass = &PyClass_Type;
78860 #else
78861  metaclass = &PyType_Type;
78862 #endif
78863  }
78864  Py_INCREF((PyObject*) metaclass);
78865  return (PyObject*) metaclass;
78866 }
78867 
78868 /* Py3ClassCreate */
78869  static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
78870  PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
78871  PyObject *ns;
78872  if (metaclass) {
78873  PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
78874  if (prep) {
78875  PyObject *pargs = PyTuple_Pack(2, name, bases);
78876  if (unlikely(!pargs)) {
78877  Py_DECREF(prep);
78878  return NULL;
78879  }
78880  ns = PyObject_Call(prep, pargs, mkw);
78881  Py_DECREF(prep);
78882  Py_DECREF(pargs);
78883  } else {
78884  if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
78885  return NULL;
78886  PyErr_Clear();
78887  ns = PyDict_New();
78888  }
78889  } else {
78890  ns = PyDict_New();
78891  }
78892  if (unlikely(!ns))
78893  return NULL;
78894  if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
78895  if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
78896  if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
78897  return ns;
78898 bad:
78899  Py_DECREF(ns);
78900  return NULL;
78901 }
78902 static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
78903  PyObject *dict, PyObject *mkw,
78904  int calculate_metaclass, int allow_py2_metaclass) {
78905  PyObject *result, *margs;
78906  PyObject *owned_metaclass = NULL;
78907  if (allow_py2_metaclass) {
78908  owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
78909  if (owned_metaclass) {
78910  metaclass = owned_metaclass;
78911  } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
78912  PyErr_Clear();
78913  } else {
78914  return NULL;
78915  }
78916  }
78917  if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
78918  metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
78919  Py_XDECREF(owned_metaclass);
78920  if (unlikely(!metaclass))
78921  return NULL;
78922  owned_metaclass = metaclass;
78923  }
78924  margs = PyTuple_Pack(3, name, bases, dict);
78925  if (unlikely(!margs)) {
78926  result = NULL;
78927  } else {
78928  result = PyObject_Call(metaclass, margs, mkw);
78929  Py_DECREF(margs);
78930  }
78931  Py_XDECREF(owned_metaclass);
78932  return result;
78933 }
78934 
78935 /* CLineInTraceback */
78936  #ifndef CYTHON_CLINE_IN_TRACEBACK
78937 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
78938  PyObject *use_cline;
78939  PyObject *ptype, *pvalue, *ptraceback;
78940 #if CYTHON_COMPILING_IN_CPYTHON
78941  PyObject **cython_runtime_dict;
78942 #endif
78943  if (unlikely(!__pyx_cython_runtime)) {
78944  return c_line;
78945  }
78946  __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
78947 #if CYTHON_COMPILING_IN_CPYTHON
78948  cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
78949  if (likely(cython_runtime_dict)) {
78950  __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
78951  use_cline, *cython_runtime_dict,
78952  __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
78953  } else
78954 #endif
78955  {
78956  PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
78957  if (use_cline_obj) {
78958  use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
78959  Py_DECREF(use_cline_obj);
78960  } else {
78961  PyErr_Clear();
78962  use_cline = NULL;
78963  }
78964  }
78965  if (!use_cline) {
78966  c_line = 0;
78967  (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
78968  }
78969  else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
78970  c_line = 0;
78971  }
78972  __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
78973  return c_line;
78974 }
78975 #endif
78976 
78977 /* CodeObjectCache */
78978  static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
78979  int start = 0, mid = 0, end = count - 1;
78980  if (end >= 0 && code_line > entries[end].code_line) {
78981  return count;
78982  }
78983  while (start < end) {
78984  mid = start + (end - start) / 2;
78985  if (code_line < entries[mid].code_line) {
78986  end = mid;
78987  } else if (code_line > entries[mid].code_line) {
78988  start = mid + 1;
78989  } else {
78990  return mid;
78991  }
78992  }
78993  if (code_line <= entries[mid].code_line) {
78994  return mid;
78995  } else {
78996  return mid + 1;
78997  }
78998 }
78999 static PyCodeObject *__pyx_find_code_object(int code_line) {
79000  PyCodeObject* code_object;
79001  int pos;
79002  if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
79003  return NULL;
79004  }
79005  pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
79006  if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
79007  return NULL;
79008  }
79009  code_object = __pyx_code_cache.entries[pos].code_object;
79010  Py_INCREF(code_object);
79011  return code_object;
79012 }
79013 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
79014  int pos, i;
79015  __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
79016  if (unlikely(!code_line)) {
79017  return;
79018  }
79019  if (unlikely(!entries)) {
79020  entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
79021  if (likely(entries)) {
79022  __pyx_code_cache.entries = entries;
79023  __pyx_code_cache.max_count = 64;
79024  __pyx_code_cache.count = 1;
79025  entries[0].code_line = code_line;
79026  entries[0].code_object = code_object;
79027  Py_INCREF(code_object);
79028  }
79029  return;
79030  }
79031  pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
79032  if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
79033  PyCodeObject* tmp = entries[pos].code_object;
79034  entries[pos].code_object = code_object;
79035  Py_DECREF(tmp);
79036  return;
79037  }
79038  if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
79039  int new_max = __pyx_code_cache.max_count + 64;
79040  entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
79041  __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
79042  if (unlikely(!entries)) {
79043  return;
79044  }
79045  __pyx_code_cache.entries = entries;
79046  __pyx_code_cache.max_count = new_max;
79047  }
79048  for (i=__pyx_code_cache.count; i>pos; i--) {
79049  entries[i] = entries[i-1];
79050  }
79051  entries[pos].code_line = code_line;
79052  entries[pos].code_object = code_object;
79053  __pyx_code_cache.count++;
79054  Py_INCREF(code_object);
79055 }
79056 
79057 /* AddTraceback */
79058  #include "compile.h"
79059 #include "frameobject.h"
79060 #include "traceback.h"
79061 #if PY_VERSION_HEX >= 0x030b00a6
79062  #ifndef Py_BUILD_CORE
79063  #define Py_BUILD_CORE 1
79064  #endif
79065  #include "internal/pycore_frame.h"
79066 #endif
79067 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
79068  const char *funcname, int c_line,
79069  int py_line, const char *filename) {
79070  PyCodeObject *py_code = NULL;
79071  PyObject *py_funcname = NULL;
79072  #if PY_MAJOR_VERSION < 3
79073  PyObject *py_srcfile = NULL;
79074  py_srcfile = PyString_FromString(filename);
79075  if (!py_srcfile) goto bad;
79076  #endif
79077  if (c_line) {
79078  #if PY_MAJOR_VERSION < 3
79079  py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
79080  if (!py_funcname) goto bad;
79081  #else
79082  py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
79083  if (!py_funcname) goto bad;
79084  funcname = PyUnicode_AsUTF8(py_funcname);
79085  if (!funcname) goto bad;
79086  #endif
79087  }
79088  else {
79089  #if PY_MAJOR_VERSION < 3
79090  py_funcname = PyString_FromString(funcname);
79091  if (!py_funcname) goto bad;
79092  #endif
79093  }
79094  #if PY_MAJOR_VERSION < 3
79095  py_code = __Pyx_PyCode_New(
79096  0,
79097  0,
79098  0,
79099  0,
79100  0,
79101  __pyx_empty_bytes, /*PyObject *code,*/
79102  __pyx_empty_tuple, /*PyObject *consts,*/
79103  __pyx_empty_tuple, /*PyObject *names,*/
79104  __pyx_empty_tuple, /*PyObject *varnames,*/
79105  __pyx_empty_tuple, /*PyObject *freevars,*/
79106  __pyx_empty_tuple, /*PyObject *cellvars,*/
79107  py_srcfile, /*PyObject *filename,*/
79108  py_funcname, /*PyObject *name,*/
79109  py_line,
79110  __pyx_empty_bytes /*PyObject *lnotab*/
79111  );
79112  Py_DECREF(py_srcfile);
79113  #else
79114  py_code = PyCode_NewEmpty(filename, funcname, py_line);
79115  #endif
79116  Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
79117  return py_code;
79118 bad:
79119  Py_XDECREF(py_funcname);
79120  #if PY_MAJOR_VERSION < 3
79121  Py_XDECREF(py_srcfile);
79122  #endif
79123  return NULL;
79124 }
79125 static void __Pyx_AddTraceback(const char *funcname, int c_line,
79126  int py_line, const char *filename) {
79127  PyCodeObject *py_code = 0;
79128  PyFrameObject *py_frame = 0;
79129  PyThreadState *tstate = __Pyx_PyThreadState_Current;
79130  PyObject *ptype, *pvalue, *ptraceback;
79131  if (c_line) {
79132  c_line = __Pyx_CLineForTraceback(tstate, c_line);
79133  }
79134  py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
79135  if (!py_code) {
79136  __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
79137  py_code = __Pyx_CreateCodeObjectForTraceback(
79138  funcname, c_line, py_line, filename);
79139  if (!py_code) {
79140  /* If the code object creation fails, then we should clear the
79141  fetched exception references and propagate the new exception */
79142  Py_XDECREF(ptype);
79143  Py_XDECREF(pvalue);
79144  Py_XDECREF(ptraceback);
79145  goto bad;
79146  }
79147  __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
79148  __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
79149  }
79150  py_frame = PyFrame_New(
79151  tstate, /*PyThreadState *tstate,*/
79152  py_code, /*PyCodeObject *code,*/
79153  __pyx_d, /*PyObject *globals,*/
79154  0 /*PyObject *locals*/
79155  );
79156  if (!py_frame) goto bad;
79157  __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
79158  PyTraceBack_Here(py_frame);
79159 bad:
79160  Py_XDECREF(py_code);
79161  Py_XDECREF(py_frame);
79162 }
79163 
79164 #if PY_MAJOR_VERSION < 3
79165 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
79166  if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
79167  if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags);
79168  if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags);
79169  PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name);
79170  return -1;
79171 }
79172 static void __Pyx_ReleaseBuffer(Py_buffer *view) {
79173  PyObject *obj = view->obj;
79174  if (!obj) return;
79175  if (PyObject_CheckBuffer(obj)) {
79176  PyBuffer_Release(view);
79177  return;
79178  }
79179  if ((0)) {}
79180  view->obj = NULL;
79181  Py_DECREF(obj);
79182 }
79183 #endif
79184 
79185 
79186  /* MemviewSliceIsContig */
79187  static int
79188 __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim)
79189 {
79190  int i, index, step, start;
79191  Py_ssize_t itemsize = mvs.memview->view.itemsize;
79192  if (order == 'F') {
79193  step = 1;
79194  start = 0;
79195  } else {
79196  step = -1;
79197  start = ndim - 1;
79198  }
79199  for (i = 0; i < ndim; i++) {
79200  index = start + step * i;
79201  if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize)
79202  return 0;
79203  itemsize *= mvs.shape[index];
79204  }
79205  return 1;
79206 }
79207 
79208 /* OverlappingSlices */
79209  static void
79210 __pyx_get_array_memory_extents(__Pyx_memviewslice *slice,
79211  void **out_start, void **out_end,
79212  int ndim, size_t itemsize)
79213 {
79214  char *start, *end;
79215  int i;
79216  start = end = slice->data;
79217  for (i = 0; i < ndim; i++) {
79218  Py_ssize_t stride = slice->strides[i];
79219  Py_ssize_t extent = slice->shape[i];
79220  if (extent == 0) {
79221  *out_start = *out_end = start;
79222  return;
79223  } else {
79224  if (stride > 0)
79225  end += stride * (extent - 1);
79226  else
79227  start += stride * (extent - 1);
79228  }
79229  }
79230  *out_start = start;
79231  *out_end = end + itemsize;
79232 }
79233 static int
79234 __pyx_slices_overlap(__Pyx_memviewslice *slice1,
79235  __Pyx_memviewslice *slice2,
79236  int ndim, size_t itemsize)
79237 {
79238  void *start1, *end1, *start2, *end2;
79239  __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize);
79240  __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize);
79241  return (start1 < end2) && (start2 < end1);
79242 }
79243 
79244 /* Capsule */
79245  static CYTHON_INLINE PyObject *
79246 __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig)
79247 {
79248  PyObject *cobj;
79249 #if PY_VERSION_HEX >= 0x02070000
79250  cobj = PyCapsule_New(p, sig, NULL);
79251 #else
79252  cobj = PyCObject_FromVoidPtr(p, NULL);
79253 #endif
79254  return cobj;
79255 }
79256 
79257 /* MemviewDtypeToObject */
79258  static CYTHON_INLINE PyObject *__pyx_memview_get_double(const char *itemp) {
79259  return (PyObject *) PyFloat_FromDouble(*(double *) itemp);
79260 }
79261 static CYTHON_INLINE int __pyx_memview_set_double(const char *itemp, PyObject *obj) {
79262  double value = __pyx_PyFloat_AsDouble(obj);
79263  if ((value == (double)-1) && PyErr_Occurred())
79264  return 0;
79265  *(double *) itemp = value;
79266  return 1;
79267 }
79268 
79269 /* IsLittleEndian */
79270  static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
79271 {
79272  union {
79273  uint32_t u32;
79274  uint8_t u8[4];
79275  } S;
79276  S.u32 = 0x01020304;
79277  return S.u8[0] == 4;
79278 }
79279 
79280 /* BufferFormatCheck */
79281  static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
79282  __Pyx_BufFmt_StackElem* stack,
79283  __Pyx_TypeInfo* type) {
79284  stack[0].field = &ctx->root;
79285  stack[0].parent_offset = 0;
79286  ctx->root.type = type;
79287  ctx->root.name = "buffer dtype";
79288  ctx->root.offset = 0;
79289  ctx->head = stack;
79290  ctx->head->field = &ctx->root;
79291  ctx->fmt_offset = 0;
79292  ctx->head->parent_offset = 0;
79293  ctx->new_packmode = '@';
79294  ctx->enc_packmode = '@';
79295  ctx->new_count = 1;
79296  ctx->enc_count = 0;
79297  ctx->enc_type = 0;
79298  ctx->is_complex = 0;
79299  ctx->is_valid_array = 0;
79300  ctx->struct_alignment = 0;
79301  while (type->typegroup == 'S') {
79302  ++ctx->head;
79303  ctx->head->field = type->fields;
79304  ctx->head->parent_offset = 0;
79305  type = type->fields->type;
79306  }
79307 }
79308 static int __Pyx_BufFmt_ParseNumber(const char** ts) {
79309  int count;
79310  const char* t = *ts;
79311  if (*t < '0' || *t > '9') {
79312  return -1;
79313  } else {
79314  count = *t++ - '0';
79315  while (*t >= '0' && *t <= '9') {
79316  count *= 10;
79317  count += *t++ - '0';
79318  }
79319  }
79320  *ts = t;
79321  return count;
79322 }
79323 static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
79324  int number = __Pyx_BufFmt_ParseNumber(ts);
79325  if (number == -1)
79326  PyErr_Format(PyExc_ValueError,\
79327  "Does not understand character buffer dtype format string ('%c')", **ts);
79328  return number;
79329 }
79330 static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
79331  PyErr_Format(PyExc_ValueError,
79332  "Unexpected format string character: '%c'", ch);
79333 }
79334 static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
79335  switch (ch) {
79336  case '?': return "'bool'";
79337  case 'c': return "'char'";
79338  case 'b': return "'signed char'";
79339  case 'B': return "'unsigned char'";
79340  case 'h': return "'short'";
79341  case 'H': return "'unsigned short'";
79342  case 'i': return "'int'";
79343  case 'I': return "'unsigned int'";
79344  case 'l': return "'long'";
79345  case 'L': return "'unsigned long'";
79346  case 'q': return "'long long'";
79347  case 'Q': return "'unsigned long long'";
79348  case 'f': return (is_complex ? "'complex float'" : "'float'");
79349  case 'd': return (is_complex ? "'complex double'" : "'double'");
79350  case 'g': return (is_complex ? "'complex long double'" : "'long double'");
79351  case 'T': return "a struct";
79352  case 'O': return "Python object";
79353  case 'P': return "a pointer";
79354  case 's': case 'p': return "a string";
79355  case 0: return "end";
79356  default: return "unparseable format string";
79357  }
79358 }
79359 static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
79360  switch (ch) {
79361  case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
79362  case 'h': case 'H': return 2;
79363  case 'i': case 'I': case 'l': case 'L': return 4;
79364  case 'q': case 'Q': return 8;
79365  case 'f': return (is_complex ? 8 : 4);
79366  case 'd': return (is_complex ? 16 : 8);
79367  case 'g': {
79368  PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
79369  return 0;
79370  }
79371  case 'O': case 'P': return sizeof(void*);
79372  default:
79373  __Pyx_BufFmt_RaiseUnexpectedChar(ch);
79374  return 0;
79375  }
79376 }
79377 static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
79378  switch (ch) {
79379  case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
79380  case 'h': case 'H': return sizeof(short);
79381  case 'i': case 'I': return sizeof(int);
79382  case 'l': case 'L': return sizeof(long);
79383  #ifdef HAVE_LONG_LONG
79384  case 'q': case 'Q': return sizeof(PY_LONG_LONG);
79385  #endif
79386  case 'f': return sizeof(float) * (is_complex ? 2 : 1);
79387  case 'd': return sizeof(double) * (is_complex ? 2 : 1);
79388  case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
79389  case 'O': case 'P': return sizeof(void*);
79390  default: {
79391  __Pyx_BufFmt_RaiseUnexpectedChar(ch);
79392  return 0;
79393  }
79394  }
79395 }
79396 typedef struct { char c; short x; } __Pyx_st_short;
79397 typedef struct { char c; int x; } __Pyx_st_int;
79398 typedef struct { char c; long x; } __Pyx_st_long;
79399 typedef struct { char c; float x; } __Pyx_st_float;
79400 typedef struct { char c; double x; } __Pyx_st_double;
79401 typedef struct { char c; long double x; } __Pyx_st_longdouble;
79402 typedef struct { char c; void *x; } __Pyx_st_void_p;
79403 #ifdef HAVE_LONG_LONG
79404 typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
79405 #endif
79406 static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) {
79407  switch (ch) {
79408  case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
79409  case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
79410  case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
79411  case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
79412 #ifdef HAVE_LONG_LONG
79413  case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
79414 #endif
79415  case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
79416  case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
79417  case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
79418  case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
79419  default:
79420  __Pyx_BufFmt_RaiseUnexpectedChar(ch);
79421  return 0;
79422  }
79423 }
79424 /* These are for computing the padding at the end of the struct to align
79425  on the first member of the struct. This will probably the same as above,
79426  but we don't have any guarantees.
79427  */
79428 typedef struct { short x; char c; } __Pyx_pad_short;
79429 typedef struct { int x; char c; } __Pyx_pad_int;
79430 typedef struct { long x; char c; } __Pyx_pad_long;
79431 typedef struct { float x; char c; } __Pyx_pad_float;
79432 typedef struct { double x; char c; } __Pyx_pad_double;
79433 typedef struct { long double x; char c; } __Pyx_pad_longdouble;
79434 typedef struct { void *x; char c; } __Pyx_pad_void_p;
79435 #ifdef HAVE_LONG_LONG
79436 typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
79437 #endif
79438 static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) {
79439  switch (ch) {
79440  case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
79441  case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
79442  case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
79443  case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
79444 #ifdef HAVE_LONG_LONG
79445  case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
79446 #endif
79447  case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
79448  case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
79449  case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
79450  case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
79451  default:
79452  __Pyx_BufFmt_RaiseUnexpectedChar(ch);
79453  return 0;
79454  }
79455 }
79456 static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
79457  switch (ch) {
79458  case 'c':
79459  return 'H';
79460  case 'b': case 'h': case 'i':
79461  case 'l': case 'q': case 's': case 'p':
79462  return 'I';
79463  case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
79464  return 'U';
79465  case 'f': case 'd': case 'g':
79466  return (is_complex ? 'C' : 'R');
79467  case 'O':
79468  return 'O';
79469  case 'P':
79470  return 'P';
79471  default: {
79472  __Pyx_BufFmt_RaiseUnexpectedChar(ch);
79473  return 0;
79474  }
79475  }
79476 }
79477 static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
79478  if (ctx->head == NULL || ctx->head->field == &ctx->root) {
79479  const char* expected;
79480  const char* quote;
79481  if (ctx->head == NULL) {
79482  expected = "end";
79483  quote = "";
79484  } else {
79485  expected = ctx->head->field->type->name;
79486  quote = "'";
79487  }
79488  PyErr_Format(PyExc_ValueError,
79489  "Buffer dtype mismatch, expected %s%s%s but got %s",
79490  quote, expected, quote,
79491  __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
79492  } else {
79493  __Pyx_StructField* field = ctx->head->field;
79494  __Pyx_StructField* parent = (ctx->head - 1)->field;
79495  PyErr_Format(PyExc_ValueError,
79496  "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
79497  field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
79498  parent->type->name, field->name);
79499  }
79500 }
79501 static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
79502  char group;
79503  size_t size, offset, arraysize = 1;
79504  if (ctx->enc_type == 0) return 0;
79505  if (ctx->head->field->type->arraysize[0]) {
79506  int i, ndim = 0;
79507  if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
79508  ctx->is_valid_array = ctx->head->field->type->ndim == 1;
79509  ndim = 1;
79510  if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
79511  PyErr_Format(PyExc_ValueError,
79512  "Expected a dimension of size %zu, got %zu",
79513  ctx->head->field->type->arraysize[0], ctx->enc_count);
79514  return -1;
79515  }
79516  }
79517  if (!ctx->is_valid_array) {
79518  PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
79519  ctx->head->field->type->ndim, ndim);
79520  return -1;
79521  }
79522  for (i = 0; i < ctx->head->field->type->ndim; i++) {
79523  arraysize *= ctx->head->field->type->arraysize[i];
79524  }
79525  ctx->is_valid_array = 0;
79526  ctx->enc_count = 1;
79527  }
79528  group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
79529  do {
79530  __Pyx_StructField* field = ctx->head->field;
79531  __Pyx_TypeInfo* type = field->type;
79532  if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
79533  size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
79534  } else {
79535  size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
79536  }
79537  if (ctx->enc_packmode == '@') {
79538  size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
79539  size_t align_mod_offset;
79540  if (align_at == 0) return -1;
79541  align_mod_offset = ctx->fmt_offset % align_at;
79542  if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
79543  if (ctx->struct_alignment == 0)
79544  ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
79545  ctx->is_complex);
79546  }
79547  if (type->size != size || type->typegroup != group) {
79548  if (type->typegroup == 'C' && type->fields != NULL) {
79549  size_t parent_offset = ctx->head->parent_offset + field->offset;
79550  ++ctx->head;
79551  ctx->head->field = type->fields;
79552  ctx->head->parent_offset = parent_offset;
79553  continue;
79554  }
79555  if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
79556  } else {
79557  __Pyx_BufFmt_RaiseExpected(ctx);
79558  return -1;
79559  }
79560  }
79561  offset = ctx->head->parent_offset + field->offset;
79562  if (ctx->fmt_offset != offset) {
79563  PyErr_Format(PyExc_ValueError,
79564  "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
79565  (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
79566  return -1;
79567  }
79568  ctx->fmt_offset += size;
79569  if (arraysize)
79570  ctx->fmt_offset += (arraysize - 1) * size;
79571  --ctx->enc_count;
79572  while (1) {
79573  if (field == &ctx->root) {
79574  ctx->head = NULL;
79575  if (ctx->enc_count != 0) {
79576  __Pyx_BufFmt_RaiseExpected(ctx);
79577  return -1;
79578  }
79579  break;
79580  }
79581  ctx->head->field = ++field;
79582  if (field->type == NULL) {
79583  --ctx->head;
79584  field = ctx->head->field;
79585  continue;
79586  } else if (field->type->typegroup == 'S') {
79587  size_t parent_offset = ctx->head->parent_offset + field->offset;
79588  if (field->type->fields->type == NULL) continue;
79589  field = field->type->fields;
79590  ++ctx->head;
79591  ctx->head->field = field;
79592  ctx->head->parent_offset = parent_offset;
79593  break;
79594  } else {
79595  break;
79596  }
79597  }
79598  } while (ctx->enc_count);
79599  ctx->enc_type = 0;
79600  ctx->is_complex = 0;
79601  return 0;
79602 }
79603 static PyObject *
79604 __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
79605 {
79606  const char *ts = *tsp;
79607  int i = 0, number, ndim;
79608  ++ts;
79609  if (ctx->new_count != 1) {
79610  PyErr_SetString(PyExc_ValueError,
79611  "Cannot handle repeated arrays in format string");
79612  return NULL;
79613  }
79614  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79615  ndim = ctx->head->field->type->ndim;
79616  while (*ts && *ts != ')') {
79617  switch (*ts) {
79618  case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue;
79619  default: break;
79620  }
79621  number = __Pyx_BufFmt_ExpectNumber(&ts);
79622  if (number == -1) return NULL;
79623  if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i])
79624  return PyErr_Format(PyExc_ValueError,
79625  "Expected a dimension of size %zu, got %d",
79626  ctx->head->field->type->arraysize[i], number);
79627  if (*ts != ',' && *ts != ')')
79628  return PyErr_Format(PyExc_ValueError,
79629  "Expected a comma in format string, got '%c'", *ts);
79630  if (*ts == ',') ts++;
79631  i++;
79632  }
79633  if (i != ndim)
79634  return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
79635  ctx->head->field->type->ndim, i);
79636  if (!*ts) {
79637  PyErr_SetString(PyExc_ValueError,
79638  "Unexpected end of format string, expected ')'");
79639  return NULL;
79640  }
79641  ctx->is_valid_array = 1;
79642  ctx->new_count = 1;
79643  *tsp = ++ts;
79644  return Py_None;
79645 }
79646 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
79647  int got_Z = 0;
79648  while (1) {
79649  switch(*ts) {
79650  case 0:
79651  if (ctx->enc_type != 0 && ctx->head == NULL) {
79652  __Pyx_BufFmt_RaiseExpected(ctx);
79653  return NULL;
79654  }
79655  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79656  if (ctx->head != NULL) {
79657  __Pyx_BufFmt_RaiseExpected(ctx);
79658  return NULL;
79659  }
79660  return ts;
79661  case ' ':
79662  case '\r':
79663  case '\n':
79664  ++ts;
79665  break;
79666  case '<':
79667  if (!__Pyx_Is_Little_Endian()) {
79668  PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
79669  return NULL;
79670  }
79671  ctx->new_packmode = '=';
79672  ++ts;
79673  break;
79674  case '>':
79675  case '!':
79676  if (__Pyx_Is_Little_Endian()) {
79677  PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
79678  return NULL;
79679  }
79680  ctx->new_packmode = '=';
79681  ++ts;
79682  break;
79683  case '=':
79684  case '@':
79685  case '^':
79686  ctx->new_packmode = *ts++;
79687  break;
79688  case 'T':
79689  {
79690  const char* ts_after_sub;
79691  size_t i, struct_count = ctx->new_count;
79692  size_t struct_alignment = ctx->struct_alignment;
79693  ctx->new_count = 1;
79694  ++ts;
79695  if (*ts != '{') {
79696  PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
79697  return NULL;
79698  }
79699  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79700  ctx->enc_type = 0;
79701  ctx->enc_count = 0;
79702  ctx->struct_alignment = 0;
79703  ++ts;
79704  ts_after_sub = ts;
79705  for (i = 0; i != struct_count; ++i) {
79706  ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
79707  if (!ts_after_sub) return NULL;
79708  }
79709  ts = ts_after_sub;
79710  if (struct_alignment) ctx->struct_alignment = struct_alignment;
79711  }
79712  break;
79713  case '}':
79714  {
79715  size_t alignment = ctx->struct_alignment;
79716  ++ts;
79717  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79718  ctx->enc_type = 0;
79719  if (alignment && ctx->fmt_offset % alignment) {
79720  ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
79721  }
79722  }
79723  return ts;
79724  case 'x':
79725  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79726  ctx->fmt_offset += ctx->new_count;
79727  ctx->new_count = 1;
79728  ctx->enc_count = 0;
79729  ctx->enc_type = 0;
79730  ctx->enc_packmode = ctx->new_packmode;
79731  ++ts;
79732  break;
79733  case 'Z':
79734  got_Z = 1;
79735  ++ts;
79736  if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
79737  __Pyx_BufFmt_RaiseUnexpectedChar('Z');
79738  return NULL;
79739  }
79740  CYTHON_FALLTHROUGH;
79741  case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
79742  case 'l': case 'L': case 'q': case 'Q':
79743  case 'f': case 'd': case 'g':
79744  case 'O': case 'p':
79745  if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
79746  (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
79747  ctx->enc_count += ctx->new_count;
79748  ctx->new_count = 1;
79749  got_Z = 0;
79750  ++ts;
79751  break;
79752  }
79753  CYTHON_FALLTHROUGH;
79754  case 's':
79755  if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
79756  ctx->enc_count = ctx->new_count;
79757  ctx->enc_packmode = ctx->new_packmode;
79758  ctx->enc_type = *ts;
79759  ctx->is_complex = got_Z;
79760  ++ts;
79761  ctx->new_count = 1;
79762  got_Z = 0;
79763  break;
79764  case ':':
79765  ++ts;
79766  while(*ts != ':') ++ts;
79767  ++ts;
79768  break;
79769  case '(':
79770  if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL;
79771  break;
79772  default:
79773  {
79774  int number = __Pyx_BufFmt_ExpectNumber(&ts);
79775  if (number == -1) return NULL;
79776  ctx->new_count = (size_t)number;
79777  }
79778  }
79779  }
79780 }
79781 
79782 /* TypeInfoCompare */
79783  static int
79784 __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b)
79785 {
79786  int i;
79787  if (!a || !b)
79788  return 0;
79789  if (a == b)
79790  return 1;
79791  if (a->size != b->size || a->typegroup != b->typegroup ||
79792  a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) {
79793  if (a->typegroup == 'H' || b->typegroup == 'H') {
79794  return a->size == b->size;
79795  } else {
79796  return 0;
79797  }
79798  }
79799  if (a->ndim) {
79800  for (i = 0; i < a->ndim; i++)
79801  if (a->arraysize[i] != b->arraysize[i])
79802  return 0;
79803  }
79804  if (a->typegroup == 'S') {
79805  if (a->flags != b->flags)
79806  return 0;
79807  if (a->fields || b->fields) {
79808  if (!(a->fields && b->fields))
79809  return 0;
79810  for (i = 0; a->fields[i].type && b->fields[i].type; i++) {
79811  __Pyx_StructField *field_a = a->fields + i;
79812  __Pyx_StructField *field_b = b->fields + i;
79813  if (field_a->offset != field_b->offset ||
79814  !__pyx_typeinfo_cmp(field_a->type, field_b->type))
79815  return 0;
79816  }
79817  return !a->fields[i].type && !b->fields[i].type;
79818  }
79819  }
79820  return 1;
79821 }
79822 
79823 /* MemviewSliceValidateAndInit */
79824  static int
79825 __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
79826 {
79827  if (buf->shape[dim] <= 1)
79828  return 1;
79829  if (buf->strides) {
79830  if (spec & __Pyx_MEMVIEW_CONTIG) {
79831  if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
79832  if (unlikely(buf->strides[dim] != sizeof(void *))) {
79833  PyErr_Format(PyExc_ValueError,
79834  "Buffer is not indirectly contiguous "
79835  "in dimension %d.", dim);
79836  goto fail;
79837  }
79838  } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
79839  PyErr_SetString(PyExc_ValueError,
79840  "Buffer and memoryview are not contiguous "
79841  "in the same dimension.");
79842  goto fail;
79843  }
79844  }
79845  if (spec & __Pyx_MEMVIEW_FOLLOW) {
79846  Py_ssize_t stride = buf->strides[dim];
79847  if (stride < 0)
79848  stride = -stride;
79849  if (unlikely(stride < buf->itemsize)) {
79850  PyErr_SetString(PyExc_ValueError,
79851  "Buffer and memoryview are not contiguous "
79852  "in the same dimension.");
79853  goto fail;
79854  }
79855  }
79856  } else {
79857  if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
79858  PyErr_Format(PyExc_ValueError,
79859  "C-contiguous buffer is not contiguous in "
79860  "dimension %d", dim);
79861  goto fail;
79862  } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
79863  PyErr_Format(PyExc_ValueError,
79864  "C-contiguous buffer is not indirect in "
79865  "dimension %d", dim);
79866  goto fail;
79867  } else if (unlikely(buf->suboffsets)) {
79868  PyErr_SetString(PyExc_ValueError,
79869  "Buffer exposes suboffsets but no strides");
79870  goto fail;
79871  }
79872  }
79873  return 1;
79874 fail:
79875  return 0;
79876 }
79877 static int
79878 __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec)
79879 {
79880  if (spec & __Pyx_MEMVIEW_DIRECT) {
79881  if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
79882  PyErr_Format(PyExc_ValueError,
79883  "Buffer not compatible with direct access "
79884  "in dimension %d.", dim);
79885  goto fail;
79886  }
79887  }
79888  if (spec & __Pyx_MEMVIEW_PTR) {
79889  if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
79890  PyErr_Format(PyExc_ValueError,
79891  "Buffer is not indirectly accessible "
79892  "in dimension %d.", dim);
79893  goto fail;
79894  }
79895  }
79896  return 1;
79897 fail:
79898  return 0;
79899 }
79900 static int
79901 __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
79902 {
79903  int i;
79904  if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
79905  Py_ssize_t stride = 1;
79906  for (i = 0; i < ndim; i++) {
79907  if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
79908  PyErr_SetString(PyExc_ValueError,
79909  "Buffer not fortran contiguous.");
79910  goto fail;
79911  }
79912  stride = stride * buf->shape[i];
79913  }
79914  } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
79915  Py_ssize_t stride = 1;
79916  for (i = ndim - 1; i >- 1; i--) {
79917  if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
79918  PyErr_SetString(PyExc_ValueError,
79919  "Buffer not C contiguous.");
79920  goto fail;
79921  }
79922  stride = stride * buf->shape[i];
79923  }
79924  }
79925  return 1;
79926 fail:
79927  return 0;
79928 }
79929 static int __Pyx_ValidateAndInit_memviewslice(
79930  int *axes_specs,
79931  int c_or_f_flag,
79932  int buf_flags,
79933  int ndim,
79934  __Pyx_TypeInfo *dtype,
79935  __Pyx_BufFmt_StackElem stack[],
79936  __Pyx_memviewslice *memviewslice,
79937  PyObject *original_obj)
79938 {
79939  struct __pyx_memoryview_obj *memview, *new_memview;
79940  __Pyx_RefNannyDeclarations
79941  Py_buffer *buf;
79942  int i, spec = 0, retval = -1;
79943  __Pyx_BufFmt_Context ctx;
79944  int from_memoryview = __pyx_memoryview_check(original_obj);
79945  __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0);
79946  if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *)
79947  original_obj)->typeinfo)) {
79948  memview = (struct __pyx_memoryview_obj *) original_obj;
79949  new_memview = NULL;
79950  } else {
79951  memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
79952  original_obj, buf_flags, 0, dtype);
79953  new_memview = memview;
79954  if (unlikely(!memview))
79955  goto fail;
79956  }
79957  buf = &memview->view;
79958  if (unlikely(buf->ndim != ndim)) {
79959  PyErr_Format(PyExc_ValueError,
79960  "Buffer has wrong number of dimensions (expected %d, got %d)",
79961  ndim, buf->ndim);
79962  goto fail;
79963  }
79964  if (new_memview) {
79965  __Pyx_BufFmt_Init(&ctx, stack, dtype);
79966  if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
79967  }
79968  if (unlikely((unsigned) buf->itemsize != dtype->size)) {
79969  PyErr_Format(PyExc_ValueError,
79970  "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) "
79971  "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)",
79972  buf->itemsize,
79973  (buf->itemsize > 1) ? "s" : "",
79974  dtype->name,
79975  dtype->size,
79976  (dtype->size > 1) ? "s" : "");
79977  goto fail;
79978  }
79979  if (buf->len > 0) {
79980  for (i = 0; i < ndim; i++) {
79981  spec = axes_specs[i];
79982  if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
79983  goto fail;
79984  if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
79985  goto fail;
79986  }
79987  if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
79988  goto fail;
79989  }
79990  if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice,
79991  new_memview != NULL) == -1)) {
79992  goto fail;
79993  }
79994  retval = 0;
79995  goto no_fail;
79996 fail:
79997  Py_XDECREF(new_memview);
79998  retval = -1;
79999 no_fail:
80000  __Pyx_RefNannyFinishContext();
80001  return retval;
80002 }
80003 
80004 /* ObjectToMemviewSlice */
80005  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *obj, int writable_flag) {
80006  __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
80007  __Pyx_BufFmt_StackElem stack[1];
80008  int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
80009  int retcode;
80010  if (obj == Py_None) {
80011  result.memview = (struct __pyx_memoryview_obj *) Py_None;
80012  return result;
80013  }
80014  retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
80015  PyBUF_RECORDS_RO | writable_flag, 1,
80016  &__Pyx_TypeInfo_double, stack,
80017  &result, obj);
80018  if (unlikely(retcode == -1))
80019  goto __pyx_fail;
80020  return result;
80021 __pyx_fail:
80022  result.memview = NULL;
80023  result.data = NULL;
80024  return result;
80025 }
80026 
80027 /* ObjectToMemviewSlice */
80028  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *obj, int writable_flag) {
80029  __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
80030  __Pyx_BufFmt_StackElem stack[1];
80031  int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
80032  int retcode;
80033  if (obj == Py_None) {
80034  result.memview = (struct __pyx_memoryview_obj *) Py_None;
80035  return result;
80036  }
80037  retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
80038  PyBUF_RECORDS_RO | writable_flag, 2,
80039  &__Pyx_TypeInfo_double, stack,
80040  &result, obj);
80041  if (unlikely(retcode == -1))
80042  goto __pyx_fail;
80043  return result;
80044 __pyx_fail:
80045  result.memview = NULL;
80046  result.data = NULL;
80047  return result;
80048 }
80049 
80050 /* CIntFromPyVerify */
80051  #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
80052  __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
80053 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
80054  __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
80055 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
80056  {\
80057  func_type value = func_value;\
80058  if (sizeof(target_type) < sizeof(func_type)) {\
80059  if (unlikely(value != (func_type) (target_type) value)) {\
80060  func_type zero = 0;\
80061  if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
80062  return (target_type) -1;\
80063  if (is_unsigned && unlikely(value < zero))\
80064  goto raise_neg_overflow;\
80065  else\
80066  goto raise_overflow;\
80067  }\
80068  }\
80069  return (target_type) value;\
80070  }
80071 
80072 /* ObjectToMemviewSlice */
80073  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(PyObject *obj, int writable_flag) {
80074  __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
80075  __Pyx_BufFmt_StackElem stack[1];
80076  int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
80077  int retcode;
80078  if (obj == Py_None) {
80079  result.memview = (struct __pyx_memoryview_obj *) Py_None;
80080  return result;
80081  }
80082  retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
80083  PyBUF_RECORDS_RO | writable_flag, 3,
80084  &__Pyx_TypeInfo_double, stack,
80085  &result, obj);
80086  if (unlikely(retcode == -1))
80087  goto __pyx_fail;
80088  return result;
80089 __pyx_fail:
80090  result.memview = NULL;
80091  result.data = NULL;
80092  return result;
80093 }
80094 
80095 /* ObjectToMemviewSlice */
80096  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *obj, int writable_flag) {
80097  __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
80098  __Pyx_BufFmt_StackElem stack[1];
80099  int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
80100  int retcode;
80101  if (obj == Py_None) {
80102  result.memview = (struct __pyx_memoryview_obj *) Py_None;
80103  return result;
80104  }
80105  retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
80106  PyBUF_RECORDS_RO | writable_flag, 1,
80107  &__Pyx_TypeInfo_int, stack,
80108  &result, obj);
80109  if (unlikely(retcode == -1))
80110  goto __pyx_fail;
80111  return result;
80112 __pyx_fail:
80113  result.memview = NULL;
80114  result.data = NULL;
80115  return result;
80116 }
80117 
80118 /* Declarations */
80119  #if CYTHON_CCOMPLEX
80120  #ifdef __cplusplus
80121  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
80122  return ::std::complex< float >(x, y);
80123  }
80124  #else
80125  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
80126  return x + y*(__pyx_t_float_complex)_Complex_I;
80127  }
80128  #endif
80129 #else
80130  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
80131  __pyx_t_float_complex z;
80132  z.real = x;
80133  z.imag = y;
80134  return z;
80135  }
80136 #endif
80137 
80138 /* Arithmetic */
80139  #if CYTHON_CCOMPLEX
80140 #else
80141  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80142  return (a.real == b.real) && (a.imag == b.imag);
80143  }
80144  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80145  __pyx_t_float_complex z;
80146  z.real = a.real + b.real;
80147  z.imag = a.imag + b.imag;
80148  return z;
80149  }
80150  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80151  __pyx_t_float_complex z;
80152  z.real = a.real - b.real;
80153  z.imag = a.imag - b.imag;
80154  return z;
80155  }
80156  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80157  __pyx_t_float_complex z;
80158  z.real = a.real * b.real - a.imag * b.imag;
80159  z.imag = a.real * b.imag + a.imag * b.real;
80160  return z;
80161  }
80162  #if 1
80163  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80164  if (b.imag == 0) {
80165  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
80166  } else if (fabsf(b.real) >= fabsf(b.imag)) {
80167  if (b.real == 0 && b.imag == 0) {
80168  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
80169  } else {
80170  float r = b.imag / b.real;
80171  float s = (float)(1.0) / (b.real + b.imag * r);
80172  return __pyx_t_float_complex_from_parts(
80173  (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
80174  }
80175  } else {
80176  float r = b.real / b.imag;
80177  float s = (float)(1.0) / (b.imag + b.real * r);
80178  return __pyx_t_float_complex_from_parts(
80179  (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
80180  }
80181  }
80182  #else
80183  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80184  if (b.imag == 0) {
80185  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
80186  } else {
80187  float denom = b.real * b.real + b.imag * b.imag;
80188  return __pyx_t_float_complex_from_parts(
80189  (a.real * b.real + a.imag * b.imag) / denom,
80190  (a.imag * b.real - a.real * b.imag) / denom);
80191  }
80192  }
80193  #endif
80194  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
80195  __pyx_t_float_complex z;
80196  z.real = -a.real;
80197  z.imag = -a.imag;
80198  return z;
80199  }
80200  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
80201  return (a.real == 0) && (a.imag == 0);
80202  }
80203  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
80204  __pyx_t_float_complex z;
80205  z.real = a.real;
80206  z.imag = -a.imag;
80207  return z;
80208  }
80209  #if 1
80210  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
80211  #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
80212  return sqrtf(z.real*z.real + z.imag*z.imag);
80213  #else
80214  return hypotf(z.real, z.imag);
80215  #endif
80216  }
80217  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
80218  __pyx_t_float_complex z;
80219  float r, lnr, theta, z_r, z_theta;
80220  if (b.imag == 0 && b.real == (int)b.real) {
80221  if (b.real < 0) {
80222  float denom = a.real * a.real + a.imag * a.imag;
80223  a.real = a.real / denom;
80224  a.imag = -a.imag / denom;
80225  b.real = -b.real;
80226  }
80227  switch ((int)b.real) {
80228  case 0:
80229  z.real = 1;
80230  z.imag = 0;
80231  return z;
80232  case 1:
80233  return a;
80234  case 2:
80235  return __Pyx_c_prod_float(a, a);
80236  case 3:
80237  z = __Pyx_c_prod_float(a, a);
80238  return __Pyx_c_prod_float(z, a);
80239  case 4:
80240  z = __Pyx_c_prod_float(a, a);
80241  return __Pyx_c_prod_float(z, z);
80242  }
80243  }
80244  if (a.imag == 0) {
80245  if (a.real == 0) {
80246  return a;
80247  } else if (b.imag == 0) {
80248  z.real = powf(a.real, b.real);
80249  z.imag = 0;
80250  return z;
80251  } else if (a.real > 0) {
80252  r = a.real;
80253  theta = 0;
80254  } else {
80255  r = -a.real;
80256  theta = atan2f(0.0, -1.0);
80257  }
80258  } else {
80259  r = __Pyx_c_abs_float(a);
80260  theta = atan2f(a.imag, a.real);
80261  }
80262  lnr = logf(r);
80263  z_r = expf(lnr * b.real - theta * b.imag);
80264  z_theta = theta * b.real + lnr * b.imag;
80265  z.real = z_r * cosf(z_theta);
80266  z.imag = z_r * sinf(z_theta);
80267  return z;
80268  }
80269  #endif
80270 #endif
80271 
80272 /* Declarations */
80273  #if CYTHON_CCOMPLEX
80274  #ifdef __cplusplus
80275  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
80276  return ::std::complex< double >(x, y);
80277  }
80278  #else
80279  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
80280  return x + y*(__pyx_t_double_complex)_Complex_I;
80281  }
80282  #endif
80283 #else
80284  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
80285  __pyx_t_double_complex z;
80286  z.real = x;
80287  z.imag = y;
80288  return z;
80289  }
80290 #endif
80291 
80292 /* Arithmetic */
80293  #if CYTHON_CCOMPLEX
80294 #else
80295  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80296  return (a.real == b.real) && (a.imag == b.imag);
80297  }
80298  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80299  __pyx_t_double_complex z;
80300  z.real = a.real + b.real;
80301  z.imag = a.imag + b.imag;
80302  return z;
80303  }
80304  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80305  __pyx_t_double_complex z;
80306  z.real = a.real - b.real;
80307  z.imag = a.imag - b.imag;
80308  return z;
80309  }
80310  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80311  __pyx_t_double_complex z;
80312  z.real = a.real * b.real - a.imag * b.imag;
80313  z.imag = a.real * b.imag + a.imag * b.real;
80314  return z;
80315  }
80316  #if 1
80317  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80318  if (b.imag == 0) {
80319  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
80320  } else if (fabs(b.real) >= fabs(b.imag)) {
80321  if (b.real == 0 && b.imag == 0) {
80322  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
80323  } else {
80324  double r = b.imag / b.real;
80325  double s = (double)(1.0) / (b.real + b.imag * r);
80326  return __pyx_t_double_complex_from_parts(
80327  (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
80328  }
80329  } else {
80330  double r = b.real / b.imag;
80331  double s = (double)(1.0) / (b.imag + b.real * r);
80332  return __pyx_t_double_complex_from_parts(
80333  (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
80334  }
80335  }
80336  #else
80337  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80338  if (b.imag == 0) {
80339  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
80340  } else {
80341  double denom = b.real * b.real + b.imag * b.imag;
80342  return __pyx_t_double_complex_from_parts(
80343  (a.real * b.real + a.imag * b.imag) / denom,
80344  (a.imag * b.real - a.real * b.imag) / denom);
80345  }
80346  }
80347  #endif
80348  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
80349  __pyx_t_double_complex z;
80350  z.real = -a.real;
80351  z.imag = -a.imag;
80352  return z;
80353  }
80354  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
80355  return (a.real == 0) && (a.imag == 0);
80356  }
80357  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
80358  __pyx_t_double_complex z;
80359  z.real = a.real;
80360  z.imag = -a.imag;
80361  return z;
80362  }
80363  #if 1
80364  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
80365  #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
80366  return sqrt(z.real*z.real + z.imag*z.imag);
80367  #else
80368  return hypot(z.real, z.imag);
80369  #endif
80370  }
80371  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
80372  __pyx_t_double_complex z;
80373  double r, lnr, theta, z_r, z_theta;
80374  if (b.imag == 0 && b.real == (int)b.real) {
80375  if (b.real < 0) {
80376  double denom = a.real * a.real + a.imag * a.imag;
80377  a.real = a.real / denom;
80378  a.imag = -a.imag / denom;
80379  b.real = -b.real;
80380  }
80381  switch ((int)b.real) {
80382  case 0:
80383  z.real = 1;
80384  z.imag = 0;
80385  return z;
80386  case 1:
80387  return a;
80388  case 2:
80389  return __Pyx_c_prod_double(a, a);
80390  case 3:
80391  z = __Pyx_c_prod_double(a, a);
80392  return __Pyx_c_prod_double(z, a);
80393  case 4:
80394  z = __Pyx_c_prod_double(a, a);
80395  return __Pyx_c_prod_double(z, z);
80396  }
80397  }
80398  if (a.imag == 0) {
80399  if (a.real == 0) {
80400  return a;
80401  } else if (b.imag == 0) {
80402  z.real = pow(a.real, b.real);
80403  z.imag = 0;
80404  return z;
80405  } else if (a.real > 0) {
80406  r = a.real;
80407  theta = 0;
80408  } else {
80409  r = -a.real;
80410  theta = atan2(0.0, -1.0);
80411  }
80412  } else {
80413  r = __Pyx_c_abs_double(a);
80414  theta = atan2(a.imag, a.real);
80415  }
80416  lnr = log(r);
80417  z_r = exp(lnr * b.real - theta * b.imag);
80418  z_theta = theta * b.real + lnr * b.imag;
80419  z.real = z_r * cos(z_theta);
80420  z.imag = z_r * sin(z_theta);
80421  return z;
80422  }
80423  #endif
80424 #endif
80425 
80426 /* MemviewSliceCopyTemplate */
80427  static __Pyx_memviewslice
80428 __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
80429  const char *mode, int ndim,
80430  size_t sizeof_dtype, int contig_flag,
80431  int dtype_is_object)
80432 {
80433  __Pyx_RefNannyDeclarations
80434  int i;
80435  __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } };
80436  struct __pyx_memoryview_obj *from_memview = from_mvs->memview;
80437  Py_buffer *buf = &from_memview->view;
80438  PyObject *shape_tuple = NULL;
80439  PyObject *temp_int = NULL;
80440  struct __pyx_array_obj *array_obj = NULL;
80441  struct __pyx_memoryview_obj *memview_obj = NULL;
80442  __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0);
80443  for (i = 0; i < ndim; i++) {
80444  if (unlikely(from_mvs->suboffsets[i] >= 0)) {
80445  PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with "
80446  "indirect dimensions (axis %d)", i);
80447  goto fail;
80448  }
80449  }
80450  shape_tuple = PyTuple_New(ndim);
80451  if (unlikely(!shape_tuple)) {
80452  goto fail;
80453  }
80454  __Pyx_GOTREF(shape_tuple);
80455  for(i = 0; i < ndim; i++) {
80456  temp_int = PyInt_FromSsize_t(from_mvs->shape[i]);
80457  if(unlikely(!temp_int)) {
80458  goto fail;
80459  } else {
80460  PyTuple_SET_ITEM(shape_tuple, i, temp_int);
80461  temp_int = NULL;
80462  }
80463  }
80464  array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL);
80465  if (unlikely(!array_obj)) {
80466  goto fail;
80467  }
80468  __Pyx_GOTREF(array_obj);
80469  memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
80470  (PyObject *) array_obj, contig_flag,
80471  dtype_is_object,
80472  from_mvs->memview->typeinfo);
80473  if (unlikely(!memview_obj))
80474  goto fail;
80475  if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0))
80476  goto fail;
80477  if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim,
80478  dtype_is_object) < 0))
80479  goto fail;
80480  goto no_fail;
80481 fail:
80482  __Pyx_XDECREF(new_mvs.memview);
80483  new_mvs.memview = NULL;
80484  new_mvs.data = NULL;
80485 no_fail:
80486  __Pyx_XDECREF(shape_tuple);
80487  __Pyx_XDECREF(temp_int);
80488  __Pyx_XDECREF(array_obj);
80489  __Pyx_RefNannyFinishContext();
80490  return new_mvs;
80491 }
80492 
80493 /* CIntToPy */
80494  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
80495 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80496 #pragma GCC diagnostic push
80497 #pragma GCC diagnostic ignored "-Wconversion"
80498 #endif
80499  const int neg_one = (int) -1, const_zero = (int) 0;
80500 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80501 #pragma GCC diagnostic pop
80502 #endif
80503  const int is_unsigned = neg_one > const_zero;
80504  if (is_unsigned) {
80505  if (sizeof(int) < sizeof(long)) {
80506  return PyInt_FromLong((long) value);
80507  } else if (sizeof(int) <= sizeof(unsigned long)) {
80508  return PyLong_FromUnsignedLong((unsigned long) value);
80509 #ifdef HAVE_LONG_LONG
80510  } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
80511  return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
80512 #endif
80513  }
80514  } else {
80515  if (sizeof(int) <= sizeof(long)) {
80516  return PyInt_FromLong((long) value);
80517 #ifdef HAVE_LONG_LONG
80518  } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
80519  return PyLong_FromLongLong((PY_LONG_LONG) value);
80520 #endif
80521  }
80522  }
80523  {
80524  int one = 1; int little = (int)*(unsigned char *)&one;
80525  unsigned char *bytes = (unsigned char *)&value;
80526  return _PyLong_FromByteArray(bytes, sizeof(int),
80527  little, !is_unsigned);
80528  }
80529 }
80530 
80531 /* CIntFromPy */
80532  static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
80533 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80534 #pragma GCC diagnostic push
80535 #pragma GCC diagnostic ignored "-Wconversion"
80536 #endif
80537  const int neg_one = (int) -1, const_zero = (int) 0;
80538 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80539 #pragma GCC diagnostic pop
80540 #endif
80541  const int is_unsigned = neg_one > const_zero;
80542 #if PY_MAJOR_VERSION < 3
80543  if (likely(PyInt_Check(x))) {
80544  if (sizeof(int) < sizeof(long)) {
80545  __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
80546  } else {
80547  long val = PyInt_AS_LONG(x);
80548  if (is_unsigned && unlikely(val < 0)) {
80549  goto raise_neg_overflow;
80550  }
80551  return (int) val;
80552  }
80553  } else
80554 #endif
80555  if (likely(PyLong_Check(x))) {
80556  if (is_unsigned) {
80557 #if CYTHON_USE_PYLONG_INTERNALS
80558  const digit* digits = ((PyLongObject*)x)->ob_digit;
80559  switch (Py_SIZE(x)) {
80560  case 0: return (int) 0;
80561  case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
80562  case 2:
80563  if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
80564  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80565  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80566  } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
80567  return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
80568  }
80569  }
80570  break;
80571  case 3:
80572  if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
80573  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80574  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80575  } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
80576  return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
80577  }
80578  }
80579  break;
80580  case 4:
80581  if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
80582  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80583  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80584  } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
80585  return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
80586  }
80587  }
80588  break;
80589  }
80590 #endif
80591 #if CYTHON_COMPILING_IN_CPYTHON
80592  if (unlikely(Py_SIZE(x) < 0)) {
80593  goto raise_neg_overflow;
80594  }
80595 #else
80596  {
80597  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
80598  if (unlikely(result < 0))
80599  return (int) -1;
80600  if (unlikely(result == 1))
80601  goto raise_neg_overflow;
80602  }
80603 #endif
80604  if (sizeof(int) <= sizeof(unsigned long)) {
80605  __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
80606 #ifdef HAVE_LONG_LONG
80607  } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
80608  __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
80609 #endif
80610  }
80611  } else {
80612 #if CYTHON_USE_PYLONG_INTERNALS
80613  const digit* digits = ((PyLongObject*)x)->ob_digit;
80614  switch (Py_SIZE(x)) {
80615  case 0: return (int) 0;
80616  case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
80617  case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0])
80618  case -2:
80619  if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
80620  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80621  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80622  } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
80623  return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80624  }
80625  }
80626  break;
80627  case 2:
80628  if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
80629  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80630  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80631  } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
80632  return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80633  }
80634  }
80635  break;
80636  case -3:
80637  if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
80638  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80639  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80640  } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
80641  return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80642  }
80643  }
80644  break;
80645  case 3:
80646  if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
80647  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80648  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80649  } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
80650  return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80651  }
80652  }
80653  break;
80654  case -4:
80655  if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
80656  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80657  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80658  } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
80659  return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80660  }
80661  }
80662  break;
80663  case 4:
80664  if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
80665  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80666  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80667  } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
80668  return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
80669  }
80670  }
80671  break;
80672  }
80673 #endif
80674  if (sizeof(int) <= sizeof(long)) {
80675  __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
80676 #ifdef HAVE_LONG_LONG
80677  } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
80678  __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
80679 #endif
80680  }
80681  }
80682  {
80683 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
80684  PyErr_SetString(PyExc_RuntimeError,
80685  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
80686 #else
80687  int val;
80688  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
80689  #if PY_MAJOR_VERSION < 3
80690  if (likely(v) && !PyLong_Check(v)) {
80691  PyObject *tmp = v;
80692  v = PyNumber_Long(tmp);
80693  Py_DECREF(tmp);
80694  }
80695  #endif
80696  if (likely(v)) {
80697  int one = 1; int is_little = (int)*(unsigned char *)&one;
80698  unsigned char *bytes = (unsigned char *)&val;
80699  int ret = _PyLong_AsByteArray((PyLongObject *)v,
80700  bytes, sizeof(val),
80701  is_little, !is_unsigned);
80702  Py_DECREF(v);
80703  if (likely(!ret))
80704  return val;
80705  }
80706 #endif
80707  return (int) -1;
80708  }
80709  } else {
80710  int val;
80711  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
80712  if (!tmp) return (int) -1;
80713  val = __Pyx_PyInt_As_int(tmp);
80714  Py_DECREF(tmp);
80715  return val;
80716  }
80717 raise_overflow:
80718  PyErr_SetString(PyExc_OverflowError,
80719  "value too large to convert to int");
80720  return (int) -1;
80721 raise_neg_overflow:
80722  PyErr_SetString(PyExc_OverflowError,
80723  "can't convert negative value to int");
80724  return (int) -1;
80725 }
80726 
80727 /* CIntFromPy */
80728  static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
80729 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80730 #pragma GCC diagnostic push
80731 #pragma GCC diagnostic ignored "-Wconversion"
80732 #endif
80733  const long neg_one = (long) -1, const_zero = (long) 0;
80734 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80735 #pragma GCC diagnostic pop
80736 #endif
80737  const int is_unsigned = neg_one > const_zero;
80738 #if PY_MAJOR_VERSION < 3
80739  if (likely(PyInt_Check(x))) {
80740  if (sizeof(long) < sizeof(long)) {
80741  __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
80742  } else {
80743  long val = PyInt_AS_LONG(x);
80744  if (is_unsigned && unlikely(val < 0)) {
80745  goto raise_neg_overflow;
80746  }
80747  return (long) val;
80748  }
80749  } else
80750 #endif
80751  if (likely(PyLong_Check(x))) {
80752  if (is_unsigned) {
80753 #if CYTHON_USE_PYLONG_INTERNALS
80754  const digit* digits = ((PyLongObject*)x)->ob_digit;
80755  switch (Py_SIZE(x)) {
80756  case 0: return (long) 0;
80757  case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
80758  case 2:
80759  if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
80760  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80761  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80762  } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
80763  return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
80764  }
80765  }
80766  break;
80767  case 3:
80768  if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
80769  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80770  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80771  } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
80772  return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
80773  }
80774  }
80775  break;
80776  case 4:
80777  if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
80778  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80779  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80780  } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
80781  return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
80782  }
80783  }
80784  break;
80785  }
80786 #endif
80787 #if CYTHON_COMPILING_IN_CPYTHON
80788  if (unlikely(Py_SIZE(x) < 0)) {
80789  goto raise_neg_overflow;
80790  }
80791 #else
80792  {
80793  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
80794  if (unlikely(result < 0))
80795  return (long) -1;
80796  if (unlikely(result == 1))
80797  goto raise_neg_overflow;
80798  }
80799 #endif
80800  if (sizeof(long) <= sizeof(unsigned long)) {
80801  __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
80802 #ifdef HAVE_LONG_LONG
80803  } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
80804  __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
80805 #endif
80806  }
80807  } else {
80808 #if CYTHON_USE_PYLONG_INTERNALS
80809  const digit* digits = ((PyLongObject*)x)->ob_digit;
80810  switch (Py_SIZE(x)) {
80811  case 0: return (long) 0;
80812  case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
80813  case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0])
80814  case -2:
80815  if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
80816  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80817  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80818  } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
80819  return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80820  }
80821  }
80822  break;
80823  case 2:
80824  if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
80825  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
80826  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80827  } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
80828  return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80829  }
80830  }
80831  break;
80832  case -3:
80833  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
80834  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80835  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80836  } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
80837  return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80838  }
80839  }
80840  break;
80841  case 3:
80842  if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
80843  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
80844  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80845  } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
80846  return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80847  }
80848  }
80849  break;
80850  case -4:
80851  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
80852  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80853  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80854  } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
80855  return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80856  }
80857  }
80858  break;
80859  case 4:
80860  if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
80861  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
80862  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
80863  } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
80864  return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
80865  }
80866  }
80867  break;
80868  }
80869 #endif
80870  if (sizeof(long) <= sizeof(long)) {
80871  __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
80872 #ifdef HAVE_LONG_LONG
80873  } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
80874  __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
80875 #endif
80876  }
80877  }
80878  {
80879 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
80880  PyErr_SetString(PyExc_RuntimeError,
80881  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
80882 #else
80883  long val;
80884  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
80885  #if PY_MAJOR_VERSION < 3
80886  if (likely(v) && !PyLong_Check(v)) {
80887  PyObject *tmp = v;
80888  v = PyNumber_Long(tmp);
80889  Py_DECREF(tmp);
80890  }
80891  #endif
80892  if (likely(v)) {
80893  int one = 1; int is_little = (int)*(unsigned char *)&one;
80894  unsigned char *bytes = (unsigned char *)&val;
80895  int ret = _PyLong_AsByteArray((PyLongObject *)v,
80896  bytes, sizeof(val),
80897  is_little, !is_unsigned);
80898  Py_DECREF(v);
80899  if (likely(!ret))
80900  return val;
80901  }
80902 #endif
80903  return (long) -1;
80904  }
80905  } else {
80906  long val;
80907  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
80908  if (!tmp) return (long) -1;
80909  val = __Pyx_PyInt_As_long(tmp);
80910  Py_DECREF(tmp);
80911  return val;
80912  }
80913 raise_overflow:
80914  PyErr_SetString(PyExc_OverflowError,
80915  "value too large to convert to long");
80916  return (long) -1;
80917 raise_neg_overflow:
80918  PyErr_SetString(PyExc_OverflowError,
80919  "can't convert negative value to long");
80920  return (long) -1;
80921 }
80922 
80923 /* CIntToPy */
80924  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
80925 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80926 #pragma GCC diagnostic push
80927 #pragma GCC diagnostic ignored "-Wconversion"
80928 #endif
80929  const long neg_one = (long) -1, const_zero = (long) 0;
80930 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
80931 #pragma GCC diagnostic pop
80932 #endif
80933  const int is_unsigned = neg_one > const_zero;
80934  if (is_unsigned) {
80935  if (sizeof(long) < sizeof(long)) {
80936  return PyInt_FromLong((long) value);
80937  } else if (sizeof(long) <= sizeof(unsigned long)) {
80938  return PyLong_FromUnsignedLong((unsigned long) value);
80939 #ifdef HAVE_LONG_LONG
80940  } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
80941  return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
80942 #endif
80943  }
80944  } else {
80945  if (sizeof(long) <= sizeof(long)) {
80946  return PyInt_FromLong((long) value);
80947 #ifdef HAVE_LONG_LONG
80948  } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
80949  return PyLong_FromLongLong((PY_LONG_LONG) value);
80950 #endif
80951  }
80952  }
80953  {
80954  int one = 1; int little = (int)*(unsigned char *)&one;
80955  unsigned char *bytes = (unsigned char *)&value;
80956  return _PyLong_FromByteArray(bytes, sizeof(long),
80957  little, !is_unsigned);
80958  }
80959 }
80960 
80961 /* TypeInfoToFormat */
80962  static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) {
80963  struct __pyx_typeinfo_string result = { {0} };
80964  char *buf = (char *) result.string;
80965  size_t size = type->size;
80966  switch (type->typegroup) {
80967  case 'H':
80968  *buf = 'c';
80969  break;
80970  case 'I':
80971  case 'U':
80972  if (size == 1)
80973  *buf = (type->is_unsigned) ? 'B' : 'b';
80974  else if (size == 2)
80975  *buf = (type->is_unsigned) ? 'H' : 'h';
80976  else if (size == 4)
80977  *buf = (type->is_unsigned) ? 'I' : 'i';
80978  else if (size == 8)
80979  *buf = (type->is_unsigned) ? 'Q' : 'q';
80980  break;
80981  case 'P':
80982  *buf = 'P';
80983  break;
80984  case 'C':
80985  {
80986  __Pyx_TypeInfo complex_type = *type;
80987  complex_type.typegroup = 'R';
80988  complex_type.size /= 2;
80989  *buf++ = 'Z';
80990  *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0];
80991  break;
80992  }
80993  case 'R':
80994  if (size == 4)
80995  *buf = 'f';
80996  else if (size == 8)
80997  *buf = 'd';
80998  else
80999  *buf = 'g';
81000  break;
81001  }
81002  return result;
81003 }
81004 
81005 /* CIntFromPy */
81006  static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
81007 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
81008 #pragma GCC diagnostic push
81009 #pragma GCC diagnostic ignored "-Wconversion"
81010 #endif
81011  const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
81012 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
81013 #pragma GCC diagnostic pop
81014 #endif
81015  const int is_unsigned = neg_one > const_zero;
81016 #if PY_MAJOR_VERSION < 3
81017  if (likely(PyInt_Check(x))) {
81018  if (sizeof(size_t) < sizeof(long)) {
81019  __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
81020  } else {
81021  long val = PyInt_AS_LONG(x);
81022  if (is_unsigned && unlikely(val < 0)) {
81023  goto raise_neg_overflow;
81024  }
81025  return (size_t) val;
81026  }
81027  } else
81028 #endif
81029  if (likely(PyLong_Check(x))) {
81030  if (is_unsigned) {
81031 #if CYTHON_USE_PYLONG_INTERNALS
81032  const digit* digits = ((PyLongObject*)x)->ob_digit;
81033  switch (Py_SIZE(x)) {
81034  case 0: return (size_t) 0;
81035  case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
81036  case 2:
81037  if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
81038  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81039  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81040  } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
81041  return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81042  }
81043  }
81044  break;
81045  case 3:
81046  if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
81047  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81048  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81049  } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
81050  return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81051  }
81052  }
81053  break;
81054  case 4:
81055  if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
81056  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81057  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81058  } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
81059  return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81060  }
81061  }
81062  break;
81063  }
81064 #endif
81065 #if CYTHON_COMPILING_IN_CPYTHON
81066  if (unlikely(Py_SIZE(x) < 0)) {
81067  goto raise_neg_overflow;
81068  }
81069 #else
81070  {
81071  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
81072  if (unlikely(result < 0))
81073  return (size_t) -1;
81074  if (unlikely(result == 1))
81075  goto raise_neg_overflow;
81076  }
81077 #endif
81078  if (sizeof(size_t) <= sizeof(unsigned long)) {
81079  __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
81080 #ifdef HAVE_LONG_LONG
81081  } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
81082  __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
81083 #endif
81084  }
81085  } else {
81086 #if CYTHON_USE_PYLONG_INTERNALS
81087  const digit* digits = ((PyLongObject*)x)->ob_digit;
81088  switch (Py_SIZE(x)) {
81089  case 0: return (size_t) 0;
81090  case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
81091  case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0])
81092  case -2:
81093  if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
81094  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81095  __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81096  } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
81097  return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81098  }
81099  }
81100  break;
81101  case 2:
81102  if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
81103  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81104  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81105  } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
81106  return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81107  }
81108  }
81109  break;
81110  case -3:
81111  if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
81112  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81113  __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81114  } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
81115  return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81116  }
81117  }
81118  break;
81119  case 3:
81120  if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
81121  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81122  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81123  } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
81124  return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81125  }
81126  }
81127  break;
81128  case -4:
81129  if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
81130  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81131  __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81132  } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
81133  return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81134  }
81135  }
81136  break;
81137  case 4:
81138  if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
81139  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81140  __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81141  } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
81142  return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
81143  }
81144  }
81145  break;
81146  }
81147 #endif
81148  if (sizeof(size_t) <= sizeof(long)) {
81149  __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
81150 #ifdef HAVE_LONG_LONG
81151  } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
81152  __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
81153 #endif
81154  }
81155  }
81156  {
81157 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
81158  PyErr_SetString(PyExc_RuntimeError,
81159  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
81160 #else
81161  size_t val;
81162  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
81163  #if PY_MAJOR_VERSION < 3
81164  if (likely(v) && !PyLong_Check(v)) {
81165  PyObject *tmp = v;
81166  v = PyNumber_Long(tmp);
81167  Py_DECREF(tmp);
81168  }
81169  #endif
81170  if (likely(v)) {
81171  int one = 1; int is_little = (int)*(unsigned char *)&one;
81172  unsigned char *bytes = (unsigned char *)&val;
81173  int ret = _PyLong_AsByteArray((PyLongObject *)v,
81174  bytes, sizeof(val),
81175  is_little, !is_unsigned);
81176  Py_DECREF(v);
81177  if (likely(!ret))
81178  return val;
81179  }
81180 #endif
81181  return (size_t) -1;
81182  }
81183  } else {
81184  size_t val;
81185  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
81186  if (!tmp) return (size_t) -1;
81187  val = __Pyx_PyInt_As_size_t(tmp);
81188  Py_DECREF(tmp);
81189  return val;
81190  }
81191 raise_overflow:
81192  PyErr_SetString(PyExc_OverflowError,
81193  "value too large to convert to size_t");
81194  return (size_t) -1;
81195 raise_neg_overflow:
81196  PyErr_SetString(PyExc_OverflowError,
81197  "can't convert negative value to size_t");
81198  return (size_t) -1;
81199 }
81200 
81201 /* CIntFromPy */
81202  static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
81203 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
81204 #pragma GCC diagnostic push
81205 #pragma GCC diagnostic ignored "-Wconversion"
81206 #endif
81207  const char neg_one = (char) -1, const_zero = (char) 0;
81208 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
81209 #pragma GCC diagnostic pop
81210 #endif
81211  const int is_unsigned = neg_one > const_zero;
81212 #if PY_MAJOR_VERSION < 3
81213  if (likely(PyInt_Check(x))) {
81214  if (sizeof(char) < sizeof(long)) {
81215  __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x))
81216  } else {
81217  long val = PyInt_AS_LONG(x);
81218  if (is_unsigned && unlikely(val < 0)) {
81219  goto raise_neg_overflow;
81220  }
81221  return (char) val;
81222  }
81223  } else
81224 #endif
81225  if (likely(PyLong_Check(x))) {
81226  if (is_unsigned) {
81227 #if CYTHON_USE_PYLONG_INTERNALS
81228  const digit* digits = ((PyLongObject*)x)->ob_digit;
81229  switch (Py_SIZE(x)) {
81230  case 0: return (char) 0;
81231  case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0])
81232  case 2:
81233  if (8 * sizeof(char) > 1 * PyLong_SHIFT) {
81234  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81235  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81236  } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) {
81237  return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
81238  }
81239  }
81240  break;
81241  case 3:
81242  if (8 * sizeof(char) > 2 * PyLong_SHIFT) {
81243  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81244  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81245  } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) {
81246  return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
81247  }
81248  }
81249  break;
81250  case 4:
81251  if (8 * sizeof(char) > 3 * PyLong_SHIFT) {
81252  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81253  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81254  } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) {
81255  return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
81256  }
81257  }
81258  break;
81259  }
81260 #endif
81261 #if CYTHON_COMPILING_IN_CPYTHON
81262  if (unlikely(Py_SIZE(x) < 0)) {
81263  goto raise_neg_overflow;
81264  }
81265 #else
81266  {
81267  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
81268  if (unlikely(result < 0))
81269  return (char) -1;
81270  if (unlikely(result == 1))
81271  goto raise_neg_overflow;
81272  }
81273 #endif
81274  if (sizeof(char) <= sizeof(unsigned long)) {
81275  __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
81276 #ifdef HAVE_LONG_LONG
81277  } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
81278  __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
81279 #endif
81280  }
81281  } else {
81282 #if CYTHON_USE_PYLONG_INTERNALS
81283  const digit* digits = ((PyLongObject*)x)->ob_digit;
81284  switch (Py_SIZE(x)) {
81285  case 0: return (char) 0;
81286  case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0]))
81287  case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0])
81288  case -2:
81289  if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) {
81290  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81291  __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81292  } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
81293  return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81294  }
81295  }
81296  break;
81297  case 2:
81298  if (8 * sizeof(char) > 1 * PyLong_SHIFT) {
81299  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
81300  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81301  } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
81302  return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81303  }
81304  }
81305  break;
81306  case -3:
81307  if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) {
81308  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81309  __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81310  } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
81311  return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81312  }
81313  }
81314  break;
81315  case 3:
81316  if (8 * sizeof(char) > 2 * PyLong_SHIFT) {
81317  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
81318  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81319  } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
81320  return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81321  }
81322  }
81323  break;
81324  case -4:
81325  if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) {
81326  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81327  __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81328  } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) {
81329  return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81330  }
81331  }
81332  break;
81333  case 4:
81334  if (8 * sizeof(char) > 3 * PyLong_SHIFT) {
81335  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
81336  __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
81337  } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) {
81338  return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
81339  }
81340  }
81341  break;
81342  }
81343 #endif
81344  if (sizeof(char) <= sizeof(long)) {
81345  __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
81346 #ifdef HAVE_LONG_LONG
81347  } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
81348  __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
81349 #endif
81350  }
81351  }
81352  {
81353 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
81354  PyErr_SetString(PyExc_RuntimeError,
81355  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
81356 #else
81357  char val;
81358  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
81359  #if PY_MAJOR_VERSION < 3
81360  if (likely(v) && !PyLong_Check(v)) {
81361  PyObject *tmp = v;
81362  v = PyNumber_Long(tmp);
81363  Py_DECREF(tmp);
81364  }
81365  #endif
81366  if (likely(v)) {
81367  int one = 1; int is_little = (int)*(unsigned char *)&one;
81368  unsigned char *bytes = (unsigned char *)&val;
81369  int ret = _PyLong_AsByteArray((PyLongObject *)v,
81370  bytes, sizeof(val),
81371  is_little, !is_unsigned);
81372  Py_DECREF(v);
81373  if (likely(!ret))
81374  return val;
81375  }
81376 #endif
81377  return (char) -1;
81378  }
81379  } else {
81380  char val;
81381  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
81382  if (!tmp) return (char) -1;
81383  val = __Pyx_PyInt_As_char(tmp);
81384  Py_DECREF(tmp);
81385  return val;
81386  }
81387 raise_overflow:
81388  PyErr_SetString(PyExc_OverflowError,
81389  "value too large to convert to char");
81390  return (char) -1;
81391 raise_neg_overflow:
81392  PyErr_SetString(PyExc_OverflowError,
81393  "can't convert negative value to char");
81394  return (char) -1;
81395 }
81396 
81397 /* CheckBinaryVersion */
81398  static int __Pyx_check_binary_version(void) {
81399  char ctversion[5];
81400  int same=1, i, found_dot;
81401  const char* rt_from_call = Py_GetVersion();
81402  PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
81403  found_dot = 0;
81404  for (i = 0; i < 4; i++) {
81405  if (!ctversion[i]) {
81406  same = (rt_from_call[i] < '0' || rt_from_call[i] > '9');
81407  break;
81408  }
81409  if (rt_from_call[i] != ctversion[i]) {
81410  same = 0;
81411  break;
81412  }
81413  }
81414  if (!same) {
81415  char rtversion[5] = {'\0'};
81416  char message[200];
81417  for (i=0; i<4; ++i) {
81418  if (rt_from_call[i] == '.') {
81419  if (found_dot) break;
81420  found_dot = 1;
81421  } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') {
81422  break;
81423  }
81424  rtversion[i] = rt_from_call[i];
81425  }
81426  PyOS_snprintf(message, sizeof(message),
81427  "compiletime version %s of module '%.100s' "
81428  "does not match runtime version %s",
81429  ctversion, __Pyx_MODULE_NAME, rtversion);
81430  return PyErr_WarnEx(NULL, message, 1);
81431  }
81432  return 0;
81433 }
81434 
81435 /* FunctionExport */
81436  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
81437  PyObject *d = 0;
81438  PyObject *cobj = 0;
81439  union {
81440  void (*fp)(void);
81441  void *p;
81442  } tmp;
81443  d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
81444  if (!d) {
81445  PyErr_Clear();
81446  d = PyDict_New();
81447  if (!d)
81448  goto bad;
81449  Py_INCREF(d);
81450  if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
81451  goto bad;
81452  }
81453  tmp.fp = f;
81454 #if PY_VERSION_HEX >= 0x02070000
81455  cobj = PyCapsule_New(tmp.p, sig, 0);
81456 #else
81457  cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
81458 #endif
81459  if (!cobj)
81460  goto bad;
81461  if (PyDict_SetItemString(d, name, cobj) < 0)
81462  goto bad;
81463  Py_DECREF(cobj);
81464  Py_DECREF(d);
81465  return 0;
81466 bad:
81467  Py_XDECREF(cobj);
81468  Py_XDECREF(d);
81469  return -1;
81470 }
81471 
81472 /* InitStrings */
81473  static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
81474  while (t->p) {
81475  #if PY_MAJOR_VERSION < 3
81476  if (t->is_unicode) {
81477  *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
81478  } else if (t->intern) {
81479  *t->p = PyString_InternFromString(t->s);
81480  } else {
81481  *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
81482  }
81483  #else
81484  if (t->is_unicode | t->is_str) {
81485  if (t->intern) {
81486  *t->p = PyUnicode_InternFromString(t->s);
81487  } else if (t->encoding) {
81488  *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
81489  } else {
81490  *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
81491  }
81492  } else {
81493  *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
81494  }
81495  #endif
81496  if (!*t->p)
81497  return -1;
81498  if (PyObject_Hash(*t->p) == -1)
81499  return -1;
81500  ++t;
81501  }
81502  return 0;
81503 }
81504 
81505 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
81506  return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
81507 }
81508 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
81509  Py_ssize_t ignore;
81510  return __Pyx_PyObject_AsStringAndSize(o, &ignore);
81511 }
81512 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
81513 #if !CYTHON_PEP393_ENABLED
81514 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
81515  char* defenc_c;
81516  PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
81517  if (!defenc) return NULL;
81518  defenc_c = PyBytes_AS_STRING(defenc);
81519 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
81520  {
81521  char* end = defenc_c + PyBytes_GET_SIZE(defenc);
81522  char* c;
81523  for (c = defenc_c; c < end; c++) {
81524  if ((unsigned char) (*c) >= 128) {
81525  PyUnicode_AsASCIIString(o);
81526  return NULL;
81527  }
81528  }
81529  }
81530 #endif
81531  *length = PyBytes_GET_SIZE(defenc);
81532  return defenc_c;
81533 }
81534 #else
81535 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
81536  if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
81537 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
81538  if (likely(PyUnicode_IS_ASCII(o))) {
81539  *length = PyUnicode_GET_LENGTH(o);
81540  return PyUnicode_AsUTF8(o);
81541  } else {
81542  PyUnicode_AsASCIIString(o);
81543  return NULL;
81544  }
81545 #else
81546  return PyUnicode_AsUTF8AndSize(o, length);
81547 #endif
81548 }
81549 #endif
81550 #endif
81551 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
81552 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
81553  if (
81554 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
81555  __Pyx_sys_getdefaultencoding_not_ascii &&
81556 #endif
81557  PyUnicode_Check(o)) {
81558  return __Pyx_PyUnicode_AsStringAndSize(o, length);
81559  } else
81560 #endif
81561 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
81562  if (PyByteArray_Check(o)) {
81563  *length = PyByteArray_GET_SIZE(o);
81564  return PyByteArray_AS_STRING(o);
81565  } else
81566 #endif
81567  {
81568  char* result;
81569  int r = PyBytes_AsStringAndSize(o, &result, length);
81570  if (unlikely(r < 0)) {
81571  return NULL;
81572  } else {
81573  return result;
81574  }
81575  }
81576 }
81577 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
81578  int is_true = x == Py_True;
81579  if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
81580  else return PyObject_IsTrue(x);
81581 }
81582 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
81583  int retval;
81584  if (unlikely(!x)) return -1;
81585  retval = __Pyx_PyObject_IsTrue(x);
81586  Py_DECREF(x);
81587  return retval;
81588 }
81589 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
81590 #if PY_MAJOR_VERSION >= 3
81591  if (PyLong_Check(result)) {
81592  if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
81593  "__int__ returned non-int (type %.200s). "
81594  "The ability to return an instance of a strict subclass of int "
81595  "is deprecated, and may be removed in a future version of Python.",
81596  Py_TYPE(result)->tp_name)) {
81597  Py_DECREF(result);
81598  return NULL;
81599  }
81600  return result;
81601  }
81602 #endif
81603  PyErr_Format(PyExc_TypeError,
81604  "__%.4s__ returned non-%.4s (type %.200s)",
81605  type_name, type_name, Py_TYPE(result)->tp_name);
81606  Py_DECREF(result);
81607  return NULL;
81608 }
81609 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
81610 #if CYTHON_USE_TYPE_SLOTS
81611  PyNumberMethods *m;
81612 #endif
81613  const char *name = NULL;
81614  PyObject *res = NULL;
81615 #if PY_MAJOR_VERSION < 3
81616  if (likely(PyInt_Check(x) || PyLong_Check(x)))
81617 #else
81618  if (likely(PyLong_Check(x)))
81619 #endif
81620  return __Pyx_NewRef(x);
81621 #if CYTHON_USE_TYPE_SLOTS
81622  m = Py_TYPE(x)->tp_as_number;
81623  #if PY_MAJOR_VERSION < 3
81624  if (m && m->nb_int) {
81625  name = "int";
81626  res = m->nb_int(x);
81627  }
81628  else if (m && m->nb_long) {
81629  name = "long";
81630  res = m->nb_long(x);
81631  }
81632  #else
81633  if (likely(m && m->nb_int)) {
81634  name = "int";
81635  res = m->nb_int(x);
81636  }
81637  #endif
81638 #else
81639  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
81640  res = PyNumber_Int(x);
81641  }
81642 #endif
81643  if (likely(res)) {
81644 #if PY_MAJOR_VERSION < 3
81645  if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
81646 #else
81647  if (unlikely(!PyLong_CheckExact(res))) {
81648 #endif
81649  return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
81650  }
81651  }
81652  else if (!PyErr_Occurred()) {
81653  PyErr_SetString(PyExc_TypeError,
81654  "an integer is required");
81655  }
81656  return res;
81657 }
81658 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
81659  Py_ssize_t ival;
81660  PyObject *x;
81661 #if PY_MAJOR_VERSION < 3
81662  if (likely(PyInt_CheckExact(b))) {
81663  if (sizeof(Py_ssize_t) >= sizeof(long))
81664  return PyInt_AS_LONG(b);
81665  else
81666  return PyInt_AsSsize_t(b);
81667  }
81668 #endif
81669  if (likely(PyLong_CheckExact(b))) {
81670  #if CYTHON_USE_PYLONG_INTERNALS
81671  const digit* digits = ((PyLongObject*)b)->ob_digit;
81672  const Py_ssize_t size = Py_SIZE(b);
81673  if (likely(__Pyx_sst_abs(size) <= 1)) {
81674  ival = likely(size) ? digits[0] : 0;
81675  if (size == -1) ival = -ival;
81676  return ival;
81677  } else {
81678  switch (size) {
81679  case 2:
81680  if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
81681  return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81682  }
81683  break;
81684  case -2:
81685  if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
81686  return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81687  }
81688  break;
81689  case 3:
81690  if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
81691  return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81692  }
81693  break;
81694  case -3:
81695  if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
81696  return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81697  }
81698  break;
81699  case 4:
81700  if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
81701  return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81702  }
81703  break;
81704  case -4:
81705  if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
81706  return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
81707  }
81708  break;
81709  }
81710  }
81711  #endif
81712  return PyLong_AsSsize_t(b);
81713  }
81714  x = PyNumber_Index(b);
81715  if (!x) return -1;
81716  ival = PyInt_AsSsize_t(x);
81717  Py_DECREF(x);
81718  return ival;
81719 }
81720 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
81721  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
81722  return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
81723 #if PY_MAJOR_VERSION < 3
81724  } else if (likely(PyInt_CheckExact(o))) {
81725  return PyInt_AS_LONG(o);
81726 #endif
81727  } else {
81728  Py_ssize_t ival;
81729  PyObject *x;
81730  x = PyNumber_Index(o);
81731  if (!x) return -1;
81732  ival = PyInt_AsLong(x);
81733  Py_DECREF(x);
81734  return ival;
81735  }
81736 }
81737 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
81738  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
81739 }
81740 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
81741  return PyInt_FromSize_t(ival);
81742 }
81743 
81744 
81745 #endif /* Py_PYTHON_H */
proteus::fp
double fp(const double &g, const double &h, const double &hZ)
Definition: SW2DCV.h:66
f
Double f
Definition: Headers.h:64
number
Int number
Definition: Headers.h:33
s
Double s
Definition: Headers.h:84
L
Double L
Definition: Headers.h:72
n
Int n
Definition: Headers.h:28
q
Double q
Definition: Headers.h:81
phi
Double phi
Definition: Headers.h:76
num
Int num
Definition: Headers.h:32
U
Double U
Definition: Headers.h:88
v
Double v
Definition: Headers.h:95
T
Double T
Definition: Headers.h:87
z
Double * z
Definition: Headers.h:49
u
Double u
Definition: Headers.h:89
ns
Int ns
Definition: Headers.h:30
c
Double c
Definition: Headers.h:54
r
Double r
Definition: Headers.h:83
pos
double pos(double a)
Definition: testFMMandFSW.cpp:8