proteus  1.8.1
C/C++/Fortran libraries
femIntegrals.h
Go to the documentation of this file.
1 #ifndef FEMINTEGRALS_H
2 #define FEMINTEGRALS_H
3 
15 extern void parametricFiniteElementSpace_getHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *Hessian_psi, double *inverseJacobianArray, double *Hessian_vArray);
16 extern void updateDiffusion2_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *a, double *Hess_phi, double *strong_residual);
17 extern void updateDiffusion2_strong_sd(int nElements_global, int nQuadraturePoints_element,int nSpace, int* rowptr, int* colind, double* a, double* Hess_phi, double* strong_residual);
18 extern void updateDiffusionJacobian2_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, int *l2g, double *a, double *da, double *v, double *Hess_phi, double *dphi, double *Hess_v, double *dstrong_residual);
19 extern void updateDiffusionJacobian2_strong_sd(int nElements_global,
20  int nQuadraturePoints_element,
21  int nDOF_trial_element,
22  int nSpace,
23  int* rowptr,
24  int* colind,
25  int* l2g,
26  double* a,
27  double* da,
28  double* v,
29  double* Hess_phi,
30  double* dphi,
31  double* Hess_v,
32  double* dstrong_residual);
33 extern void updateDiffusion2_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *a, double *Hess_w_dV, double *Lstar_w_dV);
34 void updateDiffusion2_adjoint_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, int* rowptr, int* colind, double* a, double* Hess_w_dV, double* Lstar_w_dV);
35 extern void calculateWeightedShapeHessians(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *dVR, double *abs_det_jac, double *Hess_w, double *Hess_w_dV);
36 extern void calculateFiniteElementFunctionHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nComponents, int nSpace, int *l2g, double *dof, double *Hessian_v, double *Hessian_u);
37 extern void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementBoundaryFluxJacobian_2sided, double *w_dS, double *jac);
38 extern void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian_2sided, double *w_dS, double *jac);
39 extern void updateInteriorTwoSidedElementBoundaryFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *flux, double *w_dS, double *residual);
40 extern void calculateCFLADR2speeds(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df1, double *df2, double *cfl);
41 extern int checkElementBoundaryAndExteriorElementBoundaryArraysSame(int nElementBoundaries_element, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, double tolerance, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, const double *ebq_val, const double *ebqe_val, int *firstBadIndex);
42 extern int checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, double tolerance, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, const double *ebq_global_val, const double *ebqe_val, int *firstBadIndex);
43 extern void calculateExteriorElementBoundaryStress3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *elementBoundaryMaterialTypes, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *p, double *mom_flux_vec_u, double *mom_flux_vec_v, double *mom_flux_vec_w, double *dS, double *n, double *F);
44 extern void calculateExteriorElementBoundaryStress2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *elementBoundaryMaterialTypes, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *p, double *mom_flux_vec_u, double *mom_flux_vec_v, double *dS, double *n, double *F);
45 
46 extern void copyLeftElementBoundaryInfo(
47  int nElementBoundaries_element,
48  int nElementBoundaryQuadraturePoints_elementBoundary,
49  int nSpace_global,
50  int nExteriorElementBoundaries_global,
51  int nInteriorElementBoundaries_global,
52  int *elementBoundaryElementsArray,
53  int *elementBoundaryLocalElementBoundariesArray,
54  int *exteriorElementBoundariesArray,
55  int *interiorElementBoundariesArray,
56  double *x,
57  double *n,
58  double *xg,
59  double *ng
60 );
62  int nElements_global,
63  int nQuadraturePoints_element,
64  int nDOF_element,
65  double *psi,
66  double *vArray
67 );
69  int nElements_global,
70  int nElementBoundaries_element,
71  int nElementBoundaryQuadraturePoints_elementBoundary,
72  int nDOF_element,
73  double *psi,
74  int *permutations,
75  double *vArray
76 );
78  int nElements_global,
79  int nQuadraturePoints_element,
80  int nDOF_element,
81  int nSpace_global,
82  double *grad_psi,
83  double *inverseJacobianArray,
84  double *grad_vArray
85 );
87  int nElements_global,
88  int nElementBoundaries_element,
89  int nElementBoundaryQuadraturePoints_elementBoundary,
90  int nDOF_element,
91  int nSpace_global,
92  double *grad_psi,
93  int *permutations,
94  double *inverseJacobianArray,
95  double *grad_vArray
96 );
98  int nElements_global,
99  int nElementBoundaries_element,
100  int nElementBoundaryQuadraturePoints_elementBoundary,
101  int nSpace_global,
102  double *xiArray,
103  int *permutations
104 );
105 extern void parametricMaps_getPermutationsGlobalExterior(int nElementBoundaryQuadraturePoints_elementBoundary,
106  int nSpace_global,
107  int nExteriorElementBoundaries_global,
108  const int * exteriorElementBoundariesArray,
109  const int * elementBoundaryElementsArray,
110  const int * elementBoundaryLocalElementBoundariesArray,
111  double* xiArray,
112  int* permutations);
113 extern void getPermutationsGlobal(int nElementBoundaries_global,
114  int nElementBoundaryQuadraturePoints_elementBoundary,
115  double* xArray,
116  double* xArrayNew,
117  int* permutations);
118 extern void parametricMaps_getValues(
119  int nElements_global,
120  int nQuadraturePoints_element,
121  int nDOF_element,
122  int nSpace_global,
123  double *psi,
124  int *l2g,
125  double *nodeArray,
126  double *xArray
127 );
129  int nElements_global,
130  int nElementBoundaries_element,
131  int nQuadraturePoints_element,
132  int nDOF_element,
133  int nSpace_global,
134  double *psi,
135  int *l2g,
136  double *nodeArray,
137  double *xArray
138 );
140  int nElements_global,
141  int nQuadraturePoints_element,
142  int nDOF_element,
143  int nSpace_global,
144  double *inverseJacobian,
145  int *l2g,
146  double *nodeArray,
147  double *xArray,
148  double *xiArray
149 );
151  int nElements_global,
152  int nElementBoundaries_element,
153  int nElementBoundaryQuadraturePoints_elementBoundary,
154  int nDOF_element,
155  int nSpace_global,
156  double *inverseJacobian,
157  int *l2g,
158  double *nodeArray,
159  double *xArray,
160  double *xiArray
161 );
163  int nElements_global,
164  int nQuadraturePoints_element,
165  int nDOF_element,
166  double *grad_psi,
167  int *l2g,
168  double *nodeArray,
169  double *jacobianArray,
170  double *jacobianDeterminantArray,
171  double *jacobianInverseArray
172 );
174  int nElements_global,
175  int nQuadraturePoints_element,
176  int nDOF_element,
177  double *grad_psi,
178  int *l2g,
179  double *nodeArray,
180  double *jacobianArray,
181  double *jacobianDeterminantArray,
182  double *jacobianInverseArray
183 );
185  int nElements_global,
186  int nQuadraturePoints_element,
187  int nDOF_element,
188  double *grad_psi,
189  int *l2g,
190  double *nodeArray,
191  double *jacobianArray,
192  double *jacobianDeterminantArray,
193  double *jacobianInverseArray
194 );
196  int nElements_global,
197  int nElementBoundaries_element,
198  int nQuadraturePoints_element,
199  int nDOF_element,
200  double *grad_psi,
201  double *boundaryNormals,
202  double *boundaryJacobians,
203  int *l2g,
204  double *nodeArray,
205  double *jacobianInverseArray,
206  double *metricTensorArray,
207  double *metricTensorDeterminantSqrtArray,
208  double *unitNormalArray
209 );
211  int nElements_global,
212  int nElementBoundaries_element,
213  int nQuadraturePoints_element,
214  int nDOF_element,
215  double *grad_psi,
216  double *boundaryNormals,
217  double *boundaryJacobians,
218  int *l2g,
219  double *nodeArray,
220  double *jacobianInverseArray,
221  double *metricTensorArray,
222  double *metricTensorDeterminantSqrtArray,
223  double *unitNormalArray
224 );
226  int nElements_global,
227  int nElementBoundaries_element,
228  int nQuadraturePoints_element,
229  int nDOF_element,
230  double *grad_psi,
231  double *boundaryNormals,
232  double *boundaryJacobians,
233  int *l2g,
234  double *nodeArray,
235  double *jacobianInverseArray,
236  double *metricTensorArray,
237  double *metricTensorDeterminantSqrtArray,
238  double *unitNormalArray
239 );
240 extern void updateMass_weak(
241  int nElements_global,
242  int nQuadraturePoints_element,
243  int nDOF_test_element,
244  double *mt,
245  double *w_dV,
246  double *weak_residual
247 );
248 extern void updateMassJacobian_weak(
249  int nElements_global,
250  int nQuadraturePoints_element,
251  int nDOF_trial_element,
252  int nDOF_test_element,
253  double *dmt,
254  double *v_X_w_dV,
255  double *jacobian_weak_residual
256 );
257 extern void updateMassJacobian_weak_lowmem(int nElements_global,
258  int nQuadraturePoints_element,
259  int nDOF_trial_element,
260  int nDOF_test_element,
261  double* dmt,
262  double* v,
263  double* w_dV,
264  double* jacobian_weak_residual);
265 extern void updateMass_strong(
266  int nElements_global,
267  int nQuadraturePoints_element,
268  double *mt,
269  double *strong_residual
270 );
271 extern void updateMassJacobian_strong(
272  int nElements_global,
273  int nQuadraturePoints_element,
274  int nDOF_trial_element,
275  double *dmt,
276  double *v,
277  double *dstrong_residual
278 );
279 extern void updateMass_adjoint(
280  int nElements_global,
281  int nQuadraturePoints_element,
282  int nDOF_test_element,
283  double *dmt,
284  double *w_dV,
285  double *Lstar_w_dV
286 );
287 extern void updateAdvection_weak(
288  int nElements_global,
289  int nQuadraturePoints_element,
290  int nDOF_test_element,
291  int nSpace,
292  double *f,
293  double *grad_w_dV,
294  double *weak_residual
295 );
296 extern void updateAdvectionJacobian_weak(
297  int nElements_global,
298  int nQuadraturePoints_element,
299  int nDOF_trial_element,
300  int nDOF_test_element,
301  int nSpace,
302  double *df,
303  double *v_X_grad_w_dV,
304  double *jacobian_weak_residual
305 );
306 extern void updateAdvectionJacobian_weak_lowmem(int nElements_global,
307  int nQuadraturePoints_element,
308  int nDOF_trial_element,
309  int nDOF_test_element,
310  int nSpace,
311  double* df,
312  double* v,
313  double* grad_w_dV,
314  double* jacobian_weak_residual);
315 extern void updateAdvection_strong(
316  int nElements_global,
317  int nQuadraturePoints_element,
318  int nSpace,
319  double *df,
320  double *grad_u,
321  double *strong_residual
322 );
324  int nElements_global,
325  int nQuadraturePoints_element,
326  int nDOF_trial_element,
327  int nSpace,
328  double *df,
329  double *grad_v,
330  double *dstrong_residual
331 );
332 extern void updateAdvection_adjoint(
333  int nElements_global,
334  int nQuadraturePoints_element,
335  int nDOF_test_element,
336  int nSpace,
337  double *df,
338  double *grad_w_dV,
339  double *Lstar_w_dV
340 );
341 extern void updateHamiltonian_weak(
342  int nElements_global,
343  int nQuadraturePoints_element,
344  int nDOF_test_element,
345  double *H,
346  double *w_dV,
347  double *weak_residual
348 );
350  int nElements_global,
351  int nQuadraturePoints_element,
352  int nDOF_trial_element,
353  int nDOF_test_element,
354  int nSpace,
355  double *dH,
356  double *grad_v_X_w_dV,
357  double *jacobian_weak_residual
358 );
359 extern void updateHamiltonianJacobian_weak_lowmem(int nElements_global,
360  int nQuadraturePoints_element,
361  int nDOF_trial_element,
362  int nDOF_test_element,
363  int nSpace,
364  double* dH,
365  double* grad_v,
366  double* w_dV,
367  double* jacobian_weak_residual);
368 extern void updateHamiltonian_strong(
369  int nElements_global,
370  int nQuadraturePoints_element,
371  int nSpace,
372  double *dH,
373  double *grad_u,
374  double *strong_residual
375 );
377  int nElements_global,
378  int nQuadraturePoints_element,
379  int nDOF_trial_element,
380  int nSpace,
381  double *dH,
382  double *grad_v,
383  double *dstrong_residual
384 );
385 extern void updateHamiltonian_adjoint(
386  int nElements_global,
387  int nQuadraturePoints_element,
388  int nDOF_test_element,
389  int nSpace,
390  double *dH,
391  double *grad_w_dV,
392  double *Lstar_w_dV
393 );
394 extern void updateDiffusion_weak(
395  int nElements_global,
396  int nQuadraturePoints_element,
397  int nDOF_test_element,
398  int nSpace,
399  double *a,
400  double *grad_phi_X_grad_w_dV,
401  double *weak_residual
402 );
403 extern void updateDiffusion_weak_lowmem(int nElements_global,
404  int nQuadraturePoints_element,
405  int nDOF_test_element,
406  int nSpace,
407  double* a,
408  double* grad_phi,
409  double* grad_w_dV,
410  double* weak_residual);
411 extern void updateDiffusion_weak_sd(int nElements_global,
412  int nQuadraturePoints_element,
413  int nDOF_test_element,
414  int nSpace,
415  int* rowptr,
416  int* colind,
417  double* a,
418  double* grad_phi,
419  double* grad_w_dV,
420  double* weak_residual);
421 extern void updateDiffusionJacobian_weak(
422  int nElements_global,
423  int nQuadraturePoints_element,
424  int nDOF_trial_element,
425  int nDOF_test_element,
426  int nSpace,
427  int *l2g,
428  double *a,
429  double *da,
430  double *grad_phi_X_grad_w_dV,
431  double *dphi,
432  double *v,
433  double *grad_v_X_grad_w_dV,
434  double *jacobian_weak_residual
435 );
436 extern void updateDiffusionJacobian_weak_lowmem(int nElements_global,
437  int nQuadraturePoints_element,
438  int nDOF_trial_element,
439  int nDOF_test_element,
440  int nSpace,
441  int* l2g,
442  double* a,
443  double* da,
444  double* grad_phi,
445  double* grad_w_dV,
446  double* dphi,
447  double* v,
448  double* grad_v,
449  double* jacobian_weak_residual);
450 extern void updateDiffusionJacobian_weak_sd(int nElements_global,
451  int nQuadraturePoints_element,
452  int nDOF_trial_element,
453  int nDOF_test_element,
454  int nSpace,
455  int* rowptr,
456  int* colind,
457  int* l2g,
458  double* a,
459  double* da,
460  double* grad_phi,
461  double* grad_w_dV,
462  double* dphi,
463  double* v,
464  double* grad_v,
465  double* jacobian_weak_residual);
466 extern void updateDiffusion_strong(
467  int nElements_global,
468  int nQuadraturePoints_element,
469  int nSpace,
470  double *da,
471  double *grad_phi,
472  double *grad_u,
473  double *strong_residual
474 );
475 extern void updateDiffusion_strong_sd(int nElements_global,
476  int nQuadraturePoints_element,
477  int nSpace,
478  int* rowptr,
479  int* colind,
480  double* da,
481  double* grad_phi,
482  double* grad_u,
483  double* strong_residual);
485  int nElements_global,
486  int nQuadraturePoints_element,
487  int nDOF_trial_element,
488  int nSpace,
489  int *l2g,
490  double *da,
491  double *dphi,
492  double *grad_phi,
493  double *grad_u,
494  double *grad_v,
495  double *dstrong_residual
496 );
497 extern void updateDiffusionJacobian_strong_sd(int nElements_global,
498  int nQuadraturePoints_element,
499  int nDOF_trial_element,
500  int nSpace,
501  int* rowptr,
502  int* colind,
503  int* l2g,
504  double* da,
505  double* dphi,
506  double* grad_phi,
507  double* grad_u,
508  double* grad_v,
509  double* dstrong_residual);
510 extern void updateDiffusion_adjoint(
511  int nElements_global,
512  int nQuadraturePoints_element,
513  int nDOF_test_element,
514  int nSpace,
515  double *da,
516  double *grad_phi,
517  double *grad_w_dV,
518  double *Lstar_w_dV
519 );
520 extern void updateDiffusion_adjoint_sd(int nElements_global,
521  int nQuadraturePoints_element,
522  int nDOF_test_element,
523  int nSpace,
524  int* rowptr,
525  int* colind,
526  double* da,
527  double* grad_phi,
528  double* grad_w_dV,
529  double* Lstar_w_dV);
530 extern void updateReaction_weak(
531  int nElements_global,
532  int nQuadraturePoints_element,
533  int nDOF_test_element,
534  double *r,
535  double *w_dV,
536  double *weak_residual
537 );
538 extern void updateReactionJacobian_weak(
539  int nElements_global,
540  int nQuadraturePoints_element,
541  int nDOF_trial_element,
542  int nDOF_test_element,
543  double *dr,
544  double *v_X_w_dV,
545  double *jacobian_weak_residual
546 );
547 extern void updateReactionJacobian_weak_lowmem(int nElements_global,
548  int nQuadraturePoints_element,
549  int nDOF_trial_element,
550  int nDOF_test_element,
551  double* dr,
552  double* v,
553  double* w_dV,
554  double* jacobian_weak_residual);
555 extern void updateReaction_strong(
556  int nElements_global,
557  int nQuadraturePoints_element,
558  double *r,
559  double *strong_residual
560 );
562  int nElements_global,
563  int nQuadraturePoints_element,
564  int nDOF_trial_element,
565  double *dr,
566  double *v,
567  double *dstrong_residual
568 );
569 extern void updateReaction_adjoint(
570  int nElements_global,
571  int nQuadraturePoints_element,
572  int nDOF_test_element,
573  double *dr,
574  double *w_dV,
575  double *Lstar_w_dV
576 );
577 extern void updateSubgridError(
578  int nElements_global,
579  int nQuadraturePoints_element,
580  int nDOF_test_element,
581  double *error,
582  double *Lstar_w_dV,
583  double *weak_residual
584 );
585 extern void updateSubgridErrorJacobian(
586  int nElements_global,
587  int nQuadraturePoints_element,
588  int nDOF_trial_element,
589  int nDOF_test_element,
590  double *derror,
591  double *Lstar_w_dV,
592  double *jacobian_weak_residual
593 );
594 extern void updateNumericalDiffusion(
595  int nElements_global,
596  int nQuadraturePoints_element,
597  int nDOF_test_element,
598  int nSpace,
599  double *numDiff,
600  double *grad_u_X_grad_w_dV,
601  double *weak_residual
602 );
603 extern void updateNumericalDiffusion_lowmem(int nElements_global,
604  int nQuadraturePoints_element,
605  int nDOF_test_element,
606  int nSpace,
607  double* numDiff,
608  double* grad_u,
609  double* grad_w_dV,
610  double* weak_residual);
612  int nElements_global,
613  int nQuadraturePoints_element,
614  int nDOF_trial_element,
615  int nDOF_test_element,
616  int nSpace,
617  double *numDiff,
618  double *grad_v_X_grad_w_dV,
619  double *jacobian_weak_residual
620 );
621 extern void updateNumericalDiffusionJacobian_lowmem(int nElements_global,
622  int nQuadraturePoints_element,
623  int nDOF_trial_element,
624  int nDOF_test_element,
625  int nSpace,
626  double* numDiff,
627  double* grad_v,
628  double* grad_w_dV,
629  double* jacobian_weak_residual);
630 extern void calculateScalarScalarProduct(
631  int nElements_global,
632  int nQuadraturePoints_element,
633  double *s1,
634  double *s2,
635  double *sResult
636 );
637 extern void calculateVectorScalarProduct(
638  int nElements_global,
639  int nQuadraturePoints_element,
640  int nSpace,
641  double *v,
642  double *s,
643  double *vResult
644 );
645 extern void calculateTensorScalarProduct(
646  int nElements_global,
647  int nQuadraturePoints_element,
648  int nSpace,
649  double *t,
650  double *s,
651  double *tResult
652 );
654  int nInteriorElementBoundaries_global,
655  int nElementBoundaries_element,
656  int nQuadraturePoints_elementBoundary,
657  int nDOF_test_element,
658  int *interiorElementBoundaries,
659  int *elementBoundaryElements,
660  int *elementBoundaryLocalElementBoundaries,
661  double *flux,
662  double *w_dS,
663  double *residual
664 );
666  int nExteriorElementBoundaries_global,
667  int nElementBoundaries_element,
668  int nQuadraturePoints_elementBoundary,
669  int nDOF_test_element,
670  int *exteriorElementBoundaries,
671  int *elementBoundaryElements,
672  int *elementBoundaryLocalElementBoundaries,
673  double *flux,
674  double *w_dS,
675  double *residual
676 );
678  int nElements_global,
679  int nDOF_test_element,
680  int offset_r,
681  int stride_r,
682  int *nFreeDOF_element_r,
683  int *freeLocal_r,
684  int *freeGlobal_r,
685  double *elementResidual,
686  double *globalResidual
687 );
689  int nElements_global,
690  int nDOF_test_element,
691  int nDOF_trial_element,
692  int offset_r,
693  int stride_r,
694  int offset_u,
695  int stride_u,
696  int nFreeVDOF_global,
697  int *nFreeDOF_element_r,
698  int *freeLocal_r,
699  int *freeGlobal_r,
700  int *nFreeDOF_element_u,
701  int *freeLocal_u,
702  int *freeGlobal_u,
703  double *elementJacobian,
704  double *globalJacobian
705 );
707  int *elementNeighbors,
708  int nElements_global,
709  int nElementBoundaries_element,
710  int nDOF_test_element,
711  int nDOF_trial_element,
712  int offset_r,
713  int stride_r,
714  int offset_u,
715  int stride_u,
716  int nFreeVDOF_global,
717  int *nFreeDOF_element_r,
718  int *freeLocal_r,
719  int *freeGlobal_r,
720  int *nFreeDOF_element_u,
721  int *freeLocal_u,
722  int *freeGlobal_u,
723  double *elementJacobian_eb,
724  double *globalJacobian
725 );
727  int nInteriorElementBoundaries_global,
728  int nElementBoundaries_element,
729  int nQuadraturePoints_elementBoundary,
730  int nDOF_test_element,
731  int nDOF_trial_element,
732  int offset_r,
733  int stride_r,
734  int offset_u,
735  int stride_u,
736  int nFreeVDOF_global,
737  int *interiorElementBoundaries,
738  int *elementBoundaryElements,
739  int *elementBoundaryLocalElementBoundaries,
740  int *nFreeDOF_element_r,
741  int *freeLocal_r,
742  int *freeGlobal_r,
743  int *nFreeDOF_element_u,
744  int *freeLocal_u,
745  int *freeGlobal_u,
746  double *elementBoundaryFluxJacobian,
747  double *w_dS,
748  double *jac
749 );
750 extern void
752  int *elementNeighbors,
753  int nElements_global,
754  int nInteriorElementBoundaries_global,
755  int nElementBoundaries_element,
756  int nQuadraturePoints_elementBoundary,
757  int nDOF_test_element,
758  int nDOF_trial_element,
759  int offset_r,
760  int stride_r,
761  int offset_u,
762  int stride_u,
763  int nFreeVDOF_global,
764  int *interiorElementBoundaries,
765  int *elementBoundaryElements,
766  int *elementBoundaryLocalElementBoundaries,
767  int *nFreeDOF_element_r,
768  int *freeLocal_r,
769  int *freeGlobal_r,
770  int *nFreeDOF_element_u,
771  int *freeLocal_u,
772  int *freeGlobal_u,
773  double *elementBoundaryFluxJacobian_eb,
774  double *w_dS,
775  double *jac
776 );
778  int nExteriorElementBoundaries_global,
779  int nElementBoundaries_element,
780  int nQuadraturePoints_elementBoundary,
781  int nDOF_test_element,
782  int nDOF_trial_element,
783  int offset_r,
784  int stride_r,
785  int offset_u,
786  int stride_u,
787  int nFreeVDOF_global,
788  int *exteriorElementBoundaries,
789  int *elementBoundaryElements,
790  int *elementBoundaryLocalElementBoundaries,
791  int *nFreeDOF_element_r,
792  int *freeLocal_r,
793  int *freeGlobal_r,
794  int *nFreeDOF_element_u,
795  int *freeLocal_u,
796  int *freeGlobal_u,
797  double *elementBoundaryFluxJacobian,
798  double *w_dS,
799  double *jac
800 );
801 extern void
803  int *elementNeighbors,
804  int nElements_global,
805  int nExteriorElementBoundaries_global,
806  int nElementBoundaries_element,
807  int nQuadraturePoints_elementBoundary,
808  int nDOF_test_element,
809  int nDOF_trial_element,
810  int offset_r,
811  int stride_r,
812  int offset_u,
813  int stride_u,
814  int nFreeVDOF_global,
815  int *exteriorElementBoundaries,
816  int *elementBoundaryElements,
817  int *elementBoundaryLocalElementBoundaries,
818  int *nFreeDOF_element_r,
819  int *freeLocal_r,
820  int *freeGlobal_r,
821  int *nFreeDOF_element_u,
822  int *freeLocal_u,
823  int *freeGlobal_u,
824  double *elementBoundaryFluxJacobian_eb,
825  double *w_dS,
826  double *jac
827 );
829  int nElements_global,
830  int nDOF_test_element,
831  int nDOF_trial_element,
832  int *nFreeDOF_element_r,
833  int *freeLocal_r,
834  int *nFreeDOF_element_u,
835  int *freeLocal_u,
836  int *csrRowIndeces_ru,
837  int *csrColumnOffsets_ru,
838  double *elementJacobian,
839  double *globalJacobian
840 );
842  int *elementNeighbors,
843  int nElements_global,
844  int nElementBoundaries_element,
845  int nDOF_test_element,
846  int nDOF_trial_element,
847  int *nFreeDOF_element_r,
848  int *freeLocal_r,
849  int *nFreeDOF_element_u,
850  int *freeLocal_u,
851  int *csrRowIndeces_ru,
852  int *csrColumnOffsets_eb_ru,
853  double *elementJacobian_eb,
854  double *globalJacobian
855 );
857  int nInteriorElementBoundaries_global,
858  int nElementBoundaries_element,
859  int nQuadraturePoints_elementBoundary,
860  int nDOF_test_element,
861  int nDOF_trial_element,
862  int *interiorElementBoundaries,
863  int *elementBoundaryElements,
864  int *elementBoundaryLocalElementBoundaries,
865  int *nFreeDOF_element_r,
866  int *freeLocal_r,
867  int *nFreeDOF_element_u,
868  int *freeLocal_u,
869  int *csrRowIndeces_ru,
870  int *csrColumnOffsets_eb_ru,
871  double *elementBoundaryFluxJacobian,
872  double *w_dS,
873  double *jac
874 );
876  int nExteriorElementBoundaries_global,
877  int nElementBoundaries_element,
878  int nQuadraturePoints_elementBoundary,
879  int nDOF_test_element,
880  int nDOF_trial_element,
881  int *exteriorElementBoundaries,
882  int *elementBoundaryElements,
883  int *elementBoundaryLocalElementBoundaries,
884  int *nFreeDOF_element_r,
885  int *freeLocal_r,
886  int *nFreeDOF_element_u,
887  int *freeLocal_u,
888  int *csrRowIndeces_ru,
889  int *csrColumnOffsets_eb_ru,
890  double *elementBoundaryFluxJacobian,
891  double *w_dS,
892  double *jac
893 );
895  int *elementNeighbors,
896  int nInteriorElementBoundaries_global,
897  int nElementBoundaries_element,
898  int nQuadraturePoints_elementBoundary,
899  int nDOF_test_element,
900  int nDOF_trial_element,
901  int *interiorElementBoundaries,
902  int *elementBoundaryElements,
903  int *elementBoundaryLocalElementBoundaries,
904  int *nFreeDOF_element_r,
905  int *freeLocal_r,
906  int *nFreeDOF_element_u,
907  int *freeLocal_u,
908  int *csrRowIndeces_ru,
909  int *csrColumnOffsets_eb_eNebN_ru,
910  double *elementBoundaryFluxJacobian_eb,
911  double *w_dS,
912  double *jac
913 );
915  int *elementNeighbors,
916  int nExteriorElementBoundaries_global,
917  int nElementBoundaries_element,
918  int nQuadraturePoints_elementBoundary,
919  int nDOF_test_element,
920  int nDOF_trial_element,
921  int *exteriorElementBoundaries,
922  int *elementBoundaryElements,
923  int *elementBoundaryLocalElementBoundaries,
924  int *nFreeDOF_element_r,
925  int *freeLocal_r,
926  int *nFreeDOF_element_u,
927  int *freeLocal_u,
928  int *csrRowIndeces_ru,
929  int *csrColumnOffsets_eb_eNebN_ru,
930  double *elementBoundaryFluxJacobian_eb,
931  double *w_dS,
932  double *jac
933 );
934 extern void calculateWeightedShape(
935  int nElements_global,
936  int nQuadraturePoints_element,
937  int nDOF_test_element,
938  double *dVR,
939  double *abs_det_jac,
940  double *w,
941  double *w_dV
942 );
944  int nElements_global,
945  int nQuadraturePoints_element,
946  int nDOF_test_element,
947  int nSpace,
948  double *dVR,
949  double *abs_det_jac,
950  double *grad_w,
951  double *grad_w_dV
952 );
954  int nElements_global,
955  int nQuadraturePoints_element,
956  int nDOF_trial_element,
957  int nDOF_test_element,
958  double *v,
959  double *w_dV,
960  double *v_X_w_dV
961 );
963  int nElements_global,
964  int nQuadraturePoints_element,
965  int nDOF_trial_element,
966  int nDOF_test_element,
967  int nSpace,
968  double *v,
969  double *grad_w_dV,
970  double *v_X_grad_w_dV
971 );
973  int nElements_global,
974  int nQuadraturePoints_element,
975  int nDOF_trial_element,
976  int nDOF_test_element,
977  int nSpace,
978  double *grad_v,
979  double *w_dV,
980  double *grad_v_X_w_dV
981 );
983  int nElements_global,
984  int nQuadraturePoints_element,
985  int nDOF_trial_element,
986  int nDOF_test_element,
987  int nSpace,
988  double *grad_v,
989  double *grad_w_dV,
990  double *grad_v_X_grad_w_dV
991 );
992 extern void calculateWeightedShapeTrace(
993  int nElements_global,
994  int nElementBoundaries_element,
995  int nElementBoundaryQuadraturePoints_elementBoundary,
996  int nDOF_test_element,
997  double *dSR,
998  double *sqrt_det_g,
999  double *w,
1000  double *w_dS
1001 );
1003  int nElements_global,
1004  int nElementBoundaries_element,
1005  int nElementBoundaryQuadraturePoints_elementBoundary,
1006  int nDOF_trial_element,
1007  int nDOF_test_element,
1008  double *v,
1009  double *w_dS,
1010  double *v_X_w_dS
1011 );
1013  int nElements_global,
1014  int nElementBoundaries_element,
1015  int nElementBoundaryQuadraturePoints_elementBoundary,
1016  int nDOF_trial_element,
1017  int nDOF_test_element,
1018  int nSpace,
1019  double *grad_v,
1020  double *w_dS,
1021  double *grad_v_X_w_dS
1022 );
1023 extern void calculateIntegrationWeights(
1024  int nElements_global,
1025  int nQuadraturePoints_element,
1026  double *abs_det_J,
1027  double *referenceWeights,
1028  double *weights
1029 );
1031  int nElements_global,
1032  int nElementBoundaries_element,
1033  int nQuadraturePoints_elementBoundary,
1034  double *sqrt_det_g,
1035  double *referenceWeights,
1036  double *weights
1037 );
1039  int nElements_global,
1040  int nQuadraturePoints_element,
1041  int nDOF_trial_element,
1042  int nComponents,
1043  int *l2g,
1044  double *dof,
1045  double *v,
1046  double *u
1047 );
1049  int nElements_global,
1050  int nQuadraturePoints_element,
1051  int nDOF_trial_element,
1052  int nComponents,
1053  int nSpace,
1054  int *l2g,
1055  double *dof,
1056  double *grad_v,
1057  double *grad_u
1058 );
1060  int nElements_global,
1061  int nQuadraturePoints_element,
1062  int nDOF_trial_element,
1063  int nDOF_test_element,
1064  int nComponents,
1065  int nSpace,
1066  int *l2g,
1067  double *dof,
1068  double *grad_v_X_grad_w_dV,
1069  double *grad_u_X_grad_w_dV
1070 );
1072  int nElements_global,
1073  int nElementBoundaries_element,
1074  int nQuadraturePoints_elementBoundary,
1075  int nDOF_trial_element,
1076  int nComponents,
1077  int *l2g,
1078  double *dof,
1079  double *v,
1080  double *u
1081 );
1083  int nElements_global,
1084  int nElementBoundaries_element,
1085  int nQuadraturePoints_elementBoundary,
1086  int nDOF_trial_element,
1087  int nComponents,
1088  int nSpace,
1089  int *l2g,
1090  double *dof,
1091  double *grad_v,
1092  double *grad_u
1093 );
1094 extern void calculateFlowVelocity(
1095  int nElements_global,
1096  int nQuadraturePoints_element,
1097  int nSpace,
1098  double *f,
1099  double *a,
1100  double *grad_phi,
1101  double *v
1102 );
1103 extern void updateAddJacobian_CSR(
1104  int jacIndex,
1105  double val,
1106  double *jac
1107 );
1108 extern void zeroJacobian_CSR(
1109  int nNonzeros,
1110  double *jac
1111 );
1112 extern void setInflowFlux(
1113  int nExteriorElementBoundaries_global,
1114  int nQuadraturePoints_elementBoundary,
1115  int *exteriorElementBoundaries,
1116  double *inflowFlux,
1117  double *flux
1118 );
1120  int nInteriorElementBoundaries_global,
1121  int nElementBoundaries_element,
1122  int nQuadraturePoints_elementBoundary,
1123  int nSpace,
1124  int *interiorElementBoundaries,
1125  int *elementBoundaryElements,
1126  int *elementBoundaryLocalElementBoundaries,
1127  double *m,
1128  double *a,
1129  double *grad_phi,
1130  double *f,
1131  double *vAverage,
1132  double *vJump,
1133  double *mAverage,
1134  double *mJump
1135 );
1137  int nExteriorElementBoundaries_global,
1138  int nElementBoundaries_element,
1139  int nQuadraturePoints_elementBoundary,
1140  int nSpace,
1141  int *exteriorElementBoundaries,
1142  int *elementBoundaryElements,
1143  int *elementBoundaryLocalElementBoundaries,
1144  double *m,
1145  double *a,
1146  double *grad_phi,
1147  double *f,
1148  double *vAverage,
1149  double *vJump,
1150  double *mAverage,
1151  double *mJump
1152 );
1154  int nElements_global,
1155  int nInteriorElementBoundaries_global,
1156  int nExteriorElementBoundaries_global,
1157  int nElementBoundaries_element,
1158  int nQuadraturePoints_elementBoundary,
1159  int nNodes_element,
1160  int nSpace,
1161  int *interiorElementBoundaries,
1162  int *exteriorElementBoundaries,
1163  int *elementBoundaryElements,
1164  int *elementBoundaryLocalElementBoundaries,
1165  int *elementNodes,
1166  int *nodeStarElements,
1167  int *nodeStarElementNeighbors,
1168  int *nodeStarOffsets,
1169  int *nElements_node,
1170  double *elementResidual,
1171  double *vAverage,
1172  double *starU,
1173  double *dX,
1174  double *w,
1175  double *normal,
1176  double *conservationResidual,
1177  double *starR,
1178  double *vConservative,
1179  double *vConservative_element
1180 );
1182  int nNodes_global,
1183  int nNodes_internal,
1184  int nElements_global,
1185  int nInteriorElementBoundaries_global,
1186  int nExteriorElementBoundaries_global,
1187  int nElementBoundaries_element,
1188  int nQuadraturePoints_elementBoundary,
1189  int nNodes_element,
1190  int nSpace,
1191  int *interiorElementBoundaries,
1192  int *exteriorElementBoundaries,
1193  int *elementBoundaryElements,
1194  int *elementBoundaryLocalElementBoundaries,
1195  int *elementNodes,
1196  int *nodeStarElements,
1197  int *nodeStarElementNeighbors,
1198  int *nodeStarOffsets,
1199  int *nodeStarJacobianOffsets,
1200  int *nElements_node,
1201  int *internalNodes,
1202  double *w,
1203  double *normal,
1204  double *starJacobian
1205 );
1207  int nNodes_global,
1208  int nNodes_internal,
1209  int *nElements_node,
1210  int *nodeStarOffsets,
1211  int *nodeStarJacobianOffsets,
1212  int *internalNodes,
1213  double *starR,
1214  double *starJ,
1215  double *starU
1216 );
1218  int updateFluxValues,
1219  int nExteriorElementBoundaries_global,
1220  int nQuadraturePoints_elementBoundary,
1221  int nSpace,
1222  int *exteriorElementBoundaries,
1223  int *elementBoundaryElements,
1224  int *elementBoundaryLocalElementBoundaries,
1225  double *n,
1226  double *vn_in,
1227  double *v_out
1228 );
1230  int nElements_global,
1231  int nQuadraturePoints_element,
1232  int nSpace,
1233  int computeDiffusiveTimeStepLimit,
1234  double *elementDiameter,
1235  double *df,
1236  double *a,
1237  double *dphi,
1238  double *dr,
1239  double *dmt,
1240  double *pe,
1241  double *cfl
1242 );
1243 extern void calculateCFLADR(
1244  int nElements_global,
1245  int nQuadraturePoints_element,
1246  int nSpace,
1247  double *elementDiameter,
1248  double *dm,
1249  double *df,
1250  double *cfl
1251 );
1253  int nInteriorElementBoundaries_global,
1254  int nElementBoundaries_element,
1255  int nQuadraturePoints_elementBoundary,
1256  int nSpace,
1257  int *interiorElementBoundaries,
1258  int *elementBoundaryElements,
1259  int *elementBoundaryLocalElementBoundaries,
1260  double *a,
1261  double *grad_phi,
1262  double *velocity
1263 );
1264 extern void updateInteriorElementBoundaryDiffusiveVelocity_sd(int nInteriorElementBoundaries_global,
1265  int nElementBoundaries_element,
1266  int nQuadraturePoints_elementBoundary,
1267  int nSpace,
1268  int* rowptr,
1269  int* colind,
1270  int* interiorElementBoundaries,
1271  int* elementBoundaryElements,
1272  int* elementBoundaryLocalElementBoundaries,
1273  double* a,
1274  double* grad_phi,
1275  double* velocity);
1277  int nExteriorElementBoundaries_global,
1278  int nElementBoundaries_element,
1279  int nQuadraturePoints_elementBoundary,
1280  int nSpace,
1281  int *exteriorElementBoundaries,
1282  int *elementBoundaryElements,
1283  int *elementBoundaryLocalElementBoundaries,
1284  double *a,
1285  double *grad_phi,
1286  double *velocity
1287 );
1288 extern void updateExteriorElementBoundaryDiffusiveVelocity_sd(int nExteriorElementBoundaries_global,
1289  int nElementBoundaries_element,
1290  int nQuadraturePoints_elementBoundary,
1291  int nSpace,
1292  int* rowptr,
1293  int* colind,
1294  int* exteriorElementBoundaries,
1295  int* elementBoundaryElements,
1296  int* elementBoundaryLocalElementBoundaries,
1297  double* a,
1298  double* grad_phi,
1299  double* velocity);
1301  int nInteriorElementBoundaries_global,
1302  int nElementBoundaries_element,
1303  int nQuadraturePoints_elementBoundary,
1304  int nSpace,
1305  int *interiorElementBoundaries,
1306  int *elementBoundaryElements,
1307  int *elementBoundaryLocalElementBoundaries,
1308  double *f,
1309  double *velocity
1310 );
1312  int nExteriorElementBoundaries_global,
1313  int nElementBoundaries_element,
1314  int nQuadraturePoints_elementBoundary,
1315  int nSpace,
1316  int *exteriorElementBoundaries,
1317  int *elementBoundaryElements,
1318  int *elementBoundaryLocalElementBoundaries,
1319  double *f,
1320  double *velocity
1321 );
1323  int nInteriorElementBoundaries_global,
1324  int nElementBoundaries_element,
1325  int nQuadraturePoints_elementBoundary,
1326  int nQuadraturePoints_element,
1327  int nSpace,
1328  int *interiorElementBoundaries,
1329  int *elementBoundaryElements,
1330  int *elementBoundaryLocalElementBoundaries,
1331  double *numDiff,
1332  double *grad_u,
1333  double *velocity
1334 );
1336  int nExteriorElementBoundaries_global,
1337  int nElementBoundaries_element,
1338  int nQuadraturePoints_elementBoundary,
1339  int nQuadraturePoints_element,
1340  int nSpace,
1341  int *exteriorElementBoundaries,
1342  int *elementBoundaryElements,
1343  int *elementBoundaryLocalElementBoundaries,
1344  double *numDiff,
1345  double *grad_u,
1346  double *velocity
1347 );
1349  int nInteriorElementBoundaries_global,
1350  int nElementBoundaries_element,
1351  int nQuadraturePoints_elementBoundary,
1352  int nSpace,
1353  int *interiorElementBoundaries,
1354  int *elementBoundaryElements,
1355  int *elementBoundaryLocalElementBoundaries,
1356  double *v,
1357  double *vAverage
1358 );
1360  int nExteriorElementBoundaries_global,
1361  int nElementBoundaries_element,
1362  int nQuadraturePoints_elementBoundary,
1363  int nSpace,
1364  int *exteriorElementBoundaries,
1365  int *elementBoundaryElements,
1366  int *elementBoundaryLocalElementBoundaries,
1367  double *v,
1368  double *vAverage
1369 );
1371  int nElements_global,
1372  int nDOF_test_element,
1373  double *elementResidual,
1374  double *conservationResidual
1375 );
1376 extern void calculateConservationResidual(
1377  int nElements_global,
1378  int nDOF_test_element,
1379  int nElementBoundaries_element,
1380  int nQuadraturePoints_elementBoundary,
1381  int nSpace,
1382  double *n,
1383  double *dS_u,
1384  double *elementResidual,
1385  double *velocity,
1386  double *conservationResidual
1387 );
1389  int nElements_global,
1390  int nInteriorElementBoundaries_global,
1391  int nExteriorElementBoundaries_global,
1392  int nElementBoundaries_element,
1393  int nQuadraturePoints_elementBoundary,
1394  int nNodes_element,
1395  int nSpace,
1396  int *interiorElementBoundaries,
1397  int *exteriorElementBoundaries,
1398  int *elementBoundaryElements,
1399  int *elementBoundaryLocalElementBoundaries,
1400  double *dS,
1401  double *normal,
1402  double *elementResidual,
1403  double *velocity,
1404  double *conservationResidual
1405 );
1407  int nElements_global,
1408  int nInteriorElementBoundaries_global,
1409  int nExteriorElementBoundaries_global,
1410  int nElementBoundaries_global,
1411  int nElementBoundaries_element,
1412  int nQuadraturePoints_elementBoundary,
1413  int nSpace,
1414  int *interiorElementBoundaries,
1415  int *exteriorElementBoundaries,
1416  int *elementBoundaryElementsArray,
1417  int *elementBoundaryLocalElementBoundariesArray,
1418  double *velocityBoundary_global,
1419  double *velocityBoundary_element
1420 );
1422  int nExteriorElementBoundaries_global,
1423  int nQuadraturePoints_elementBoundary,
1424  int nSpace,
1425  int *exteriorElementBoundaries,
1426  int *fluxElementBoundaries,
1427  double *normal,
1428  double *flux,
1429  double updateCoef,
1430  double *velocity
1431 );
1433  int nInteriorElementBoundaries_global,
1434  int nElementBoundaries_element,
1435  int nQuadraturePoints_elementBoundary,
1436  int *interiorElementBoundaries,
1437  int *elementBoundaryElements,
1438  int *elementBoundaryLocalElementBoundaries,
1439  double *phi,
1440  double *dphi,
1441  double *phi_trace,
1442  double *dphi_trace_left,
1443  double *dphi_trace_right
1444 );
1446  int *isDOFBoundary,
1447  int nExteriorElementBoundaries_global,
1448  int nElementBoundaries_element,
1449  int nQuadraturePoints_elementBoundary,
1450  int *exteriorElementBoundaries,
1451  int *elementBoundaryElements,
1452  int *elementBoundaryLocalElementBoundaries,
1453  double *phi_bc,
1454  double *phi,
1455  double *dphi,
1456  double *phi_trace,
1457  double *dphi_trace_left
1458 );
1460  int nInteriorElementBoundaries_global,
1461  int nElementBoundaries_element,
1462  int nQuadraturePoints_elementBoundary,
1463  int nDOF_test_element,
1464  int nSpace,
1465  int *interiorElementBoundaries,
1466  int *elementBoundaryElements,
1467  int *elementBoundaryLocalElementBoundaries,
1468  double *n,
1469  double *phi_trace,
1470  double *w_dS,
1471  double *b
1472 );
1474  int nInteriorElementBoundaries_global,
1475  int nElementBoundaries_element,
1476  int nQuadraturePoints_elementBoundary,
1477  int nDOF_test_element,
1478  int nSpace,
1479  int *interiorElementBoundaries,
1480  int *elementBoundaryElements,
1481  int *elementBoundaryLocalElementBoundaries,
1482  double *n,
1483  double *dphi_trace_left,
1484  double *dphi_trace_right,
1485  double *v,
1486  double *w_dS,
1487  double *db,
1488  double *db_eb
1489 );
1491  int nExteriorElementBoundaries_global,
1492  int nElementBoundaries_element,
1493  int nQuadraturePoints_elementBoundary,
1494  int nDOF_test_element,
1495  int nSpace,
1496  int *exteriorElementBoundaries,
1497  int *elementBoundaryElements,
1498  int *elementBoundaryLocalElementBoundaries,
1499  double *n,
1500  double *phi_trace,
1501  double *w_dS,
1502  double *b
1503 );
1505  int nExteriorElementBoundaries_global,
1506  int nElementBoundaries_element,
1507  int nQuadraturePoints_elementBoundary,
1508  int nDOF_test_element,
1509  int nSpace,
1510  int *exteriorElementBoundaries,
1511  int *elementBoundaryElements,
1512  int *elementBoundaryLocalElementBoundaries,
1513  double *n,
1514  double *dphi_trace_left,
1515  double *v,
1516  double *w_dS,
1517  double *db,
1518  double *db_eb
1519 );
1520 extern void updatePotential_MixedForm_weak(
1521  int nElements_global,
1522  int nQuadraturePoints_element,
1523  int nDOF_test_element,
1524  int nSpace,
1525  double *phi,
1526  double *grad_w_dV,
1527  double *b
1528 );
1530  int nElements_global,
1531  int nQuadraturePoints_element,
1532  int nDOF_test_element,
1533  int nSpace,
1534  double *dphi,
1535  double *v,
1536  double *grad_w_dV,
1537  double *db
1538 );
1540  int nElements_global,
1541  int nElementBoundaries_element,
1542  int nElementBoundaryQuadraturePoints_elementBoundary,
1543  int nDOF_element,
1544  int nSpace,
1545  int nQuadraturePoints_element,
1546  double *A_inv,
1547  double *b,
1548  double *v,
1549  double *V,
1550  double *qv,
1551  double *qV
1552 );
1554  int nElements_global,
1555  int nElementBoundaries_element,
1556  int nElementBoundaryQuadraturePoints_elementBoundary,
1557  int nDOF_element,
1558  int nSpace,
1559  int nQuadraturePoints_element,
1560  double *A_inv,
1561  double *db,
1562  double *db_eb,
1563  double *v,
1564  double *DV,
1565  double *DV_eb,
1566  double *qv,
1567  double *qDV,
1568  double *qDV_eb
1569 );
1571  int nElements_global,
1572  int nQuadraturePoints_element,
1573  int nDOF_element,
1574  double *vXw_dV,
1575  double *A_inv
1576 );
1577 extern void updateDiffusion_MixedForm_weak(
1578  int nElements_global,
1579  int nQuadraturePoints_element,
1580  int nDOF_test_element,
1581  int nSpace,
1582  double *a,
1583  double *qV,
1584  double *grad_w_dV,
1585  double *weak_residual
1586 );
1588  int nElements_global,
1589  int nElementBoundaries_element,
1590  int nQuadraturePoints_element,
1591  int nDOF_trial_element,
1592  int nDOF_test_element,
1593  int nSpace,
1594  double *a,
1595  double *da,
1596  double *qV,
1597  double *qDV,
1598  double *qDV_eb,
1599  double *grad_w_dV,
1600  double *v,
1601  double *jacobian_weak_residual,
1602  double *jacobian_weak_residual_eb
1603 );
1604 extern void estimate_mt(
1605  int nElements_global,
1606  int nQuadraturePoints_element,
1607  int nDOF_element,
1608  double *v,
1609  double *vXw_dV,
1610  double *elementSpatialResidual,
1611  double *mt
1612  );
1613 extern void estimate_mt_lowmem(int nElements_global,
1614  int nQuadraturePoints_element,
1615  int nDOF_element,
1616  double* v,
1617  double* w_dV,
1618  double* elementSpatialResidual,
1619  double* mt);
1620 extern double scalarDomainIntegral(int nElements_global,
1621  int nQuadraturePoints_element,
1622  double* dV,
1623  double* nValueArray);
1624 extern double scalarHeavisideDomainIntegral(int nElements_global,
1625  int nQuadraturePoints_element,
1626  double* dV,
1627  double* nValueArray);
1628 extern double scalarSmoothedHeavisideDomainIntegral(int nElements_global,
1629  int nQuadraturePoints_element,
1630  double epsFact,
1631  double* elementDiameter,
1632  double* dV,
1633  double* nValueArray);
1634 extern double fluxDomainBoundaryIntegral(int nExteriorElementBoundaries,
1635  int nElementBoundaries_owned,
1636  int nQuadraturePoints_elementBoundary,
1637  int* flag,
1638  int* exteriorElementBoundariesArray,
1639  double* dS,
1640  double* nValueArray);
1641 
1642 extern double fluxDomainBoundaryIntegralFromVector(int nExteriorElementBoundaries,
1643  int nElementBoundaries_owned,
1644  int nQuadraturePoints_elementBoundary,
1645  int nSpace,
1646  int* flag,
1647  int* exteriorElementBoundaries,
1648  double* dS,
1649  double* nValueArray,
1650  double* normal);
1651 extern
1652 void copyExteriorElementBoundaryValuesFromElementBoundaryValues(int nExteriorElementBoundaries_global,
1653  int nElements_global,
1654  int nElementBoundaries_element,
1655  int nQuadraturePoints_elementBoundary,
1656  int nValuesPerQuadraturePoint,
1657  const int * exteriorElementBoundaries,
1658  const int* elementBoundaryElements,
1659  const int * elementBoundaryLocalElementBoundaries,
1660  const double * ebq_val,
1661  double * ebqe_val);
1662 
1663 extern
1664 void copyExteriorElementBoundaryValuesToElementBoundaryValues(int nExteriorElementBoundaries_global,
1665  int nElements_global,
1666  int nElementBoundaries_element,
1667  int nQuadraturePoints_elementBoundary,
1668  int nValuesPerQuadraturePoint,
1669  const int * exteriorElementBoundaries,
1670  const int* elementBoundaryElements,
1671  const int * elementBoundaryLocalElementBoundaries,
1672  const double * ebqe_val,
1673  double * ebq_val);
1674 
1675 extern
1676 void copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues(int nExteriorElementBoundaries_global,
1677  int nQuadraturePoints_elementBoundary,
1678  int nValuesPerQuadraturePoint,
1679  const int * exteriorElementBoundaries,
1680  const int* elementBoundaryElements,
1681  const int * elementBoundaryLocalElementBoundaries,
1682  const double * ebqe_val,
1683  double * ebq_global_val);
1684 
1685 
1686 
1687 extern
1688 void copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues(int nExteriorElementBoundaries_global,
1689  int nQuadraturePoints_elementBoundary,
1690  int nValuesPerQuadraturePoint,
1691  const int * exteriorElementBoundaries,
1692  const int* elementBoundaryElements,
1693  const int * elementBoundaryLocalElementBoundaries,
1694  const double * ebq_global_val,
1695  double * ebqe_val);
1696 
1697 
1698 
1699 
1700 extern
1701 void computeC0P1InterpolantDGP0(int nElements_global,
1702  int nNodes_global,
1703  int nNodes_element,
1704  int nDOF_element,
1705  int dim_dof,
1706  const int* elementNodesArray,
1707  const int* nodeElementOffsets,
1708  const int* nodeElementsArray,
1709  const int* l2g,
1710  const double * dof,
1711  double* nodalAverage);
1712 
1713 extern
1714 void computeC0P1InterpolantNCP1(int nElements_global,
1715  int nNodes_global,
1716  int nNodes_element,
1717  int nDOF_element,
1718  int dim_dof,
1719  const int* elementNodesArray,
1720  const int* nodeElementOffsets,
1721  const int* nodeElementsArray,
1722  const int* l2g,
1723  const double * dof,
1724  double* nodalAverage);
1725 
1726 extern
1727 void computeC0P1InterpolantDGP12(int nElements_global,
1728  int nNodes_global,
1729  int nNodes_element,
1730  int nDOF_element,
1731  int dim_dof,
1732  const int* elementNodesArray,
1733  const int* nodeElementOffsets,
1734  const int* nodeElementsArray,
1735  const int* l2g,
1736  const double * dof,
1737  double* nodalAverage);
1738 
1739 
1740 
1741 
1742 extern
1743 void parametricFiniteElementSpace_getValuesGlobalExteriorTrace(int nElementBoundaries_element,
1744  int nElementBoundaryQuadraturePoints_elementBoundary,
1745  int nDOF_element,
1746  int nExteriorElementBoundaries_global,
1747  const int* exteriorElementBoundariesArray,
1748  const int* elementBoundaryElementsArray,
1749  const int* elementBoundaryLocalElementBoundariesArray,
1750  double* psi,
1751  double* vArray);
1752 
1753 
1754 extern
1755 void parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace(int nElementBoundaries_element,
1756  int nElementBoundaryQuadraturePoints_elementBoundary,
1757  int nDOF_element,
1758  int nSpace_global,
1759  int nExteriorElementBoundaries_global,
1760  const int *exteriorElementBoundariesArray,
1761  const int *elementBoundaryElementsArray,
1762  const int *elementBoundaryLocalElementBoundariesArray,
1763  double* grad_psi,
1764  double* inverseJacobianArray,
1765  double* grad_vArray);
1766 
1767 
1768 extern
1769 void parametricMaps_getValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary,
1770  int nDOF_element,
1771  int nSpace_global,
1772  int nExteriorElementBoundaries_global,
1773  const int* exteriorElementBoundariesArray,
1774  const int* elementBoundaryElementsArray,
1775  const int* elementBoundaryLocalElementBoundariesArray,
1776  double* psi,
1777  int* l2g,
1778  double* nodeArray,
1779  double* xArray);
1780 
1781 
1782 extern
1783 void parametricMaps_getInverseValuesGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1784  int nDOF_element,
1785  int nSpace_global,
1786  int nExteriorElementBoundaries_global,
1787  const int* exteriorElementBoundariesArray,
1788  const int* elementBoundaryElementsArray,
1789  const int* elementBoundaryLocalElementBoundariesArray,
1790  double* inverseJacobian,
1791  int* l2g,
1792  double* nodeArray,
1793  double* xArray,
1794  double* xiArray);
1795 
1796 
1797 
1798 extern
1799 void parametricMaps_getJacobianValuesGlobalExteriorTrace1D(int nQuadraturePoints_element,
1800  int nDOF_element,
1801  int nExteriorElementBoundaries_global,
1802  const int * exteriorElementBoundariesArray,
1803  const int * elementBoundaryElementsArray,
1804  const int * elementBoundaryLocalElementBoundariesArray,
1805  double* grad_psi,
1806  double* boundaryNormals,
1807  double* boundaryJacobians,
1808  int* l2g,
1809  double* nodeArray,
1810  double* jacobianInverseArray,
1811  double* metricTensorArray,
1812  double* metricTensorDeterminantSqrtArray,
1813  double* unitNormalArray);
1814 
1815 
1816 
1817 
1818 
1819 extern
1820 void parametricMaps_getJacobianValuesGlobalExteriorTrace2D(int nQuadraturePoints_element,
1821  int nDOF_element,
1822  int nExteriorElementBoundaries_global,
1823  const int * exteriorElementBoundariesArray,
1824  const int * elementBoundaryElementsArray,
1825  const int * elementBoundaryLocalElementBoundariesArray,
1826  double* grad_psi,
1827  double* boundaryNormals,
1828  double* boundaryJacobians,
1829  int* l2g,
1830  double* nodeArray,
1831  double* jacobianInverseArray,
1832  double* metricTensorArray,
1833  double* metricTensorDeterminantSqrtArray,
1834  double* unitNormalArray);
1835 extern
1837  int nDOF_element,
1838  int nExteriorElementBoundaries_global,
1839  const int * exteriorElementBoundariesArray,
1840  const int * elementBoundaryElementsArray,
1841  const int * elementBoundaryLocalElementBoundariesArray,
1842  double* xtArray,
1843  double* grad_psi,
1844  double* boundaryNormals,
1845  double* boundaryJacobians,
1846  int* l2g,
1847  double* nodeArray,
1848  double* jacobianInverseArray,
1849  double* metricTensorArray,
1850  double* metricTensorDeterminantSqrtArray,
1851  double* unitNormalArray);
1852 extern
1853 void parametricMaps_getJacobianValuesGlobalExteriorTrace3D(int nQuadraturePoints_element,
1854  int nDOF_element,
1855  int nExteriorElementBoundaries_global,
1856  const int * exteriorElementBoundariesArray,
1857  const int * elementBoundaryElementsArray,
1858  const int * elementBoundaryLocalElementBoundariesArray,
1859  double* grad_psi,
1860  double* boundaryNormals,
1861  double* boundaryJacobians,
1862  int* l2g,
1863  double* nodeArray,
1864  double* jacobianInverseArray,
1865  double* metricTensorArray,
1866  double* metricTensorDeterminantSqrtArray,
1867  double* unitNormalArray);
1868 
1869 
1870 extern
1871 void updateGlobalExteriorElementBoundaryFlux(int nExteriorElementBoundaries_global,
1872  int nQuadraturePoints_elementBoundary,
1873  int nDOF_test_element,
1874  int* exteriorElementBoundaries,
1875  int* elementBoundaryElements,
1876  int* elementBoundaryLocalElementBoundaries,
1877  double* flux,
1878  double* w_dS,
1879  double* residual);
1880 
1881 
1882 
1883 extern
1885  int nElements_global,
1886  int nExteriorElementBoundaries_global,
1887  int nElementBoundaries_element,
1888  int nQuadraturePoints_elementBoundary,
1889  int nDOF_test_element,
1890  int nDOF_trial_element,
1891  int offset_r,
1892  int stride_r,
1893  int offset_u,
1894  int stride_u,
1895  int nFreeVDOF_global,
1896  int* exteriorElementBoundaries,
1897  int* elementBoundaryElements,
1898  int* elementBoundaryLocalElementBoundaries,
1899  int* nFreeDOF_element_r,
1900  int* freeLocal_r,
1901  int* freeGlobal_r,
1902  int* nFreeDOF_element_u,
1903  int* freeLocal_u,
1904  int* freeGlobal_u,
1905  double* elementBoundaryFluxJacobian_eb,
1906  double* w_dS,
1907  double* jac);
1908 
1909 extern
1910 void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense(int nExteriorElementBoundaries_global,
1911  int nQuadraturePoints_elementBoundary,
1912  int nDOF_test_element,
1913  int nDOF_trial_element,
1914  int offset_r,
1915  int stride_r,
1916  int offset_u,
1917  int stride_u,
1918  int nFreeVDOF_global,
1919  int* exteriorElementBoundaries,
1920  int* elementBoundaryElements,
1921  int* elementBoundaryLocalElementBoundaries,
1922  int* nFreeDOF_element_r,
1923  int* freeLocal_r,
1924  int* freeGlobal_r,
1925  int* nFreeDOF_element_u,
1926  int* freeLocal_u,
1927  int* freeGlobal_u,
1928  double* elementBoundaryFluxJacobian,
1929  double* w_dS,
1930  double* jac);
1931 
1932 extern
1933 void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR(int nExteriorElementBoundaries_global,
1934  int nQuadraturePoints_elementBoundary,
1935  int nDOF_test_element,
1936  int nDOF_trial_element,
1937  int* exteriorElementBoundaries,
1938  int* elementBoundaryElements,
1939  int* elementBoundaryLocalElementBoundaries,
1940  int* nFreeDOF_element_r,
1941  int* freeLocal_r,
1942  int* nFreeDOF_element_u,
1943  int* freeLocal_u,
1944  int* csrRowIndeces_ru,
1945  int* csrColumnOffsets_eb_ru,
1946  double* elementBoundaryFluxJacobian,
1947  double* w_dS,
1948  double* jac);
1949 
1950 
1951 
1952 extern
1954  int nExteriorElementBoundaries_global,
1955  int nElementBoundaries_element,
1956  int nQuadraturePoints_elementBoundary,
1957  int nDOF_test_element,
1958  int nDOF_trial_element,
1959  int* exteriorElementBoundaries,
1960  int* elementBoundaryElements,
1961  int* elementBoundaryLocalElementBoundaries,
1962  int* nFreeDOF_element_r,
1963  int* freeLocal_r,
1964  int* nFreeDOF_element_u,
1965  int* freeLocal_u,
1966  int* csrRowIndeces_ru,
1967  int* csrColumnOffsets_eb_eNebN_ru,
1968  double* elementBoundaryFluxJacobian_eb,
1969  double* w_dS,
1970  double* jac);
1971 
1972 extern
1973 void calculateWeightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1974  int nDOF_test_element,
1975  int nExteriorElementBoundaries_global,
1976  const int* exteriorElementBoundariesArray,
1977  const int* elementBoundaryElementsArray,
1978  const int* elementBoundaryLocalElementBoundariesArray,
1979  double* dSR,
1980  double* sqrt_det_g,
1981  double* w,
1982  double* w_dS);
1983 
1984 
1985 extern
1986 void calculateShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1987  int nDOF_trial_element,
1988  int nDOF_test_element,
1989  int nExteriorElementBoundaries_global,
1990  const int* exteriorElementBoundariesArray,
1991  const int* elementBoundaryElementsArray,
1992  const int* elementBoundaryLocalElementBoundariesArray,
1993  double* v,
1994  double* w_dS,
1995  double* v_X_w_dS);
1996 
1997 extern
1998 void calculateGradShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1999  int nDOF_trial_element,
2000  int nDOF_test_element,
2001  int nSpace,
2002  int nExteriorElementBoundaries_global,
2003  const int* exteriorElementBoundariesArray,
2004  const int* elementBoundaryElementsArray,
2005  const int* elementBoundaryLocalElementBoundariesArray,
2006  double* grad_v,
2007  double* w_dS,
2008  double* grad_v_X_w_dS);
2009 
2010 
2011 extern
2012 void calculateGlobalExteriorElementBoundaryIntegrationWeights(int nQuadraturePoints_elementBoundary,
2013  int nExteriorElementBoundaries_global,
2014  double* sqrt_det_g,
2015  double* referenceWeights,
2016  double* weights);
2017 
2018 extern
2019 void calculateFiniteElementFunctionValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary,
2020  int nDOF_trial_element,
2021  int nComponents,
2022  int nExteriorElementBoundaries_global,
2023  const int * exteriorElementBoundariesArray,
2024  const int * elementBoundaryElementsArray,
2025  const int * elementBoundaryLocalElementBoundariesArray,
2026  int* l2g,
2027  double* dof,
2028  double* v,
2029  double* u);
2030 
2031 extern
2032 void calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary,
2033  int nDOF_trial_element,
2034  int nComponents,
2035  int nSpace,
2036  int nExteriorElementBoundaries_global,
2037  const int * exteriorElementBoundariesArray,
2038  const int * elementBoundaryElementsArray,
2039  const int * elementBoundaryLocalElementBoundariesArray,
2040  int* l2g,
2041  double* dof,
2042  double* grad_v,
2043  double* grad_u);
2044 
2045 
2046 extern
2047 void updateGlobalExteriorElementBoundaryDiffusiveVelocity(int nExteriorElementBoundaries_global,
2048  int nQuadraturePoints_elementBoundary,
2049  int nSpace,
2050  int* exteriorElementBoundaries,
2051  int* elementBoundaryElements,
2052  int* elementBoundaryLocalElementBoundaries,
2053  double* a,
2054  double* grad_phi,
2055  double* velocity);
2056 
2057 
2058 extern
2059 void updateGlobalExteriorElementBoundaryAdvectiveVelocity(int nExteriorElementBoundaries_global,
2060  int nQuadraturePoints_elementBoundary,
2061  int nSpace,
2062  int* exteriorElementBoundaries,
2063  int* elementBoundaryElements,
2064  int* elementBoundaryLocalElementBoundaries,
2065  double* f,
2066  double* velocity);
2067 
2068 
2069 extern
2070 void updateGlobalExteriorElementBoundaryShockCapturingVelocity(int nExteriorElementBoundaries_global,
2071  int nQuadraturePoints_elementBoundary,
2072  int nSpace,
2073  int* exteriorElementBoundaries,
2074  int* elementBoundaryElements,
2075  int* elementBoundaryLocalElementBoundaries,
2076  double* numDiff,
2077  double* grad_u,
2078  double* velocity);
2079 
2080 
2081 
2082 extern
2083 void copyFreeUnknownsToGlobalUnknowns(int nDOF2set,
2084  int offset,
2085  int stride,
2086  const int* globalDOFids,
2087  const int* freeDOFids,
2088  const double * free_u,
2089  double * u);
2090 extern
2091 void copyGlobalUnknownsToFreeUnknowns(int nDOF2set,
2092  int offset,
2093  int stride,
2094  const int* globalDOFids,
2095  const int* freeDOFids,
2096  const double * u,
2097  double * free_u);
2098 extern
2099 void updateInteriorElementBoundaryDiffusionAdjoint(int nInteriorElementBoundaries_global,
2100  int nElementBoundaries_element,
2101  int nQuadraturePoints_elementBoundary,
2102  int nDOF_test_element,
2103  int nSpace,
2104  int* interiorElementBoundaries,
2105  int* elementBoundaryElements,
2106  int* elementBoundaryLocalElementBoundaries,
2107  double sigma,
2108  double* u,
2109  double* n,
2110  double* a,
2111  double* grad_w,
2112  double* dS,
2113  double* residual);
2114 extern
2115 void updateExteriorElementBoundaryDiffusionAdjoint(int nExteriorElementBoundaries_global,
2116  int nQuadraturePoints_elementBoundary,
2117  int nDOF_test_element,
2118  int nSpace,
2119  int* isDOFBoundary,
2120  int* exteriorElementBoundaries,
2121  int* elementBoundaryElements,
2122  int* elementBoundaryLocalElementBoundaries,
2123  double sigma,
2124  double* u,
2125  double* ub,
2126  double* n,
2127  double* a,
2128  double* grad_w,
2129  double* dS,
2130  double* residual);
2131 extern
2132 void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense(int nInteriorElementBoundaries_global,
2133  int nElementBoundaries_element,
2134  int nQuadraturePoints_elementBoundary,
2135  int nDOF_test_element,
2136  int nDOF_trial_element,
2137  int nSpace,
2138  int offset_r,
2139  int stride_r,
2140  int offset_u,
2141  int stride_u,
2142  int nFreeVDOF_global,
2143  int* interiorElementBoundaries,
2144  int* elementBoundaryElements,
2145  int* elementBoundaryLocalElementBoundaries,
2146  int* nFreeDOF_element_r,
2147  int* freeLocal_r,
2148  int* freeGlobal_r,
2149  int* nFreeDOF_element_u,
2150  int* freeLocal_u,
2151  int* freeGlobal_u,
2152  double sigma,
2153  double* v,
2154  double* n,
2155  double* a,
2156  double* grad_w,
2157  double* dS,
2158  double* jac);
2159 extern
2160 void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense(int nExteriorElementBoundaries_global,
2161  int nQuadraturePoints_elementBoundary,
2162  int nDOF_test_element,
2163  int nDOF_trial_element,
2164  int nSpace,
2165  int offset_r,
2166  int stride_r,
2167  int offset_u,
2168  int stride_u,
2169  int nFreeVDOF_global,
2170  int* exteriorElementBoundaries,
2171  int* elementBoundaryElements,
2172  int* elementBoundaryLocalElementBoundaries,
2173  int* nFreeDOF_element_r,
2174  int* freeLocal_r,
2175  int* freeGlobal_r,
2176  int* nFreeDOF_element_u,
2177  int* freeLocal_u,
2178  int* freeGlobal_u,
2179  int* isDOFBoundary,
2180  double sigma,
2181  double* v,
2182  double* n,
2183  double* a,
2184  double* grad_w,
2185  double* dS,
2186  double* jac);
2187 extern
2188 void updateInteriorElementBoundaryDiffusionAdjoint_sd(int nInteriorElementBoundaries_global,
2189  int nElementBoundaries_element,
2190  int nQuadraturePoints_elementBoundary,
2191  int nDOF_test_element,
2192  int nSpace,
2193  int* rowptr,
2194  int* colind,
2195  int* interiorElementBoundaries,
2196  int* elementBoundaryElements,
2197  int* elementBoundaryLocalElementBoundaries,
2198  double sigma,
2199  double* u,
2200  double* n,
2201  double* a,
2202  double* grad_w,
2203  double* dS,
2204  double* residual);
2205 extern
2206 void updateExteriorElementBoundaryDiffusionAdjoint_sd(int nExteriorElementBoundaries_global,
2207  int nQuadraturePoints_elementBoundary,
2208  int nDOF_test_element,
2209  int nSpace,
2210  int* rowptr,
2211  int* colind,
2212  int* isDOFBoundary,
2213  int* exteriorElementBoundaries,
2214  int* elementBoundaryElements,
2215  int* elementBoundaryLocalElementBoundaries,
2216  double sigma,
2217  double* u,
2218  double* ub,
2219  double* n,
2220  double* a,
2221  double* grad_w,
2222  double* dS,
2223  double* residual);
2224 extern
2225 void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd(int nInteriorElementBoundaries_global,
2226  int nElementBoundaries_element,
2227  int nQuadraturePoints_elementBoundary,
2228  int nDOF_test_element,
2229  int nDOF_trial_element,
2230  int nSpace,
2231  int* rowptr,
2232  int* colind,
2233  int offset_r,
2234  int stride_r,
2235  int offset_u,
2236  int stride_u,
2237  int nFreeVDOF_global,
2238  int* interiorElementBoundaries,
2239  int* elementBoundaryElements,
2240  int* elementBoundaryLocalElementBoundaries,
2241  int* nFreeDOF_element_r,
2242  int* freeLocal_r,
2243  int* freeGlobal_r,
2244  int* nFreeDOF_element_u,
2245  int* freeLocal_u,
2246  int* freeGlobal_u,
2247  double sigma,
2248  double* v,
2249  double* n,
2250  double* a,
2251  double* grad_w,
2252  double* dS,
2253  double* jac);
2254 extern
2255 void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd(int nExteriorElementBoundaries_global,
2256  int nQuadraturePoints_elementBoundary,
2257  int nDOF_test_element,
2258  int nDOF_trial_element,
2259  int nSpace,
2260  int* rowptr,
2261  int* colind,
2262  int offset_r,
2263  int stride_r,
2264  int offset_u,
2265  int stride_u,
2266  int nFreeVDOF_global,
2267  int* exteriorElementBoundaries,
2268  int* elementBoundaryElements,
2269  int* elementBoundaryLocalElementBoundaries,
2270  int* nFreeDOF_element_r,
2271  int* freeLocal_r,
2272  int* freeGlobal_r,
2273  int* nFreeDOF_element_u,
2274  int* freeLocal_u,
2275  int* freeGlobal_u,
2276  int* isDOFBoundary,
2277  double sigma,
2278  double* v,
2279  double* n,
2280  double* a,
2281  double* grad_w,
2282  double* dS,
2283  double* jac);
2284 extern
2285 void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nInteriorElementBoundaries_global,
2286  int nElementBoundaries_element,
2287  int nQuadraturePoints_elementBoundary,
2288  int nDOF_test_element,
2289  int nDOF_trial_element,
2290  int nSpace,
2291  int* rowptr,
2292  int* colind,
2293  int offset_r,
2294  int stride_r,
2295  int offset_u,
2296  int stride_u,
2297  int nFreeVDOF_global,
2298  int* interiorElementBoundaries,
2299  int* elementBoundaryElements,
2300  int* elementBoundaryLocalElementBoundaries,
2301  int* nFreeDOF_element_r,
2302  int* freeLocal_r,
2303  int* freeGlobal_r,
2304  int* nFreeDOF_element_u,
2305  int* freeLocal_u,
2306  int* freeGlobal_u,
2307  int* csrRowIndeces_ru,
2308  int* csrColumnOffsets_eb_ru,
2309  double sigma,
2310  double* v,
2311  double* n,
2312  double* a,
2313  double* grad_w,
2314  double* dS,
2315  double* jac);
2316 extern
2317 void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nExteriorElementBoundaries_global,
2318  int nQuadraturePoints_elementBoundary,
2319  int nDOF_test_element,
2320  int nDOF_trial_element,
2321  int nSpace,
2322  int* rowptr,
2323  int* colind,
2324  int offset_r,
2325  int stride_r,
2326  int offset_u,
2327  int stride_u,
2328  int nFreeVDOF_global,
2329  int* exteriorElementBoundaries,
2330  int* elementBoundaryElements,
2331  int* elementBoundaryLocalElementBoundaries,
2332  int* nFreeDOF_element_r,
2333  int* freeLocal_r,
2334  int* freeGlobal_r,
2335  int* nFreeDOF_element_u,
2336  int* freeLocal_u,
2337  int* freeGlobal_u,
2338  int* csrRowIndeces_ru,
2339  int* csrColumnOffsets_eb_ru,
2340  int* isDOFBoundary,
2341  double sigma,
2342  double* v,
2343  double* n,
2344  double* a,
2345  double* grad_w,
2346  double* dS,
2347  double* jac);
2348 extern
2349 void update_f_movingDomain_q(int nElements_global,
2350  int nQuadraturePoints_element,
2351  int nSpace,
2352  double* xt,
2353  double* m,
2354  double* f);
2355 extern
2356 void update_f_movingDomain_constantMass_q(int nElements_global,
2357  int nQuadraturePoints_element,
2358  int nSpace,
2359  double* xt,
2360  double* f);
2361 extern
2362 void update_f_movingDomain_ebq(int nElements_global,
2363  int nElementBoundaries_element,
2364  int nQuadraturePoints_elementBoundary,
2365  int nSpace,
2366  double* xt,
2367  double* m,
2368  double* f);
2369 extern
2370 void update_f_movingDomain_constantMass_ebq(int nElements_global,
2371  int nElementBoundaries_element,
2372  int nQuadraturePoints_elementBoundary,
2373  int nSpace,
2374  double* xt,
2375  double* f);
2376 extern
2377 void updateStress_weak(int nElements_global,
2378  int nQuadraturePoints_element,
2379  int nDOF_test_element,
2380  int nSpace,
2381  double* sigma,
2382  double* grad_w_dV,
2383  double* weak_residual_x,
2384  double* weak_residual_y,
2385  double* weak_residual_z);
2386 extern
2387 void updateStressJacobian_weak(int nElements_global,
2388  int nQuadraturePoints_element,
2389  int nDOF_trial_element,
2390  int nDOF_test_element,
2391  int nSpace,
2392  double* dsigma_xx,
2393  double* dsigma_xy,
2394  double* dsigma_xz,
2395  double* dsigma_yx,
2396  double* dsigma_yy,
2397  double* dsigma_yz,
2398  double* dsigma_zx,
2399  double* dsigma_zy,
2400  double* dsigma_zz,
2401  double* grad_v,
2402  double* grad_w_dV,
2403  double* jacobian_weak_residual_xx,
2404  double* jacobian_weak_residual_xy,
2405  double* jacobian_weak_residual_xz,
2406  double* jacobian_weak_residual_yx,
2407  double* jacobian_weak_residual_yy,
2408  double* jacobian_weak_residual_yz,
2409  double* jacobian_weak_residual_zx,
2410  double* jacobian_weak_residual_zy,
2411  double* jacobian_weak_residual_zz);
2412 extern
2413 void projectFromNodalInterpolationConditions(int nElements_global,
2414  int nDOF_element,
2415  int dim_dof,
2416  const int * l2g,
2417  const int * functional_map_element,
2418  const double * interpolationValues,
2419  double * dofs);
2420 extern void calculateVelocityQuadrature_MixedForm2_sd(int nElements_global,
2421  int nElementBoundaries_element,
2422  int nElementBoundaryQuadraturePoints_elementBoundary,
2423  int nDOF_element,
2424  int nSpace,
2425  int nQuadraturePoints_element,
2426  const int * rowptr,
2427  const int * colind,
2428  double* qa,
2429  double* qw_dV,
2430  double* b,
2431  double* v,
2432  double* V,
2433  double* qv,
2434  double* qV);
2436 #endif
updateDiffusion_strong_sd
void updateDiffusion_strong_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *da, double *grad_phi, double *grad_u, double *strong_residual)
Definition: femIntegrals.c:3153
setExteriorGlobalElementBoundaryVelocityValues
void setExteriorGlobalElementBoundaryVelocityValues(int updateFluxValues, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *vn_in, double *v_out)
Definition: femIntegrals.c:7532
calculateShape_X_weightedShape
void calculateShape_X_weightedShape(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *v, double *w_dV, double *v_X_w_dV)
Calcualte the tensor product of trial and test functions at the quadrature points.
Definition: femIntegrals.c:6537
calculateFiniteElementFunctionGradientTensorValues
void calculateFiniteElementFunctionGradientTensorValues(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nComponents, int nSpace, int *l2g, double *dof, double *grad_v_X_grad_w_dV, double *grad_u_X_grad_w_dV)
Loop over all the quadrature points and calculate the tensor product of the solution gradient with th...
Definition: femIntegrals.c:7124
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian_2sided, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary two-sided Hamiltonflux Jacobians at interi...
Definition: femIntegrals.c:5109
parametricMaps_getValues
void parametricMaps_getValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *psi, int *l2g, double *nodeArray, double *xArray)
Definition: femIntegrals.c:580
parametricMaps_getPermutationsGlobalExterior
void parametricMaps_getPermutationsGlobalExterior(int nElementBoundaryQuadraturePoints_elementBoundary, int nSpace_global, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *xiArray, int *permutations)
Definition: femIntegrals.c:496
copyGlobalUnknownsToFreeUnknowns
void copyGlobalUnknownsToFreeUnknowns(int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *u, double *free_u)
Definition: femIntegrals.c:11016
calculateGradShape_X_weightedShapeGlobalExteriorTrace
void calculateGradShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_trial_element, int nDOF_test_element, int nSpace, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *grad_v, double *w_dS, double *grad_v_X_w_dS)
Calculate the tensor product of trial function gradients and test functions at the quadrature points.
Definition: femIntegrals.c:6883
calculateConservationJacobianPWL
void calculateConservationJacobianPWL(int nNodes_global, int nNodes_internal, int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *nElements_node, int *internalNodes, double *w, double *normal, double *starJacobian)
updateNumericalDiffusionJacobian
void updateNumericalDiffusionJacobian(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *numDiff, double *grad_v_X_grad_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:4131
parametricMaps_getJacobianValuesTrace2D
void parametricMaps_getJacobianValuesTrace2D(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1095
updateDiffusion_weak_sd
void updateDiffusion_weak_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, int *rowptr, int *colind, double *a, double *grad_phi, double *grad_w_dV, double *weak_residual)
Definition: femIntegrals.c:2714
parametricMaps_getJacobianValuesGlobalExteriorTrace2D
void parametricMaps_getJacobianValuesGlobalExteriorTrace2D(int nQuadraturePoints_element, int nDOF_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1375
calculateInteriorElementBoundaryVelocities
void calculateInteriorElementBoundaryVelocities(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *m, double *a, double *grad_phi, double *f, double *vAverage, double *vJump, double *mAverage, double *mJump)
Definition: femIntegrals.c:7369
calculateGradShape_X_weightedShape
void calculateGradShape_X_weightedShape(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *grad_v, double *w_dV, double *grad_v_X_w_dV)
Calculate the tensor product of trial function gradients and test functions at the quadrature points.
Definition: femIntegrals.c:6601
copyExteriorElementBoundaryValuesFromElementBoundaryValues
void copyExteriorElementBoundaryValuesFromElementBoundaryValues(int nExteriorElementBoundaries_global, int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const double *ebq_val, double *ebqe_val)
copy quantity in an elementBoundary quadrature array to one that sits only on exterior boundaries
Definition: femIntegrals.c:10545
updateGlobalJacobianFromElementJacobian_dense
void updateGlobalJacobianFromElementJacobian_dense(int nElements_global, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementJacobian, double *globalJacobian)
Update the global dense jacobian from the element Jacobians.
Definition: femIntegrals.c:4676
updateInteriorElementBoundaryShockCapturingVelocity
void updateInteriorElementBoundaryShockCapturingVelocity(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *numDiff, double *grad_u, double *velocity)
Calculate the velocity from shock capturing at interior element boundary quadrature points.
Definition: femIntegrals.c:8176
parametricMaps_getInverseValuesGlobalExteriorTrace
void parametricMaps_getInverseValuesGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace_global, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *inverseJacobian, int *l2g, double *nodeArray, double *xArray, double *xiArray)
Definition: femIntegrals.c:766
calculateVelocityQuadrature_MixedForm
void calculateVelocityQuadrature_MixedForm(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace, int nQuadraturePoints_element, double *A_inv, double *b, double *v, double *V, double *qv, double *qV)
Definition: femIntegrals.c:9136
w
#define w(x)
Definition: jf.h:22
calculateWeightedShapeGlobalExteriorTrace
void calculateWeightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_test_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *dSR, double *sqrt_det_g, double *w, double *w_dS)
Weight the traces of the test function with the element boundary integration weights global exterior ...
Definition: femIntegrals.c:6814
updateReactionJacobian_strong
void updateReactionJacobian_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, double *dr, double *v, double *dstrong_residual)
Loop over all the elements and update the strong from of the residual at the quadrature points with t...
Definition: femIntegrals.c:3805
calculateWeightedShapeTrace
void calculateWeightedShapeTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_test_element, double *dSR, double *sqrt_det_g, double *w, double *w_dS)
Weight the traces of the test function with the element boundary integration weights.
Definition: femIntegrals.c:6672
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense(int *elementNeighbors, int nElements_global, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at interior boundaries.
Definition: femIntegrals.c:4908
updateHamiltonian_weak
void updateHamiltonian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *H, double *w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:2306
update_f_movingDomain_ebq
void update_f_movingDomain_ebq(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *m, double *f)
Definition: femIntegrals.c:12168
estimate_mt_lowmem
void estimate_mt_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *w_dV, double *elementSpatialResidual, double *mt)
Definition: femIntegrals.c:10497
fluxDomainBoundaryIntegral
double fluxDomainBoundaryIntegral(int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int *flag, int *exteriorElementBoundariesArray, double *dS, double *nValueArray)
Definition: femIntegrals.c:10731
calculateVelocityProjectionMatrixLDG
void calculateVelocityProjectionMatrixLDG(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *vXw_dV, double *A_inv)
Definition: femIntegrals.c:10109
updateDiffusion2_adjoint_sd
void updateDiffusion2_adjoint_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, int *rowptr, int *colind, double *a, double *Hess_w_dV, double *Lstar_w_dV)
Definition: femIntegrals.c:3613
parametricMaps_getJacobianValuesGlobalExteriorTrace2D_movingDomain
void parametricMaps_getJacobianValuesGlobalExteriorTrace2D_movingDomain(int nQuadraturePoints_element, int nDOF_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *xtArray, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1455
updateDiffusion2_strong
void updateDiffusion2_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *a, double *Hess_phi, double *strong_residual)
Definition: femIntegrals.c:3413
updateGlobalResidualFromElementResidual
void updateGlobalResidualFromElementResidual(int nElements_global, int nDOF_test_element, int offset_r, int stride_r, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, double *elementResidual, double *globalResidual)
Update the global residuals from the element residuals.
Definition: femIntegrals.c:4651
calculateConservationResidual
void calculateConservationResidual(int nElements_global, int nDOF_test_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *n, double *dS_u, double *elementResidual, double *velocity, double *conservationResidual)
calculate mass conservation error as
Definition: femIntegrals.c:8397
calculateIntegrationWeights
void calculateIntegrationWeights(int nElements_global, int nQuadraturePoints_element, double *abs_det_J, double *referenceWeights, double *weights)
Calculate the physical space integration weights from the reference element weights and Jacobian dete...
Definition: femIntegrals.c:6921
computeC0P1InterpolantNCP1
void computeC0P1InterpolantNCP1(int nElements_global, int nNodes_global, int nNodes_element, int nDOF_element, int dim_dof, const int *elementNodesArray, const int *nodeElementOffsets, const int *nodeElementsArray, const int *l2g, const double *dof, double *nodalAverage)
Definition: femIntegrals.c:10857
updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense
void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, int *isDOFBoundary, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:11358
updateExteriorElementBoundaryShockCapturingVelocity
void updateExteriorElementBoundaryShockCapturingVelocity(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *numDiff, double *grad_u, double *velocity)
Calculate the shock capturing flux at exterior element boundary quadrature points.
Definition: femIntegrals.c:8228
calculateExteriorElementBoundaryStress2D
void calculateExteriorElementBoundaryStress2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *elementBoundaryMaterialTypes, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *p, double *mom_flux_vec_u, double *mom_flux_vec_v, double *dS, double *n, double *F)
Definition: femIntegrals.c:4551
updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd
void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:11577
calculateExteriorNumericalTrace_Potential
void calculateExteriorNumericalTrace_Potential(int *isDOFBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *phi_bc, double *phi, double *dphi, double *phi_trace, double *dphi_trace_left)
Calculate the trace of the potential on interior element boundaries. Use the arithmetic average.
Definition: femIntegrals.c:8707
updateAdvection_adjoint
void updateAdvection_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *df, double *grad_w_dV, double *Lstar_w_dV)
Loop over all the elements and update the linearized adjoint applied to the weighted test functions w...
Definition: femIntegrals.c:2247
calculateGlobalExteriorElementBoundaryIntegrationWeights
void calculateGlobalExteriorElementBoundaryIntegrationWeights(int nQuadraturePoints_elementBoundary, int nExteriorElementBoundaries_global, double *sqrt_det_g, double *referenceWeights, double *weights)
Definition: femIntegrals.c:6961
updateHamiltonianJacobian_strong
void updateHamiltonianJacobian_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *dH, double *grad_v, double *dstrong_residual)
Loop over all the elements and update the Jacobian of the strong form of the residual with the advect...
Definition: femIntegrals.c:2508
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR(int *elementNeighbors, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_eNebN_ru, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at interior boundaries.
Definition: femIntegrals.c:5902
parametricMaps_getPermutations
void parametricMaps_getPermutations(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nSpace_global, double *xiArray, int *permutations)
Definition: femIntegrals.c:453
updateNumericalDiffusionJacobian_lowmem
void updateNumericalDiffusionJacobian_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *numDiff, double *grad_v, double *grad_w_dV, double *jacobian_weak_residual)
Definition: femIntegrals.c:4161
f
Double f
Definition: Headers.h:64
checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame
int checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, double tolerance, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, const double *ebq_global_val, const double *ebqe_val, int *firstBadIndex)
Definition: femIntegrals.c:10959
updateMassJacobian_weak_lowmem
void updateMassJacobian_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *dmt, double *v, double *w_dV, double *jacobian_weak_residual)
Definition: femIntegrals.c:1785
updateGlobalJacobianFromElementJacobian_eb_CSR
void updateGlobalJacobianFromElementJacobian_eb_CSR(int *elementNeighbors, int nElements_global, int nElementBoundaries_element, int nDOF_test_element, int nDOF_trial_element, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementJacobian_eb, double *globalJacobian)
Update the global CSR jacobian from the element Jacobians.
Definition: femIntegrals.c:5587
updateExteriorElementBoundaryDiffusionAdjoint
void updateExteriorElementBoundaryDiffusionAdjoint(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *isDOFBoundary, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double sigma, double *u, double *ub, double *n, double *a, double *grad_w, double *dS, double *residual)
Definition: femIntegrals.c:11118
updateInteriorElementBoundary_MixedForm_weakJacobian
void updateInteriorElementBoundary_MixedForm_weakJacobian(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *dphi_trace_left, double *dphi_trace_right, double *v, double *w_dS, double *db, double *db_eb)
Update the element boundary flux on interior element boundaries.
Definition: femIntegrals.c:8818
updateDiffusion_adjoint_sd
void updateDiffusion_adjoint_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, int *rowptr, int *colind, double *da, double *grad_phi, double *grad_w_dV, double *Lstar_w_dV)
Definition: femIntegrals.c:3378
updateInteriorElementBoundary_MixedForm_weak
void updateInteriorElementBoundary_MixedForm_weak(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *phi_trace, double *w_dS, double *b)
Update the element boundary flux on interior element boundaries.
Definition: femIntegrals.c:8754
parametricMaps_getInverseValues
void parametricMaps_getInverseValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *inverseJacobian, int *l2g, double *nodeArray, double *xArray, double *xiArray)
Definition: femIntegrals.c:683
updateAdvectionJacobian_strong
void updateAdvectionJacobian_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *df, double *grad_v, double *dstrong_residual)
Loop over all the elements and update the Jacobian of the strong form of the residual with the advect...
Definition: femIntegrals.c:2190
updateGlobalExteriorElementBoundaryShockCapturingVelocity
void updateGlobalExteriorElementBoundaryShockCapturingVelocity(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *numDiff, double *grad_u, double *velocity)
Calculate the shock capturing flux at exterior element boundary quadrature points.
Definition: femIntegrals.c:8270
updateDiffusion_weak
void updateDiffusion_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *a, double *grad_phi_X_grad_w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:2634
s
Double s
Definition: Headers.h:84
calculateFiniteElementFunctionValues
void calculateFiniteElementFunctionValues(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nComponents, int *l2g, double *dof, double *v, double *u)
Calculate the values of a multicomponent finite element function at the quadrature points from the de...
Definition: femIntegrals.c:6982
updateDiffusion_MixedForm_weak
void updateDiffusion_MixedForm_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *a, double *qV, double *grad_w_dV, double *weak_residual)
Definition: femIntegrals.c:10137
calculateInteriorNumericalTrace_Potential
void calculateInteriorNumericalTrace_Potential(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *phi, double *dphi, double *phi_trace, double *dphi_trace_left, double *dphi_trace_right)
Calculate the trace of the potential on interior element boundaries. Use the arithmetic average.
Definition: femIntegrals.c:8658
updateInteriorElementBoundaryDiffusionAdjoint
void updateInteriorElementBoundaryDiffusionAdjoint(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double sigma, double *u, double *n, double *a, double *grad_w, double *dS, double *residual)
Definition: femIntegrals.c:11033
updateNumericalDiffusion_lowmem
void updateNumericalDiffusion_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *numDiff, double *grad_u, double *grad_w_dV, double *weak_residual)
Definition: femIntegrals.c:4059
parametricMaps_getJacobianValuesTrace3D
void parametricMaps_getJacobianValuesTrace3D(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:972
calculateConservationResidualDG
void calculateConservationResidualDG(int nElements_global, int nDOF_test_element, double *elementResidual, double *conservationResidual)
Definition: femIntegrals.c:8376
updateExteriorElementBoundaryDiffusiveVelocity
void updateExteriorElementBoundaryDiffusiveVelocity(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *a, double *grad_phi, double *velocity)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: femIntegrals.c:7911
calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace
void calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nComponents, int nSpace, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, int *l2g, double *dof, double *grad_v, double *grad_u)
Definition: femIntegrals.c:7271
updateSubgridErrorJacobian
void updateSubgridErrorJacobian(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *derror, double *Lstar_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:3969
parametricFiniteElementSpace_getGradientValuesTrace
void parametricFiniteElementSpace_getGradientValuesTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace_global, double *grad_psi, int *permutations, double *inverseJacobianArray, double *grad_vArray)
Definition: femIntegrals.c:378
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
calculateFiniteElementFunctionGradientValues
void calculateFiniteElementFunctionGradientValues(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nComponents, int nSpace, int *l2g, double *dof, double *grad_v, double *grad_u)
Calculate the gradient values of a multicomponent finite element function at the quadrature points fr...
Definition: femIntegrals.c:7013
parametricFiniteElementSpace_getValuesGlobalExteriorTrace
void parametricFiniteElementSpace_getValuesGlobalExteriorTrace(int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *psi, double *vArray)
Definition: femIntegrals.c:283
calculateVectorScalarProduct
void calculateVectorScalarProduct(int nElements_global, int nQuadraturePoints_element, int nSpace, double *v, double *s, double *vResult)
Calculate the product of a vector and a scalar at the quadrature points.
Definition: femIntegrals.c:4220
parametricFiniteElementSpace_getValuesTrace
void parametricFiniteElementSpace_getValuesTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, double *psi, int *permutations, double *vArray)
Definition: femIntegrals.c:259
calculateFiniteElementFunctionHessianValues
void calculateFiniteElementFunctionHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nComponents, int nSpace, int *l2g, double *dof, double *Hessian_v, double *Hessian_u)
Definition: femIntegrals.c:7045
n
Int n
Definition: Headers.h:28
updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_CSR
void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_CSR(int *elementNeighbors, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_eNebN_ru, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at exterior boundaries only d...
Definition: femIntegrals.c:6187
updateExteriorElementBoundaryFlux
void updateExteriorElementBoundaryFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *flux, double *w_dS, double *residual)
Update the element boundary flux on exterior element boundaries.
Definition: femIntegrals.c:4327
calculateExteriorElementBoundaryStress3D
void calculateExteriorElementBoundaryStress3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *elementBoundaryMaterialTypes, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *p, double *mom_flux_vec_u, double *mom_flux_vec_v, double *mom_flux_vec_w, double *dS, double *n, double *F)
Definition: femIntegrals.c:4470
updateDiffusionJacobian_weak_lowmem
void updateDiffusionJacobian_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, int *l2g, double *a, double *da, double *grad_phi, double *grad_w_dV, double *dphi, double *v, double *grad_v, double *jacobian_weak_residual)
Definition: femIntegrals.c:2890
df
double df(double C, double b, double a, int q, int r)
Definition: analyticalSolutions.c:2209
phi
Double phi
Definition: Headers.h:76
parametricMaps_getJacobianValuesTrace1D
void parametricMaps_getJacobianValuesTrace1D(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1260
calculateCFLADR2speeds
void calculateCFLADR2speeds(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df1, double *df2, double *cfl)
Definition: femIntegrals.c:7752
updateMassJacobian_strong
void updateMassJacobian_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, double *dmt, double *v, double *dstrong_residual)
Loop over all the elements and update the Jacobian of the strong from of the residual at the quadratu...
Definition: femIntegrals.c:1873
loadBoundaryFluxIntoGlobalElementBoundaryVelocity
void loadBoundaryFluxIntoGlobalElementBoundaryVelocity(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *fluxElementBoundaries, double *normal, double *flux, double updateCoef, double *velocity)
Definition: femIntegrals.c:8606
calculateTensorScalarProduct
void calculateTensorScalarProduct(int nElements_global, int nQuadraturePoints_element, int nSpace, double *t, double *s, double *tResult)
Calculate the product of a tensor and scalar at the quadrature points.
Definition: femIntegrals.c:4246
updateGlobalJacobianFromElementJacobian_eb_dense
void updateGlobalJacobianFromElementJacobian_eb_dense(int *elementNeighbors, int nElements_global, int nElementBoundaries_element, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementJacobian_eb, double *globalJacobian)
Update the global dense jacobian from the element Jacobians.
Definition: femIntegrals.c:4720
updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd
void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, int *isDOFBoundary, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:11768
copyLeftElementBoundaryInfo
void copyLeftElementBoundaryInfo(int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nSpace_global, int nExteriorElementBoundaries_global, int nInteriorElementBoundaries_global, int *elementBoundaryElementsArray, int *elementBoundaryLocalElementBoundariesArray, int *exteriorElementBoundariesArray, int *interiorElementBoundariesArray, double *x, double *n, double *xg, double *ng)
Definition: femIntegrals.c:20
updateSubgridError
void updateSubgridError(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *error, double *Lstar_w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:3909
copyExteriorElementBoundaryValuesToElementBoundaryValues
void copyExteriorElementBoundaryValuesToElementBoundaryValues(int nExteriorElementBoundaries_global, int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const double *ebqe_val, double *ebq_val)
copy quantity that sits only on exterior boundaries into an elementBoundary quadrature array
Definition: femIntegrals.c:10578
updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense
void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:11174
checkElementBoundaryAndExteriorElementBoundaryArraysSame
int checkElementBoundaryAndExteriorElementBoundaryArraysSame(int nElementBoundaries_element, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, double tolerance, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, const double *ebq_val, const double *ebqe_val, int *firstBadIndex)
Definition: femIntegrals.c:10913
updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR
void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:5845
parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace
void parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace(int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace_global, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *grad_psi, double *inverseJacobianArray, double *grad_vArray)
Definition: femIntegrals.c:414
calculateFiniteElementFunctionGradientValuesTrace
void calculateFiniteElementFunctionGradientValuesTrace(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nComponents, int nSpace, int *l2g, double *dof, double *grad_v, double *grad_u)
Calculate the gradients of a multi-component finite element function at the element boundary quadratu...
Definition: femIntegrals.c:7202
updateExteriorElementBoundary_MixedForm_weakJacobian
void updateExteriorElementBoundary_MixedForm_weakJacobian(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *dphi_trace_left, double *v, double *w_dS, double *db, double *db_eb)
Update the element boundary flux on interior element boundaries.
Definition: femIntegrals.c:8988
updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd
void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:11844
updateExteriorElementBoundaryAdvectiveVelocity
void updateExteriorElementBoundaryAdvectiveVelocity(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *f, double *velocity)
Update the advective flux at exterior element boundaries.
Definition: femIntegrals.c:8113
calculateWeightedShapeHessians
void calculateWeightedShapeHessians(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *dVR, double *abs_det_jac, double *Hess_w, double *Hess_w_dV)
Definition: femIntegrals.c:6501
updateInteriorElementBoundaryDiffusionAdjoint_sd
void updateInteriorElementBoundaryDiffusionAdjoint_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double sigma, double *u, double *n, double *a, double *grad_w, double *dS, double *residual)
Definition: femIntegrals.c:11433
H
Double H
Definition: Headers.h:65
updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_dense
void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_dense(int *elementNeighbors, int nElements_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at exterior boundaries only...
Definition: femIntegrals.c:5399
updateDiffusionJacobian_MixedForm_weak
void updateDiffusionJacobian_MixedForm_weak(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *a, double *da, double *qV, double *qDV, double *qDV_eb, double *grad_w_dV, double *v, double *jacobian_weak_residual, double *jacobian_weak_residual_eb)
Definition: femIntegrals.c:10231
updateReaction_strong
void updateReaction_strong(int nElements_global, int nQuadraturePoints_element, double *r, double *strong_residual)
Loop over all the elements and update the strong from of the residual at the quadrature points with t...
Definition: femIntegrals.c:3771
updateInteriorElementBoundaryDiffusiveVelocity_sd
void updateInteriorElementBoundaryDiffusiveVelocity_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *a, double *grad_phi, double *velocity)
Definition: femIntegrals.c:7855
updateHamiltonian_adjoint
void updateHamiltonian_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *dH, double *grad_w_dV, double *Lstar_w_dV)
Loop over all the elements and update the linearized adjoint applied to the weighted test functions w...
Definition: femIntegrals.c:2566
v
Double v
Definition: Headers.h:95
updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd
void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, int *isDOFBoundary, double sigma, double *v, double *n, double *a, double *grad_w, double *dS, double *jac)
Definition: femIntegrals.c:12044
update_f_movingDomain_constantMass_q
void update_f_movingDomain_constantMass_q(int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *f)
Definition: femIntegrals.c:12149
calculateShape_X_weightedShapeGlobalExteriorTrace
void calculateShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_trial_element, int nDOF_test_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *v, double *w_dS, double *v_X_w_dS)
Calcualte the tensor product of trial and test functions at the quadrature points global exterior bou...
Definition: femIntegrals.c:6850
parametricMaps_getJacobianValuesGlobalExteriorTrace1D
void parametricMaps_getJacobianValuesGlobalExteriorTrace1D(int nQuadraturePoints_element, int nDOF_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1317
computeC0P1InterpolantDGP0
void computeC0P1InterpolantDGP0(int nElements_global, int nNodes_global, int nNodes_element, int nDOF_element, int dim_dof, const int *elementNodesArray, const int *nodeElementOffsets, const int *nodeElementsArray, const int *l2g, const double *dof, double *nodalAverage)
Definition: femIntegrals.c:10823
updateDiffusion2_strong_sd
void updateDiffusion2_strong_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *a, double *Hess_phi, double *strong_residual)
Definition: femIntegrals.c:3441
calculateConservationFluxPWL
void calculateConservationFluxPWL(int nNodes_global, int nNodes_internal, int *nElements_node, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *internalNodes, double *starR, double *starJ, double *starU)
parametricMaps_getValuesTrace
void parametricMaps_getValuesTrace(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *psi, int *l2g, double *nodeArray, double *xArray)
Definition: femIntegrals.c:610
parametricMaps_getInverseValuesTrace
void parametricMaps_getInverseValuesTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace_global, double *inverseJacobian, int *l2g, double *nodeArray, double *xArray, double *xiArray)
Definition: femIntegrals.c:722
updateDiffusion_adjoint
void updateDiffusion_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *da, double *grad_phi, double *grad_w_dV, double *Lstar_w_dV)
Loop over all the elements and update the linearized adjoint applied to the weighted test function wi...
Definition: femIntegrals.c:3344
updateDiffusionJacobian2_strong_sd
void updateDiffusionJacobian2_strong_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, double *a, double *da, double *v, double *Hess_phi, double *dphi, double *Hess_v, double *dstrong_residual)
Definition: femIntegrals.c:3525
calculateConservationResidualPWL
void calculateConservationResidualPWL(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nodeStarOffsets, int *nElements_node, double *elementResidual, double *vAverage, double *starU, double *dX, double *w, double *normal, double *conservationResidual, double *starR, double *vConservative, double *vConservative_element)
updatePotential_MixedForm_weakJacobian
void updatePotential_MixedForm_weakJacobian(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *dphi, double *v, double *grad_w_dV, double *db)
Definition: femIntegrals.c:9103
updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense
void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:5486
updateDiffusionJacobian2_strong
void updateDiffusionJacobian2_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, int *l2g, double *a, double *da, double *v, double *Hess_phi, double *dphi, double *Hess_v, double *dstrong_residual)
Definition: femIntegrals.c:3470
calculateFiniteElementFunctionValuesTrace
void calculateFiniteElementFunctionValuesTrace(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nComponents, int *l2g, double *dof, double *v, double *u)
Calculate the values of a multi-component finite element function at element boundary quadrature poin...
Definition: femIntegrals.c:7167
calculateElementBoundaryIntegrationWeights
void calculateElementBoundaryIntegrationWeights(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double *sqrt_det_g, double *referenceWeights, double *weights)
Definition: femIntegrals.c:6939
parametricFiniteElementSpace_getGradientValues
void parametricFiniteElementSpace_getGradientValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *grad_psi, double *inverseJacobianArray, double *grad_vArray)
Definition: femIntegrals.c:311
updateReaction_adjoint
void updateReaction_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *dr, double *w_dV, double *Lstar_w_dV)
Loop over all the elements and update the linearized adjoint, applied to the weighted test functions,...
Definition: femIntegrals.c:3852
updateDiffusionJacobian_strong
void updateDiffusionJacobian_strong(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, int *l2g, double *da, double *dphi, double *grad_phi, double *grad_u, double *grad_v, double *dstrong_residual)
Loop over all the elements and update the strong form of the residual with the diffusion term at the ...
Definition: femIntegrals.c:3207
updateAdvection_strong
void updateAdvection_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *df, double *grad_u, double *strong_residual)
Loop over all the elements and update the strong form of the residual with the advection term.
Definition: femIntegrals.c:2143
updateNumericalDiffusion
void updateNumericalDiffusion(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *numDiff, double *grad_u_X_grad_w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:4034
pe
Double pe
Definition: Headers.h:75
parametricMaps_getJacobianValues1D
void parametricMaps_getJacobianValues1D(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, int *l2g, double *nodeArray, double *jacobianArray, double *jacobianDeterminantArray, double *jacobianInverseArray)
Definition: femIntegrals.c:928
getPermutationsGlobal
void getPermutationsGlobal(int nElementBoundaries_global, int nElementBoundaryQuadraturePoints_elementBoundary, double *xArray, double *xArrayNew, int *permutations)
Definition: femIntegrals.c:542
u
Double u
Definition: Headers.h:89
updateDiffusionJacobian_strong_sd
void updateDiffusionJacobian_strong_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, double *da, double *dphi, double *grad_phi, double *grad_u, double *grad_v, double *dstrong_residual)
Definition: femIntegrals.c:3258
updateMass_adjoint
void updateMass_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *dmt, double *w_dV, double *Lstar_w_dV)
Loop over all the elements and update the linearized adjoint, applied to the weighted test functions,...
Definition: femIntegrals.c:1921
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at interior boundaries.
Definition: femIntegrals.c:4778
fluxDomainBoundaryIntegralFromVector
double fluxDomainBoundaryIntegralFromVector(int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int nSpace, int *flag, int *exteriorElementBoundaries, double *dS, double *nValueArray, double *normal)
Definition: femIntegrals.c:10756
updateGlobalExteriorElementBoundaryAdvectiveVelocity
void updateGlobalExteriorElementBoundaryAdvectiveVelocity(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *f, double *velocity)
Update the advective flux at exterior element boundaries.
Definition: femIntegrals.c:8147
calculateExteriorElementBoundaryAverageVelocity
void calculateExteriorElementBoundaryAverageVelocity(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
Definition: femIntegrals.c:8334
xt
Definition: AddedMass.cpp:7
projectFromNodalInterpolationConditions
void projectFromNodalInterpolationConditions(int nElements_global, int nDOF_element, int dim_dof, const int *l2g, const int *functional_map_element, const double *interpolationValues, double *dofs)
Definition: femIntegrals.c:12477
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementBoundaryFluxJacobian_2sided, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary two-sided Hamiltonian flux Jacobians at inte...
Definition: femIntegrals.c:6265
parametricMaps_getJacobianValues3D
void parametricMaps_getJacobianValues3D(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, int *l2g, double *nodeArray, double *jacobianArray, double *jacobianDeterminantArray, double *jacobianInverseArray)
Definition: femIntegrals.c:814
calculateCFLADR
void calculateCFLADR(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df, double *cfl)
Definition: femIntegrals.c:7716
copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues
void copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const double *ebq_global_val, double *ebqe_val)
copy quantity that sits only on exterior boundaries from a global elementBoundary quadrature array
Definition: femIntegrals.c:10641
updateAdvectionJacobian_weak
void updateAdvectionJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *df, double *v_X_grad_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:2055
updateAdvection_weak
void updateAdvection_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *f, double *grad_w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:1985
updateDiffusion_weak_lowmem
void updateDiffusion_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *a, double *grad_phi, double *grad_w_dV, double *weak_residual)
Definition: femIntegrals.c:2662
calculateFiniteElementFunctionValuesGlobalExteriorTrace
void calculateFiniteElementFunctionValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nComponents, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, int *l2g, double *dof, double *v, double *u)
Definition: femIntegrals.c:7236
calculateVelocityQuadrature_MixedForm2_sd
void calculateVelocityQuadrature_MixedForm2_sd(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace, int nQuadraturePoints_element, const int *rowptr, const int *colind, double *qa, double *qw_dV, double *b, double *v, double *V, double *qv, double *qV)
Definition: femIntegrals.c:9312
updateMassJacobian_weak
void updateMassJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *dmt, double *v_X_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:1759
parametricMaps_getJacobianValuesGlobalExteriorTrace3D
void parametricMaps_getJacobianValuesGlobalExteriorTrace3D(int nQuadraturePoints_element, int nDOF_element, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *grad_psi, double *boundaryNormals, double *boundaryJacobians, int *l2g, double *nodeArray, double *jacobianInverseArray, double *metricTensorArray, double *metricTensorDeterminantSqrtArray, double *unitNormalArray)
Definition: femIntegrals.c:1542
calculateWeightedShape
void calculateWeightedShape(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *dVR, double *abs_det_jac, double *w, double *w_dV)
Weight the test function with the integration weights.
Definition: femIntegrals.c:6413
calculateFlowVelocity
void calculateFlowVelocity(int nElements_global, int nQuadraturePoints_element, int nSpace, double *f, double *a, double *grad_phi, double *v)
Calculate the total (advective + diffusive) flow velocity.
Definition: femIntegrals.c:7314
updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR
void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:5785
updateStress_weak
void updateStress_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *sigma, double *grad_w_dV, double *weak_residual_x, double *weak_residual_y, double *weak_residual_z)
Definition: femIntegrals.c:12219
updateInteriorElementBoundaryFlux
void updateInteriorElementBoundaryFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *flux, double *w_dS, double *residual)
Update the element boundary flux on interior element boundaries.
Definition: femIntegrals.c:4280
updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR
void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_ru, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at interior boundaries.
Definition: femIntegrals.c:5643
estimate_mt
void estimate_mt(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *vXw_dV, double *elementSpatialResidual, double *mt)
Definition: femIntegrals.c:10454
parametricMaps_getJacobianValues2D
void parametricMaps_getJacobianValues2D(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *grad_psi, int *l2g, double *nodeArray, double *jacobianArray, double *jacobianDeterminantArray, double *jacobianInverseArray)
Definition: femIntegrals.c:877
copyGlobalElementBoundaryVelocityToElementBoundary
void copyGlobalElementBoundaryVelocityToElementBoundary(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElementsArray, int *elementBoundaryLocalElementBoundariesArray, double *velocityBoundary_global, double *velocityBoundary_element)
Definition: femIntegrals.c:8542
calculateInteriorElementBoundaryAverageVelocity
void calculateInteriorElementBoundaryAverageVelocity(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
Definition: femIntegrals.c:8299
scalarSmoothedHeavisideDomainIntegral
double scalarSmoothedHeavisideDomainIntegral(int nElements_global, int nQuadraturePoints_element, double epsFact, double *elementDiameter, double *dV, double *nValueArray)
Definition: femIntegrals.c:10702
calculateConservationResidualGlobalBoundaries
void calculateConservationResidualGlobalBoundaries(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dS, double *normal, double *elementResidual, double *velocity, double *conservationResidual)
updateHamiltonian_strong
void updateHamiltonian_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *dH, double *grad_u, double *strong_residual)
Loop over all the elements and update the strong form of the residual with the advection term.
Definition: femIntegrals.c:2462
updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense
void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense(int *elementNeighbors, int nElements_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:5309
calculateWeightedShapeGradients
void calculateWeightedShapeGradients(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *dVR, double *abs_det_jac, double *grad_w, double *grad_w_dV)
Weight the test function with the integration weights.
Definition: femIntegrals.c:6442
updatePotential_MixedForm_weak
void updatePotential_MixedForm_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *phi, double *grad_w_dV, double *b)
Definition: femIntegrals.c:9040
updateStressJacobian_weak
void updateStressJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *dsigma_xx, double *dsigma_xy, double *dsigma_xz, double *dsigma_yx, double *dsigma_yy, double *dsigma_yz, double *dsigma_zx, double *dsigma_zy, double *dsigma_zz, double *grad_v, double *grad_w_dV, double *jacobian_weak_residual_xx, double *jacobian_weak_residual_xy, double *jacobian_weak_residual_xz, double *jacobian_weak_residual_yx, double *jacobian_weak_residual_yy, double *jacobian_weak_residual_yz, double *jacobian_weak_residual_zx, double *jacobian_weak_residual_zy, double *jacobian_weak_residual_zz)
Definition: femIntegrals.c:12274
updateAddJacobian_CSR
void updateAddJacobian_CSR(int jacIndex, double val, double *jac)
Update a single element of the Jacobian.
Definition: femIntegrals.c:7353
update_f_movingDomain_constantMass_ebq
void update_f_movingDomain_constantMass_ebq(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *f)
Definition: femIntegrals.c:12196
scalarHeavisideDomainIntegral
double scalarHeavisideDomainIntegral(int nElements_global, int nQuadraturePoints_element, double *dV, double *nValueArray)
Definition: femIntegrals.c:10684
calculateGradShape_X_weightedGradShape
void calculateGradShape_X_weightedGradShape(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *grad_v, double *grad_w_dV, double *grad_v_X_grad_w_dV)
Calculate the tensor product of trial function gradients and test function gradients at the quadratur...
Definition: femIntegrals.c:6635
calculateShape_X_weightedGradShape
void calculateShape_X_weightedGradShape(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *v, double *grad_w_dV, double *v_X_grad_w_dV)
Calculate the tensor product of trial functions and test function gradients at the quadrature points.
Definition: femIntegrals.c:6567
updateGlobalJacobianFromElementJacobian_CSR
void updateGlobalJacobianFromElementJacobian_CSR(int nElements_global, int nDOF_test_element, int nDOF_trial_element, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_ru, double *elementJacobian, double *globalJacobian)
Update the global CSR jacobian from the element Jacobians.
Definition: femIntegrals.c:5547
updateExteriorElementBoundaryDiffusiveVelocity_sd
void updateExteriorElementBoundaryDiffusiveVelocity_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *a, double *grad_phi, double *velocity)
Definition: femIntegrals.c:7951
updateDiffusion_strong
void updateDiffusion_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *da, double *grad_phi, double *grad_u, double *strong_residual)
Loop over all the elements and update the strong form of the residual with the diffusion term at the ...
Definition: femIntegrals.c:3125
update_f_movingDomain_q
void update_f_movingDomain_q(int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *m, double *f)
Definition: femIntegrals.c:12126
computeC0P1InterpolantDGP12
void computeC0P1InterpolantDGP12(int nElements_global, int nNodes_global, int nNodes_element, int nDOF_element, int dim_dof, const int *elementNodesArray, const int *nodeElementOffsets, const int *nodeElementsArray, const int *l2g, const double *dof, double *nodalAverage)
Definition: femIntegrals.c:10789
updateInteriorElementBoundaryDiffusiveVelocity
void updateInteriorElementBoundaryDiffusiveVelocity(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *a, double *grad_phi, double *velocity)
Calculate the diffusive flux at interior element boundary quadrature points.
Definition: femIntegrals.c:7802
updateDiffusionJacobian_weak_sd
void updateDiffusionJacobian_weak_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, int *rowptr, int *colind, int *l2g, double *a, double *da, double *grad_phi, double *grad_w_dV, double *dphi, double *v, double *grad_v, double *jacobian_weak_residual)
Definition: femIntegrals.c:3023
parametricMaps_getValuesGlobalExteriorTrace
void parametricMaps_getValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary, int nDOF_element, int nSpace_global, int nExteriorElementBoundaries_global, const int *exteriorElementBoundariesArray, const int *elementBoundaryElementsArray, const int *elementBoundaryLocalElementBoundariesArray, double *psi, int *l2g, double *nodeArray, double *xArray)
Definition: femIntegrals.c:644
updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR
void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR(int *elementNeighbors, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *csrRowIndeces_ru, int *csrColumnOffsets_eb_eNebN_ru, double *elementBoundaryFluxJacobian_eb, double *w_dS, double *jac)
Update the global CSR Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:6106
updateGlobalExteriorElementBoundaryDiffusiveVelocity
void updateGlobalExteriorElementBoundaryDiffusiveVelocity(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *a, double *grad_phi, double *velocity)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: femIntegrals.c:7995
updateHamiltonianJacobian_weak
void updateHamiltonianJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *dH, double *grad_v_X_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:2372
updateMass_strong
void updateMass_strong(int nElements_global, int nQuadraturePoints_element, double *mt, double *strong_residual)
Loop over all the elements and update the strong from of the residual at the quadrature points with t...
Definition: femIntegrals.c:1834
r
Double r
Definition: Headers.h:83
scalarDomainIntegral
double scalarDomainIntegral(int nElements_global, int nQuadraturePoints_element, double *dV, double *nValueArray)
Definition: femIntegrals.c:10668
calculateExteriorElementBoundaryVelocities
void calculateExteriorElementBoundaryVelocities(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *m, double *a, double *grad_phi, double *f, double *vAverage, double *vJump, double *mAverage, double *mJump)
Definition: femIntegrals.c:7461
updateGlobalExteriorElementBoundaryFlux
void updateGlobalExteriorElementBoundaryFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *flux, double *w_dS, double *residual)
Definition: femIntegrals.c:4361
updateMass_weak
void updateMass_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *mt, double *w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:1698
calculateShape_X_weightedShapeTrace
void calculateShape_X_weightedShapeTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_trial_element, int nDOF_test_element, double *v, double *w_dS, double *v_X_w_dS)
Calcualte the tensor product of trial and test functions at the quadrature points.
Definition: femIntegrals.c:6740
parametricFiniteElementSpace_getHessianValues
void parametricFiniteElementSpace_getHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *Hessian_psi, double *inverseJacobianArray, double *Hessian_vArray)
Definition: femIntegrals.c:340
copyFreeUnknownsToGlobalUnknowns
void copyFreeUnknownsToGlobalUnknowns(int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *free_u, double *u)
Definition: femIntegrals.c:10999
updateDiffusionJacobian_weak
void updateDiffusionJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, int *l2g, double *a, double *da, double *grad_phi_X_grad_w_dV, double *dphi, double *v, double *grad_v_X_grad_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:2819
updateExteriorElementBoundaryDiffusionAdjoint_sd
void updateExteriorElementBoundaryDiffusionAdjoint_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *rowptr, int *colind, int *isDOFBoundary, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double sigma, double *u, double *ub, double *n, double *a, double *grad_w, double *dS, double *residual)
Definition: femIntegrals.c:11520
updateAdvectionJacobian_weak_lowmem
void updateAdvectionJacobian_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *df, double *v, double *grad_w_dV, double *jacobian_weak_residual)
Definition: femIntegrals.c:2085
updateReactionJacobian_weak
void updateReactionJacobian_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *dr, double *v_X_w_dV, double *jacobian_weak_residual)
Loop over all the elements and update the element Jacobian with the numerical quadrature approximatio...
Definition: femIntegrals.c:3729
updateHamiltonianJacobian_weak_lowmem
void updateHamiltonianJacobian_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *dH, double *grad_v, double *w_dV, double *jacobian_weak_residual)
Definition: femIntegrals.c:2402
copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues
void copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nValuesPerQuadraturePoint, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const double *ebqe_val, double *ebq_global_val)
copy quantity that sits only on exterior boundaries into a global elementBoundary quadrature array
Definition: femIntegrals.c:10611
updateExteriorElementBoundary_MixedForm_weak
void updateExteriorElementBoundary_MixedForm_weak(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *phi_trace, double *w_dS, double *b)
Update the element boundary flux on exterior element boundaries.
Definition: femIntegrals.c:8944
updateInteriorElementBoundaryAdvectiveVelocity
void updateInteriorElementBoundaryAdvectiveVelocity(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *f, double *velocity)
Calculate the advective flux at at interior element boundaries.
Definition: femIntegrals.c:8066
updateInteriorTwoSidedElementBoundaryFlux
void updateInteriorTwoSidedElementBoundaryFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *flux, double *w_dS, double *residual)
Update a two-sided (say nonconservative HJ flux) element boundary flux on interior element boundaries...
Definition: femIntegrals.c:4424
calculateVelocityQuadrature_MixedForm_Jacobian
void calculateVelocityQuadrature_MixedForm_Jacobian(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, int nSpace, int nQuadraturePoints_element, double *A_inv, double *db, double *db_eb, double *v, double *DV, double *DV_eb, double *qv, double *qDV, double *qDV_eb)
Definition: femIntegrals.c:9562
zeroJacobian_CSR
void zeroJacobian_CSR(int nNonzeros, double *jac)
Set all the Jacobian entries to 0.0.
Definition: femIntegrals.c:7363
calculateScalarScalarProduct
void calculateScalarScalarProduct(int nElements_global, int nQuadraturePoints_element, double *s1, double *s2, double *sResult)
Calculate the product of two scalars at the quadrature points.
Definition: femIntegrals.c:4198
updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense
void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int nDOF_trial_element, int offset_r, int stride_r, int offset_u, int stride_u, int nFreeVDOF_global, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *nFreeDOF_element_r, int *freeLocal_r, int *freeGlobal_r, int *nFreeDOF_element_u, int *freeLocal_u, int *freeGlobal_u, double *elementBoundaryFluxJacobian, double *w_dS, double *jac)
Update the global dense Jacobian from the element boundary flux Jacobians at exterior boundaries.
Definition: femIntegrals.c:5245
updateReactionJacobian_weak_lowmem
void updateReactionJacobian_weak_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, double *dr, double *v, double *w_dV, double *jacobian_weak_residual)
Definition: femIntegrals.c:3740
parametricFiniteElementSpace_getValues
void parametricFiniteElementSpace_getValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *psi, double *vArray)
Definition: femIntegrals.c:241
updateDiffusion2_adjoint
void updateDiffusion2_adjoint(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *a, double *Hess_w_dV, double *Lstar_w_dV)
Definition: femIntegrals.c:3580
psi
Double psi
Definition: Headers.h:78
calculateDimensionlessNumbersADR
void calculateDimensionlessNumbersADR(int nElements_global, int nQuadraturePoints_element, int nSpace, int computeDiffusiveTimeStepLimit, double *elementDiameter, double *df, double *a, double *dphi, double *dr, double *dmt, double *pe, double *cfl)
Calculate the Peclet and Courant-Friedrichs-Lewy numbers for the scalar advection-diffusion-reaction ...
Definition: femIntegrals.c:7588
calculateGradShape_X_weightedShapeTrace
void calculateGradShape_X_weightedShapeTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_trial_element, int nDOF_test_element, int nSpace, double *grad_v, double *w_dS, double *grad_v_X_w_dS)
Calculate the tensor product of trial function gradients and test functions at the quadrature points.
Definition: femIntegrals.c:6775
updateReaction_weak
void updateReaction_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, double *r, double *w_dV, double *weak_residual)
Loop over all the elements and update the element weak_residual with the numerical quadrature approxi...
Definition: femIntegrals.c:3680