proteus  1.8.1
C/C++/Fortran libraries
numericalFlux.h
Go to the documentation of this file.
1 #ifndef NUMERICAL_FLUX_H
2 #define NUMERICAL_FLUX_H
3 
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <math.h>
7 #include <strings.h>
8 #include <string.h>
9 #include <assert.h>
10 
22 extern void calculateInteriorLesaintRaviartNumericalFlux(int nInteriorElementBoundaries_global,
23  int nElementBoundaries_element,
24  int nQuadraturePoints_elementBoundary,
25  int nSpace,
26  int speedEvalFlag,
27  int* interiorElementBoundaries,
28  int* elementBoundaryElements,
29  int* elementBoundaryLocalElementBoundaries,
30  double* n,
31  double* u,
32  double* H,
33  double* dH,
34  double* flux,
35  double* dflux_left,
36  double* dflux_right);
37 
38 
40  double sonicFlux,
41  int nInteriorElementBoundaries_global,
42  int nElementBoundaries_element,
43  int nQuadraturePoints_elementBoundary,
44  int nSpace,
45  int* interiorElementBoundaries,
46  int* elementBoundaryElements,
47  int* elementBoundaryLocalElementBoundaries,
48  double* n,
49  double* u,
50  double* f,
51  double* df,
52  double* flux,
53  double* dflux_left,
54  double* dflux_right);
55 
56 extern void calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor,
57  int nExteriorElementBoundaries_global,
58  int nElementBoundaries_element,
59  int nQuadraturePoints_elementBoundary,
60  int nQuadraturePoints_element,
61  int nSpace,
62  int* exteriorElementBoundaries,
63  int* elementBoundaryElements,
64  int* elementBoundaryLocalElementBoundaries,
65  int* isDOFBoundary,
66  int* inflowFlag,
67  double* n,
68  double* bc_u,
69  double* bc_f,
70  double* bc_df,
71  double* u,
72  double* f,
73  double* df,
74  double* df_element,
75  double* flux,
76  double* dflux);
77 
79  int scale_penalty,
80  double penalty_floor,
81  int nInteriorElementBoundaries_global,
82  int nElementBoundaries_element,
83  int nQuadraturePoints_elementBoundary,
84  int nSpace,
85  int* interiorElementBoundaries,
86  int* elementBoundaryElements,
87  int* elementBoundaryLocalElementBoundaries,
88  double* n,
89  double* a,
90  double* grad_phi,
91  double* u,
92  double* penalty,
93  double* flux);
95  int scale_penalty,
96  double penalty_floor,
97  int nInteriorElementBoundaries_global,
98  int nElementBoundaries_element,
99  int nQuadraturePoints_elementBoundary,
100  int nDOF_trial_element,
101  int nSpace,
102  int* l2g,
103  int* interiorElementBoundaries,
104  int* elementBoundaryElements,
105  int* elementBoundaryLocalElementBoundaries,
106  double* n,
107  double* a,
108  double* da,
109  double* grad_phi,
110  double* dphi,
111  double* v,
112  double* grad_v,
113  double* penalty,
114  double* fluxJacobian
115  );
117  int nInteriorElementBoundaries_global,
118  int nElementBoundaries_element,
119  int nQuadraturePoints_elementBoundary,
120  int nSpace,
121  int* interiorElementBoundaries,
122  int* elementBoundaryElements,
123  int* elementBoundaryLocalElementBoundaries,
124  double* n,
125  double* u,
126  double* f,
127  double* df,
128  double* flux,
129  double* dflux_left,
130  double* dflux_right
131  );
133  int nInteriorElementBoundaries_global,
134  int nElementBoundaries_element,
135  int nQuadraturePoints_elementBoundary,
136  int nDOF_trial_element,
137  int* interiorElementBoundaries,
138  int* elementBoundaryElements,
139  int* elementBoundaryLocalElementBoundaries,
140  double* dflux_left,
141  double* dflux_right,
142  double* v,
143  double* fluxJacobian
144  );
146  int nInteriorElementBoundaries_global,
147  int nElementBoundaries_element,
148  int nQuadraturePoints_elementBoundary,
149  int nSpace,
150  int* interiorElementBoundaries,
151  int* elementBoundaryElements,
152  int* elementBoundaryLocalElementBoundaries,
153  double* n,
154  double* u,
155  double* f,
156  double* df,
157  double* flux,
158  double* dflux_left,
159  double* dflux_right
160  );
162  int nExteriorElementBoundaries_global,
163  int nElementBoundaries_element,
164  int nQuadraturePoints_elementBoundary,
165  int nSpace,
166  int* exteriorElementBoundaries,
167  int* elementBoundaryElements,
168  int* elementBoundaryLocalElementBoundaries,
169  int* inflowFlag,
170  double* n,
171  double* f,
172  double* df,
173  double* flux,
174  double* dflux_left
175  );
177  int nInteriorElementBoundaries_global,
178  int nElementBoundaries_element,
179  int nQuadraturePoints_elementBoundary,
180  int nSpace,
181  int* interiorElementBoundaries,
182  int* elementBoundaryElements,
183  int* elementBoundaryLocalElementBoundaries,
184  double* n,
185  double* u,
186  double* a,
187  double* phi,
188  double* V,
189  double* penalty,
190  double* flux
191  );
193  int nInteriorElementBoundaries_global,
194  int nElementBoundaries_element,
195  int nQuadraturePoints_elementBoundary,
196  int nDOF_trial_element,
197  int nSpace,
198  int* interiorElementBoundaries,
199  int* elementBoundaryElements,
200  int* elementBoundaryLocalElementBoundaries,
201  double* n,
202  double* a,
203  double* da,
204  double* dphi,
205  double* V,
206  double* DV,
207  double* DV_eb,
208  double* v,
209  double* penalty,
210  double* fluxJacobian,
211  double* fluxJacobian_eb
212  );
214  int nExteriorElementBoundaries_global,
215  int nElementBoundaries_element,
216  int nQuadraturePoints_elementBoundary,
217  int nSpace,
218  int* exteriorElementBoundaries,
219  int* elementBoundaryElements,
220  int* elementBoundaryLocalElementBoundaries,
221  double* n,
222  double* u,
223  double* a,
224  double* phi_bc,
225  double* phi,
226  double* V,
227  double* penalty,
228  double* flux
229  );
230 
231 
232 
233 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty,
234  double penalty_floor,
235  int nExteriorElementBoundaries_global,
236  int nQuadraturePoints_elementBoundary,
237  int nDOF_trial_element,
238  int nSpace,
239  int* l2g,
240  int* exteriorElementBoundaries,
241  int* elementBoundaryElements,
242  int* elementBoundaryLocalElementBoundaries,
243  int* isDOFBoundary,
244  double* n,
245  double* a,
246  double* da,
247  double* grad_phi,
248  double* dphi,
249  double* v,
250  double* grad_v,
251  double* penalty,
252  double* fluxJacobian);
253 
254 extern void setInflowFlux(int nExteriorElementBoundaries_global,
255  int nQuadraturePoints_elementBoundary,
256  int* exteriorElementBoundaries,
257  double* inflowFlux,
258  double* flux);
259 
260 extern void updateInteriorTwoSidedNumericalFluxJacobian(int nInteriorElementBoundaries_global,
261  int nElementBoundaries_element,
262  int nQuadraturePoints_elementBoundary,
263  int nDOF_trial_element,
264  int* interiorElementBoundaries,
265  int* elementBoundaryElements,
266  int* elementBoundaryLocalElementBoundaries,
267  double* dflux_left,
268  double* dflux_right,
269  double* v,
270  double* fluxJacobian_2sided);
271 
272 
273 
274 extern void calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global,
275  int nQuadraturePoints_elementBoundary,
276  int nSpace,
277  int* exteriorElementBoundaries,
278  int* elementBoundaryElements,
279  int* elementBoundaryLocalElementBoundaries,
280  int* inflowFlag,
281  double* n,
282  double* f,
283  double* df,
284  double* flux,
285  double* dflux_left);
286 
287 extern void calculateGlobalExteriorInflowNumericalAdvectiveFlux(int nExteriorElementBoundaries_global,
288  int nQuadraturePoints_elementBoundary,
289  int nSpace,
290  int* exteriorElementBoundaries,
291  int* elementBoundaryElements,
292  int* elementBoundaryLocalElementBoundaries,
293  int* inflowFlag,
294  double* inflowFlux,
295  double* n,
296  double* f,
297  double* df,
298  double* flux,
299  double* dflux_left);
300 
301 
302 extern void updateExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global,
303  int nElementBoundaries_element,
304  int nQuadraturePoints_elementBoundary,
305  int nDOF_trial_element,
306  int nSpace,
307  int* l2g,
308  int* exteriorElementBoundaries,
309  int* elementBoundaryElements,
310  int* elementBoundaryLocalElementBoundaries,
311  int* isDOFBoundary,
312  double* n,
313  double* a,
314  double* da,
315  double* grad_phi,
316  double* dphi,
317  double* v,
318  double* grad_v,
319  double* penalty,
320  double* fluxJacobian);
321 
322 extern void calculateInteriorChengShuNumericalFlux(int nInteriorElementBoundaries_global,
323  int nElementBoundaries_element,
324  int nQuadraturePoints_elementBoundary,
325  int nQuadraturePoints_element,
326  int nSpace,
327  int speedEvalFlag,
328  int* interiorElementBoundaries,
329  int* elementBoundaryElements,
330  int* elementBoundaryLocalElementBoundaries,
331  double* n,
332  double* u,
333  double* H,
334  double* dH,
335  double* H_element,
336  double* dH_element,
337  double* flux,
338  double* dflux_left,
339  double* dflux_right);
340 
341 extern void calculateGlobalExteriorNumericalFluxDarcyFCFF(int nExteriorElementBoundaries_global,
342  int nQuadraturePoints_elementBoundary,
343  int nSpace,
344  const int* exteriorElementBoundaries,
345  const int* elementBoundaryElements,
346  const int* elementBoundaryLocalElementBoundaries,
347  const int* isDOFBoundary_uw,
348  const int* isDOFBoundary_um,
349  const double* n,
350  const double* bc_f_m,
351  const double* bc_a_wm,
352  const double* bc_a_mw,
353  const double* bc_a_mm,
354  const double* bc_grad_phi_w,
355  const double* bc_grad_phi_m,
356  const double* bc_u_w,
357  const double* bc_u_m,
358  const double* f_m,
359  const double* df_m_dw,
360  const double* a_wm,
361  const double* a_mw,
362  const double* a_mm,
363  const double* grad_phi_w,
364  const double* grad_phi_m,
365  const double* u_w,
366  const double* u_m,
367  const double* penalty_w,
368  const double* penalty_m,
369  double* advectiveFlux_m,
370  double* dadvectiveFlux_m_dw,
371  double* diffusiveFlux_wm,
372  double* diffusiveFlux_mw,
373  double* diffusiveFlux_mm);
374 extern void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(int nExteriorElementBoundaries_global,
375  int nQuadraturePoints_elementBoundary,
376  int nSpace,
377  int nDOF_trial_element,
378  const int* l2g,
379  const int* exteriorElementBoundaries,
380  const int* elementBoundaryElements,
381  const int* elementBoundaryLocalElementBoundaries,
382  const int* isDOFBoundary_uw,
383  const int* isDOFBoundary_um,
384  const double* n,
385  const double* f_m,
386  const double* df_m_dw,
387  const double* a_wm,
388  const double* da_wm_dw,
389  const double* da_wm_dm,
390  const double* a_mw,
391  const double* da_mw_dw,
392  const double* da_mw_dm,
393  const double* a_mm,
394  const double* da_mm_dw,
395  const double* da_mm_dm,
396  const double* grad_phi_w,
397  const double* grad_phi_m,
398  const double* dphi_w_w,
399  const double* dphi_w_m,
400  const double* dphi_m_w,
401  const double* dphi_m_m,
402  const double* u_w,
403  const double* u_m,
404  const double* v,
405  const double* grad_v,
406  const double* penalty_w,
407  const double* penalty_m,
408  double* fluxJacobian_ww,
409  double* fluxJacobian_wm,
410  double* fluxJacobian_mw,
411  double* fluxJacobian_mm);
412 
413 extern void updateExteriorNumericalStressFluxJacobian(int nExteriorElementBoundaries_global,
414  int nQuadraturePoints_elementBoundary,
415  int nDOF_trial_element,
416  int nSpace,
417  int* exteriorElementBoundaries,
418  int* elementBoundaryElements,
419  int* elementBoundaryLocalElementBoundaries,
420  int* isDOFBoundary_u,
421  int* isDOFBoundary_v,
422  int* isDOFBoundary_w,
423  int* isStressBoundary_u,
424  int* isStressBoundary_v,
425  int* isStressBoundary_w,
426  double* n,
427  double* dstress_u_u,
428  double* dstress_u_v,
429  double* dstress_u_w,
430  double* dstress_v_u,
431  double* dstress_v_v,
432  double* dstress_v_w,
433  double* dstress_w_u,
434  double* dstress_w_v,
435  double* dstress_w_w,
436  double* v,
437  double* grad_v,
438  double* penalty,
439  double* fluxJacobian_u_u,
440  double* fluxJacobian_u_v,
441  double* fluxJacobian_u_w,
442  double* fluxJacobian_v_u,
443  double* fluxJacobian_v_v,
444  double* fluxJacobian_v_w,
445  double* fluxJacobian_w_u,
446  double* fluxJacobian_w_v,
447  double* fluxJacobian_w_w);
448 
449 extern void calculateExteriorNumericalFluxRichards_sd(int* rowptr,
450  int* colind,
451  int nExteriorElementBoundaries_global,
452  int nQuadraturePoints_elementBoundary,
453  int nSpace,
454  int* isSeepageFace,
455  int* isDOFBoundary,
456  double* n,
457  double* bc_u,
458  double* K,
459  double* grad_psi,
460  double* u,
461  double* K_rho_g,
462  double* penalty,
463  double* diffusiveFlux);
465  int* colind,
466  int nExteriorElementBoundaries_global,
467  int nQuadraturePoints_elementBoundary,
468  int nDOF_trial_element,
469  int nSpace,
470  int* isDOFBoundary,
471  double* n,
472  double* bc_u,
473  double* K,
474  double* dK,
475  double* grad_psi,
476  double* grad_v,
477  double* u,
478  double* dK_rho_g,
479  double* v,
480  double* penalty,
481  double* fluxJacobian);
482 extern void calculateGlobalExteriorNumericalDiffusiveFlux_sd(int scale_penalty,
483  double penalty_floor,
484  int nExteriorElementBoundaries_global,
485  int nQuadraturePoints_elementBoundary,
486  int nSpace,
487  int* rowptr,
488  int* colind,
489  int* exteriorElementBoundaries,
490  int* elementBoundaryElements,
491  int* elementBoundaryLocalElementBoundaries,
492  int* isDOFBoundary,
493  double* n,
494  double* bc_a,
495  double* bc_grad_phi,
496  double* bc_u,
497  double* a,
498  double* grad_phi,
499  double* u,
500  double* penalty,
501  double* flux);
503  int nInteriorElementBoundaries_global,
504  int nElementBoundaries_element,
505  int nQuadraturePoints_elementBoundary,
506  int nQuadraturePoints_element,
507  int nSpace,
508  int* interiorElementBoundaries,
509  int* elementBoundaryElements,
510  int* elementBoundaryLocalElementBoundaries,
511  double* n,
512  double* u,
513  double* f,
514  double* lambda_bar_element,
515  double* flux);
516 extern void calculateInteriorNumericalDiffusiveFlux_sd(int scale_penalty,
517  double penalty_floor,
518  int nInteriorElementBoundaries_global,
519  int nElementBoundaries_element,
520  int nQuadraturePoints_elementBoundary,
521  int nSpace,
522  int* rowptr,
523  int* colind,
524  int* interiorElementBoundaries,
525  int* elementBoundaryElements,
526  int* elementBoundaryLocalElementBoundaries,
527  double* n,
528  double* a,
529  double* grad_phi,
530  double* u,
531  double* penalty,
532  double* flux);
533 
534 extern void updateInteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty,
535  double penalty_floor,
536  int nInteriorElementBoundaries_global,
537  int nElementBoundaries_element,
538  int nQuadraturePoints_elementBoundary,
539  int nDOF_trial_element,
540  int nSpace,
541  int* rowptr,
542  int* colind,
543  int* l2g,
544  int* interiorElementBoundaries,
545  int* elementBoundaryElements,
546  int* elementBoundaryLocalElementBoundaries,
547  double* n,
548  double* a,
549  double* da,
550  double* grad_phi,
551  double* dphi,
552  double* v,
553  double* grad_v,
554  double* penalty,
555  double* fluxJacobian);
556 extern void calculateExteriorNumericalDiffusiveFlux_sd(int scale_penalty,
557  double penalty_floor,
558  int nExteriorElementBoundaries_global,
559  int nElementBoundaries_element,
560  int nQuadraturePoints_elementBoundary,
561  int nSpace,
562  int* rowptr,
563  int* colind,
564  int* exteriorElementBoundaries,
565  int* elementBoundaryElements,
566  int* elementBoundaryLocalElementBoundaries,
567  int* isDOFBoundary,
568  double* n,
569  double* bc_a,
570  double* bc_grad_phi,
571  double* bc_u,
572  double* a,
573  double* grad_phi,
574  double* u,
575  double* penalty,
576  double* flux);
577 extern void updateExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty,
578  double penalty_floor,
579  int nExteriorElementBoundaries_global,
580  int nElementBoundaries_element,
581  int nQuadraturePoints_elementBoundary,
582  int nDOF_trial_element,
583  int nSpace,
584  int* rowptr,
585  int* colind,
586  int* l2g,
587  int* exteriorElementBoundaries,
588  int* elementBoundaryElements,
589  int* elementBoundaryLocalElementBoundaries,
590  int* isDOFBoundary,
591  double* n,
592  double* a,
593  double* da,
594  double* grad_phi,
595  double* dphi,
596  double* v,
597  double* grad_v,
598  double* penalty,
599  double* fluxJacobian);
600 extern void updateExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global,
601  int nElementBoundaries_element,
602  int nQuadraturePoints_elementBoundary,
603  int nDOF_trial_element,
604  int nSpace,
605  int* rowptr,
606  int* colind,
607  int* l2g,
608  int* exteriorElementBoundaries,
609  int* elementBoundaryElements,
610  int* elementBoundaryLocalElementBoundaries,
611  int* isDOFBoundary,
612  double* n,
613  double* a,
614  double* da,
615  double* grad_phi,
616  double* dphi,
617  double* v,
618  double* grad_v,
619  double* penalty,
620  double* fluxJacobian);
621 extern void calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nInteriorElementBoundaries_global,
622  int nElementBoundaries_element,
623  int nQuadraturePoints_elementBoundary,
624  int nSpace,
625  int* rowptr,
626  int* colind,
627  int* interiorElementBoundaries,
628  int* elementBoundaryElements,
629  int* elementBoundaryLocalElementBoundaries,
630  double* n,
631  double* u,
632  double* a,
633  double* phi,
634  double* V,
635  double* penalty,
636  double* flux);
637 extern void updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int nInteriorElementBoundaries_global,
638  int nElementBoundaries_element,
639  int nQuadraturePoints_elementBoundary,
640  int nDOF_trial_element,
641  int nSpace,
642  int* rowptr,
643  int* colind,
644  int* interiorElementBoundaries,
645  int* elementBoundaryElements,
646  int* elementBoundaryLocalElementBoundaries,
647  double* n,
648  double* a,
649  double* da,
650  double* dphi,
651  double* V,
652  double* DV,
653  double* DV_eb,
654  double* v,
655  double* penalty,
656  double* fluxJacobian,
657  double* fluxJacobian_eb);
658 extern void calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global,
659  int nElementBoundaries_element,
660  int nQuadraturePoints_elementBoundary,
661  int nSpace,
662  int* rowptr,
663  int* colind,
664  int* exteriorElementBoundaries,
665  int* elementBoundaryElements,
666  int* elementBoundaryLocalElementBoundaries,
667  double* n,
668  double* u,
669  double* a,
670  double* phi_bc,
671  double* phi,
672  double* V,
673  double* penalty,
674  double* flux);
675 extern void calculateDiffusionMatrixSplittings_LDG_sd(int aSplit,
676  int nElements_global,
677  int nElementBoundaries_element,
678  int nQuadraturePoints_element,
679  int nQuadraturePoints_elementBoundary,
680  int nSpace,
681  const int * rowptr,
682  const int * colind,
683  const double * ebq_a,
684  const double * q_a,
685  double *eb_aHat,
686  double *eb_aTilde,
687  double *aHat,
688  double *aTilde);
689 extern void calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(int nExteriorElementBoundaries_global,
690  int nQuadraturePoints_elementBoundary,
691  int nSpace,
692  int* rowptr_wm,
693  int* colind_wm,
694  int* rowptr_mw,
695  int* colind_mw,
696  int* rowptr_mm,
697  int* colind_mm,
698  const int* exteriorElementBoundaries,
699  const int* elementBoundaryElements,
700  const int* elementBoundaryLocalElementBoundaries,
701  const int* isDOFBoundary_uw,
702  const int* isDOFBoundary_um,
703  const double* n,
704  const double* bc_f_m,
705  const double* bc_a_wm,
706  const double* bc_a_mw,
707  const double* bc_a_mm,
708  const double* bc_grad_phi_w,
709  const double* bc_grad_phi_m,
710  const double* bc_u_w,
711  const double* bc_u_m,
712  const double* f_m,
713  const double* df_m_dw,
714  const double* a_wm,
715  const double* a_mw,
716  const double* a_mm,
717  const double* grad_phi_w,
718  const double* grad_phi_m,
719  const double* u_w,
720  const double* u_m,
721  const double* penalty_w,
722  const double* penalty_m,
723  double* advectiveFlux_m,
724  double* dadvectiveFlux_m_dw,
725  double* diffusiveFlux_wm,
726  double* diffusiveFlux_mw,
727  double* diffusiveFlux_mm);
728 extern void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global,
729  int nQuadraturePoints_elementBoundary,
730  int nSpace,
731  int nDOF_trial_element,
732  int* rowptr_wm,
733  int* colind_wm,
734  int* rowptr_mw,
735  int* colind_mw,
736  int* rowptr_mm,
737  int* colind_mm,
738  const int* l2g,
739  const int* exteriorElementBoundaries,
740  const int* elementBoundaryElements,
741  const int* elementBoundaryLocalElementBoundaries,
742  const int* isDOFBoundary_uw,
743  const int* isDOFBoundary_um,
744  const double* n,
745  const double* f_m,
746  const double* df_m_dw,
747  const double* a_wm,
748  const double* da_wm_dw,
749  const double* da_wm_dm,
750  const double* a_mw,
751  const double* da_mw_dw,
752  const double* da_mw_dm,
753  const double* a_mm,
754  const double* da_mm_dw,
755  const double* da_mm_dm,
756  const double* grad_phi_w,
757  const double* grad_phi_m,
758  const double* dphi_w_w,
759  const double* dphi_w_m,
760  const double* dphi_m_w,
761  const double* dphi_m_m,
762  const double* u_w,
763  const double* u_m,
764  const double* v,
765  const double* grad_v,
766  const double* penalty_w,
767  const double* penalty_m,
768  double * fluxJacobian_ww,
769  double * fluxJacobian_wm,
770  double * fluxJacobian_mw,
771  double * fluxJacobian_mm);
772 extern void calculateGlobalExteriorNumericalFluxDarcyFC(int nExteriorElementBoundaries_global,
773  int nQuadraturePoints_elementBoundary,
774  int nSpace,
775  const int* exteriorElementBoundaries,
776  const int* elementBoundaryElements,
777  const int* elementBoundaryLocalElementBoundaries,
778  const int* isDOFBoundary_uw,
779  const int* isDOFBoundary_un,
780  int fluxBoundaryFlag_uw,
781  int fluxBoundaryFlag_un,
782  const double* n,
783  const double* bc_a_ww,
784  const double* bc_a_nn,
785  const double* bc_grad_phi_w,
786  const double* bc_grad_phi_n,
787  const double* bc_s_w,
788  const double* bc_psi_w,
789  const double* bc_psi_n,
790  const double* a_ww,
791  const double* a_nn,
792  const double* grad_phi_w,
793  const double* grad_phi_n,
794  const double* s_w,
795  const double* psi_w,
796  const double* psi_n,
797  const double* penalty_w,
798  const double* penalty_n,
799  double * diffusiveFlux_ww,
800  double * diffusiveFlux_nn);
801 extern void calculateGlobalExteriorNumericalFluxDarcyFC_sd(int nExteriorElementBoundaries_global,
802  int nQuadraturePoints_elementBoundary,
803  int nSpace,
804  int* rowptr_ww,
805  int* colind_ww,
806  int* rowptr_nn,
807  int* colind_nn,
808  const int* exteriorElementBoundaries,
809  const int* elementBoundaryElements,
810  const int* elementBoundaryLocalElementBoundaries,
811  const int* isDOFBoundary_uw,
812  const int* isDOFBoundary_un,
813  int fluxBoundaryFlag_uw,
814  int fluxBoundaryFlag_un,
815  const double* n,
816  const double* bc_a_ww,
817  const double* bc_a_nn,
818  const double* bc_grad_phi_w,
819  const double* bc_grad_phi_n,
820  const double* bc_s_w,
821  const double* bc_psi_w,
822  const double* bc_psi_n,
823  const double* a_ww,
824  const double* a_nn,
825  const double* grad_phi_w,
826  const double* grad_phi_n,
827  const double* s_w,
828  const double* psi_w,
829  const double* psi_n,
830  const double* penalty_w,
831  const double* penalty_n,
832  double * diffusiveFlux_ww,
833  double * diffusiveFlux_nn);
834 extern void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(int nExteriorElementBoundaries_global,
835  int nQuadraturePoints_elementBoundary,
836  int nSpace,
837  int nDOF_trial_element,
838  const int* l2g,
839  const int* exteriorElementBoundaries,
840  const int* elementBoundaryElements,
841  const int* elementBoundaryLocalElementBoundaries,
842  const int* isDOFBoundary_uw,
843  const int* isDOFBoundary_un,
844  int fluxBoundaryFlag_uw,
845  int fluxBoundaryFlag_un,
846  const double* n,
847  const double* a_ww,
848  const double* da_ww_dw,
849  const double* da_ww_dn,
850  const double* a_nn,
851  const double* da_nn_dw,
852  const double* da_nn_dn,
853  const double* grad_phi_w,
854  const double* grad_phi_n,
855  const double* dphi_w_w,
856  const double* dphi_w_n,
857  const double* dphi_n_w,
858  const double* dphi_n_n,
859  const double* s_w,
860  const double* psi_w,
861  const double* psi_n,
862  const double* dpsi_n_dsw,
863  const double* dpsi_n_dpsiw,
864  const double* v,
865  const double* grad_v,
866  const double* penalty_w,
867  const double* penalty_n,
868  double * fluxJacobian_ww,
869  double * fluxJacobian_wn,
870  double * fluxJacobian_nw,
871  double * fluxJacobian_nn);
872 extern void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global,
873  int nQuadraturePoints_elementBoundary,
874  int nSpace,
875  int nDOF_trial_element,
876  int* rowptr_ww,
877  int* colind_ww,
878  int* rowptr_nn,
879  int* colind_nn,
880  const int* l2g,
881  const int* exteriorElementBoundaries,
882  const int* elementBoundaryElements,
883  const int* elementBoundaryLocalElementBoundaries,
884  const int* isDOFBoundary_uw,
885  const int* isDOFBoundary_un,
886  int fluxBoundaryFlag_uw,
887  int fluxBoundaryFlag_un,
888  const double* n,
889  const double* a_ww,
890  const double* da_ww_dw,
891  const double* da_ww_dn,
892  const double* a_nn,
893  const double* da_nn_dw,
894  const double* da_nn_dn,
895  const double* grad_phi_w,
896  const double* grad_phi_n,
897  const double* dphi_w_w,
898  const double* dphi_w_n,
899  const double* dphi_n_w,
900  const double* dphi_n_n,
901  const double* s_w,
902  const double* psi_w,
903  const double* psi_n,
904  const double* dpsi_n_dsw,
905  const double* dpsi_n_dpsiw,
906  const double* v,
907  const double* grad_v,
908  const double* penalty_w,
909  const double* penalty_n,
910  double * fluxJacobian_ww,
911  double * fluxJacobian_wn,
912  double * fluxJacobian_nw,
913  double * fluxJacobian_nn);
914 extern void calculateGlobalExteriorNumericalFluxDarcyFCPP(int nExteriorElementBoundaries_global,
915  int nQuadraturePoints_elementBoundary,
916  int nSpace,
917  const int* exteriorElementBoundaries,
918  const int* elementBoundaryElements,
919  const int* elementBoundaryLocalElementBoundaries,
920  const int* isDOFBoundary_uw,
921  const int* isDOFBoundary_un,
922  int fluxBoundaryFlag_uw,
923  int fluxBoundaryFlag_un,
924  const double* n,
925  const double* bc_a_ww,
926  const double* bc_a_nn,
927  const double* bc_grad_phi_w,
928  const double* bc_grad_phi_n,
929  const double* bc_psi_w,
930  const double* bc_psi_c,
931  const double* bc_psi_n,
932  const double* a_ww,
933  const double* a_nn,
934  const double* grad_phi_w,
935  const double* grad_phi_n,
936  const double* psi_w,
937  const double* psi_c,
938  const double* psi_n,
939  const double* penalty_w,
940  const double* penalty_n,
941  double * diffusiveFlux_ww,
942  double * diffusiveFlux_nn);
943 extern void calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(int nExteriorElementBoundaries_global,
944  int nQuadraturePoints_elementBoundary,
945  int nSpace,
946  int* rowptr_ww,
947  int* colind_ww,
948  int* rowptr_nn,
949  int* colind_nn,
950  const int* exteriorElementBoundaries,
951  const int* elementBoundaryElements,
952  const int* elementBoundaryLocalElementBoundaries,
953  const int* isDOFBoundary_uw,
954  const int* isDOFBoundary_un,
955  int fluxBoundaryFlag_uw,
956  int fluxBoundaryFlag_un,
957  const double* n,
958  const double* bc_a_ww,
959  const double* bc_a_nn,
960  const double* bc_grad_phi_w,
961  const double* bc_grad_phi_n,
962  const double* bc_psi_w,
963  const double* bc_psi_c,
964  const double* bc_psi_n,
965  const double* a_ww,
966  const double* a_nn,
967  const double* grad_phi_w,
968  const double* grad_phi_n,
969  const double* psi_w,
970  const double* psi_c,
971  const double* psi_n,
972  const double* penalty_w,
973  const double* penalty_n,
974  double * diffusiveFlux_ww,
975  double * diffusiveFlux_nn);
976 extern void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(int nExteriorElementBoundaries_global,
977  int nQuadraturePoints_elementBoundary,
978  int nSpace,
979  int nDOF_trial_element,
980  const int* l2g,
981  const int* exteriorElementBoundaries,
982  const int* elementBoundaryElements,
983  const int* elementBoundaryLocalElementBoundaries,
984  const int* isDOFBoundary_uw,
985  const int* isDOFBoundary_un,
986  int fluxBoundaryFlag_uw,
987  int fluxBoundaryFlag_un,
988  const double* n,
989  const double* a_ww,
990  const double* da_ww_dw,
991  const double* da_ww_dn,
992  const double* a_nn,
993  const double* da_nn_dw,
994  const double* da_nn_dn,
995  const double* grad_phi_w,
996  const double* grad_phi_n,
997  const double* dphi_w_w,
998  const double* dphi_w_n,
999  const double* dphi_n_w,
1000  const double* dphi_n_n,
1001  const double* psi_w,
1002  const double* psi_c,
1003  const double* psi_n,
1004  const double* dpsi_n_dpsiw,
1005  const double* dpsi_n_dpsic,
1006  const double* v,
1007  const double* grad_v,
1008  const double* penalty_w,
1009  const double* penalty_n,
1010  double * fluxJacobian_ww,
1011  double * fluxJacobian_wn,
1012  double * fluxJacobian_nw,
1013  double * fluxJacobian_nn);
1014 extern void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global,
1015  int nQuadraturePoints_elementBoundary,
1016  int nSpace,
1017  int nDOF_trial_element,
1018  int* rowptr_ww,
1019  int* colind_ww,
1020  int* rowptr_nn,
1021  int* colind_nn,
1022  const int* l2g,
1023  const int* exteriorElementBoundaries,
1024  const int* elementBoundaryElements,
1025  const int* elementBoundaryLocalElementBoundaries,
1026  const int* isDOFBoundary_uw,
1027  const int* isDOFBoundary_un,
1028  int fluxBoundaryFlag_uw,
1029  int fluxBoundaryFlag_un,
1030  const double* n,
1031  const double* a_ww,
1032  const double* da_ww_dw,
1033  const double* da_ww_dn,
1034  const double* a_nn,
1035  const double* da_nn_dw,
1036  const double* da_nn_dn,
1037  const double* grad_phi_w,
1038  const double* grad_phi_n,
1039  const double* dphi_w_w,
1040  const double* dphi_w_n,
1041  const double* dphi_n_w,
1042  const double* dphi_n_n,
1043  const double* psi_w,
1044  const double* psi_c,
1045  const double* psi_n,
1046  const double* dpsi_n_dpsiw,
1047  const double* dpsi_n_dpsic,
1048  const double* v,
1049  const double* grad_v,
1050  const double* penalty_w,
1051  const double* penalty_n,
1052  double * fluxJacobian_ww,
1053  double * fluxJacobian_wn,
1054  double * fluxJacobian_nw,
1055  double * fluxJacobian_nn);
1056 
1057 extern void calculateInteriorNumericalFluxShallowWater_1D(int nInteriorElementBoundaries_global,
1058  int nElementBoundaries_element,
1059  int nQuadraturePoints_elementBoundary,
1060  double h_eps,
1061  double tol_u,
1062  double g,
1063  int* interiorElementBoundaries,
1064  int* elementBoundaryElements,
1065  int* elementBoundaryLocalElementBoundaries,
1066  double* n,
1067  double* h,
1068  double* hu,
1069  double* flux_h,
1070  double* flux_hu);
1071 extern void calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global,
1072  int nQuadraturePoints_elementBoundary,
1073  double h_eps,
1074  double tol_u,
1075  double g,
1076  double* n,
1077  double* h_lv,
1078  double* hu_lv,
1079  double* h_rv,
1080  double* hu_rv,
1081  double* flux_h,
1082  double* flux_hu);
1083 extern void calculateInteriorNumericalFluxShallowWater_2D(int nInteriorElementBoundaries_global,
1084  int nElementBoundaries_element,
1085  int nQuadraturePoints_elementBoundary,
1086  double h_eps,
1087  double tol_u,
1088  double g,
1089  int* interiorElementBoundaries,
1090  int* elementBoundaryElements,
1091  int* elementBoundaryLocalElementBoundaries,
1092  double* n,
1093  double* h,
1094  double* hu,
1095  double* hv,
1096  double* flux_h,
1097  double* flux_hu,
1098  double* flux_hv);
1099 extern void calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global,
1100  int nQuadraturePoints_elementBoundary,
1101  double h_eps,
1102  double tol_u,
1103  double g,
1104  double* n,
1105  double* h_lq,
1106  double* hu_lq,
1107  double* hv_lq,
1108  double* h_rq,
1109  double* hu_rq,
1110  double* hv_rq,
1111  double* flux_h,
1112  double* flux_hu,
1113  double* flux_hv);
1114 extern void calculateInteriorNumericalFluxShallowWaterHLL_1D(int nInteriorElementBoundaries_global,
1115  int nElementBoundaries_element,
1116  int nQuadraturePoints_elementBoundary,
1117  double h_eps,
1118  double tol_u,
1119  double g,
1120  int* interiorElementBoundaries,
1121  int* elementBoundaryElements,
1122  int* elementBoundaryLocalElementBoundaries,
1123  double* n,
1124  double* h,
1125  double* hu,
1126  double* flux_h,
1127  double* flux_hu);
1128 extern void calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global,
1129  int nQuadraturePoints_elementBoundary,
1130  double h_eps,
1131  double tol_u,
1132  double g,
1133  double* n,
1134  double* h_lv,
1135  double* hu_lv,
1136  double* h_rv,
1137  double* hu_rv,
1138  double* flux_h,
1139  double* flux_hu);
1140 extern void calculateGlobalExteriorNumericalStressFlux(int nExteriorElementBoundaries_global,
1141  int nQuadraturePoints_elementBoundary,
1142  int nSpace,
1143  int* exteriorElementBoundaries,
1144  int* elementBoundaryElements,
1145  int* elementBoundaryLocalElementBoundaries,
1146  int *isDOFBoundary_u,
1147  int *isDOFBoundary_v,
1148  int *isDOFBoundary_w,
1149  double* n,
1150  double* bc_u,
1151  double* bc_v,
1152  double* bc_w,
1153  double* sigma,
1154  double* u,
1155  double* v,
1156  double* w,
1157  double* penalty,
1158  double* stressFlux_u,
1159  double* stressFlux_v,
1160  double* stressFlux_w);
1161 extern void calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global,
1162  int nQuadraturePoints_elementBoundary,
1163  int nSpace,
1164  int* exteriorElementBoundaries,
1165  int* elementBoundaryElements,
1166  int* elementBoundaryLocalElementBoundaries,
1167  int* isDOFBoundary_p,
1168  int* isDOFBoundary_u,
1169  int* isDOFBoundary_v,
1170  int* isDOFBoundary_w,
1171  double* n,
1172  double* bc_p,
1173  double* bc_f_mass,
1174  double* p,
1175  double* f_mass,
1176  double* df_mass_du,
1177  double* df_mass_dv,
1178  double* df_mass_dw,
1179  double* flux_mass,
1180  double* flux_umom,
1181  double* flux_vmom,
1182  double* flux_wmom,
1183  double* dflux_mass_du,
1184  double* dflux_mass_dv,
1185  double* dflux_mass_dw,
1186  double* dflux_umom_dp,
1187  double* dflux_vmom_dp,
1188  double* dflux_wmom_dp,
1189  double* velocity);
1190 extern void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global,
1191  int nQuadraturePoints_elementBoundary,
1192  int nSpace,
1193  int* exteriorElementBoundaries,
1194  int* elementBoundaryElements,
1195  int* elementBoundaryLocalElementBoundaries,
1196  int* isDOFBoundary_p,
1197  int* isDOFBoundary_u,
1198  int* isDOFBoundary_v,
1199  int* isDOFBoundary_w,
1200  double* n,
1201  double* bc_p,
1202  double* bc_f_mass,
1203  double* bc_f_umom,
1204  double* bc_f_vmom,
1205  double* bc_f_wmom,
1206  double* p,
1207  double* f_mass,
1208  double* f_umom,
1209  double* f_vmom,
1210  double* f_wmom,
1211  double* df_mass_du,
1212  double* df_mass_dv,
1213  double* df_mass_dw,
1214  double* df_umom_dp,
1215  double* df_umom_du,
1216  double* df_umom_dv,
1217  double* df_umom_dw,
1218  double* df_vmom_dp,
1219  double* df_vmom_du,
1220  double* df_vmom_dv,
1221  double* df_vmom_dw,
1222  double* df_wmom_dp,
1223  double* df_wmom_du,
1224  double* df_wmom_dv,
1225  double* df_wmom_dw,
1226  double* flux_mass,
1227  double* flux_umom,
1228  double* flux_vmom,
1229  double* flux_wmom,
1230  double* dflux_mass_du,
1231  double* dflux_mass_dv,
1232  double* dflux_mass_dw,
1233  double* dflux_umom_dp,
1234  double* dflux_umom_du,
1235  double* dflux_umom_dv,
1236  double* dflux_umom_dw,
1237  double* dflux_vmom_dp,
1238  double* dflux_vmom_du,
1239  double* dflux_vmom_dv,
1240  double* dflux_vmom_dw,
1241  double* dflux_wmom_dp,
1242  double* dflux_wmom_du,
1243  double* dflux_wmom_dv,
1244  double* dflux_wmom_dw,
1245  double* velocity);
1246 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty,
1247  double penalty_floor,
1248  int nExteriorElementBoundaries_global,
1249  int nQuadraturePoints_elementBoundary,
1250  int nDOF_trial_element,
1251  int nSpace,
1252  int* rowptr,
1253  int* colind,
1254  int* l2g,
1255  int* exteriorElementBoundaries,
1256  int* elementBoundaryElements,
1257  int* elementBoundaryLocalElementBoundaries,
1258  int* isDOFBoundary,
1259  double* n,
1260  double* a,
1261  double* da,
1262  double* grad_phi,
1263  double* dphi,
1264  double* v,
1265  double* grad_v,
1266  double* penalty,
1267  double* fluxJacobian);
1268 
1269 extern void calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor,
1270  int nExteriorElementBoundaries_global,
1271  int nQuadraturePoints_elementBoundary,
1272  int nQuadraturePoints_element,
1273  int nSpace,
1274  int* exteriorElementBoundaries,
1275  int* elementBoundaryElements,
1276  int* elementBoundaryLocalElementBoundaries,
1277  int* isDOFBoundary,
1278  int* inflowFlag,
1279  double* n,
1280  double* bc_u,
1281  double* bc_f,
1282  double* bc_df,
1283  double* u,
1284  double* f,
1285  double* df,
1286  double* df_element,
1287  double* flux,
1288  double* dflux);
1290  int nExteriorElementBoundaries_global,
1291  int nQuadraturePoints_elementBoundary,
1292  int nQuadraturePoints_element,
1293  int nSpace,
1294  int* exteriorElementBoundaries,
1295  int* elementBoundaryElements,
1296  int* elementBoundaryLocalElementBoundaries,
1297  int* isDOFBoundary,
1298  int* inflowFlag,
1299  double* n,
1300  double* bc_u,
1301  double* bc_f,
1302  double* u,
1303  double* f,
1304  double* lambda_bar,
1305  double* flux);
1307  int nExteriorElementBoundaries_global,
1308  int nElementBoundaries_element,
1309  int nQuadraturePoints_elementBoundary,
1310  int nQuadraturePoints_element,
1311  int nSpace,
1312  int* exteriorElementBoundaries,
1313  int* elementBoundaryElements,
1314  int* elementBoundaryLocalElementBoundaries,
1315  int* isDOFBoundary,
1316  int* inflowFlag,
1317  double* n,
1318  double* bc_u,
1319  double* bc_f,
1320  double* u,
1321  double* f,
1322  double* lambda_bar_element,
1323  double* flux);
1324 extern void calculateExteriorNumericalDiffusiveFlux(int scale_penalty,
1325  double penalty_floor,
1326  int nExteriorElementBoundaries_global,
1327  int nElementBoundaries_element,
1328  int nQuadraturePoints_elementBoundary,
1329  int nSpace,
1330  int* exteriorElementBoundaries,
1331  int* elementBoundaryElements,
1332  int* elementBoundaryLocalElementBoundaries,
1333  int* isDOFBoundary,
1334  double* n,
1335  double* bc_a,
1336  double* bc_grad_phi,
1337  double* bc_u,
1338  double* a,
1339  double* grad_phi,
1340  double* u,
1341  double* penalty,
1342  double* flux);
1343 
1344 extern void calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty,
1345  double penalty_floor,
1346  int nExteriorElementBoundaries_global,
1347  int nQuadraturePoints_elementBoundary,
1348  int nSpace,
1349  int* exteriorElementBoundaries,
1350  int* elementBoundaryElements,
1351  int* elementBoundaryLocalElementBoundaries,
1352  int* isDOFBoundary,
1353  double* n,
1354  double* bc_a,
1355  double* bc_grad_phi,
1356  double* bc_u,
1357  double* a,
1358  double* grad_phi,
1359  double* u,
1360  double* penalty,
1361  double* flux);
1362 extern void calculateExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global,
1363  int nElementBoundaries_element,
1364  int nQuadraturePoints_elementBoundary,
1365  int nSpace,
1366  int* exteriorElementBoundaries,
1367  int* elementBoundaryElements,
1368  int* elementBoundaryLocalElementBoundaries,
1369  int* isDOFBoundary,
1370  double* n,
1371  double* bc_a,
1372  double* bc_grad_phi,
1373  double* bc_u,
1374  double* a,
1375  double* grad_phi,
1376  double* u,
1377  double* penalty,
1378  double* flux);
1379 extern void calculateExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global,
1380  int nElementBoundaries_element,
1381  int nQuadraturePoints_elementBoundary,
1382  int nSpace,
1383  int* rowptr,
1384  int* colind,
1385  int* exteriorElementBoundaries,
1386  int* elementBoundaryElements,
1387  int* elementBoundaryLocalElementBoundaries,
1388  int* isDOFBoundary,
1389  double* n,
1390  double* bc_a,
1391  double* bc_grad_phi,
1392  double* bc_u,
1393  double* a,
1394  double* grad_phi,
1395  double* u,
1396  double* penalty,
1397  double* flux);
1398 extern void calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global,
1399  int nQuadraturePoints_elementBoundary,
1400  int nSpace,
1401  int* exteriorElementBoundaries,
1402  int* elementBoundaryElements,
1403  int* elementBoundaryLocalElementBoundaries,
1404  int* isDOFBoundary,
1405  double* n,
1406  double* bc_a,
1407  double* bc_grad_phi,
1408  double* bc_u,
1409  double* a,
1410  double* grad_phi,
1411  double* u,
1412  double* penalty,
1413  double* flux);
1414 extern void calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global,
1415  int nQuadraturePoints_elementBoundary,
1416  int nSpace,
1417  int* rowptr,
1418  int* colind,
1419  int* exteriorElementBoundaries,
1420  int* elementBoundaryElements,
1421  int* elementBoundaryLocalElementBoundaries,
1422  int* isDOFBoundary,
1423  double* n,
1424  double* bc_a,
1425  double* bc_grad_phi,
1426  double* bc_u,
1427  double* a,
1428  double* grad_phi,
1429  double* u,
1430  double* penalty,
1431  double* flux);
1432 extern void updateExteriorNumericalDiffusiveFluxJacobian(int scale_penalty,
1433  double penalty_floor,
1434  int nExteriorElementBoundaries_global,
1435  int nElementBoundaries_element,
1436  int nQuadraturePoints_elementBoundary,
1437  int nDOF_trial_element,
1438  int nSpace,
1439  int* l2g,
1440  int* exteriorElementBoundaries,
1441  int* elementBoundaryElements,
1442  int* elementBoundaryLocalElementBoundaries,
1443  int* isDOFBoundary,
1444  double* n,
1445  double* a,
1446  double* da,
1447  double* grad_phi,
1448  double* dphi,
1449  double* v,
1450  double* grad_v,
1451  double* penalty,
1452  double* fluxJacobian);
1453 
1454 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global,
1455  int nQuadraturePoints_elementBoundary,
1456  int nDOF_trial_element,
1457  int nSpace,
1458  int* l2g,
1459  int* exteriorElementBoundaries,
1460  int* elementBoundaryElements,
1461  int* elementBoundaryLocalElementBoundaries,
1462  int* isDOFBoundary,
1463  double* n,
1464  double* a,
1465  double* da,
1466  double* grad_phi,
1467  double* dphi,
1468  double* v,
1469  double* grad_v,
1470  double* penalty,
1471  double* fluxJacobian);
1472 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global,
1473  int nQuadraturePoints_elementBoundary,
1474  int nDOF_trial_element,
1475  int nSpace,
1476  int* rowptr,
1477  int* colind,
1478  int* l2g,
1479  int* exteriorElementBoundaries,
1480  int* elementBoundaryElements,
1481  int* elementBoundaryLocalElementBoundaries,
1482  int* isDOFBoundary,
1483  double* n,
1484  double* a,
1485  double* da,
1486  double* grad_phi,
1487  double* dphi,
1488  double* v,
1489  double* grad_v,
1490  double* penalty,
1491  double* fluxJacobian);
1492 extern void calculateExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global,
1493  int nElementBoundaries_element,
1494  int nQuadraturePoints_elementBoundary,
1495  int nSpace,
1496  int* exteriorElementBoundaries,
1497  int* elementBoundaryElements,
1498  int* elementBoundaryLocalElementBoundaries,
1499  int* isDOFBoundary,
1500  int* inflowFlag,
1501  double* n,
1502  double* bc_u,
1503  double* bc_f,
1504  double* bc_df,
1505  double* u,
1506  double* f,
1507  double* df,
1508  double* flux,
1509  double* dflux);
1510 extern void calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global,
1511  int nQuadraturePoints_elementBoundary,
1512  int nSpace,
1513  int* exteriorElementBoundaries,
1514  int* elementBoundaryElements,
1515  int* elementBoundaryLocalElementBoundaries,
1516  int* isDOFBoundary,
1517  int* inflowFlag,
1518  double* n,
1519  double* bc_u,
1520  double* bc_f,
1521  double* bc_df,
1522  double* u,
1523  double* f,
1524  double* df,
1525  double* flux,
1526  double* dflux);
1527 extern void calculateExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global,
1528  int nElementBoundaries_element,
1529  int nQuadraturePoints_elementBoundary,
1530  int nSpace,
1531  int* exteriorElementBoundaries,
1532  int* elementBoundaryElements,
1533  int* elementBoundaryLocalElementBoundaries,
1534  int* isDOFBoundary,
1535  int* inflowFlag,
1536  double* n,
1537  double* bc_u,
1538  double* bc_f,
1539  double* bc_df,
1540  double* u,
1541  double* f,
1542  double* df,
1543  double* flux,
1544  double* dflux);
1545 extern void calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global,
1546  int nQuadraturePoints_elementBoundary,
1547  int nSpace,
1548  int* exteriorElementBoundaries,
1549  int* elementBoundaryElements,
1550  int* elementBoundaryLocalElementBoundaries,
1551  int* isDOFBoundary,
1552  int* inflowFlag,
1553  double* n,
1554  double* bc_u,
1555  double* bc_f,
1556  double* bc_df,
1557  double* u,
1558  double* f,
1559  double* df,
1560  double* flux,
1561  double* dflux);
1562 extern void calculateExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global,
1563  int nElementBoundaries_element,
1564  int nQuadraturePoints_elementBoundary,
1565  int nSpace,
1566  int* exteriorElementBoundaries,
1567  int* elementBoundaryElements,
1568  int* elementBoundaryLocalElementBoundaries,
1569  int* isDOFBoundary_p,
1570  int* isDOFBoundary_u,
1571  int* isDOFBoundary_v,
1572  double* n,
1573  double* bc_f,
1574  double* bc_fpu,
1575  double* bc_fpv,
1576  double* f,
1577  double* fpu,
1578  double* fpv,
1579  double* df_du,
1580  double* df_dv,
1581  double* dfpu_dp,
1582  double* dfpv_dp,
1583  double* flux,
1584  double* fluxpu,
1585  double* fluxpv,
1586  double* dflux_du,
1587  double* dflux_dv,
1588  double* dfluxpu_dp,
1589  double* dfluxpv_dp);
1590 extern void calculateExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global,
1591  int nElementBoundaries_element,
1592  int nQuadraturePoints_elementBoundary,
1593  int nSpace,
1594  int* exteriorElementBoundaries,
1595  int* elementBoundaryElements,
1596  int* elementBoundaryLocalElementBoundaries,
1597  int* isDOFBoundary_p,
1598  int* isDOFBoundary_u,
1599  int* isDOFBoundary_v,
1600  double* n,
1601  double* bc_p,
1602  double* bc_f_mass,
1603  double* bc_f_umom,
1604  double* bc_f_vmom,
1605  double* p,
1606  double* f_mass,
1607  double* f_umom,
1608  double* f_vmom,
1609  double* df_mass_du,
1610  double* df_mass_dv,
1611  double* df_umom_du,
1612  double* df_umom_dv,
1613  double* df_vmom_du,
1614  double* df_vmom_dv,
1615  double* flux_mass,
1616  double* flux_umom,
1617  double* flux_vmom,
1618  double* dflux_mass_du,
1619  double* dflux_mass_dv,
1620  double* dflux_umom_dp,
1621  double* dflux_umom_du,
1622  double* dflux_umom_dv,
1623  double* dflux_vmom_dp,
1624  double* dflux_vmom_du,
1625  double* dflux_vmom_dv);
1626 extern void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global,
1627  int nQuadraturePoints_elementBoundary,
1628  int nSpace,
1629  int* exteriorElementBoundaries,
1630  int* elementBoundaryElements,
1631  int* elementBoundaryLocalElementBoundaries,
1632  int* isDOFBoundary_p,
1633  int* isDOFBoundary_u,
1634  int* isDOFBoundary_v,
1635  double* n,
1636  double* bc_p,
1637  double* bc_f_mass,
1638  double* bc_f_umom,
1639  double* bc_f_vmom,
1640  double* p,
1641  double* oneByRho,
1642  double* f_mass,
1643  double* f_umom,
1644  double* f_vmom,
1645  double* df_mass_du,
1646  double* df_mass_dv,
1647  double* df_umom_dp,
1648  double* df_umom_du,
1649  double* df_umom_dv,
1650  double* df_vmom_dp,
1651  double* df_vmom_du,
1652  double* df_vmom_dv,
1653  double* flux_mass,
1654  double* flux_umom,
1655  double* flux_vmom,
1656  double* dflux_mass_dp,
1657  double* dflux_mass_du,
1658  double* dflux_mass_dv,
1659  double* dflux_umom_dp,
1660  double* dflux_umom_du,
1661  double* dflux_umom_dv,
1662  double* dflux_vmom_dp,
1663  double* dflux_vmom_du,
1664  double* dflux_vmom_dv,
1665  double* velocity);
1666 extern void calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global,
1667  int nQuadraturePoints_elementBoundary,
1668  int nSpace,
1669  int* exteriorElementBoundaries,
1670  int* elementBoundaryElements,
1671  int* elementBoundaryLocalElementBoundaries,
1672  int* isDOFBoundary_p,
1673  int* isDOFBoundary_u,
1674  int* isDOFBoundary_v,
1675  double* n,
1676  double* bc_f,
1677  double* bc_fpu,
1678  double* bc_fpv,
1679  double* f,
1680  double* fpu,
1681  double* fpv,
1682  double* df_du,
1683  double* df_dv,
1684  double* dfpu_dp,
1685  double* dfpv_dp,
1686  double* flux,
1687  double* fluxpu,
1688  double* fluxpv,
1689  double* dflux_du,
1690  double* dflux_dv,
1691  double* dfluxpu_dp,
1692  double* dfluxpv_dp);
1693 extern void calculateExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global,
1694  int nElementBoundaries_element,
1695  int nQuadraturePoints_elementBoundary,
1696  int nSpace,
1697  int* exteriorElementBoundaries,
1698  int* elementBoundaryElements,
1699  int* elementBoundaryLocalElementBoundaries,
1700  int* isDOFBoundary_p,
1701  int* isDOFBoundary_u,
1702  int* isDOFBoundary_v,
1703  int* isDOFBoundary_w,
1704  double* n,
1705  double* bc_f,
1706  double* bc_fpu,
1707  double* bc_fpv,
1708  double* bc_fpw,
1709  double* f,
1710  double* fpu,
1711  double* fpv,
1712  double* fpw,
1713  double* df_du,
1714  double* df_dv,
1715  double* df_dw,
1716  double* dfpu_dp,
1717  double* dfpv_dp,
1718  double* dfpw_dp,
1719  double* flux,
1720  double* fluxpu,
1721  double* fluxpv,
1722  double* fluxpw,
1723  double* dflux_du,
1724  double* dflux_dv,
1725  double* dflux_dw,
1726  double* dfluxpu_dp,
1727  double* dfluxpv_dp,
1728  double* dfluxpw_dp);
1729 extern void calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global,
1730  int nQuadraturePoints_elementBoundary,
1731  int nSpace,
1732  int* exteriorElementBoundaries,
1733  int* elementBoundaryElements,
1734  int* elementBoundaryLocalElementBoundaries,
1735  int* isDOFBoundary_p,
1736  int* isDOFBoundary_u,
1737  int* isDOFBoundary_v,
1738  int* isDOFBoundary_w,
1739  double* n,
1740  double* bc_f,
1741  double* bc_fpu,
1742  double* bc_fpv,
1743  double* bc_fpw,
1744  double* f,
1745  double* fpu,
1746  double* fpv,
1747  double* fpw,
1748  double* df_du,
1749  double* df_dv,
1750  double* df_dw,
1751  double* dfpu_dp,
1752  double* dfpv_dp,
1753  double* dfpw_dp,
1754  double* flux,
1755  double* fluxpu,
1756  double* fluxpv,
1757  double* fluxpw,
1758  double* dflux_du,
1759  double* dflux_dv,
1760  double* dflux_dw,
1761  double* dfluxpu_dp,
1762  double* dfluxpv_dp,
1763  double* dfluxpw_dp);
1764 extern void calculateExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global,
1765  int nElementBoundaries_element,
1766  int nQuadraturePoints_elementBoundary,
1767  int nSpace,
1768  int* exteriorElementBoundaries,
1769  int* elementBoundaryElements,
1770  int* elementBoundaryLocalElementBoundaries,
1771  int* isDOFBoundary,
1772  int* inflowFlag,
1773  double* n,
1774  double* bc_u,
1775  double* bc_f,
1776  double* bc_df,
1777  double* u,
1778  double* f,
1779  double* df,
1780  double* flux,
1781  double* dflux);
1782 extern void calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global,
1783  int nQuadraturePoints_elementBoundary,
1784  int nSpace,
1785  int* exteriorElementBoundaries,
1786  int* elementBoundaryElements,
1787  int* elementBoundaryLocalElementBoundaries,
1788  int* isDOFBoundary,
1789  int* inflowFlag,
1790  double* n,
1791  double* bc_u,
1792  double* bc_f,
1793  double* bc_df,
1794  double* u,
1795  double* f,
1796  double* df,
1797  double* flux,
1798  double* dflux);
1799 extern void updateExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global,
1800  int nElementBoundaries_element,
1801  int nQuadraturePoints_elementBoundary,
1802  int nDOF_trial_element,
1803  int* exteriorElementBoundaries,
1804  int* elementBoundaryElements,
1805  int* elementBoundaryLocalElementBoundaries,
1806  int* inflowFlag,
1807  double* dflux_left,
1808  double* v,
1809  double* fluxJacobian);
1810 extern void updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global,
1811  int nQuadraturePoints_elementBoundary,
1812  int nDOF_trial_element,
1813  int* exteriorElementBoundaries,
1814  int* elementBoundaryElements,
1815  int* elementBoundaryLocalElementBoundaries,
1816  int* inflowFlag,
1817  double* dflux_left,
1818  double* v,
1819  double* fluxJacobian);
1820 extern void updateExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global,
1821  int nElementBoundaries_element,
1822  int nQuadraturePoints_elementBoundary,
1823  int nDOF_trial_element,
1824  int* exteriorElementBoundaries,
1825  int* elementBoundaryElements,
1826  int* elementBoundaryLocalElementBoundaries,
1827  int* inflowFlag,
1828  double* dflux_left,
1829  double* v,
1830  double* fluxJacobian);
1831 extern void updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global,
1832  int nQuadraturePoints_elementBoundary,
1833  int nDOF_trial_element,
1834  int* exteriorElementBoundaries,
1835  int* elementBoundaryElements,
1836  int* elementBoundaryLocalElementBoundaries,
1837  int* inflowFlag,
1838  double* dflux_left,
1839  double* v,
1840  double* fluxJacobian);
1841 extern void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global,
1842  int nElementBoundaries_element,
1843  int nQuadraturePoints_elementBoundary,
1844  int nSpace,
1845  int* exteriorElementBoundaries,
1846  int* elementBoundaryElements,
1847  int* elementBoundaryLocalElementBoundaries,
1848  double* n,
1849  double* u,
1850  double* a,
1851  double* phi_bc,
1852  double* phi,
1853  double* V,
1854  double* penalty,
1855  double* flux);
1856 extern void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global,
1857  int nElementBoundaries_element,
1858  int nQuadraturePoints_elementBoundary,
1859  int nSpace,
1860  int* rowptr,
1861  int* colind,
1862  int* exteriorElementBoundaries,
1863  int* elementBoundaryElements,
1864  int* elementBoundaryLocalElementBoundaries,
1865  double* n,
1866  double* u,
1867  double* a,
1868  double* phi_bc,
1869  double* phi,
1870  double* V,
1871  double* penalty,
1872  double* flux);
1873 extern void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int* isDiffusiveFluxBoundary,
1874  int nExteriorElementBoundaries_global,
1875  int nElementBoundaries_element,
1876  int nQuadraturePoints_elementBoundary,
1877  int nDOF_trial_element,
1878  int nSpace,
1879  int* exteriorElementBoundaries,
1880  int* elementBoundaryElements,
1881  int* elementBoundaryLocalElementBoundaries,
1882  double* n,
1883  double* a,
1884  double* da,
1885  double* dphi,
1886  double* V,
1887  double* DV,
1888  double* DV_eb,
1889  double* v,
1890  double* penalty,
1891  double* fluxJacobian,
1892  double* fluxJacobian_eb);
1893 extern void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int* isDiffusiveFluxBoundary,
1894  int nExteriorElementBoundaries_global,
1895  int nElementBoundaries_element,
1896  int nQuadraturePoints_elementBoundary,
1897  int nDOF_trial_element,
1898  int nSpace,
1899  int* rowptr,
1900  int* colind,
1901  int* exteriorElementBoundaries,
1902  int* elementBoundaryElements,
1903  int* elementBoundaryLocalElementBoundaries,
1904  double* n,
1905  double* a,
1906  double* da,
1907  double* dphi,
1908  double* V,
1909  double* DV,
1910  double* DV_eb,
1911  double* v,
1912  double* penalty,
1913  double* fluxJacobian,
1914  double* fluxJacobian_eb);
1915 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int* isDiffusiveFluxBoundary,
1916  int nExteriorElementBoundaries_global,
1917  int nElementBoundaries_element,
1918  int nQuadraturePoints_elementBoundary,
1919  int nDOF_trial_element,
1920  int nSpace,
1921  int* exteriorElementBoundaries,
1922  int* elementBoundaryElements,
1923  int* elementBoundaryLocalElementBoundaries,
1924  double* n,
1925  double* a,
1926  double* da,
1927  double* dphi,
1928  double* V,
1929  double* DV,
1930  double* DV_eb,
1931  double* v,
1932  double* penalty,
1933  double* fluxJacobian_exterior,
1934  double* fluxJacobian_eb);
1935 extern void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int* isDiffusiveFluxBoundary,
1936  int nExteriorElementBoundaries_global,
1937  int nElementBoundaries_element,
1938  int nQuadraturePoints_elementBoundary,
1939  int nDOF_trial_element,
1940  int nSpace,
1941  int* rowptr,
1942  int* colind,
1943  int* exteriorElementBoundaries,
1944  int* elementBoundaryElements,
1945  int* elementBoundaryLocalElementBoundaries,
1946  double* n,
1947  double* a,
1948  double* da,
1949  double* dphi,
1950  double* V,
1951  double* DV,
1952  double* DV_eb,
1953  double* v,
1954  double* penalty,
1955  double* fluxJacobian_exterior,
1956  double* fluxJacobian_eb);
1957 extern void calculateExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global,
1958  int nElementBoundaries_element,
1959  int nQuadraturePoints_elementBoundary,
1960  int nSpace,
1961  int speedEvalFlag,
1962  int* exteriorElementBoundaries,
1963  int* elementBoundaryElements,
1964  int* elementBoundaryLocalElementBoundaries,
1965  int* isDOFBoundary,
1966  int* inflowFlag,
1967  double* n,
1968  double* bc_u,
1969  double* bc_H,
1970  double* bc_dH,
1971  double* u,
1972  double* H,
1973  double* dH,
1974  double* flux,
1975  double* dflux);
1976 extern void calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global,
1977  int nQuadraturePoints_elementBoundary,
1978  int nSpace,
1979  int speedEvalFlag,
1980  int* exteriorElementBoundaries,
1981  int* elementBoundaryElements,
1982  int* elementBoundaryLocalElementBoundaries,
1983  int* isDOFBoundary,
1984  int* inflowFlag,
1985  double* n,
1986  double* bc_u,
1987  double* bc_H,
1988  double* bc_dH,
1989  double* u,
1990  double* H,
1991  double* dH,
1992  double* flux,
1993  double* dflux);
1994 extern void calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(int nExteriorElementBoundaries_global,
1995  int nQuadraturePoints_elementBoundary,
1996  int nSpace,
1997  int* exteriorElementBoundaries,
1998  int* elementBoundaryElements,
1999  int* elementBoundaryLocalElementBoundaries,
2000  int* isDOFBoundary_sw,
2001  int* isDOFBoundary_psiw,
2002  double* n,
2003  double* bc_sw,
2004  double* bc_psiw,
2005  double* bc_fw,
2006  double* bc_dfw_dsw,
2007  double* bc_dfw_dpsiw,
2008  double* bc_fn,
2009  double* bc_dfn_dsw,
2010  double* bc_dfn_dpsiw,
2011  double* sw,
2012  double* psiw,
2013  double* fw,
2014  double* dfw_dsw,
2015  double* dfw_dpsiw,
2016  double* fn,
2017  double* dfn_dsw,
2018  double* dfn_dpsiw,
2019  double* fluxw,
2020  double* dfluxw_dsw,
2021  double* dfluxw_dpsiw,
2022  double* fluxn,
2023  double* dfluxn_dsw,
2024  double* dfluxn_dpsiw);
2025 extern void calculateGlobalExteriorNumericalFluxDarcySplitPressure(int nExteriorElementBoundaries_global,
2026  int nQuadraturePoints_elementBoundary,
2027  int nSpace,
2028  const int* exteriorElementBoundaries,
2029  const int* elementBoundaryElements,
2030  const int* elementBoundaryLocalElementBoundaries,
2031  const int* isDOFBoundary_u,
2032  const double* n,
2033  const double* bc_a,
2034  const double* bc_grad_phi,
2035  const double* bc_psi_w,
2036  const double* bc_psi_n,
2037  const double* a,
2038  const double* grad_phi,
2039  const double* psi_w,
2040  const double* psi_n,
2041  const double* penalty,
2042  double* diffusiveFlux);
2043 extern void calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(int nExteriorElementBoundaries_global,
2044  int nQuadraturePoints_elementBoundary,
2045  int nSpace,
2046  const int* rowptr,
2047  const int* colind,
2048  const int* exteriorElementBoundaries,
2049  const int* elementBoundaryElements,
2050  const int* elementBoundaryLocalElementBoundaries,
2051  const int* isDOFBoundary_u,
2052  const double* n,
2053  const double* bc_a,
2054  const double* bc_grad_phi,
2055  const double* bc_psi_w,
2056  const double* bc_psi_n,
2057  const double* a,
2058  const double* grad_phi,
2059  const double* psi_w,
2060  const double* psi_n,
2061  const double* penalty,
2062  double* diffusiveFlux);
2064  double penalty_floor,
2065  int nExteriorElementBoundaries_global,
2066  int nQuadraturePoints_elementBoundary,
2067  int nDOF_trial_element,
2068  int nSpace,
2069  int* rowptr,
2070  int* colind,
2071  int* l2g,
2072  int* exteriorElementBoundaries,
2073  int* elementBoundaryElements,
2074  int* elementBoundaryLocalElementBoundaries,
2075  int* isDOFBoundary,
2076  int* fluxBoundaryFlag,
2077  double* n,
2078  double* a,
2079  double* da,
2080  double* grad_phi,
2081  double* dphi,
2082  double* v,
2083  double* grad_v,
2084  double* penalty,
2085  double* fluxJacobian);
2086 extern void calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(int nExteriorElementBoundaries_global,
2087  int nQuadraturePoints_elementBoundary,
2088  int nSpace,
2089  int* exteriorElementBoundaries,
2090  int* elementBoundaryElements,
2091  int* elementBoundaryLocalElementBoundaries,
2092  int *isDOFBoundary_p,
2093  int *isDOFBoundary_u,
2094  int *isDOFBoundary_v,
2095  double* n,
2096  double* bc_p,
2097  double* bc_f_mass,
2098  double* p,
2099  double* f_mass,
2100  double* df_mass_du,
2101  double* df_mass_dv,
2102  double* flux_mass,
2103  double* flux_umom,
2104  double* flux_vmom,
2105  double* dflux_mass_du,
2106  double* dflux_mass_dv,
2107  double* dflux_umom_dp,
2108  double* dflux_vmom_dp,
2109  double* velocity);
2110 extern void calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor,
2111  int nInteriorElementBoundaries_global,
2112  int nElementBoundaries_element,
2113  int nQuadraturePoints_elementBoundary,
2114  int nQuadraturePoints_element,
2115  int nSpace,
2116  int* interiorElementBoundaries,
2117  int* elementBoundaryElements,
2118  int* elementBoundaryLocalElementBoundaries,
2119  double* n,
2120  double* u,
2121  double* f,
2122  double* df,
2123  double* df_element,
2124  double* flux,
2125  double* dflux_left,
2126  double* dflux_right);
2127 #endif
updateExteriorNumericalDiffusiveFluxJacobian_free
void updateExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3593
calculateGlobalExteriorNumericalStressFlux
void calculateGlobalExteriorNumericalStressFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_u, double *bc_v, double *bc_w, double *sigma, double *u, double *v, double *w, double *penalty, double *stressFlux_u, double *stressFlux_v, double *stressFlux_w)
Definition: numericalFlux.c:14530
updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Update the advective flux at at interior element boundaries.
Definition: numericalFlux.c:8169
calculateGlobalExteriorNumericalAdvectiveFlux_NoBC
void calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior element boundaries.
Definition: numericalFlux.c:4379
calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *u, double *f, double *lambda_bar_element, double *flux)
Definition: numericalFlux.c:784
updateExteriorNumericalDiffusiveFluxJacobian
void updateExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Update the diffusive flux Jacobian at exterior element boundary quadrature points.
Definition: numericalFlux.c:2743
w
#define w(x)
Definition: jf.h:22
calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D
void calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *f, double *fpu, double *fpv, double *df_du, double *df_dv, double *dfpu_dp, double *dfpv_dp, double *flux, double *fluxpu, double *fluxpv, double *dflux_du, double *dflux_dv, double *dfluxpu_dp, double *dfluxpv_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6472
updateGlobalExteriorNumericalDiffusiveFluxJacobian
void updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Update the diffusive flux Jacobian at exterior element boundary quadrature points.
Definition: numericalFlux.c:2973
calculateExteriorNumericalAdvectiveFluxStokesP2D
void calculateExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *f, double *fpu, double *fpv, double *df_du, double *df_dv, double *dfpu_dp, double *dfpv_dp, double *flux, double *fluxpu, double *fluxpv, double *dflux_du, double *dflux_dv, double *dfluxpu_dp, double *dfluxpv_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4918
calculateGlobalExteriorNumericalFluxDarcyFCPP_sd
void calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_psi_w, const double *bc_psi_c, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:12150
calculateGlobalExteriorNumericalDiffusiveFlux
void calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: numericalFlux.c:2093
calculateGlobalExteriorNumericalFluxDarcyFC_sd
void calculateGlobalExteriorNumericalFluxDarcyFC_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_s_w, const double *bc_psi_w, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *s_w, const double *psi_w, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:10994
calculateGlobalExteriorNumericalFluxDarcySplitPressure
void calculateGlobalExteriorNumericalFluxDarcySplitPressure(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_u, const double *n, const double *bc_a, const double *bc_grad_phi, const double *bc_psi_w, const double *bc_psi_n, const double *a, const double *grad_phi, const double *psi_w, const double *psi_n, const double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:12997
calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *s_w, const double *psi_w, const double *psi_n, const double *dpsi_n_dsw, const double *dpsi_n_dpsiw, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:11496
calculateExteriorNumericalDiffusiveFlux_free_sd
void calculateExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2580
updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3077
updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Definition: numericalFlux.c:8347
f
Double f
Definition: Headers.h:64
calculateExteriorLesaintRaviartNumericalFlux
void calculateExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_H, double *bc_dH, double *u, double *H, double *dH, double *flux, double *dflux)
Definition: numericalFlux.c:9569
updateGlobalExteriorNumericalDiffusiveFluxJacobian_free
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3768
calculateGlobalExteriorNumericalAdvectiveFlux
void calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4632
calculateExteriorNumericalDiffusiveFlux_LDG_upwind
void calculateExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:8525
calculateGlobalExteriorNumericalFluxDarcyFC
void calculateGlobalExteriorNumericalFluxDarcyFC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_s_w, const double *bc_psi_w, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *s_w, const double *psi_w, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:10839
calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8715
updateExteriorNumericalAdvectiveFluxJacobian_free
void updateExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Definition: numericalFlux.c:7885
calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint
void calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, double sonicFlux, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries for simple scalar nonlinear hyperbolic...
Definition: numericalFlux.c:14
updateExteriorNumericalStressFluxJacobian
void updateExteriorNumericalStressFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, int *isStressBoundary_u, int *isStressBoundary_v, int *isStressBoundary_w, double *n, double *dstress_u_u, double *dstress_u_v, double *dstress_u_w, double *dstress_v_u, double *dstress_v_v, double *dstress_v_w, double *dstress_w_u, double *dstress_w_v, double *dstress_w_w, double *v, double *grad_v, double *penalty, double *fluxJacobian_u_u, double *fluxJacobian_u_v, double *fluxJacobian_u_w, double *fluxJacobian_v_u, double *fluxJacobian_v_v, double *fluxJacobian_v_w, double *fluxJacobian_w_u, double *fluxJacobian_w_v, double *fluxJacobian_w_w)
Definition: numericalFlux.c:14592
n
Int n
Definition: Headers.h:28
updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
update the flux Jacobian with the advective flux contribution at at exterior element boundaries
Definition: numericalFlux.c:8779
df
double df(double C, double b, double a, int q, int r)
Definition: analyticalSolutions.c:2209
phi
Double phi
Definition: Headers.h:76
calculateInteriorNumericalFluxShallowWater_2D
void calculateInteriorNumericalFluxShallowWater_2D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *hv, double *flux_h, double *flux_hu, double *flux_hv)
Definition: numericalFlux.c:13456
calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *f_m, const double *df_m_dw, const double *a_wm, const double *da_wm_dw, const double *da_wm_dm, const double *a_mw, const double *da_mw_dw, const double *da_mw_dm, const double *a_mm, const double *da_mm_dw, const double *da_mm_dm, const double *grad_phi_w, const double *grad_phi_m, const double *dphi_w_w, const double *dphi_w_m, const double *dphi_m_w, const double *dphi_m_m, const double *u_w, const double *u_m, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_m, double *fluxJacobian_ww, double *fluxJacobian_wm, double *fluxJacobian_mw, double *fluxJacobian_mm)
Definition: numericalFlux.c:10135
calculateExteriorNumericalDiffusiveFlux_free
void calculateExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2523
calculateInteriorNumericalAdvectiveFluxRusanov
void calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *df_element, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:179
updateInteriorTwoSidedNumericalFluxJacobian
void updateInteriorTwoSidedNumericalFluxJacobian(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dflux_left, double *dflux_right, double *v, double *fluxJacobian_2sided)
Calculate the two-sided flux jacobian at at interior element boundaries.
Definition: numericalFlux.c:4145
calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC
void calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_sw, int *isDOFBoundary_psiw, double *n, double *bc_sw, double *bc_psiw, double *bc_fw, double *bc_dfw_dsw, double *bc_dfw_dpsiw, double *bc_fn, double *bc_dfn_dsw, double *bc_dfn_dpsiw, double *sw, double *psiw, double *fw, double *dfw_dsw, double *dfw_dpsiw, double *fn, double *dfn_dsw, double *dfn_dpsiw, double *fluxw, double *dfluxw_dsw, double *dfluxw_dpsiw, double *fluxn, double *dfluxn_dsw, double *dfluxn_dpsiw)
Calculate the advective (gravity) flux at at exterior element boundaries for Darcy FC does not upwind...
Definition: numericalFlux.c:11842
calculateInteriorNumericalFluxShallowWaterHLL_1D
void calculateInteriorNumericalFluxShallowWaterHLL_1D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13610
calculateGlobalExteriorInflowNumericalAdvectiveFlux
void calculateGlobalExteriorInflowNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *inflowFlux, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior inflow element boundaries.
Definition: numericalFlux.c:7765
calculateGlobalExteriorNumericalAdvectiveFlux_free
void calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Definition: numericalFlux.c:4856
calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_wm, int *colind_wm, int *rowptr_mw, int *colind_mw, int *rowptr_mm, int *colind_mm, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *f_m, const double *df_m_dw, const double *a_wm, const double *da_wm_dw, const double *da_wm_dm, const double *a_mw, const double *da_mw_dw, const double *da_mw_dm, const double *a_mm, const double *da_mm_dw, const double *da_mm_dm, const double *grad_phi_w, const double *grad_phi_m, const double *dphi_w_w, const double *dphi_w_m, const double *dphi_m_w, const double *dphi_m_m, const double *u_w, const double *u_m, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_m, double *fluxJacobian_ww, double *fluxJacobian_wm, double *fluxJacobian_mw, double *fluxJacobian_mm)
Definition: numericalFlux.c:10490
calculateExteriorNumericalAdvectiveFlux_NoBC
void calculateExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior element boundaries.
Definition: numericalFlux.c:4315
calculateExteriorNumericalFluxRichards_sd
void calculateExteriorNumericalFluxRichards_sd(int *rowptr, int *colind, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *isSeepageFace, int *isDOFBoundary, double *n, double *bc_u, double *K, double *grad_psi, double *u, double *K_rho_g, double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:14274
H
Double H
Definition: Headers.h:65
calculateGlobalExteriorNumericalDiffusiveFlux_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2165
updateGlobalExteriorNumericalAdvectiveFluxJacobian
void updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Calculate the advective flux at global exterior element boundaries.
Definition: numericalFlux.c:7844
calculateGlobalExteriorNumericalAdvectiveFluxStokes2D
void calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *p, double *f_mass, double *df_mass_du, double *df_mass_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_vmom_dp, double *velocity)
Apply basic pressure boundary penalty term for Stokes.
Definition: numericalFlux.c:7186
calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *lambda_bar_element, double *flux)
Definition: numericalFlux.c:591
updateExteriorNumericalDiffusiveFluxJacobian_sd
void updateExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:2856
updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian_exterior, double *fluxJacobian_eb)
update the flux Jacobian with the advective flux contribution at at exterior element boundaries
Definition: numericalFlux.c:9025
v
Double v
Definition: Headers.h:95
calculateInteriorNumericalAdvectiveFlux
void calculateInteriorNumericalAdvectiveFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:3927
updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3846
updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd
void updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *fluxBoundaryFlag, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:14945
calculateInteriorNumericalDiffusiveFlux_LDG_upwind
void calculateInteriorNumericalDiffusiveFlux_LDG_upwind(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:7996
calculateInteriorNumericalDiffusiveFlux
void calculateInteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at interior element boundary quadrature points.
Definition: numericalFlux.c:891
calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd
void calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *rowptr, const int *colind, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_u, const double *n, const double *bc_a, const double *bc_grad_phi, const double *bc_psi_w, const double *bc_psi_n, const double *a, const double *grad_phi, const double *psi_w, const double *psi_n, const double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:13079
calculateGlobalExteriorNumericalFluxDarcyFCPP
void calculateGlobalExteriorNumericalFluxDarcyFCPP(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_psi_w, const double *bc_psi_c, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:11992
calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *u, double *f, double *lambda_bar, double *flux)
Definition: numericalFlux.c:692
calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D
void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *p, double *oneByRho, double *f_mass, double *f_umom, double *f_vmom, double *df_mass_du, double *df_mass_dv, double *df_umom_dp, double *df_umom_du, double *df_umom_dv, double *df_vmom_dp, double *df_vmom_du, double *df_vmom_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_dp, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv, double *velocity)
Definition: numericalFlux.c:5328
calculateGlobalExteriorNumericalDiffusiveFlux_free
void calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2638
u
Double u
Definition: Headers.h:89
calculateExteriorNumericalAdvectiveFluxNavierStokes2D
void calculateExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *p, double *f_mass, double *f_umom, double *f_vmom, double *df_mass_du, double *df_mass_dv, double *df_umom_du, double *df_umom_dv, double *df_vmom_du, double *df_vmom_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv)
Definition: numericalFlux.c:5117
calculateGlobalExteriorNumericalAdvectiveFluxRusanov
void calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *df_element, double *flux, double *dflux)
Definition: numericalFlux.c:463
calculateGlobalExteriorNumericalFluxDarcyFCFF
void calculateGlobalExteriorNumericalFluxDarcyFCFF(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *bc_f_m, const double *bc_a_wm, const double *bc_a_mw, const double *bc_a_mm, const double *bc_grad_phi_w, const double *bc_grad_phi_m, const double *bc_u_w, const double *bc_u_m, const double *f_m, const double *df_m_dw, const double *a_wm, const double *a_mw, const double *a_mm, const double *grad_phi_w, const double *grad_phi_m, const double *u_w, const double *u_m, const double *penalty_w, const double *penalty_m, double *advectiveFlux_m, double *dadvectiveFlux_m_dw, double *diffusiveFlux_wm, double *diffusiveFlux_mw, double *diffusiveFlux_mm)
Definition: numericalFlux.c:9773
calculateInteriorNumericalAdvectiveFlux_average
void calculateInteriorNumericalAdvectiveFlux_average(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:4233
updateInteriorNumericalDiffusiveFluxJacobian_sd
void updateInteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:1431
calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D
void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *bc_f_wmom, double *p, double *f_mass, double *f_umom, double *f_vmom, double *f_wmom, double *df_mass_du, double *df_mass_dv, double *df_mass_dw, double *df_umom_dp, double *df_umom_du, double *df_umom_dv, double *df_umom_dw, double *df_vmom_dp, double *df_vmom_du, double *df_vmom_dv, double *df_vmom_dw, double *df_wmom_dp, double *df_wmom_du, double *df_wmom_dv, double *df_wmom_dw, double *flux_mass, double *flux_umom, double *flux_vmom, double *flux_wmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_mass_dw, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_umom_dw, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv, double *dflux_vmom_dw, double *dflux_wmom_dp, double *dflux_wmom_du, double *dflux_wmom_dv, double *dflux_wmom_dw, double *velocity)
Definition: numericalFlux.c:5735
calculateExteriorNumericalDiffusiveFlux
void calculateExteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: numericalFlux.c:1930
updateExteriorNumericalDiffusiveFluxJacobian_free_sd
void updateExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3680
updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian_exterior, double *fluxJacobian_eb)
Definition: numericalFlux.c:9138
calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *dpsi_n_dpsiw, const double *dpsi_n_dpsic, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:12307
calculateGlobalExteriorLesaintRaviartNumericalFlux
void calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_H, double *bc_dH, double *u, double *H, double *dH, double *flux, double *dflux)
Definition: numericalFlux.c:9675
calculateExteriorNumericalFluxShallowWater_1D
void calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lv, double *hu_lv, double *h_rv, double *hu_rv, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13416
calculateInteriorLesaintRaviartNumericalFlux
void calculateInteriorLesaintRaviartNumericalFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *H, double *dH, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:9435
calculateExteriorNumericalAdvectiveFluxStokesP3D
void calculateExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *bc_fpw, double *f, double *fpu, double *fpv, double *fpw, double *df_du, double *df_dv, double *df_dw, double *dfpu_dp, double *dfpv_dp, double *dfpw_dp, double *flux, double *fluxpu, double *fluxpv, double *fluxpw, double *dflux_du, double *dflux_dv, double *dflux_dw, double *dfluxpu_dp, double *dfluxpv_dp, double *dfluxpw_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6650
updateInteriorNumericalDiffusiveFluxJacobian
void updateInteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Calculate the diffusive flux Jacobian at interior element boundary quadrature points.
Definition: numericalFlux.c:1255
calculateExteriorNumericalAdvectiveFlux_free
void calculateExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Definition: numericalFlux.c:4789
calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *s_w, const double *psi_w, const double *psi_n, const double *dpsi_n_dsw, const double *dpsi_n_dpsiw, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:11151
calculateExteriorNumericalAdvectiveFlux_average
void calculateExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:7633
calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8081
calculateInteriorNumericalDiffusiveFlux_sd
void calculateInteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:987
calculateInteriorNumericalFluxShallowWater_1D
void calculateInteriorNumericalFluxShallowWater_1D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13365
calculateGlobalExteriorNumericalFluxDarcyFCFF_sd
void calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_wm, int *colind_wm, int *rowptr_mw, int *colind_mw, int *rowptr_mm, int *colind_mm, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *bc_f_m, const double *bc_a_wm, const double *bc_a_mw, const double *bc_a_mm, const double *bc_grad_phi_w, const double *bc_grad_phi_m, const double *bc_u_w, const double *bc_u_m, const double *f_m, const double *df_m_dw, const double *a_wm, const double *a_mw, const double *a_mm, const double *grad_phi_w, const double *grad_phi_m, const double *u_w, const double *u_m, const double *penalty_w, const double *penalty_m, double *advectiveFlux_m, double *dadvectiveFlux_m_dw, double *diffusiveFlux_wm, double *diffusiveFlux_mw, double *diffusiveFlux_mm)
Definition: numericalFlux.c:9952
calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8588
calculateExteriorNumericalAdvectiveFluxRusanov
void calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *df_element, double *flux, double *dflux)
Definition: numericalFlux.c:326
calculateDiffusionMatrixSplittings_LDG_sd
void calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nQuadraturePoints_elementBoundary, int nSpace, const int *rowptr, const int *colind, const double *ebq_a, const double *q_a, double *eb_aHat, double *eb_aTilde, double *aHat, double *aTilde)
Definition: numericalFlux.c:9255
calculateExteriorNumericalDiffusiveFlux_sd
void calculateExteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2010
setInflowFlux
void setInflowFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *exteriorElementBoundaries, double *inflowFlux, double *flux)
Set the advective flux boundary condition at exterior element boundaries from the current exterior fl...
Definition: numericalFlux.c:7973
updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Definition: numericalFlux.c:8901
calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind
void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at global exterior element boundaries.
Definition: numericalFlux.c:8655
calculateGlobalExteriorNumericalDiffusiveFlux_free_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2688
calculateExteriorNumericalAdvectiveFlux
void calculateExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4439
calculateGlobalExteriorNumericalAdvectiveFluxStokes3D
void calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_p, double *bc_f_mass, double *p, double *f_mass, double *df_mass_du, double *df_mass_dv, double *df_mass_dw, double *flux_mass, double *flux_umom, double *flux_vmom, double *flux_wmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_mass_dw, double *dflux_umom_dp, double *dflux_vmom_dp, double *dflux_wmom_dp, double *velocity)
Definition: numericalFlux.c:7369
calculateInteriorChengShuNumericalFlux
void calculateInteriorChengShuNumericalFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int speedEvalFlag, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *H, double *dH, double *H_element, double *dH_element, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:13937
calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *dpsi_n_dpsiw, const double *dpsi_n_dpsic, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:12652
calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D
void calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *bc_fpw, double *f, double *fpu, double *fpv, double *fpw, double *df_du, double *df_dv, double *df_dw, double *dfpu_dp, double *dfpv_dp, double *dfpw_dp, double *flux, double *fluxpu, double *fluxpv, double *fluxpw, double *dflux_du, double *dflux_dv, double *dflux_dw, double *dfluxpu_dp, double *dfluxpv_dp, double *dfluxpw_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6934
updateExteriorNumericalAdvectiveFluxJacobian
void updateExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Calculate the advective flux at exterior element boundaries.
Definition: numericalFlux.c:7797
updateInteriorNumericalAdvectiveFluxJacobian
void updateInteriorNumericalAdvectiveFluxJacobian(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dflux_left, double *dflux_right, double *v, double *fluxJacobian)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:4092
calculateExteriorNumericalFluxShallowWaterHLL_1D
void calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lv, double *hu_lv, double *h_rv, double *hu_rv, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13804
calculateGlobalExteriorNumericalAdvectiveFlux_average
void calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:7711
calculateExteriorNumericalFluxShallowWater_2D
void calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lq, double *hu_lq, double *hv_lq, double *h_rq, double *hu_rq, double *hv_rq, double *flux_h, double *flux_hu, double *flux_hv)
Definition: numericalFlux.c:13541
updateGlobalExteriorNumericalAdvectiveFluxJacobian_free
void updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Definition: numericalFlux.c:7923
calculateExteriorNumericalFluxJacobianRichards_sd
void calculateExteriorNumericalFluxJacobianRichards_sd(int *rowptr, int *colind, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *isDOFBoundary, double *n, double *bc_u, double *K, double *dK, double *grad_psi, double *grad_v, double *u, double *dK_rho_g, double *v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:14365