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);
20 int nQuadraturePoints_element,
21 int nDOF_trial_element,
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);
47 int nElementBoundaries_element,
48 int nElementBoundaryQuadraturePoints_elementBoundary,
50 int nExteriorElementBoundaries_global,
51 int nInteriorElementBoundaries_global,
52 int *elementBoundaryElementsArray,
53 int *elementBoundaryLocalElementBoundariesArray,
54 int *exteriorElementBoundariesArray,
55 int *interiorElementBoundariesArray,
63 int nQuadraturePoints_element,
70 int nElementBoundaries_element,
71 int nElementBoundaryQuadraturePoints_elementBoundary,
79 int nQuadraturePoints_element,
83 double *inverseJacobianArray,
88 int nElementBoundaries_element,
89 int nElementBoundaryQuadraturePoints_elementBoundary,
94 double *inverseJacobianArray,
99 int nElementBoundaries_element,
100 int nElementBoundaryQuadraturePoints_elementBoundary,
107 int nExteriorElementBoundaries_global,
108 const int * exteriorElementBoundariesArray,
109 const int * elementBoundaryElementsArray,
110 const int * elementBoundaryLocalElementBoundariesArray,
114 int nElementBoundaryQuadraturePoints_elementBoundary,
119 int nElements_global,
120 int nQuadraturePoints_element,
129 int nElements_global,
130 int nElementBoundaries_element,
131 int nQuadraturePoints_element,
140 int nElements_global,
141 int nQuadraturePoints_element,
144 double *inverseJacobian,
151 int nElements_global,
152 int nElementBoundaries_element,
153 int nElementBoundaryQuadraturePoints_elementBoundary,
156 double *inverseJacobian,
163 int nElements_global,
164 int nQuadraturePoints_element,
169 double *jacobianArray,
170 double *jacobianDeterminantArray,
171 double *jacobianInverseArray
174 int nElements_global,
175 int nQuadraturePoints_element,
180 double *jacobianArray,
181 double *jacobianDeterminantArray,
182 double *jacobianInverseArray
185 int nElements_global,
186 int nQuadraturePoints_element,
191 double *jacobianArray,
192 double *jacobianDeterminantArray,
193 double *jacobianInverseArray
196 int nElements_global,
197 int nElementBoundaries_element,
198 int nQuadraturePoints_element,
201 double *boundaryNormals,
202 double *boundaryJacobians,
205 double *jacobianInverseArray,
206 double *metricTensorArray,
207 double *metricTensorDeterminantSqrtArray,
208 double *unitNormalArray
211 int nElements_global,
212 int nElementBoundaries_element,
213 int nQuadraturePoints_element,
216 double *boundaryNormals,
217 double *boundaryJacobians,
220 double *jacobianInverseArray,
221 double *metricTensorArray,
222 double *metricTensorDeterminantSqrtArray,
223 double *unitNormalArray
226 int nElements_global,
227 int nElementBoundaries_element,
228 int nQuadraturePoints_element,
231 double *boundaryNormals,
232 double *boundaryJacobians,
235 double *jacobianInverseArray,
236 double *metricTensorArray,
237 double *metricTensorDeterminantSqrtArray,
238 double *unitNormalArray
241 int nElements_global,
242 int nQuadraturePoints_element,
243 int nDOF_test_element,
246 double *weak_residual
249 int nElements_global,
250 int nQuadraturePoints_element,
251 int nDOF_trial_element,
252 int nDOF_test_element,
255 double *jacobian_weak_residual
258 int nQuadraturePoints_element,
259 int nDOF_trial_element,
260 int nDOF_test_element,
264 double* jacobian_weak_residual);
266 int nElements_global,
267 int nQuadraturePoints_element,
269 double *strong_residual
272 int nElements_global,
273 int nQuadraturePoints_element,
274 int nDOF_trial_element,
277 double *dstrong_residual
280 int nElements_global,
281 int nQuadraturePoints_element,
282 int nDOF_test_element,
288 int nElements_global,
289 int nQuadraturePoints_element,
290 int nDOF_test_element,
294 double *weak_residual
297 int nElements_global,
298 int nQuadraturePoints_element,
299 int nDOF_trial_element,
300 int nDOF_test_element,
303 double *v_X_grad_w_dV,
304 double *jacobian_weak_residual
307 int nQuadraturePoints_element,
308 int nDOF_trial_element,
309 int nDOF_test_element,
314 double* jacobian_weak_residual);
316 int nElements_global,
317 int nQuadraturePoints_element,
321 double *strong_residual
324 int nElements_global,
325 int nQuadraturePoints_element,
326 int nDOF_trial_element,
330 double *dstrong_residual
333 int nElements_global,
334 int nQuadraturePoints_element,
335 int nDOF_test_element,
342 int nElements_global,
343 int nQuadraturePoints_element,
344 int nDOF_test_element,
347 double *weak_residual
350 int nElements_global,
351 int nQuadraturePoints_element,
352 int nDOF_trial_element,
353 int nDOF_test_element,
356 double *grad_v_X_w_dV,
357 double *jacobian_weak_residual
360 int nQuadraturePoints_element,
361 int nDOF_trial_element,
362 int nDOF_test_element,
367 double* jacobian_weak_residual);
369 int nElements_global,
370 int nQuadraturePoints_element,
374 double *strong_residual
377 int nElements_global,
378 int nQuadraturePoints_element,
379 int nDOF_trial_element,
383 double *dstrong_residual
386 int nElements_global,
387 int nQuadraturePoints_element,
388 int nDOF_test_element,
395 int nElements_global,
396 int nQuadraturePoints_element,
397 int nDOF_test_element,
400 double *grad_phi_X_grad_w_dV,
401 double *weak_residual
404 int nQuadraturePoints_element,
405 int nDOF_test_element,
410 double* weak_residual);
412 int nQuadraturePoints_element,
413 int nDOF_test_element,
420 double* weak_residual);
422 int nElements_global,
423 int nQuadraturePoints_element,
424 int nDOF_trial_element,
425 int nDOF_test_element,
430 double *grad_phi_X_grad_w_dV,
433 double *grad_v_X_grad_w_dV,
434 double *jacobian_weak_residual
437 int nQuadraturePoints_element,
438 int nDOF_trial_element,
439 int nDOF_test_element,
449 double* jacobian_weak_residual);
451 int nQuadraturePoints_element,
452 int nDOF_trial_element,
453 int nDOF_test_element,
465 double* jacobian_weak_residual);
467 int nElements_global,
468 int nQuadraturePoints_element,
473 double *strong_residual
476 int nQuadraturePoints_element,
483 double* strong_residual);
485 int nElements_global,
486 int nQuadraturePoints_element,
487 int nDOF_trial_element,
495 double *dstrong_residual
498 int nQuadraturePoints_element,
499 int nDOF_trial_element,
509 double* dstrong_residual);
511 int nElements_global,
512 int nQuadraturePoints_element,
513 int nDOF_test_element,
521 int nQuadraturePoints_element,
522 int nDOF_test_element,
531 int nElements_global,
532 int nQuadraturePoints_element,
533 int nDOF_test_element,
536 double *weak_residual
539 int nElements_global,
540 int nQuadraturePoints_element,
541 int nDOF_trial_element,
542 int nDOF_test_element,
545 double *jacobian_weak_residual
548 int nQuadraturePoints_element,
549 int nDOF_trial_element,
550 int nDOF_test_element,
554 double* jacobian_weak_residual);
556 int nElements_global,
557 int nQuadraturePoints_element,
559 double *strong_residual
562 int nElements_global,
563 int nQuadraturePoints_element,
564 int nDOF_trial_element,
567 double *dstrong_residual
570 int nElements_global,
571 int nQuadraturePoints_element,
572 int nDOF_test_element,
578 int nElements_global,
579 int nQuadraturePoints_element,
580 int nDOF_test_element,
583 double *weak_residual
586 int nElements_global,
587 int nQuadraturePoints_element,
588 int nDOF_trial_element,
589 int nDOF_test_element,
592 double *jacobian_weak_residual
595 int nElements_global,
596 int nQuadraturePoints_element,
597 int nDOF_test_element,
600 double *grad_u_X_grad_w_dV,
601 double *weak_residual
604 int nQuadraturePoints_element,
605 int nDOF_test_element,
610 double* weak_residual);
612 int nElements_global,
613 int nQuadraturePoints_element,
614 int nDOF_trial_element,
615 int nDOF_test_element,
618 double *grad_v_X_grad_w_dV,
619 double *jacobian_weak_residual
622 int nQuadraturePoints_element,
623 int nDOF_trial_element,
624 int nDOF_test_element,
629 double* jacobian_weak_residual);
631 int nElements_global,
632 int nQuadraturePoints_element,
638 int nElements_global,
639 int nQuadraturePoints_element,
646 int nElements_global,
647 int nQuadraturePoints_element,
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,
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,
678 int nElements_global,
679 int nDOF_test_element,
682 int *nFreeDOF_element_r,
685 double *elementResidual,
686 double *globalResidual
689 int nElements_global,
690 int nDOF_test_element,
691 int nDOF_trial_element,
696 int nFreeVDOF_global,
697 int *nFreeDOF_element_r,
700 int *nFreeDOF_element_u,
703 double *elementJacobian,
704 double *globalJacobian
707 int *elementNeighbors,
708 int nElements_global,
709 int nElementBoundaries_element,
710 int nDOF_test_element,
711 int nDOF_trial_element,
716 int nFreeVDOF_global,
717 int *nFreeDOF_element_r,
720 int *nFreeDOF_element_u,
723 double *elementJacobian_eb,
724 double *globalJacobian
727 int nInteriorElementBoundaries_global,
728 int nElementBoundaries_element,
729 int nQuadraturePoints_elementBoundary,
730 int nDOF_test_element,
731 int nDOF_trial_element,
736 int nFreeVDOF_global,
737 int *interiorElementBoundaries,
738 int *elementBoundaryElements,
739 int *elementBoundaryLocalElementBoundaries,
740 int *nFreeDOF_element_r,
743 int *nFreeDOF_element_u,
746 double *elementBoundaryFluxJacobian,
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,
763 int nFreeVDOF_global,
764 int *interiorElementBoundaries,
765 int *elementBoundaryElements,
766 int *elementBoundaryLocalElementBoundaries,
767 int *nFreeDOF_element_r,
770 int *nFreeDOF_element_u,
773 double *elementBoundaryFluxJacobian_eb,
778 int nExteriorElementBoundaries_global,
779 int nElementBoundaries_element,
780 int nQuadraturePoints_elementBoundary,
781 int nDOF_test_element,
782 int nDOF_trial_element,
787 int nFreeVDOF_global,
788 int *exteriorElementBoundaries,
789 int *elementBoundaryElements,
790 int *elementBoundaryLocalElementBoundaries,
791 int *nFreeDOF_element_r,
794 int *nFreeDOF_element_u,
797 double *elementBoundaryFluxJacobian,
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,
814 int nFreeVDOF_global,
815 int *exteriorElementBoundaries,
816 int *elementBoundaryElements,
817 int *elementBoundaryLocalElementBoundaries,
818 int *nFreeDOF_element_r,
821 int *nFreeDOF_element_u,
824 double *elementBoundaryFluxJacobian_eb,
829 int nElements_global,
830 int nDOF_test_element,
831 int nDOF_trial_element,
832 int *nFreeDOF_element_r,
834 int *nFreeDOF_element_u,
836 int *csrRowIndeces_ru,
837 int *csrColumnOffsets_ru,
838 double *elementJacobian,
839 double *globalJacobian
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,
849 int *nFreeDOF_element_u,
851 int *csrRowIndeces_ru,
852 int *csrColumnOffsets_eb_ru,
853 double *elementJacobian_eb,
854 double *globalJacobian
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,
867 int *nFreeDOF_element_u,
869 int *csrRowIndeces_ru,
870 int *csrColumnOffsets_eb_ru,
871 double *elementBoundaryFluxJacobian,
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,
886 int *nFreeDOF_element_u,
888 int *csrRowIndeces_ru,
889 int *csrColumnOffsets_eb_ru,
890 double *elementBoundaryFluxJacobian,
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,
906 int *nFreeDOF_element_u,
908 int *csrRowIndeces_ru,
909 int *csrColumnOffsets_eb_eNebN_ru,
910 double *elementBoundaryFluxJacobian_eb,
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,
926 int *nFreeDOF_element_u,
928 int *csrRowIndeces_ru,
929 int *csrColumnOffsets_eb_eNebN_ru,
930 double *elementBoundaryFluxJacobian_eb,
935 int nElements_global,
936 int nQuadraturePoints_element,
937 int nDOF_test_element,
944 int nElements_global,
945 int nQuadraturePoints_element,
946 int nDOF_test_element,
954 int nElements_global,
955 int nQuadraturePoints_element,
956 int nDOF_trial_element,
957 int nDOF_test_element,
963 int nElements_global,
964 int nQuadraturePoints_element,
965 int nDOF_trial_element,
966 int nDOF_test_element,
970 double *v_X_grad_w_dV
973 int nElements_global,
974 int nQuadraturePoints_element,
975 int nDOF_trial_element,
976 int nDOF_test_element,
980 double *grad_v_X_w_dV
983 int nElements_global,
984 int nQuadraturePoints_element,
985 int nDOF_trial_element,
986 int nDOF_test_element,
990 double *grad_v_X_grad_w_dV
993 int nElements_global,
994 int nElementBoundaries_element,
995 int nElementBoundaryQuadraturePoints_elementBoundary,
996 int nDOF_test_element,
1003 int nElements_global,
1004 int nElementBoundaries_element,
1005 int nElementBoundaryQuadraturePoints_elementBoundary,
1006 int nDOF_trial_element,
1007 int nDOF_test_element,
1013 int nElements_global,
1014 int nElementBoundaries_element,
1015 int nElementBoundaryQuadraturePoints_elementBoundary,
1016 int nDOF_trial_element,
1017 int nDOF_test_element,
1021 double *grad_v_X_w_dS
1024 int nElements_global,
1025 int nQuadraturePoints_element,
1027 double *referenceWeights,
1031 int nElements_global,
1032 int nElementBoundaries_element,
1033 int nQuadraturePoints_elementBoundary,
1035 double *referenceWeights,
1039 int nElements_global,
1040 int nQuadraturePoints_element,
1041 int nDOF_trial_element,
1049 int nElements_global,
1050 int nQuadraturePoints_element,
1051 int nDOF_trial_element,
1060 int nElements_global,
1061 int nQuadraturePoints_element,
1062 int nDOF_trial_element,
1063 int nDOF_test_element,
1068 double *grad_v_X_grad_w_dV,
1069 double *grad_u_X_grad_w_dV
1072 int nElements_global,
1073 int nElementBoundaries_element,
1074 int nQuadraturePoints_elementBoundary,
1075 int nDOF_trial_element,
1083 int nElements_global,
1084 int nElementBoundaries_element,
1085 int nQuadraturePoints_elementBoundary,
1086 int nDOF_trial_element,
1095 int nElements_global,
1096 int nQuadraturePoints_element,
1113 int nExteriorElementBoundaries_global,
1114 int nQuadraturePoints_elementBoundary,
1115 int *exteriorElementBoundaries,
1120 int nInteriorElementBoundaries_global,
1121 int nElementBoundaries_element,
1122 int nQuadraturePoints_elementBoundary,
1124 int *interiorElementBoundaries,
1125 int *elementBoundaryElements,
1126 int *elementBoundaryLocalElementBoundaries,
1137 int nExteriorElementBoundaries_global,
1138 int nElementBoundaries_element,
1139 int nQuadraturePoints_elementBoundary,
1141 int *exteriorElementBoundaries,
1142 int *elementBoundaryElements,
1143 int *elementBoundaryLocalElementBoundaries,
1154 int nElements_global,
1155 int nInteriorElementBoundaries_global,
1156 int nExteriorElementBoundaries_global,
1157 int nElementBoundaries_element,
1158 int nQuadraturePoints_elementBoundary,
1161 int *interiorElementBoundaries,
1162 int *exteriorElementBoundaries,
1163 int *elementBoundaryElements,
1164 int *elementBoundaryLocalElementBoundaries,
1166 int *nodeStarElements,
1167 int *nodeStarElementNeighbors,
1168 int *nodeStarOffsets,
1169 int *nElements_node,
1170 double *elementResidual,
1176 double *conservationResidual,
1178 double *vConservative,
1179 double *vConservative_element
1183 int nNodes_internal,
1184 int nElements_global,
1185 int nInteriorElementBoundaries_global,
1186 int nExteriorElementBoundaries_global,
1187 int nElementBoundaries_element,
1188 int nQuadraturePoints_elementBoundary,
1191 int *interiorElementBoundaries,
1192 int *exteriorElementBoundaries,
1193 int *elementBoundaryElements,
1194 int *elementBoundaryLocalElementBoundaries,
1196 int *nodeStarElements,
1197 int *nodeStarElementNeighbors,
1198 int *nodeStarOffsets,
1199 int *nodeStarJacobianOffsets,
1200 int *nElements_node,
1204 double *starJacobian
1208 int nNodes_internal,
1209 int *nElements_node,
1210 int *nodeStarOffsets,
1211 int *nodeStarJacobianOffsets,
1218 int updateFluxValues,
1219 int nExteriorElementBoundaries_global,
1220 int nQuadraturePoints_elementBoundary,
1222 int *exteriorElementBoundaries,
1223 int *elementBoundaryElements,
1224 int *elementBoundaryLocalElementBoundaries,
1230 int nElements_global,
1231 int nQuadraturePoints_element,
1233 int computeDiffusiveTimeStepLimit,
1234 double *elementDiameter,
1244 int nQuadraturePoints_element,
1246 int computeDiffusiveTimeStepLimit,
1249 double* elementDiameter,
1258 int nElements_global,
1259 int nQuadraturePoints_element,
1261 double *elementDiameter,
1267 int nInteriorElementBoundaries_global,
1268 int nElementBoundaries_element,
1269 int nQuadraturePoints_elementBoundary,
1271 int *interiorElementBoundaries,
1272 int *elementBoundaryElements,
1273 int *elementBoundaryLocalElementBoundaries,
1279 int nElementBoundaries_element,
1280 int nQuadraturePoints_elementBoundary,
1284 int* interiorElementBoundaries,
1285 int* elementBoundaryElements,
1286 int* elementBoundaryLocalElementBoundaries,
1291 int nExteriorElementBoundaries_global,
1292 int nElementBoundaries_element,
1293 int nQuadraturePoints_elementBoundary,
1295 int *exteriorElementBoundaries,
1296 int *elementBoundaryElements,
1297 int *elementBoundaryLocalElementBoundaries,
1303 int nElementBoundaries_element,
1304 int nQuadraturePoints_elementBoundary,
1308 int* exteriorElementBoundaries,
1309 int* elementBoundaryElements,
1310 int* elementBoundaryLocalElementBoundaries,
1315 int nInteriorElementBoundaries_global,
1316 int nElementBoundaries_element,
1317 int nQuadraturePoints_elementBoundary,
1319 int *interiorElementBoundaries,
1320 int *elementBoundaryElements,
1321 int *elementBoundaryLocalElementBoundaries,
1326 int nExteriorElementBoundaries_global,
1327 int nElementBoundaries_element,
1328 int nQuadraturePoints_elementBoundary,
1330 int *exteriorElementBoundaries,
1331 int *elementBoundaryElements,
1332 int *elementBoundaryLocalElementBoundaries,
1337 int nInteriorElementBoundaries_global,
1338 int nElementBoundaries_element,
1339 int nQuadraturePoints_elementBoundary,
1340 int nQuadraturePoints_element,
1342 int *interiorElementBoundaries,
1343 int *elementBoundaryElements,
1344 int *elementBoundaryLocalElementBoundaries,
1350 int nExteriorElementBoundaries_global,
1351 int nElementBoundaries_element,
1352 int nQuadraturePoints_elementBoundary,
1353 int nQuadraturePoints_element,
1355 int *exteriorElementBoundaries,
1356 int *elementBoundaryElements,
1357 int *elementBoundaryLocalElementBoundaries,
1363 int nInteriorElementBoundaries_global,
1364 int nElementBoundaries_element,
1365 int nQuadraturePoints_elementBoundary,
1367 int *interiorElementBoundaries,
1368 int *elementBoundaryElements,
1369 int *elementBoundaryLocalElementBoundaries,
1374 int nExteriorElementBoundaries_global,
1375 int nElementBoundaries_element,
1376 int nQuadraturePoints_elementBoundary,
1378 int *exteriorElementBoundaries,
1379 int *elementBoundaryElements,
1380 int *elementBoundaryLocalElementBoundaries,
1385 int nElements_global,
1386 int nDOF_test_element,
1387 double *elementResidual,
1388 double *conservationResidual
1391 int nElements_global,
1392 int nDOF_test_element,
1393 int nElementBoundaries_element,
1394 int nQuadraturePoints_elementBoundary,
1398 double *elementResidual,
1400 double *conservationResidual
1403 int nElements_global,
1404 int nInteriorElementBoundaries_global,
1405 int nExteriorElementBoundaries_global,
1406 int nElementBoundaries_element,
1407 int nQuadraturePoints_elementBoundary,
1410 int *interiorElementBoundaries,
1411 int *exteriorElementBoundaries,
1412 int *elementBoundaryElements,
1413 int *elementBoundaryLocalElementBoundaries,
1416 double *elementResidual,
1418 double *conservationResidual
1421 int nElements_global,
1422 int nInteriorElementBoundaries_global,
1423 int nExteriorElementBoundaries_global,
1424 int nElementBoundaries_global,
1425 int nElementBoundaries_element,
1426 int nQuadraturePoints_elementBoundary,
1428 int *interiorElementBoundaries,
1429 int *exteriorElementBoundaries,
1430 int *elementBoundaryElementsArray,
1431 int *elementBoundaryLocalElementBoundariesArray,
1432 double *velocityBoundary_global,
1433 double *velocityBoundary_element
1436 int nExteriorElementBoundaries_global,
1437 int nQuadraturePoints_elementBoundary,
1439 int *exteriorElementBoundaries,
1440 int *fluxElementBoundaries,
1447 int nInteriorElementBoundaries_global,
1448 int nElementBoundaries_element,
1449 int nQuadraturePoints_elementBoundary,
1450 int *interiorElementBoundaries,
1451 int *elementBoundaryElements,
1452 int *elementBoundaryLocalElementBoundaries,
1456 double *dphi_trace_left,
1457 double *dphi_trace_right
1461 int nExteriorElementBoundaries_global,
1462 int nElementBoundaries_element,
1463 int nQuadraturePoints_elementBoundary,
1464 int *exteriorElementBoundaries,
1465 int *elementBoundaryElements,
1466 int *elementBoundaryLocalElementBoundaries,
1471 double *dphi_trace_left
1474 int nInteriorElementBoundaries_global,
1475 int nElementBoundaries_element,
1476 int nQuadraturePoints_elementBoundary,
1477 int nDOF_test_element,
1479 int *interiorElementBoundaries,
1480 int *elementBoundaryElements,
1481 int *elementBoundaryLocalElementBoundaries,
1488 int nInteriorElementBoundaries_global,
1489 int nElementBoundaries_element,
1490 int nQuadraturePoints_elementBoundary,
1491 int nDOF_test_element,
1493 int *interiorElementBoundaries,
1494 int *elementBoundaryElements,
1495 int *elementBoundaryLocalElementBoundaries,
1497 double *dphi_trace_left,
1498 double *dphi_trace_right,
1505 int nExteriorElementBoundaries_global,
1506 int nElementBoundaries_element,
1507 int nQuadraturePoints_elementBoundary,
1508 int nDOF_test_element,
1510 int *exteriorElementBoundaries,
1511 int *elementBoundaryElements,
1512 int *elementBoundaryLocalElementBoundaries,
1519 int nExteriorElementBoundaries_global,
1520 int nElementBoundaries_element,
1521 int nQuadraturePoints_elementBoundary,
1522 int nDOF_test_element,
1524 int *exteriorElementBoundaries,
1525 int *elementBoundaryElements,
1526 int *elementBoundaryLocalElementBoundaries,
1528 double *dphi_trace_left,
1535 int nElements_global,
1536 int nQuadraturePoints_element,
1537 int nDOF_test_element,
1544 int nElements_global,
1545 int nQuadraturePoints_element,
1546 int nDOF_test_element,
1554 int nElements_global,
1555 int nElementBoundaries_element,
1556 int nElementBoundaryQuadraturePoints_elementBoundary,
1559 int nQuadraturePoints_element,
1568 int nElements_global,
1569 int nElementBoundaries_element,
1570 int nElementBoundaryQuadraturePoints_elementBoundary,
1573 int nQuadraturePoints_element,
1585 int nElements_global,
1586 int nQuadraturePoints_element,
1592 int nElements_global,
1593 int nQuadraturePoints_element,
1594 int nDOF_test_element,
1599 double *weak_residual
1602 int nElements_global,
1603 int nElementBoundaries_element,
1604 int nQuadraturePoints_element,
1605 int nDOF_trial_element,
1606 int nDOF_test_element,
1615 double *jacobian_weak_residual,
1616 double *jacobian_weak_residual_eb
1619 int nElements_global,
1620 int nQuadraturePoints_element,
1624 double *elementSpatialResidual,
1628 int nQuadraturePoints_element,
1632 double* elementSpatialResidual,
1635 int nQuadraturePoints_element,
1637 double* nValueArray);
1639 int nQuadraturePoints_element,
1641 double* nValueArray);
1643 int nQuadraturePoints_element,
1645 double* elementDiameter,
1647 double* nValueArray);
1649 int nElementBoundaries_owned,
1650 int nQuadraturePoints_elementBoundary,
1652 int* exteriorElementBoundariesArray,
1654 double* nValueArray);
1657 int nElementBoundaries_owned,
1658 int nQuadraturePoints_elementBoundary,
1661 int* exteriorElementBoundaries,
1663 double* nValueArray,
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,
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,
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);
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,
1720 const int* elementNodesArray,
1721 const int* nodeElementOffsets,
1722 const int* nodeElementsArray,
1725 double* nodalAverage);
1733 const int* elementNodesArray,
1734 const int* nodeElementOffsets,
1735 const int* nodeElementsArray,
1738 double* nodalAverage);
1746 const int* elementNodesArray,
1747 const int* nodeElementOffsets,
1748 const int* nodeElementsArray,
1751 double* nodalAverage);
1758 int nElementBoundaryQuadraturePoints_elementBoundary,
1760 int nExteriorElementBoundaries_global,
1761 const int* exteriorElementBoundariesArray,
1762 const int* elementBoundaryElementsArray,
1763 const int* elementBoundaryLocalElementBoundariesArray,
1770 int nElementBoundaryQuadraturePoints_elementBoundary,
1773 int nExteriorElementBoundaries_global,
1774 const int *exteriorElementBoundariesArray,
1775 const int *elementBoundaryElementsArray,
1776 const int *elementBoundaryLocalElementBoundariesArray,
1778 double* inverseJacobianArray,
1779 double* grad_vArray);
1786 int nExteriorElementBoundaries_global,
1787 const int* exteriorElementBoundariesArray,
1788 const int* elementBoundaryElementsArray,
1789 const int* elementBoundaryLocalElementBoundariesArray,
1800 int nExteriorElementBoundaries_global,
1801 const int* exteriorElementBoundariesArray,
1802 const int* elementBoundaryElementsArray,
1803 const int* elementBoundaryLocalElementBoundariesArray,
1804 double* inverseJacobian,
1815 int nExteriorElementBoundaries_global,
1816 const int * exteriorElementBoundariesArray,
1817 const int * elementBoundaryElementsArray,
1818 const int * elementBoundaryLocalElementBoundariesArray,
1820 double* boundaryNormals,
1821 double* boundaryJacobians,
1824 double* jacobianInverseArray,
1825 double* metricTensorArray,
1826 double* metricTensorDeterminantSqrtArray,
1827 double* unitNormalArray);
1836 int nExteriorElementBoundaries_global,
1837 const int * exteriorElementBoundariesArray,
1838 const int * elementBoundaryElementsArray,
1839 const int * elementBoundaryLocalElementBoundariesArray,
1841 double* boundaryNormals,
1842 double* boundaryJacobians,
1845 double* jacobianInverseArray,
1846 double* metricTensorArray,
1847 double* metricTensorDeterminantSqrtArray,
1848 double* unitNormalArray);
1852 int nExteriorElementBoundaries_global,
1853 const int * exteriorElementBoundariesArray,
1854 const int * elementBoundaryElementsArray,
1855 const int * elementBoundaryLocalElementBoundariesArray,
1858 double* boundaryNormals,
1859 double* boundaryJacobians,
1862 double* jacobianInverseArray,
1863 double* metricTensorArray,
1864 double* metricTensorDeterminantSqrtArray,
1865 double* unitNormalArray);
1869 int nExteriorElementBoundaries_global,
1870 const int * exteriorElementBoundariesArray,
1871 const int * elementBoundaryElementsArray,
1872 const int * elementBoundaryLocalElementBoundariesArray,
1874 double* boundaryNormals,
1875 double* boundaryJacobians,
1878 double* jacobianInverseArray,
1879 double* metricTensorArray,
1880 double* metricTensorDeterminantSqrtArray,
1881 double* unitNormalArray);
1886 int nQuadraturePoints_elementBoundary,
1887 int nDOF_test_element,
1888 int* exteriorElementBoundaries,
1889 int* elementBoundaryElements,
1890 int* elementBoundaryLocalElementBoundaries,
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,
1909 int nFreeVDOF_global,
1910 int* exteriorElementBoundaries,
1911 int* elementBoundaryElements,
1912 int* elementBoundaryLocalElementBoundaries,
1913 int* nFreeDOF_element_r,
1916 int* nFreeDOF_element_u,
1919 double* elementBoundaryFluxJacobian_eb,
1925 int nQuadraturePoints_elementBoundary,
1926 int nDOF_test_element,
1927 int nDOF_trial_element,
1932 int nFreeVDOF_global,
1933 int* exteriorElementBoundaries,
1934 int* elementBoundaryElements,
1935 int* elementBoundaryLocalElementBoundaries,
1936 int* nFreeDOF_element_r,
1939 int* nFreeDOF_element_u,
1942 double* elementBoundaryFluxJacobian,
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,
1956 int* nFreeDOF_element_u,
1958 int* csrRowIndeces_ru,
1959 int* csrColumnOffsets_eb_ru,
1960 double* elementBoundaryFluxJacobian,
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,
1978 int* nFreeDOF_element_u,
1980 int* csrRowIndeces_ru,
1981 int* csrColumnOffsets_eb_eNebN_ru,
1982 double* elementBoundaryFluxJacobian_eb,
1988 int nDOF_test_element,
1989 int nExteriorElementBoundaries_global,
1990 const int* exteriorElementBoundariesArray,
1991 const int* elementBoundaryElementsArray,
1992 const int* elementBoundaryLocalElementBoundariesArray,
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,
2013 int nDOF_trial_element,
2014 int nDOF_test_element,
2016 int nExteriorElementBoundaries_global,
2017 const int* exteriorElementBoundariesArray,
2018 const int* elementBoundaryElementsArray,
2019 const int* elementBoundaryLocalElementBoundariesArray,
2022 double* grad_v_X_w_dS);
2027 int nExteriorElementBoundaries_global,
2029 double* referenceWeights,
2034 int nDOF_trial_element,
2036 int nExteriorElementBoundaries_global,
2037 const int * exteriorElementBoundariesArray,
2038 const int * elementBoundaryElementsArray,
2039 const int * elementBoundaryLocalElementBoundariesArray,
2047 int nDOF_trial_element,
2050 int nExteriorElementBoundaries_global,
2051 const int * exteriorElementBoundariesArray,
2052 const int * elementBoundaryElementsArray,
2053 const int * elementBoundaryLocalElementBoundariesArray,
2062 int nQuadraturePoints_elementBoundary,
2064 int* exteriorElementBoundaries,
2065 int* elementBoundaryElements,
2066 int* elementBoundaryLocalElementBoundaries,
2074 int nQuadraturePoints_elementBoundary,
2076 int* exteriorElementBoundaries,
2077 int* elementBoundaryElements,
2078 int* elementBoundaryLocalElementBoundaries,
2085 int nQuadraturePoints_elementBoundary,
2087 int* exteriorElementBoundaries,
2088 int* elementBoundaryElements,
2089 int* elementBoundaryLocalElementBoundaries,
2100 const int* globalDOFids,
2101 const int* freeDOFids,
2102 const double * free_u,
2108 const int* globalDOFids,
2109 const int* freeDOFids,
2114 int nElementBoundaries_element,
2115 int nQuadraturePoints_elementBoundary,
2116 int nDOF_test_element,
2118 int* interiorElementBoundaries,
2119 int* elementBoundaryElements,
2120 int* elementBoundaryLocalElementBoundaries,
2130 int nQuadraturePoints_elementBoundary,
2131 int nDOF_test_element,
2134 int* exteriorElementBoundaries,
2135 int* elementBoundaryElements,
2136 int* elementBoundaryLocalElementBoundaries,
2147 int nElementBoundaries_element,
2148 int nQuadraturePoints_elementBoundary,
2149 int nDOF_test_element,
2150 int nDOF_trial_element,
2156 int nFreeVDOF_global,
2157 int* interiorElementBoundaries,
2158 int* elementBoundaryElements,
2159 int* elementBoundaryLocalElementBoundaries,
2160 int* nFreeDOF_element_r,
2163 int* nFreeDOF_element_u,
2175 int nQuadraturePoints_elementBoundary,
2176 int nDOF_test_element,
2177 int nDOF_trial_element,
2183 int nFreeVDOF_global,
2184 int* exteriorElementBoundaries,
2185 int* elementBoundaryElements,
2186 int* elementBoundaryLocalElementBoundaries,
2187 int* nFreeDOF_element_r,
2190 int* nFreeDOF_element_u,
2203 int nElementBoundaries_element,
2204 int nQuadraturePoints_elementBoundary,
2205 int nDOF_test_element,
2209 int* interiorElementBoundaries,
2210 int* elementBoundaryElements,
2211 int* elementBoundaryLocalElementBoundaries,
2221 int nQuadraturePoints_elementBoundary,
2222 int nDOF_test_element,
2227 int* exteriorElementBoundaries,
2228 int* elementBoundaryElements,
2229 int* elementBoundaryLocalElementBoundaries,
2240 int nElementBoundaries_element,
2241 int nQuadraturePoints_elementBoundary,
2242 int nDOF_test_element,
2243 int nDOF_trial_element,
2251 int nFreeVDOF_global,
2252 int* interiorElementBoundaries,
2253 int* elementBoundaryElements,
2254 int* elementBoundaryLocalElementBoundaries,
2255 int* nFreeDOF_element_r,
2258 int* nFreeDOF_element_u,
2270 int nQuadraturePoints_elementBoundary,
2271 int nDOF_test_element,
2272 int nDOF_trial_element,
2280 int nFreeVDOF_global,
2281 int* exteriorElementBoundaries,
2282 int* elementBoundaryElements,
2283 int* elementBoundaryLocalElementBoundaries,
2284 int* nFreeDOF_element_r,
2287 int* nFreeDOF_element_u,
2300 int nElementBoundaries_element,
2301 int nQuadraturePoints_elementBoundary,
2302 int nDOF_test_element,
2303 int nDOF_trial_element,
2311 int nFreeVDOF_global,
2312 int* interiorElementBoundaries,
2313 int* elementBoundaryElements,
2314 int* elementBoundaryLocalElementBoundaries,
2315 int* nFreeDOF_element_r,
2318 int* nFreeDOF_element_u,
2321 int* csrRowIndeces_ru,
2322 int* csrColumnOffsets_eb_ru,
2332 int nQuadraturePoints_elementBoundary,
2333 int nDOF_test_element,
2334 int nDOF_trial_element,
2342 int nFreeVDOF_global,
2343 int* exteriorElementBoundaries,
2344 int* elementBoundaryElements,
2345 int* elementBoundaryLocalElementBoundaries,
2346 int* nFreeDOF_element_r,
2349 int* nFreeDOF_element_u,
2352 int* csrRowIndeces_ru,
2353 int* csrColumnOffsets_eb_ru,
2364 int nQuadraturePoints_element,
2371 int nQuadraturePoints_element,
2377 int nElementBoundaries_element,
2378 int nQuadraturePoints_elementBoundary,
2385 int nElementBoundaries_element,
2386 int nQuadraturePoints_elementBoundary,
2392 int nQuadraturePoints_element,
2393 int nDOF_test_element,
2397 double* weak_residual_x,
2398 double* weak_residual_y,
2399 double* weak_residual_z);
2402 int nQuadraturePoints_element,
2403 int nDOF_trial_element,
2404 int nDOF_test_element,
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);
2431 const int * functional_map_element,
2432 const double * interpolationValues,
2435 int nElementBoundaries_element,
2436 int nElementBoundaryQuadraturePoints_elementBoundary,
2439 int nQuadraturePoints_element,
2450 int nQuadraturePoints_element,
2451 int nDOF_test_element,
2460 double* weak_residual);
2462 int nElementBoundaries_element,
2463 int nElementBoundaryQuadraturePoints_elementBoundary,
2466 int nQuadraturePoints_element,
2480 int nElementBoundaries_element,
2481 int nQuadraturePoints_element,
2482 int nDOF_trial_element,
2483 int nDOF_test_element,
2494 double* jacobian_weak_residual,
2495 double* jacobian_weak_residual_eb);
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.