proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
femIntegrals.h
Go to the documentation of this file.
1#ifndef FEMINTEGRALS_H
2#define FEMINTEGRALS_H
3
8
14
15extern void parametricFiniteElementSpace_getHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *Hessian_psi, double *inverseJacobianArray, double *Hessian_vArray);
16extern void updateDiffusion2_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *a, double *Hess_phi, double *strong_residual);
17extern void updateDiffusion2_strong_sd(int nElements_global, int nQuadraturePoints_element,int nSpace, int* rowptr, int* colind, double* a, double* Hess_phi, double* strong_residual);
18extern 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);
19extern 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);
33extern 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);
34void 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);
35extern 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);
36extern 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);
37extern 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);
38extern 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);
39extern 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);
40extern void calculateCFLADR2speeds(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df1, double *df2, double *cfl);
41extern 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);
42extern 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);
43extern 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);
44extern 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
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);
105extern 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);
113extern void getPermutationsGlobal(int nElementBoundaries_global,
114 int nElementBoundaryQuadraturePoints_elementBoundary,
115 double* xArray,
116 double* xArrayNew,
117 int* permutations);
118extern 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);
240extern 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);
248extern 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);
257extern 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);
265extern void updateMass_strong(
266 int nElements_global,
267 int nQuadraturePoints_element,
268 double *mt,
269 double *strong_residual
270);
271extern 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);
279extern 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);
287extern 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);
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);
306extern 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);
315extern 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);
332extern 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);
341extern 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);
359extern 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);
368extern 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);
385extern 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);
394extern 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);
403extern 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);
411extern 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);
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);
436extern 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);
450extern 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);
466extern 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);
475extern 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);
497extern 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);
510extern 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);
520extern 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);
530extern 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);
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);
547extern 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);
555extern 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);
569extern 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);
577extern 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);
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);
594extern 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);
603extern 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);
621extern 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);
631 int nElements_global,
632 int nQuadraturePoints_element,
633 double *s1,
634 double *s2,
635 double *sResult
636);
638 int nElements_global,
639 int nQuadraturePoints_element,
640 int nSpace,
641 double *v,
642 double *s,
643 double *vResult
644);
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);
750extern 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);
801extern 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);
934extern 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);
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);
1023extern 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);
1094extern 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);
1103extern void updateAddJacobian_CSR(
1104 int jacIndex,
1105 double val,
1106 double *jac
1107);
1108extern void zeroJacobian_CSR(
1109 int nNonzeros,
1110 double *jac
1111);
1112extern 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);
1243extern void calculateDimensionlessNumbersADR_sd(int nElements_global,
1244 int nQuadraturePoints_element,
1245 int nSpace,
1246 int computeDiffusiveTimeStepLimit,
1247 int* rowptr,
1248 int* colind,
1249 double* elementDiameter,
1250 double* df,
1251 double* a,
1252 double* dphi,
1253 double* dr,
1254 double* dmt,
1255 double* pe,
1256 double* cfl);
1257extern void calculateCFLADR(
1258 int nElements_global,
1259 int nQuadraturePoints_element,
1260 int nSpace,
1261 double *elementDiameter,
1262 double *dm,
1263 double *df,
1264 double *cfl
1265);
1267 int nInteriorElementBoundaries_global,
1268 int nElementBoundaries_element,
1269 int nQuadraturePoints_elementBoundary,
1270 int nSpace,
1271 int *interiorElementBoundaries,
1272 int *elementBoundaryElements,
1273 int *elementBoundaryLocalElementBoundaries,
1274 double *a,
1275 double *grad_phi,
1276 double *velocity
1277);
1278extern void updateInteriorElementBoundaryDiffusiveVelocity_sd(int nInteriorElementBoundaries_global,
1279 int nElementBoundaries_element,
1280 int nQuadraturePoints_elementBoundary,
1281 int nSpace,
1282 int* rowptr,
1283 int* colind,
1284 int* interiorElementBoundaries,
1285 int* elementBoundaryElements,
1286 int* elementBoundaryLocalElementBoundaries,
1287 double* a,
1288 double* grad_phi,
1289 double* velocity);
1291 int nExteriorElementBoundaries_global,
1292 int nElementBoundaries_element,
1293 int nQuadraturePoints_elementBoundary,
1294 int nSpace,
1295 int *exteriorElementBoundaries,
1296 int *elementBoundaryElements,
1297 int *elementBoundaryLocalElementBoundaries,
1298 double *a,
1299 double *grad_phi,
1300 double *velocity
1301);
1302extern void updateExteriorElementBoundaryDiffusiveVelocity_sd(int nExteriorElementBoundaries_global,
1303 int nElementBoundaries_element,
1304 int nQuadraturePoints_elementBoundary,
1305 int nSpace,
1306 int* rowptr,
1307 int* colind,
1308 int* exteriorElementBoundaries,
1309 int* elementBoundaryElements,
1310 int* elementBoundaryLocalElementBoundaries,
1311 double* a,
1312 double* grad_phi,
1313 double* velocity);
1315 int nInteriorElementBoundaries_global,
1316 int nElementBoundaries_element,
1317 int nQuadraturePoints_elementBoundary,
1318 int nSpace,
1319 int *interiorElementBoundaries,
1320 int *elementBoundaryElements,
1321 int *elementBoundaryLocalElementBoundaries,
1322 double *f,
1323 double *velocity
1324);
1326 int nExteriorElementBoundaries_global,
1327 int nElementBoundaries_element,
1328 int nQuadraturePoints_elementBoundary,
1329 int nSpace,
1330 int *exteriorElementBoundaries,
1331 int *elementBoundaryElements,
1332 int *elementBoundaryLocalElementBoundaries,
1333 double *f,
1334 double *velocity
1335);
1337 int nInteriorElementBoundaries_global,
1338 int nElementBoundaries_element,
1339 int nQuadraturePoints_elementBoundary,
1340 int nQuadraturePoints_element,
1341 int nSpace,
1342 int *interiorElementBoundaries,
1343 int *elementBoundaryElements,
1344 int *elementBoundaryLocalElementBoundaries,
1345 double *numDiff,
1346 double *grad_u,
1347 double *velocity
1348);
1350 int nExteriorElementBoundaries_global,
1351 int nElementBoundaries_element,
1352 int nQuadraturePoints_elementBoundary,
1353 int nQuadraturePoints_element,
1354 int nSpace,
1355 int *exteriorElementBoundaries,
1356 int *elementBoundaryElements,
1357 int *elementBoundaryLocalElementBoundaries,
1358 double *numDiff,
1359 double *grad_u,
1360 double *velocity
1361);
1363 int nInteriorElementBoundaries_global,
1364 int nElementBoundaries_element,
1365 int nQuadraturePoints_elementBoundary,
1366 int nSpace,
1367 int *interiorElementBoundaries,
1368 int *elementBoundaryElements,
1369 int *elementBoundaryLocalElementBoundaries,
1370 double *v,
1371 double *vAverage
1372);
1374 int nExteriorElementBoundaries_global,
1375 int nElementBoundaries_element,
1376 int nQuadraturePoints_elementBoundary,
1377 int nSpace,
1378 int *exteriorElementBoundaries,
1379 int *elementBoundaryElements,
1380 int *elementBoundaryLocalElementBoundaries,
1381 double *v,
1382 double *vAverage
1383);
1385 int nElements_global,
1386 int nDOF_test_element,
1387 double *elementResidual,
1388 double *conservationResidual
1389);
1391 int nElements_global,
1392 int nDOF_test_element,
1393 int nElementBoundaries_element,
1394 int nQuadraturePoints_elementBoundary,
1395 int nSpace,
1396 double *n,
1397 double *dS_u,
1398 double *elementResidual,
1399 double *velocity,
1400 double *conservationResidual
1401);
1403 int nElements_global,
1404 int nInteriorElementBoundaries_global,
1405 int nExteriorElementBoundaries_global,
1406 int nElementBoundaries_element,
1407 int nQuadraturePoints_elementBoundary,
1408 int nNodes_element,
1409 int nSpace,
1410 int *interiorElementBoundaries,
1411 int *exteriorElementBoundaries,
1412 int *elementBoundaryElements,
1413 int *elementBoundaryLocalElementBoundaries,
1414 double *dS,
1415 double *normal,
1416 double *elementResidual,
1417 double *velocity,
1418 double *conservationResidual
1419);
1421 int nElements_global,
1422 int nInteriorElementBoundaries_global,
1423 int nExteriorElementBoundaries_global,
1424 int nElementBoundaries_global,
1425 int nElementBoundaries_element,
1426 int nQuadraturePoints_elementBoundary,
1427 int nSpace,
1428 int *interiorElementBoundaries,
1429 int *exteriorElementBoundaries,
1430 int *elementBoundaryElementsArray,
1431 int *elementBoundaryLocalElementBoundariesArray,
1432 double *velocityBoundary_global,
1433 double *velocityBoundary_element
1434);
1436 int nExteriorElementBoundaries_global,
1437 int nQuadraturePoints_elementBoundary,
1438 int nSpace,
1439 int *exteriorElementBoundaries,
1440 int *fluxElementBoundaries,
1441 double *normal,
1442 double *flux,
1443 double updateCoef,
1444 double *velocity
1445);
1447 int nInteriorElementBoundaries_global,
1448 int nElementBoundaries_element,
1449 int nQuadraturePoints_elementBoundary,
1450 int *interiorElementBoundaries,
1451 int *elementBoundaryElements,
1452 int *elementBoundaryLocalElementBoundaries,
1453 double *phi,
1454 double *dphi,
1455 double *phi_trace,
1456 double *dphi_trace_left,
1457 double *dphi_trace_right
1458);
1460 int *isDOFBoundary,
1461 int nExteriorElementBoundaries_global,
1462 int nElementBoundaries_element,
1463 int nQuadraturePoints_elementBoundary,
1464 int *exteriorElementBoundaries,
1465 int *elementBoundaryElements,
1466 int *elementBoundaryLocalElementBoundaries,
1467 double *phi_bc,
1468 double *phi,
1469 double *dphi,
1470 double *phi_trace,
1471 double *dphi_trace_left
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 *phi_trace,
1484 double *w_dS,
1485 double *b
1486);
1488 int nInteriorElementBoundaries_global,
1489 int nElementBoundaries_element,
1490 int nQuadraturePoints_elementBoundary,
1491 int nDOF_test_element,
1492 int nSpace,
1493 int *interiorElementBoundaries,
1494 int *elementBoundaryElements,
1495 int *elementBoundaryLocalElementBoundaries,
1496 double *n,
1497 double *dphi_trace_left,
1498 double *dphi_trace_right,
1499 double *v,
1500 double *w_dS,
1501 double *db,
1502 double *db_eb
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 *phi_trace,
1515 double *w_dS,
1516 double *b
1517);
1519 int nExteriorElementBoundaries_global,
1520 int nElementBoundaries_element,
1521 int nQuadraturePoints_elementBoundary,
1522 int nDOF_test_element,
1523 int nSpace,
1524 int *exteriorElementBoundaries,
1525 int *elementBoundaryElements,
1526 int *elementBoundaryLocalElementBoundaries,
1527 double *n,
1528 double *dphi_trace_left,
1529 double *v,
1530 double *w_dS,
1531 double *db,
1532 double *db_eb
1533);
1535 int nElements_global,
1536 int nQuadraturePoints_element,
1537 int nDOF_test_element,
1538 int nSpace,
1539 double *phi,
1540 double *grad_w_dV,
1541 double *b
1542);
1544 int nElements_global,
1545 int nQuadraturePoints_element,
1546 int nDOF_test_element,
1547 int nSpace,
1548 double *dphi,
1549 double *v,
1550 double *grad_w_dV,
1551 double *db
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 *b,
1562 double *v,
1563 double *V,
1564 double *qv,
1565 double *qV
1566);
1568 int nElements_global,
1569 int nElementBoundaries_element,
1570 int nElementBoundaryQuadraturePoints_elementBoundary,
1571 int nDOF_element,
1572 int nSpace,
1573 int nQuadraturePoints_element,
1574 double *A_inv,
1575 double *db,
1576 double *db_eb,
1577 double *v,
1578 double *DV,
1579 double *DV_eb,
1580 double *qv,
1581 double *qDV,
1582 double *qDV_eb
1583);
1585 int nElements_global,
1586 int nQuadraturePoints_element,
1587 int nDOF_element,
1588 double *vXw_dV,
1589 double *A_inv
1590);
1592 int nElements_global,
1593 int nQuadraturePoints_element,
1594 int nDOF_test_element,
1595 int nSpace,
1596 double *a,
1597 double *qV,
1598 double *grad_w_dV,
1599 double *weak_residual
1600);
1602 int nElements_global,
1603 int nElementBoundaries_element,
1604 int nQuadraturePoints_element,
1605 int nDOF_trial_element,
1606 int nDOF_test_element,
1607 int nSpace,
1608 double *a,
1609 double *da,
1610 double *qV,
1611 double *qDV,
1612 double *qDV_eb,
1613 double *grad_w_dV,
1614 double *v,
1615 double *jacobian_weak_residual,
1616 double *jacobian_weak_residual_eb
1617);
1618extern void estimate_mt(
1619 int nElements_global,
1620 int nQuadraturePoints_element,
1621 int nDOF_element,
1622 double *v,
1623 double *vXw_dV,
1624 double *elementSpatialResidual,
1625 double *mt
1626 );
1627extern void estimate_mt_lowmem(int nElements_global,
1628 int nQuadraturePoints_element,
1629 int nDOF_element,
1630 double* v,
1631 double* w_dV,
1632 double* elementSpatialResidual,
1633 double* mt);
1634extern double scalarDomainIntegral(int nElements_global,
1635 int nQuadraturePoints_element,
1636 double* dV,
1637 double* nValueArray);
1638extern double scalarHeavisideDomainIntegral(int nElements_global,
1639 int nQuadraturePoints_element,
1640 double* dV,
1641 double* nValueArray);
1642extern double scalarSmoothedHeavisideDomainIntegral(int nElements_global,
1643 int nQuadraturePoints_element,
1644 double epsFact,
1645 double* elementDiameter,
1646 double* dV,
1647 double* nValueArray);
1648extern double fluxDomainBoundaryIntegral(int nExteriorElementBoundaries,
1649 int nElementBoundaries_owned,
1650 int nQuadraturePoints_elementBoundary,
1651 int* flag,
1652 int* exteriorElementBoundariesArray,
1653 double* dS,
1654 double* nValueArray);
1655
1656extern double fluxDomainBoundaryIntegralFromVector(int nExteriorElementBoundaries,
1657 int nElementBoundaries_owned,
1658 int nQuadraturePoints_elementBoundary,
1659 int nSpace,
1660 int* flag,
1661 int* exteriorElementBoundaries,
1662 double* dS,
1663 double* nValueArray,
1664 double* normal);
1665extern
1666void copyExteriorElementBoundaryValuesFromElementBoundaryValues(int nExteriorElementBoundaries_global,
1667 int nElements_global,
1668 int nElementBoundaries_element,
1669 int nQuadraturePoints_elementBoundary,
1670 int nValuesPerQuadraturePoint,
1671 const int * exteriorElementBoundaries,
1672 const int* elementBoundaryElements,
1673 const int * elementBoundaryLocalElementBoundaries,
1674 const double * ebq_val,
1675 double * ebqe_val);
1676
1677extern
1678void copyExteriorElementBoundaryValuesToElementBoundaryValues(int nExteriorElementBoundaries_global,
1679 int nElements_global,
1680 int nElementBoundaries_element,
1681 int nQuadraturePoints_elementBoundary,
1682 int nValuesPerQuadraturePoint,
1683 const int * exteriorElementBoundaries,
1684 const int* elementBoundaryElements,
1685 const int * elementBoundaryLocalElementBoundaries,
1686 const double * ebqe_val,
1687 double * ebq_val);
1688
1689extern
1690void copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues(int nExteriorElementBoundaries_global,
1691 int nQuadraturePoints_elementBoundary,
1692 int nValuesPerQuadraturePoint,
1693 const int * exteriorElementBoundaries,
1694 const int* elementBoundaryElements,
1695 const int * elementBoundaryLocalElementBoundaries,
1696 const double * ebqe_val,
1697 double * ebq_global_val);
1698
1699
1700
1701extern
1702void copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues(int nExteriorElementBoundaries_global,
1703 int nQuadraturePoints_elementBoundary,
1704 int nValuesPerQuadraturePoint,
1705 const int * exteriorElementBoundaries,
1706 const int* elementBoundaryElements,
1707 const int * elementBoundaryLocalElementBoundaries,
1708 const double * ebq_global_val,
1709 double * ebqe_val);
1710
1711
1712
1713
1714extern
1715void computeC0P1InterpolantDGP0(int nElements_global,
1716 int nNodes_global,
1717 int nNodes_element,
1718 int nDOF_element,
1719 int dim_dof,
1720 const int* elementNodesArray,
1721 const int* nodeElementOffsets,
1722 const int* nodeElementsArray,
1723 const int* l2g,
1724 const double * dof,
1725 double* nodalAverage);
1726
1727extern
1728void computeC0P1InterpolantNCP1(int nElements_global,
1729 int nNodes_global,
1730 int nNodes_element,
1731 int nDOF_element,
1732 int dim_dof,
1733 const int* elementNodesArray,
1734 const int* nodeElementOffsets,
1735 const int* nodeElementsArray,
1736 const int* l2g,
1737 const double * dof,
1738 double* nodalAverage);
1739
1740extern
1741void computeC0P1InterpolantDGP12(int nElements_global,
1742 int nNodes_global,
1743 int nNodes_element,
1744 int nDOF_element,
1745 int dim_dof,
1746 const int* elementNodesArray,
1747 const int* nodeElementOffsets,
1748 const int* nodeElementsArray,
1749 const int* l2g,
1750 const double * dof,
1751 double* nodalAverage);
1752
1753
1754
1755
1756extern
1757void parametricFiniteElementSpace_getValuesGlobalExteriorTrace(int nElementBoundaries_element,
1758 int nElementBoundaryQuadraturePoints_elementBoundary,
1759 int nDOF_element,
1760 int nExteriorElementBoundaries_global,
1761 const int* exteriorElementBoundariesArray,
1762 const int* elementBoundaryElementsArray,
1763 const int* elementBoundaryLocalElementBoundariesArray,
1764 double* psi,
1765 double* vArray);
1766
1767
1768extern
1770 int nElementBoundaryQuadraturePoints_elementBoundary,
1771 int nDOF_element,
1772 int nSpace_global,
1773 int nExteriorElementBoundaries_global,
1774 const int *exteriorElementBoundariesArray,
1775 const int *elementBoundaryElementsArray,
1776 const int *elementBoundaryLocalElementBoundariesArray,
1777 double* grad_psi,
1778 double* inverseJacobianArray,
1779 double* grad_vArray);
1780
1781
1782extern
1783void parametricMaps_getValuesGlobalExteriorTrace(int nQuadraturePoints_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* psi,
1791 int* l2g,
1792 double* nodeArray,
1793 double* xArray);
1794
1795
1796extern
1797void parametricMaps_getInverseValuesGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1798 int nDOF_element,
1799 int nSpace_global,
1800 int nExteriorElementBoundaries_global,
1801 const int* exteriorElementBoundariesArray,
1802 const int* elementBoundaryElementsArray,
1803 const int* elementBoundaryLocalElementBoundariesArray,
1804 double* inverseJacobian,
1805 int* l2g,
1806 double* nodeArray,
1807 double* xArray,
1808 double* xiArray);
1809
1810
1811
1812extern
1813void parametricMaps_getJacobianValuesGlobalExteriorTrace1D(int nQuadraturePoints_element,
1814 int nDOF_element,
1815 int nExteriorElementBoundaries_global,
1816 const int * exteriorElementBoundariesArray,
1817 const int * elementBoundaryElementsArray,
1818 const int * elementBoundaryLocalElementBoundariesArray,
1819 double* grad_psi,
1820 double* boundaryNormals,
1821 double* boundaryJacobians,
1822 int* l2g,
1823 double* nodeArray,
1824 double* jacobianInverseArray,
1825 double* metricTensorArray,
1826 double* metricTensorDeterminantSqrtArray,
1827 double* unitNormalArray);
1828
1829
1830
1831
1832
1833extern
1834void parametricMaps_getJacobianValuesGlobalExteriorTrace2D(int nQuadraturePoints_element,
1835 int nDOF_element,
1836 int nExteriorElementBoundaries_global,
1837 const int * exteriorElementBoundariesArray,
1838 const int * elementBoundaryElementsArray,
1839 const int * elementBoundaryLocalElementBoundariesArray,
1840 double* grad_psi,
1841 double* boundaryNormals,
1842 double* boundaryJacobians,
1843 int* l2g,
1844 double* nodeArray,
1845 double* jacobianInverseArray,
1846 double* metricTensorArray,
1847 double* metricTensorDeterminantSqrtArray,
1848 double* unitNormalArray);
1849extern
1851 int nDOF_element,
1852 int nExteriorElementBoundaries_global,
1853 const int * exteriorElementBoundariesArray,
1854 const int * elementBoundaryElementsArray,
1855 const int * elementBoundaryLocalElementBoundariesArray,
1856 double* xtArray,
1857 double* grad_psi,
1858 double* boundaryNormals,
1859 double* boundaryJacobians,
1860 int* l2g,
1861 double* nodeArray,
1862 double* jacobianInverseArray,
1863 double* metricTensorArray,
1864 double* metricTensorDeterminantSqrtArray,
1865 double* unitNormalArray);
1866extern
1867void parametricMaps_getJacobianValuesGlobalExteriorTrace3D(int nQuadraturePoints_element,
1868 int nDOF_element,
1869 int nExteriorElementBoundaries_global,
1870 const int * exteriorElementBoundariesArray,
1871 const int * elementBoundaryElementsArray,
1872 const int * elementBoundaryLocalElementBoundariesArray,
1873 double* grad_psi,
1874 double* boundaryNormals,
1875 double* boundaryJacobians,
1876 int* l2g,
1877 double* nodeArray,
1878 double* jacobianInverseArray,
1879 double* metricTensorArray,
1880 double* metricTensorDeterminantSqrtArray,
1881 double* unitNormalArray);
1882
1883
1884extern
1885void updateGlobalExteriorElementBoundaryFlux(int nExteriorElementBoundaries_global,
1886 int nQuadraturePoints_elementBoundary,
1887 int nDOF_test_element,
1888 int* exteriorElementBoundaries,
1889 int* elementBoundaryElements,
1890 int* elementBoundaryLocalElementBoundaries,
1891 double* flux,
1892 double* w_dS,
1893 double* residual);
1894
1895
1896
1897extern
1899 int nElements_global,
1900 int nExteriorElementBoundaries_global,
1901 int nElementBoundaries_element,
1902 int nQuadraturePoints_elementBoundary,
1903 int nDOF_test_element,
1904 int nDOF_trial_element,
1905 int offset_r,
1906 int stride_r,
1907 int offset_u,
1908 int stride_u,
1909 int nFreeVDOF_global,
1910 int* exteriorElementBoundaries,
1911 int* elementBoundaryElements,
1912 int* elementBoundaryLocalElementBoundaries,
1913 int* nFreeDOF_element_r,
1914 int* freeLocal_r,
1915 int* freeGlobal_r,
1916 int* nFreeDOF_element_u,
1917 int* freeLocal_u,
1918 int* freeGlobal_u,
1919 double* elementBoundaryFluxJacobian_eb,
1920 double* w_dS,
1921 double* jac);
1922
1923extern
1924void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense(int nExteriorElementBoundaries_global,
1925 int nQuadraturePoints_elementBoundary,
1926 int nDOF_test_element,
1927 int nDOF_trial_element,
1928 int offset_r,
1929 int stride_r,
1930 int offset_u,
1931 int stride_u,
1932 int nFreeVDOF_global,
1933 int* exteriorElementBoundaries,
1934 int* elementBoundaryElements,
1935 int* elementBoundaryLocalElementBoundaries,
1936 int* nFreeDOF_element_r,
1937 int* freeLocal_r,
1938 int* freeGlobal_r,
1939 int* nFreeDOF_element_u,
1940 int* freeLocal_u,
1941 int* freeGlobal_u,
1942 double* elementBoundaryFluxJacobian,
1943 double* w_dS,
1944 double* jac);
1945
1946extern
1947void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR(int nExteriorElementBoundaries_global,
1948 int nQuadraturePoints_elementBoundary,
1949 int nDOF_test_element,
1950 int nDOF_trial_element,
1951 int* exteriorElementBoundaries,
1952 int* elementBoundaryElements,
1953 int* elementBoundaryLocalElementBoundaries,
1954 int* nFreeDOF_element_r,
1955 int* freeLocal_r,
1956 int* nFreeDOF_element_u,
1957 int* freeLocal_u,
1958 int* csrRowIndeces_ru,
1959 int* csrColumnOffsets_eb_ru,
1960 double* elementBoundaryFluxJacobian,
1961 double* w_dS,
1962 double* jac);
1963
1964
1965
1966extern
1968 int nExteriorElementBoundaries_global,
1969 int nElementBoundaries_element,
1970 int nQuadraturePoints_elementBoundary,
1971 int nDOF_test_element,
1972 int nDOF_trial_element,
1973 int* exteriorElementBoundaries,
1974 int* elementBoundaryElements,
1975 int* elementBoundaryLocalElementBoundaries,
1976 int* nFreeDOF_element_r,
1977 int* freeLocal_r,
1978 int* nFreeDOF_element_u,
1979 int* freeLocal_u,
1980 int* csrRowIndeces_ru,
1981 int* csrColumnOffsets_eb_eNebN_ru,
1982 double* elementBoundaryFluxJacobian_eb,
1983 double* w_dS,
1984 double* jac);
1985
1986extern
1987void calculateWeightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
1988 int nDOF_test_element,
1989 int nExteriorElementBoundaries_global,
1990 const int* exteriorElementBoundariesArray,
1991 const int* elementBoundaryElementsArray,
1992 const int* elementBoundaryLocalElementBoundariesArray,
1993 double* dSR,
1994 double* sqrt_det_g,
1995 double* w,
1996 double* w_dS);
1997
1998
1999extern
2000void calculateShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
2001 int nDOF_trial_element,
2002 int nDOF_test_element,
2003 int nExteriorElementBoundaries_global,
2004 const int* exteriorElementBoundariesArray,
2005 const int* elementBoundaryElementsArray,
2006 const int* elementBoundaryLocalElementBoundariesArray,
2007 double* v,
2008 double* w_dS,
2009 double* v_X_w_dS);
2010
2011extern
2012void calculateGradShape_X_weightedShapeGlobalExteriorTrace(int nElementBoundaryQuadraturePoints_elementBoundary,
2013 int nDOF_trial_element,
2014 int nDOF_test_element,
2015 int nSpace,
2016 int nExteriorElementBoundaries_global,
2017 const int* exteriorElementBoundariesArray,
2018 const int* elementBoundaryElementsArray,
2019 const int* elementBoundaryLocalElementBoundariesArray,
2020 double* grad_v,
2021 double* w_dS,
2022 double* grad_v_X_w_dS);
2023
2024
2025extern
2026void calculateGlobalExteriorElementBoundaryIntegrationWeights(int nQuadraturePoints_elementBoundary,
2027 int nExteriorElementBoundaries_global,
2028 double* sqrt_det_g,
2029 double* referenceWeights,
2030 double* weights);
2031
2032extern
2033void calculateFiniteElementFunctionValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary,
2034 int nDOF_trial_element,
2035 int nComponents,
2036 int nExteriorElementBoundaries_global,
2037 const int * exteriorElementBoundariesArray,
2038 const int * elementBoundaryElementsArray,
2039 const int * elementBoundaryLocalElementBoundariesArray,
2040 int* l2g,
2041 double* dof,
2042 double* v,
2043 double* u);
2044
2045extern
2046void calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace(int nQuadraturePoints_elementBoundary,
2047 int nDOF_trial_element,
2048 int nComponents,
2049 int nSpace,
2050 int nExteriorElementBoundaries_global,
2051 const int * exteriorElementBoundariesArray,
2052 const int * elementBoundaryElementsArray,
2053 const int * elementBoundaryLocalElementBoundariesArray,
2054 int* l2g,
2055 double* dof,
2056 double* grad_v,
2057 double* grad_u);
2058
2059
2060extern
2061void updateGlobalExteriorElementBoundaryDiffusiveVelocity(int nExteriorElementBoundaries_global,
2062 int nQuadraturePoints_elementBoundary,
2063 int nSpace,
2064 int* exteriorElementBoundaries,
2065 int* elementBoundaryElements,
2066 int* elementBoundaryLocalElementBoundaries,
2067 double* a,
2068 double* grad_phi,
2069 double* velocity);
2070
2071
2072extern
2073void updateGlobalExteriorElementBoundaryAdvectiveVelocity(int nExteriorElementBoundaries_global,
2074 int nQuadraturePoints_elementBoundary,
2075 int nSpace,
2076 int* exteriorElementBoundaries,
2077 int* elementBoundaryElements,
2078 int* elementBoundaryLocalElementBoundaries,
2079 double* f,
2080 double* velocity);
2081
2082
2083extern
2084void updateGlobalExteriorElementBoundaryShockCapturingVelocity(int nExteriorElementBoundaries_global,
2085 int nQuadraturePoints_elementBoundary,
2086 int nSpace,
2087 int* exteriorElementBoundaries,
2088 int* elementBoundaryElements,
2089 int* elementBoundaryLocalElementBoundaries,
2090 double* numDiff,
2091 double* grad_u,
2092 double* velocity);
2093
2094
2095
2096extern
2097void copyFreeUnknownsToGlobalUnknowns(int nDOF2set,
2098 int offset,
2099 int stride,
2100 const int* globalDOFids,
2101 const int* freeDOFids,
2102 const double * free_u,
2103 double * u);
2104extern
2105void copyGlobalUnknownsToFreeUnknowns(int nDOF2set,
2106 int offset,
2107 int stride,
2108 const int* globalDOFids,
2109 const int* freeDOFids,
2110 const double * u,
2111 double * free_u);
2112extern
2113void updateInteriorElementBoundaryDiffusionAdjoint(int nInteriorElementBoundaries_global,
2114 int nElementBoundaries_element,
2115 int nQuadraturePoints_elementBoundary,
2116 int nDOF_test_element,
2117 int nSpace,
2118 int* interiorElementBoundaries,
2119 int* elementBoundaryElements,
2120 int* elementBoundaryLocalElementBoundaries,
2121 double sigma,
2122 double* u,
2123 double* n,
2124 double* a,
2125 double* grad_w,
2126 double* dS,
2127 double* residual);
2128extern
2129void updateExteriorElementBoundaryDiffusionAdjoint(int nExteriorElementBoundaries_global,
2130 int nQuadraturePoints_elementBoundary,
2131 int nDOF_test_element,
2132 int nSpace,
2133 int* isDOFBoundary,
2134 int* exteriorElementBoundaries,
2135 int* elementBoundaryElements,
2136 int* elementBoundaryLocalElementBoundaries,
2137 double sigma,
2138 double* u,
2139 double* ub,
2140 double* n,
2141 double* a,
2142 double* grad_w,
2143 double* dS,
2144 double* residual);
2145extern
2146void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense(int nInteriorElementBoundaries_global,
2147 int nElementBoundaries_element,
2148 int nQuadraturePoints_elementBoundary,
2149 int nDOF_test_element,
2150 int nDOF_trial_element,
2151 int nSpace,
2152 int offset_r,
2153 int stride_r,
2154 int offset_u,
2155 int stride_u,
2156 int nFreeVDOF_global,
2157 int* interiorElementBoundaries,
2158 int* elementBoundaryElements,
2159 int* elementBoundaryLocalElementBoundaries,
2160 int* nFreeDOF_element_r,
2161 int* freeLocal_r,
2162 int* freeGlobal_r,
2163 int* nFreeDOF_element_u,
2164 int* freeLocal_u,
2165 int* freeGlobal_u,
2166 double sigma,
2167 double* v,
2168 double* n,
2169 double* a,
2170 double* grad_w,
2171 double* dS,
2172 double* jac);
2173extern
2174void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense(int nExteriorElementBoundaries_global,
2175 int nQuadraturePoints_elementBoundary,
2176 int nDOF_test_element,
2177 int nDOF_trial_element,
2178 int nSpace,
2179 int offset_r,
2180 int stride_r,
2181 int offset_u,
2182 int stride_u,
2183 int nFreeVDOF_global,
2184 int* exteriorElementBoundaries,
2185 int* elementBoundaryElements,
2186 int* elementBoundaryLocalElementBoundaries,
2187 int* nFreeDOF_element_r,
2188 int* freeLocal_r,
2189 int* freeGlobal_r,
2190 int* nFreeDOF_element_u,
2191 int* freeLocal_u,
2192 int* freeGlobal_u,
2193 int* isDOFBoundary,
2194 double sigma,
2195 double* v,
2196 double* n,
2197 double* a,
2198 double* grad_w,
2199 double* dS,
2200 double* jac);
2201extern
2202void updateInteriorElementBoundaryDiffusionAdjoint_sd(int nInteriorElementBoundaries_global,
2203 int nElementBoundaries_element,
2204 int nQuadraturePoints_elementBoundary,
2205 int nDOF_test_element,
2206 int nSpace,
2207 int* rowptr,
2208 int* colind,
2209 int* interiorElementBoundaries,
2210 int* elementBoundaryElements,
2211 int* elementBoundaryLocalElementBoundaries,
2212 double sigma,
2213 double* u,
2214 double* n,
2215 double* a,
2216 double* grad_w,
2217 double* dS,
2218 double* residual);
2219extern
2220void updateExteriorElementBoundaryDiffusionAdjoint_sd(int nExteriorElementBoundaries_global,
2221 int nQuadraturePoints_elementBoundary,
2222 int nDOF_test_element,
2223 int nSpace,
2224 int* rowptr,
2225 int* colind,
2226 int* isDOFBoundary,
2227 int* exteriorElementBoundaries,
2228 int* elementBoundaryElements,
2229 int* elementBoundaryLocalElementBoundaries,
2230 double sigma,
2231 double* u,
2232 double* ub,
2233 double* n,
2234 double* a,
2235 double* grad_w,
2236 double* dS,
2237 double* residual);
2238extern
2239void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd(int nInteriorElementBoundaries_global,
2240 int nElementBoundaries_element,
2241 int nQuadraturePoints_elementBoundary,
2242 int nDOF_test_element,
2243 int nDOF_trial_element,
2244 int nSpace,
2245 int* rowptr,
2246 int* colind,
2247 int offset_r,
2248 int stride_r,
2249 int offset_u,
2250 int stride_u,
2251 int nFreeVDOF_global,
2252 int* interiorElementBoundaries,
2253 int* elementBoundaryElements,
2254 int* elementBoundaryLocalElementBoundaries,
2255 int* nFreeDOF_element_r,
2256 int* freeLocal_r,
2257 int* freeGlobal_r,
2258 int* nFreeDOF_element_u,
2259 int* freeLocal_u,
2260 int* freeGlobal_u,
2261 double sigma,
2262 double* v,
2263 double* n,
2264 double* a,
2265 double* grad_w,
2266 double* dS,
2267 double* jac);
2268extern
2269void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd(int nExteriorElementBoundaries_global,
2270 int nQuadraturePoints_elementBoundary,
2271 int nDOF_test_element,
2272 int nDOF_trial_element,
2273 int nSpace,
2274 int* rowptr,
2275 int* colind,
2276 int offset_r,
2277 int stride_r,
2278 int offset_u,
2279 int stride_u,
2280 int nFreeVDOF_global,
2281 int* exteriorElementBoundaries,
2282 int* elementBoundaryElements,
2283 int* elementBoundaryLocalElementBoundaries,
2284 int* nFreeDOF_element_r,
2285 int* freeLocal_r,
2286 int* freeGlobal_r,
2287 int* nFreeDOF_element_u,
2288 int* freeLocal_u,
2289 int* freeGlobal_u,
2290 int* isDOFBoundary,
2291 double sigma,
2292 double* v,
2293 double* n,
2294 double* a,
2295 double* grad_w,
2296 double* dS,
2297 double* jac);
2298extern
2299void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nInteriorElementBoundaries_global,
2300 int nElementBoundaries_element,
2301 int nQuadraturePoints_elementBoundary,
2302 int nDOF_test_element,
2303 int nDOF_trial_element,
2304 int nSpace,
2305 int* rowptr,
2306 int* colind,
2307 int offset_r,
2308 int stride_r,
2309 int offset_u,
2310 int stride_u,
2311 int nFreeVDOF_global,
2312 int* interiorElementBoundaries,
2313 int* elementBoundaryElements,
2314 int* elementBoundaryLocalElementBoundaries,
2315 int* nFreeDOF_element_r,
2316 int* freeLocal_r,
2317 int* freeGlobal_r,
2318 int* nFreeDOF_element_u,
2319 int* freeLocal_u,
2320 int* freeGlobal_u,
2321 int* csrRowIndeces_ru,
2322 int* csrColumnOffsets_eb_ru,
2323 double sigma,
2324 double* v,
2325 double* n,
2326 double* a,
2327 double* grad_w,
2328 double* dS,
2329 double* jac);
2330extern
2331void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd(int nExteriorElementBoundaries_global,
2332 int nQuadraturePoints_elementBoundary,
2333 int nDOF_test_element,
2334 int nDOF_trial_element,
2335 int nSpace,
2336 int* rowptr,
2337 int* colind,
2338 int offset_r,
2339 int stride_r,
2340 int offset_u,
2341 int stride_u,
2342 int nFreeVDOF_global,
2343 int* exteriorElementBoundaries,
2344 int* elementBoundaryElements,
2345 int* elementBoundaryLocalElementBoundaries,
2346 int* nFreeDOF_element_r,
2347 int* freeLocal_r,
2348 int* freeGlobal_r,
2349 int* nFreeDOF_element_u,
2350 int* freeLocal_u,
2351 int* freeGlobal_u,
2352 int* csrRowIndeces_ru,
2353 int* csrColumnOffsets_eb_ru,
2354 int* isDOFBoundary,
2355 double sigma,
2356 double* v,
2357 double* n,
2358 double* a,
2359 double* grad_w,
2360 double* dS,
2361 double* jac);
2362extern
2363void update_f_movingDomain_q(int nElements_global,
2364 int nQuadraturePoints_element,
2365 int nSpace,
2366 double* xt,
2367 double* m,
2368 double* f);
2369extern
2370void update_f_movingDomain_constantMass_q(int nElements_global,
2371 int nQuadraturePoints_element,
2372 int nSpace,
2373 double* xt,
2374 double* f);
2375extern
2376void update_f_movingDomain_ebq(int nElements_global,
2377 int nElementBoundaries_element,
2378 int nQuadraturePoints_elementBoundary,
2379 int nSpace,
2380 double* xt,
2381 double* m,
2382 double* f);
2383extern
2384void update_f_movingDomain_constantMass_ebq(int nElements_global,
2385 int nElementBoundaries_element,
2386 int nQuadraturePoints_elementBoundary,
2387 int nSpace,
2388 double* xt,
2389 double* f);
2390extern
2391void updateStress_weak(int nElements_global,
2392 int nQuadraturePoints_element,
2393 int nDOF_test_element,
2394 int nSpace,
2395 double* sigma,
2396 double* grad_w_dV,
2397 double* weak_residual_x,
2398 double* weak_residual_y,
2399 double* weak_residual_z);
2400extern
2401void updateStressJacobian_weak(int nElements_global,
2402 int nQuadraturePoints_element,
2403 int nDOF_trial_element,
2404 int nDOF_test_element,
2405 int nSpace,
2406 double* dsigma_xx,
2407 double* dsigma_xy,
2408 double* dsigma_xz,
2409 double* dsigma_yx,
2410 double* dsigma_yy,
2411 double* dsigma_yz,
2412 double* dsigma_zx,
2413 double* dsigma_zy,
2414 double* dsigma_zz,
2415 double* grad_v,
2416 double* grad_w_dV,
2417 double* jacobian_weak_residual_xx,
2418 double* jacobian_weak_residual_xy,
2419 double* jacobian_weak_residual_xz,
2420 double* jacobian_weak_residual_yx,
2421 double* jacobian_weak_residual_yy,
2422 double* jacobian_weak_residual_yz,
2423 double* jacobian_weak_residual_zx,
2424 double* jacobian_weak_residual_zy,
2425 double* jacobian_weak_residual_zz);
2426extern
2427void projectFromNodalInterpolationConditions(int nElements_global,
2428 int nDOF_element,
2429 int dim_dof,
2430 const int * l2g,
2431 const int * functional_map_element,
2432 const double * interpolationValues,
2433 double * dofs);
2434extern void calculateVelocityQuadrature_MixedForm2_sd(int nElements_global,
2435 int nElementBoundaries_element,
2436 int nElementBoundaryQuadraturePoints_elementBoundary,
2437 int nDOF_element,
2438 int nSpace,
2439 int nQuadraturePoints_element,
2440 const int * rowptr,
2441 const int * colind,
2442 double* qa,
2443 double* qw_dV,
2444 double* b,
2445 double* v,
2446 double* V,
2447 double* qv,
2448 double* qV);
2449extern void updateDiffusion_MixedForm_weak_sd(int nElements_global,
2450 int nQuadraturePoints_element,
2451 int nDOF_test_element,
2452 int nSpace,
2453 int rho_split,
2454 int* rowptr,
2455 int* colind,
2456 double* a,
2457 double* qV,
2458 double* grad_w_dV,
2459 double* velocity, /* added for ldg coupling */
2460 double* weak_residual);
2461extern void calculateVelocityQuadrature_MixedForm2_Jacobian_sd(int nElements_global,
2462 int nElementBoundaries_element,
2463 int nElementBoundaryQuadraturePoints_elementBoundary,
2464 int nDOF_element,
2465 int nSpace,
2466 int nQuadraturePoints_element,
2467 const int *rowptr,
2468 const int *colind,
2469 double* qa,
2470 double* qw_dV,
2471 double* db,
2472 double* db_eb,
2473 double* v,
2474 double* DV,
2475 double* DV_eb,
2476 double* qv,
2477 double* qDV,
2478 double* qDV_eb);
2479extern void updateDiffusionJacobian_MixedForm_weak_sd(int nElements_global,
2480 int nElementBoundaries_element,
2481 int nQuadraturePoints_element,
2482 int nDOF_trial_element,
2483 int nDOF_test_element,
2484 int nSpace,
2485 int* rowptr,
2486 int* colind,
2487 double* a,
2488 double* da,
2489 double* qV,
2490 double* qDV,
2491 double* qDV_eb,
2492 double* grad_w_dV,
2493 double* v,
2494 double* jacobian_weak_residual,
2495 double* jacobian_weak_residual_eb);
2497#endif
Int n
Definition Headers.h:28
Double r
Definition Headers.h:83
Double H
Definition Headers.h:65
Double f
Definition Headers.h:64
Double s
Definition Headers.h:84
Double u
Definition Headers.h:89
Double v
Definition Headers.h:95
Double phi
Definition Headers.h:76
Double psi
Definition Headers.h:78
Double pe
Definition Headers.h:75
double df(double C, double b, double a, int q, int r)
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)
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)
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)
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...
void updateDiffusion_MixedForm_weak_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, int rho_split, int *rowptr, int *colind, double *a, double *qV, double *grad_w_dV, double *velocity, double *weak_residual)
void update_f_movingDomain_ebq(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *m, double *f)
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)
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.
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.
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...
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)
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)
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.
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)
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...
double scalarDomainIntegral(int nElements, int nQuadraturePoints_element, double *dV, double *nValueArray)
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,...
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)
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...
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)
double fluxDomainBoundaryIntegral(int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int *flag, int *exteriorElementBoundariesArray, double *dS, double *nValueArray)
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.
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.
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)
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)
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)
void calculateCFLADR2speeds(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df1, double *df2, double *cfl)
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.
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.
void getPermutationsGlobal(int nElementBoundaries_global, int nElementBoundaryQuadraturePoints_elementBoundary, double *xArray, double *xArrayNew, int *permutations)
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...
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)
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)
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)
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...
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)
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...
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)
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.
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)
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...
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)
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.
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...
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)
void calculateScalarScalarProduct(int nElements_global, int nQuadraturePoints_element, double *s1, double *s2, double *sResult)
Calculate the product of two scalars at the quadrature points.
void calculateGlobalExteriorElementBoundaryIntegrationWeights(int nQuadraturePoints_elementBoundary, int nExteriorElementBoundaries_global, double *sqrt_det_g, double *referenceWeights, double *weights)
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)
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)
void copyGlobalUnknownsToFreeUnknowns(int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *u, double *free_u)
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.
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...
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)
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)
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.
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.
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.
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)
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)
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)
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)
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
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...
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.
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)
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...
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 ...
void calculateInteriorElementBoundaryAverageVelocity(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
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)
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)
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
void calculateElementBoundaryIntegrationWeights(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double *sqrt_det_g, double *referenceWeights, double *weights)
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.
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.
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...
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...
void parametricMaps_getValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *psi, int *l2g, double *nodeArray, double *xArray)
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...
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...
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.
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.
void parametricFiniteElementSpace_getValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *psi, double *vArray)
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.
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.
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)
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...
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.
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)
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...
void calculateVelocityProjectionMatrixLDG(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *vXw_dV, double *A_inv)
double scalarHeavisideDomainIntegral(int nElements, int nQuadraturePoints_element, double *dV, double *nValueArray)
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.
void calculateCFLADR(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df, double *cfl)
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)
void parametricFiniteElementSpace_getGradientValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *grad_psi, double *inverseJacobianArray, double *grad_vArray)
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...
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.
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.
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)
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)
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.
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)
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)
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)
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)
void calculateConservationFluxPWL(int nNodes_global, int nNodes_internal, int *nElements_node, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *internalNodes, double *starR, double *starJ, double *starU)
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)
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...
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)
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)
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.
void updatePotential_MixedForm_weak(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *phi, double *grad_w_dV, double *b)
double scalarSmoothedHeavisideDomainIntegral(int nElements, int nQuadraturePoints_element, double epsFact, double *elementDiameter, double *dV, double *nValueArray)
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.
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)
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 ...
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)
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...
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...
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...
void update_f_movingDomain_constantMass_q(int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *f)
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.
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...
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...
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.
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)
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.
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.
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)
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)
void estimate_mt_lowmem(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *w_dV, double *elementSpatialResidual, double *mt)
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)
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.
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.
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)
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)
void updateDiffusion2_strong(int nElements_global, int nQuadraturePoints_element, int nSpace, double *a, double *Hess_phi, double *strong_residual)
void parametricFiniteElementSpace_getHessianValues(int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *Hessian_psi, double *inverseJacobianArray, double *Hessian_vArray)
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)
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.
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,...
void estimate_mt(int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *vXw_dV, double *elementSpatialResidual, double *mt)
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)
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...
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)
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.
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)
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...
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.
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.
void calculateExteriorElementBoundaryAverageVelocity(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
void updateAddJacobian_CSR(int jacIndex, double val, double *jac)
Update a single element of the Jacobian.
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)
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...
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.
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 ...
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)
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)
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...
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)
void zeroJacobian_CSR(int nNonzeros, double *jac)
Set all the Jacobian entries to 0.0.
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...
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)
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...
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...
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)
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)
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...
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...
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
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)
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)
void update_f_movingDomain_q(int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *m, double *f)
void copyFreeUnknownsToGlobalUnknowns(int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *free_u, double *u)
void parametricMaps_getPermutations(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nSpace_global, double *xiArray, int *permutations)
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)
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)
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)
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)
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.
void calculateConservationResidualDG(int nElements_global, int nDOF_test_element, double *elementResidual, double *conservationResidual)
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)
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.
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)
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.
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)
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)
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)
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.
void calculateDimensionlessNumbersADR_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int computeDiffusiveTimeStepLimit, int *rowptr, int *colind, double *elementDiameter, double *df, double *a, double *dphi, double *dr, double *dmt, double *pe, double *cfl)
double fluxDomainBoundaryIntegralFromVector(int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int nSpace, int *flag, int *exteriorElementBoundaries, double *dS, double *nValueArray, double *normal)
void loadBoundaryFluxIntoGlobalElementBoundaryVelocity(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *fluxElementBoundaries, double *normal, double *flux, double updateCoef, double *velocity)
void updateDiffusionJacobian_MixedForm_weak_sd(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nDOF_trial_element, int nDOF_test_element, int nSpace, int *rowptr, int *colind, 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)
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.
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...
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...
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.
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
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)
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.
void update_f_movingDomain_constantMass_ebq(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *f)
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)
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 ...
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)
void parametricFiniteElementSpace_getValuesTrace(int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, double *psi, int *permutations, double *vArray)
void projectFromNodalInterpolationConditions(int nElements_global, int nDOF_element, int dim_dof, const int *l2g, const int *functional_map_element, const double *interpolationValues, double *dofs)
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
void updateDiffusion2_strong_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *a, double *Hess_phi, double *strong_residual)
void calculateVelocityQuadrature_MixedForm2_Jacobian_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 *db, double *db_eb, double *v, double *DV, double *DV_eb, double *qv, double *qDV, double *qDV_eb)
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...
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.
#define w(x)
Definition jf.h:22