proteus  1.8.1
C/C++/Fortran libraries
Files | Functions
femIntegrals

C implementation of fem integral calculations. More...

Files

file  femIntegrals.h
 A library of functions for computing the discrete finite element formulations.
 

Functions

void parametricFiniteElementSpace_getHessianValues (int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *Hessian_psi, double *inverseJacobianArray, double *Hessian_vArray)
 
void updateDiffusion2_strong (int nElements_global, int nQuadraturePoints_element, int nSpace, double *a, double *Hess_phi, double *strong_residual)
 
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 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 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 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 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 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 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 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 interior boundaries. More...
 
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 interior boundaries. More...
 
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. More...
 
void calculateCFLADR2speeds (int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df1, double *df2, double *cfl)
 
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)
 
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 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 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 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 parametricFiniteElementSpace_getValues (int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *psi, double *vArray)
 
void parametricFiniteElementSpace_getValuesTrace (int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nDOF_element, double *psi, int *permutations, double *vArray)
 
void parametricFiniteElementSpace_getGradientValues (int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *grad_psi, double *inverseJacobianArray, double *grad_vArray)
 
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 parametricMaps_getPermutations (int nElements_global, int nElementBoundaries_element, int nElementBoundaryQuadraturePoints_elementBoundary, int nSpace_global, double *xiArray, int *permutations)
 
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 getPermutationsGlobal (int nElementBoundaries_global, int nElementBoundaryQuadraturePoints_elementBoundary, double *xArray, double *xArrayNew, int *permutations)
 
void parametricMaps_getValues (int nElements_global, int nQuadraturePoints_element, int nDOF_element, int nSpace_global, double *psi, int *l2g, double *nodeArray, double *xArray)
 
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 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 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 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 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 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 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 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 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 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 approximation of the mass integral. More...
 
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 approximation of the mass integral Jacobian. More...
 
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 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 the mass term. More...
 
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 quadrature points with the mass term. More...
 
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, with the mass term. More...
 
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 approximation of the advection integral. More...
 
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 approximation of the advection integral Jacobian. More...
 
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 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. More...
 
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 advection term. More...
 
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 with the advection term. More...
 
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 approximation of the Hamiltonian integral. More...
 
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 approximation of the Hamiltonian integral Jacobian. More...
 
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 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. More...
 
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 advection term. More...
 
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 with the Hamiltonian term. More...
 
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 approximation of the diffusion integral. More...
 
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 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 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 approximation of the diffusion integral Jacobian. More...
 
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 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 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 quadrature points. More...
 
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 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 quadrature points. More...
 
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_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 with the diffusion term. More...
 
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 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 approximation of the reaction integral. More...
 
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 approximation of the reaction integral Jacobian. More...
 
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 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 the reaction term. More...
 
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 the reaction term. More...
 
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, with the mass term. More...
 
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 approximation of the stabilization integral. More...
 
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 approximation of the stabilization integral Jacobian. More...
 
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 approximation of the shock capturing integral. More...
 
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 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 approximation of the shock capturing integral Jacobian. More...
 
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 calculateScalarScalarProduct (int nElements_global, int nQuadraturePoints_element, double *s1, double *s2, double *sResult)
 Calculate the product of two scalars at the quadrature points. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 quadrature points. More...
 
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. More...
 
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. More...
 
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. More...
 
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 determinants. More...
 
void calculateElementBoundaryIntegrationWeights (int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double *sqrt_det_g, double *referenceWeights, double *weights)
 
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 degrees of freedom and the test function values at the quadrature points. More...
 
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 from the degrees of freedom and the test function gradient values at the quadrature points. More...
 
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 the test functions. More...
 
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 points from the degrees of freedom and the trace of the trial functions at the element boundary quadrature points. More...
 
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 quadrature points from the degress of freedom and the trace of the trial functions at the element boundary quadrature points. More...
 
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. More...
 
void updateAddJacobian_CSR (int jacIndex, double val, double *jac)
 Update a single element of the Jacobian. More...
 
void zeroJacobian_CSR (int nNonzeros, double *jac)
 Set all the Jacobian entries to 0.0. More...
 
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 flux. More...
 
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 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 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 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 calculateConservationFluxPWL (int nNodes_global, int nNodes_internal, int *nElements_node, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *internalNodes, double *starR, double *starJ, double *starU)
 
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 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 equation. More...
 
void calculateCFLADR (int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *dm, double *df, double *cfl)
 
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. More...
 
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 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. More...
 
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 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. More...
 
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. More...
 
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. More...
 
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. More...
 
void calculateInteriorElementBoundaryAverageVelocity (int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
 
void calculateExteriorElementBoundaryAverageVelocity (int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *v, double *vAverage)
 
void calculateConservationResidualDG (int nElements_global, int nDOF_test_element, double *elementResidual, double *conservationResidual)
 
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 More...
 
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 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 loadBoundaryFluxIntoGlobalElementBoundaryVelocity (int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *fluxElementBoundaries, double *normal, double *flux, double updateCoef, double *velocity)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void updatePotential_MixedForm_weak (int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nSpace, double *phi, double *grad_w_dV, double *b)
 
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 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 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 calculateVelocityProjectionMatrixLDG (int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *vXw_dV, double *A_inv)
 
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 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 estimate_mt (int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *vXw_dV, double *elementSpatialResidual, double *mt)
 
void estimate_mt_lowmem (int nElements_global, int nQuadraturePoints_element, int nDOF_element, double *v, double *w_dV, double *elementSpatialResidual, double *mt)
 
double scalarDomainIntegral (int nElements_global, int nQuadraturePoints_element, double *dV, double *nValueArray)
 
double scalarHeavisideDomainIntegral (int nElements_global, int nQuadraturePoints_element, double *dV, double *nValueArray)
 
double scalarSmoothedHeavisideDomainIntegral (int nElements_global, int nQuadraturePoints_element, double epsFact, double *elementDiameter, double *dV, double *nValueArray)
 
double fluxDomainBoundaryIntegral (int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int *flag, int *exteriorElementBoundariesArray, double *dS, double *nValueArray)
 
double fluxDomainBoundaryIntegralFromVector (int nExteriorElementBoundaries, int nElementBoundaries_owned, int nQuadraturePoints_elementBoundary, int nSpace, int *flag, int *exteriorElementBoundaries, double *dS, double *nValueArray, double *normal)
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 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 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 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 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 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 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_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 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 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)
 
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 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 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 difference from updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian is test function dimensionality right now. More...
 
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. More...
 
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. More...
 
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 difference from updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian is test function dimensionality right now. More...
 
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 boundary version. More...
 
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 boundary version. More...
 
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. More...
 
void calculateGlobalExteriorElementBoundaryIntegrationWeights (int nQuadraturePoints_elementBoundary, int nExteriorElementBoundaries_global, double *sqrt_det_g, double *referenceWeights, double *weights)
 
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 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 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. More...
 
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. More...
 
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. More...
 
void copyFreeUnknownsToGlobalUnknowns (int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *free_u, double *u)
 
void copyGlobalUnknownsToFreeUnknowns (int nDOF2set, int offset, int stride, const int *globalDOFids, const int *freeDOFids, const double *u, double *free_u)
 
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 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 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 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 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 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 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 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 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 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 update_f_movingDomain_q (int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *m, double *f)
 
void update_f_movingDomain_constantMass_q (int nElements_global, int nQuadraturePoints_element, int nSpace, double *xt, double *f)
 
void update_f_movingDomain_ebq (int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *m, double *f)
 
void update_f_movingDomain_constantMass_ebq (int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *xt, double *f)
 
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 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 projectFromNodalInterpolationConditions (int nElements_global, int nDOF_element, int dim_dof, const int *l2g, const int *functional_map_element, const double *interpolationValues, double *dofs)
 
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)
 

Detailed Description

Function Documentation

◆ calculateCFLADR()

void calculateCFLADR ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  elementDiameter,
double *  dm,
double *  df,
double *  cfl 
)

Definition at line 7716 of file femIntegrals.c.

◆ calculateCFLADR2speeds()

void calculateCFLADR2speeds ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  elementDiameter,
double *  dm,
double *  df1,
double *  df2,
double *  cfl 
)

Definition at line 7752 of file femIntegrals.c.

◆ calculateConservationFluxPWL()

void calculateConservationFluxPWL ( int  nNodes_global,
int  nNodes_internal,
int *  nElements_node,
int *  nodeStarOffsets,
int *  nodeStarJacobianOffsets,
int *  internalNodes,
double *  starR,
double *  starJ,
double *  starU 
)

◆ calculateConservationJacobianPWL()

void calculateConservationJacobianPWL ( int  nNodes_global,
int  nNodes_internal,
int  nElements_global,
int  nInteriorElementBoundaries_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nNodes_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  elementNodes,
int *  nodeStarElements,
int *  nodeStarElementNeighbors,
int *  nodeStarOffsets,
int *  nodeStarJacobianOffsets,
int *  nElements_node,
int *  internalNodes,
double *  w,
double *  normal,
double *  starJacobian 
)

◆ calculateConservationResidual()

void calculateConservationResidual ( int  nElements_global,
int  nDOF_test_element,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
double *  n,
double *  dS_u,
double *  elementResidual,
double *  velocity,
double *  conservationResidual 
)

\[ \sum_{i} res_{E,i} + \sum_{E,e} \int_{e} \vec v \cdot \vec n_e \ds \]

where \(res_{E,i}\) is the \(i\)'th test function's residual on element \(E\)

Definition at line 8397 of file femIntegrals.c.

◆ calculateConservationResidualDG()

void calculateConservationResidualDG ( int  nElements_global,
int  nDOF_test_element,
double *  elementResidual,
double *  conservationResidual 
)

Definition at line 8376 of file femIntegrals.c.

◆ calculateConservationResidualGlobalBoundaries()

void calculateConservationResidualGlobalBoundaries ( int  nElements_global,
int  nInteriorElementBoundaries_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nNodes_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  dS,
double *  normal,
double *  elementResidual,
double *  velocity,
double *  conservationResidual 
)

◆ calculateConservationResidualPWL()

void calculateConservationResidualPWL ( int  nElements_global,
int  nInteriorElementBoundaries_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nNodes_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  elementNodes,
int *  nodeStarElements,
int *  nodeStarElementNeighbors,
int *  nodeStarOffsets,
int *  nElements_node,
double *  elementResidual,
double *  vAverage,
double *  starU,
double *  dX,
double *  w,
double *  normal,
double *  conservationResidual,
double *  starR,
double *  vConservative,
double *  vConservative_element 
)

◆ calculateDimensionlessNumbersADR()

void calculateDimensionlessNumbersADR ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
int  computeDiffusiveTimeStepLimit,
double *  elementDiameter,
double *  df,
double *  a,
double *  dphi,
double *  dr,
double *  dmt,
double *  pe,
double *  cfl 
)

Definition at line 7588 of file femIntegrals.c.

◆ calculateElementBoundaryIntegrationWeights()

void calculateElementBoundaryIntegrationWeights ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
double *  sqrt_det_g,
double *  referenceWeights,
double *  weights 
)

Definition at line 6939 of file femIntegrals.c.

◆ calculateExteriorElementBoundaryAverageVelocity()

void calculateExteriorElementBoundaryAverageVelocity ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  v,
double *  vAverage 
)

Definition at line 8334 of file femIntegrals.c.

◆ calculateExteriorElementBoundaryStress2D()

void calculateExteriorElementBoundaryStress2D ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int *  elementBoundaryMaterialTypes,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  p,
double *  mom_flux_vec_u,
double *  mom_flux_vec_v,
double *  dS,
double *  n,
double *  F 
)

Definition at line 4551 of file femIntegrals.c.

◆ calculateExteriorElementBoundaryStress3D()

void calculateExteriorElementBoundaryStress3D ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int *  elementBoundaryMaterialTypes,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  p,
double *  mom_flux_vec_u,
double *  mom_flux_vec_v,
double *  mom_flux_vec_w,
double *  dS,
double *  n,
double *  F 
)

Definition at line 4470 of file femIntegrals.c.

◆ calculateExteriorElementBoundaryVelocities()

void calculateExteriorElementBoundaryVelocities ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  m,
double *  a,
double *  grad_phi,
double *  f,
double *  vAverage,
double *  vJump,
double *  mAverage,
double *  mJump 
)

Definition at line 7461 of file femIntegrals.c.

◆ calculateExteriorNumericalTrace_Potential()

void calculateExteriorNumericalTrace_Potential ( int *  isDOFBoundary,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  phi_bc,
double *  phi,
double *  dphi,
double *  phi_trace,
double *  dphi_trace_left 
)

Definition at line 8707 of file femIntegrals.c.

◆ calculateFiniteElementFunctionGradientTensorValues()

void calculateFiniteElementFunctionGradientTensorValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nComponents,
int  nSpace,
int *  l2g,
double *  dof,
double *  grad_v_X_grad_w_dV,
double *  grad_u_X_grad_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
nSpaceThe number of spatial dimensions.
l2g(nElements_global x nDOF_trial_element) The mapping between element degrees of freedom and global degrees of freedom.
dof(nDOF_global). The global degrees of freedom of u.
grad_v_X_grad_w(nElements_global x nQuadraturePoints_element x x nDOF_test_element x nSpace x nSpace) The tensor product of the solution gradient values and trial function gradient values at the quadrature points.
grad_u_X_grad_w(nElements_global x nQuadraturePoints_element x x nDOF_test_element x nSpace x nSpace) The tensor product of the solution gradient values and trial function gradient values at the quadrature points.

\[ u_{e,q} \mapsto \sum_j u_j v_{e,q,j} \]

\[ \nabla u_{e,q} \mapsto \sum_j u_j \nabla v_{e,q,j} \]

\[ (\nabla u \otimes \nabla w)_{e,q,j,i} \mapsto \sum_j u_j (\nabla v \otimes \nabla w)_{e,q,j,i} \]

where

\[ u_j = u[l2g[e,j]] \]

Definition at line 7124 of file femIntegrals.c.

◆ calculateFiniteElementFunctionGradientValues()

void calculateFiniteElementFunctionGradientValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nComponents,
int  nSpace,
int *  l2g,
double *  dof,
double *  grad_v,
double *  grad_u 
)

Definition at line 7013 of file femIntegrals.c.

◆ calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace()

void calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace ( int  nQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nComponents,
int  nSpace,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
int *  l2g,
double *  dof,
double *  grad_v,
double *  grad_u 
)

Definition at line 7271 of file femIntegrals.c.

◆ calculateFiniteElementFunctionGradientValuesTrace()

void calculateFiniteElementFunctionGradientValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nComponents,
int  nSpace,
int *  l2g,
double *  dof,
double *  grad_v,
double *  grad_u 
)

Definition at line 7202 of file femIntegrals.c.

◆ calculateFiniteElementFunctionHessianValues()

void calculateFiniteElementFunctionHessianValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nComponents,
int  nSpace,
int *  l2g,
double *  dof,
double *  Hessian_v,
double *  Hessian_u 
)

Definition at line 7045 of file femIntegrals.c.

◆ calculateFiniteElementFunctionValues()

void calculateFiniteElementFunctionValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nComponents,
int *  l2g,
double *  dof,
double *  v,
double *  u 
)

Definition at line 6982 of file femIntegrals.c.

◆ calculateFiniteElementFunctionValuesGlobalExteriorTrace()

void calculateFiniteElementFunctionValuesGlobalExteriorTrace ( int  nQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nComponents,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
int *  l2g,
double *  dof,
double *  v,
double *  u 
)

Definition at line 7236 of file femIntegrals.c.

◆ calculateFiniteElementFunctionValuesTrace()

void calculateFiniteElementFunctionValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nComponents,
int *  l2g,
double *  dof,
double *  v,
double *  u 
)

Definition at line 7167 of file femIntegrals.c.

◆ calculateFlowVelocity()

void calculateFlowVelocity ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  f,
double *  a,
double *  grad_phi,
double *  v 
)

Definition at line 7314 of file femIntegrals.c.

◆ calculateGlobalExteriorElementBoundaryIntegrationWeights()

void calculateGlobalExteriorElementBoundaryIntegrationWeights ( int  nQuadraturePoints_elementBoundary,
int  nExteriorElementBoundaries_global,
double *  sqrt_det_g,
double *  referenceWeights,
double *  weights 
)

Definition at line 6961 of file femIntegrals.c.

◆ calculateGradShape_X_weightedGradShape()

void calculateGradShape_X_weightedGradShape ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  grad_v,
double *  grad_w_dV,
double *  grad_v_X_grad_w_dV 
)

Definition at line 6635 of file femIntegrals.c.

◆ calculateGradShape_X_weightedShape()

void calculateGradShape_X_weightedShape ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  grad_v,
double *  w_dV,
double *  grad_v_X_w_dV 
)

Definition at line 6601 of file femIntegrals.c.

◆ calculateGradShape_X_weightedShapeGlobalExteriorTrace()

void calculateGradShape_X_weightedShapeGlobalExteriorTrace ( int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  grad_v,
double *  w_dS,
double *  grad_v_X_w_dS 
)

Definition at line 6883 of file femIntegrals.c.

◆ calculateGradShape_X_weightedShapeTrace()

void calculateGradShape_X_weightedShapeTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  grad_v,
double *  w_dS,
double *  grad_v_X_w_dS 
)

Definition at line 6775 of file femIntegrals.c.

◆ calculateIntegrationWeights()

void calculateIntegrationWeights ( int  nElements_global,
int  nQuadraturePoints_element,
double *  abs_det_J,
double *  referenceWeights,
double *  weights 
)

Definition at line 6921 of file femIntegrals.c.

◆ calculateInteriorElementBoundaryAverageVelocity()

void calculateInteriorElementBoundaryAverageVelocity ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  v,
double *  vAverage 
)

Definition at line 8299 of file femIntegrals.c.

◆ calculateInteriorElementBoundaryVelocities()

void calculateInteriorElementBoundaryVelocities ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  m,
double *  a,
double *  grad_phi,
double *  f,
double *  vAverage,
double *  vJump,
double *  mAverage,
double *  mJump 
)

Definition at line 7369 of file femIntegrals.c.

◆ calculateInteriorNumericalTrace_Potential()

void calculateInteriorNumericalTrace_Potential ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  phi,
double *  dphi,
double *  phi_trace,
double *  dphi_trace_left,
double *  dphi_trace_right 
)

Definition at line 8658 of file femIntegrals.c.

◆ calculateScalarScalarProduct()

void calculateScalarScalarProduct ( int  nElements_global,
int  nQuadraturePoints_element,
double *  s1,
double *  s2,
double *  sResult 
)

Definition at line 4198 of file femIntegrals.c.

◆ calculateShape_X_weightedGradShape()

void calculateShape_X_weightedGradShape ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  v,
double *  grad_w_dV,
double *  v_X_grad_w_dV 
)

Definition at line 6567 of file femIntegrals.c.

◆ calculateShape_X_weightedShape()

void calculateShape_X_weightedShape ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  v,
double *  w_dV,
double *  v_X_w_dV 
)

Definition at line 6537 of file femIntegrals.c.

◆ calculateShape_X_weightedShapeGlobalExteriorTrace()

void calculateShape_X_weightedShapeGlobalExteriorTrace ( int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  v,
double *  w_dS,
double *  v_X_w_dS 
)

Definition at line 6850 of file femIntegrals.c.

◆ calculateShape_X_weightedShapeTrace()

void calculateShape_X_weightedShapeTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  v,
double *  w_dS,
double *  v_X_w_dS 
)

Definition at line 6740 of file femIntegrals.c.

◆ calculateTensorScalarProduct()

void calculateTensorScalarProduct ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  t,
double *  s,
double *  tResult 
)

Definition at line 4246 of file femIntegrals.c.

◆ calculateVectorScalarProduct()

void calculateVectorScalarProduct ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  v,
double *  s,
double *  vResult 
)

Definition at line 4220 of file femIntegrals.c.

◆ calculateVelocityProjectionMatrixLDG()

void calculateVelocityProjectionMatrixLDG ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  vXw_dV,
double *  A_inv 
)

Definition at line 10109 of file femIntegrals.c.

◆ calculateVelocityQuadrature_MixedForm()

void calculateVelocityQuadrature_MixedForm ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace,
int  nQuadraturePoints_element,
double *  A_inv,
double *  b,
double *  v,
double *  V,
double *  qv,
double *  qV 
)

Definition at line 9136 of file femIntegrals.c.

◆ calculateVelocityQuadrature_MixedForm2_sd()

void calculateVelocityQuadrature_MixedForm2_sd ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace,
int  nQuadraturePoints_element,
const int *  rowptr,
const int *  colind,
double *  qa,
double *  qw_dV,
double *  b,
double *  v,
double *  V,
double *  qv,
double *  qV 
)

Definition at line 9312 of file femIntegrals.c.

◆ calculateVelocityQuadrature_MixedForm_Jacobian()

void calculateVelocityQuadrature_MixedForm_Jacobian ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace,
int  nQuadraturePoints_element,
double *  A_inv,
double *  db,
double *  db_eb,
double *  v,
double *  DV,
double *  DV_eb,
double *  qv,
double *  qDV,
double *  qDV_eb 
)

Definition at line 9562 of file femIntegrals.c.

◆ calculateWeightedShape()

void calculateWeightedShape ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  dVR,
double *  abs_det_jac,
double *  w,
double *  w_dV 
)

Definition at line 6413 of file femIntegrals.c.

◆ calculateWeightedShapeGlobalExteriorTrace()

void calculateWeightedShapeGlobalExteriorTrace ( int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  dSR,
double *  sqrt_det_g,
double *  w,
double *  w_dS 
)

Definition at line 6814 of file femIntegrals.c.

◆ calculateWeightedShapeGradients()

void calculateWeightedShapeGradients ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  dVR,
double *  abs_det_jac,
double *  grad_w,
double *  grad_w_dV 
)

Definition at line 6442 of file femIntegrals.c.

◆ calculateWeightedShapeHessians()

void calculateWeightedShapeHessians ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  dVR,
double *  abs_det_jac,
double *  Hess_w,
double *  Hess_w_dV 
)

Definition at line 6501 of file femIntegrals.c.

◆ calculateWeightedShapeTrace()

void calculateWeightedShapeTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_test_element,
double *  dSR,
double *  sqrt_det_g,
double *  w,
double *  w_dS 
)

Definition at line 6672 of file femIntegrals.c.

◆ checkElementBoundaryAndExteriorElementBoundaryArraysSame()

int checkElementBoundaryAndExteriorElementBoundaryArraysSame ( int  nElementBoundaries_element,
int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
double  tolerance,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
const double *  ebq_val,
const double *  ebqe_val,
int *  firstBadIndex 
)

for debugging

Definition at line 10913 of file femIntegrals.c.

◆ checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame()

int checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
double  tolerance,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
const double *  ebq_global_val,
const double *  ebqe_val,
int *  firstBadIndex 
)

for debugging

Definition at line 10959 of file femIntegrals.c.

◆ computeC0P1InterpolantDGP0()

void computeC0P1InterpolantDGP0 ( int  nElements_global,
int  nNodes_global,
int  nNodes_element,
int  nDOF_element,
int  dim_dof,
const int *  elementNodesArray,
const int *  nodeElementOffsets,
const int *  nodeElementsArray,
const int *  l2g,
const double *  dof,
double *  nodalAverage 
)

Definition at line 10823 of file femIntegrals.c.

◆ computeC0P1InterpolantDGP12()

void computeC0P1InterpolantDGP12 ( int  nElements_global,
int  nNodes_global,
int  nNodes_element,
int  nDOF_element,
int  dim_dof,
const int *  elementNodesArray,
const int *  nodeElementOffsets,
const int *  nodeElementsArray,
const int *  l2g,
const double *  dof,
double *  nodalAverage 
)

Definition at line 10789 of file femIntegrals.c.

◆ computeC0P1InterpolantNCP1()

void computeC0P1InterpolantNCP1 ( int  nElements_global,
int  nNodes_global,
int  nNodes_element,
int  nDOF_element,
int  dim_dof,
const int *  elementNodesArray,
const int *  nodeElementOffsets,
const int *  nodeElementsArray,
const int *  l2g,
const double *  dof,
double *  nodalAverage 
)

Definition at line 10857 of file femIntegrals.c.

◆ copyExteriorElementBoundaryValuesFromElementBoundaryValues()

void copyExteriorElementBoundaryValuesFromElementBoundaryValues ( int  nExteriorElementBoundaries_global,
int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
const int *  exteriorElementBoundaries,
const int *  elementBoundaryElements,
const int *  elementBoundaryLocalElementBoundaries,
const double *  ebq_val,
double *  ebqe_val 
)

Definition at line 10545 of file femIntegrals.c.

◆ copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues()

void copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
const int *  exteriorElementBoundaries,
const int *  elementBoundaryElements,
const int *  elementBoundaryLocalElementBoundaries,
const double *  ebq_global_val,
double *  ebqe_val 
)

Definition at line 10641 of file femIntegrals.c.

◆ copyExteriorElementBoundaryValuesToElementBoundaryValues()

void copyExteriorElementBoundaryValuesToElementBoundaryValues ( int  nExteriorElementBoundaries_global,
int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
const int *  exteriorElementBoundaries,
const int *  elementBoundaryElements,
const int *  elementBoundaryLocalElementBoundaries,
const double *  ebqe_val,
double *  ebq_val 
)

Definition at line 10578 of file femIntegrals.c.

◆ copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues()

void copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nValuesPerQuadraturePoint,
const int *  exteriorElementBoundaries,
const int *  elementBoundaryElements,
const int *  elementBoundaryLocalElementBoundaries,
const double *  ebqe_val,
double *  ebq_global_val 
)

Definition at line 10611 of file femIntegrals.c.

◆ copyFreeUnknownsToGlobalUnknowns()

void copyFreeUnknownsToGlobalUnknowns ( int  nDOF2set,
int  offset,
int  stride,
const int *  globalDOFids,
const int *  freeDOFids,
const double *  free_u,
double *  u 
)

Definition at line 10999 of file femIntegrals.c.

◆ copyGlobalElementBoundaryVelocityToElementBoundary()

void copyGlobalElementBoundaryVelocityToElementBoundary ( int  nElements_global,
int  nInteriorElementBoundaries_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  interiorElementBoundaries,
int *  exteriorElementBoundaries,
int *  elementBoundaryElementsArray,
int *  elementBoundaryLocalElementBoundariesArray,
double *  velocityBoundary_global,
double *  velocityBoundary_element 
)

Definition at line 8542 of file femIntegrals.c.

◆ copyGlobalUnknownsToFreeUnknowns()

void copyGlobalUnknownsToFreeUnknowns ( int  nDOF2set,
int  offset,
int  stride,
const int *  globalDOFids,
const int *  freeDOFids,
const double *  u,
double *  free_u 
)

Definition at line 11016 of file femIntegrals.c.

◆ copyLeftElementBoundaryInfo()

void copyLeftElementBoundaryInfo ( int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nSpace_global,
int  nExteriorElementBoundaries_global,
int  nInteriorElementBoundaries_global,
int *  elementBoundaryElementsArray,
int *  elementBoundaryLocalElementBoundariesArray,
int *  exteriorElementBoundariesArray,
int *  interiorElementBoundariesArray,
double *  x,
double *  n,
double *  xg,
double *  ng 
)

Definition at line 20 of file femIntegrals.c.

◆ estimate_mt()

void estimate_mt ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  v,
double *  vXw_dV,
double *  elementSpatialResidual,
double *  mt 
)

Definition at line 10454 of file femIntegrals.c.

◆ estimate_mt_lowmem()

void estimate_mt_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  v,
double *  w_dV,
double *  elementSpatialResidual,
double *  mt 
)

Definition at line 10497 of file femIntegrals.c.

◆ fluxDomainBoundaryIntegral()

double fluxDomainBoundaryIntegral ( int  nExteriorElementBoundaries,
int  nElementBoundaries_owned,
int  nQuadraturePoints_elementBoundary,
int *  flag,
int *  exteriorElementBoundariesArray,
double *  dS,
double *  nValueArray 
)

Definition at line 10731 of file femIntegrals.c.

◆ fluxDomainBoundaryIntegralFromVector()

double fluxDomainBoundaryIntegralFromVector ( int  nExteriorElementBoundaries,
int  nElementBoundaries_owned,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  flag,
int *  exteriorElementBoundaries,
double *  dS,
double *  nValueArray,
double *  normal 
)

Definition at line 10756 of file femIntegrals.c.

◆ getPermutationsGlobal()

void getPermutationsGlobal ( int  nElementBoundaries_global,
int  nElementBoundaryQuadraturePoints_elementBoundary,
double *  xArray,
double *  xArrayNew,
int *  permutations 
)

Definition at line 542 of file femIntegrals.c.

◆ loadBoundaryFluxIntoGlobalElementBoundaryVelocity()

void loadBoundaryFluxIntoGlobalElementBoundaryVelocity ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  fluxElementBoundaries,
double *  normal,
double *  flux,
double  updateCoef,
double *  velocity 
)

Definition at line 8606 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getGradientValues()

void parametricFiniteElementSpace_getGradientValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
int  nSpace_global,
double *  grad_psi,
double *  inverseJacobianArray,
double *  grad_vArray 
)

Definition at line 311 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace()

void parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace ( int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace_global,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  grad_psi,
double *  inverseJacobianArray,
double *  grad_vArray 
)

Definition at line 414 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getGradientValuesTrace()

void parametricFiniteElementSpace_getGradientValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace_global,
double *  grad_psi,
int *  permutations,
double *  inverseJacobianArray,
double *  grad_vArray 
)

Definition at line 378 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getHessianValues()

void parametricFiniteElementSpace_getHessianValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
int  nSpace_global,
double *  Hessian_psi,
double *  inverseJacobianArray,
double *  Hessian_vArray 
)

Definition at line 340 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getValues()

void parametricFiniteElementSpace_getValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  psi,
double *  vArray 
)

Definition at line 241 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getValuesGlobalExteriorTrace()

void parametricFiniteElementSpace_getValuesGlobalExteriorTrace ( int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  psi,
double *  vArray 
)

Definition at line 283 of file femIntegrals.c.

◆ parametricFiniteElementSpace_getValuesTrace()

void parametricFiniteElementSpace_getValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
double *  psi,
int *  permutations,
double *  vArray 
)

Definition at line 259 of file femIntegrals.c.

◆ parametricMaps_getInverseValues()

void parametricMaps_getInverseValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
int  nSpace_global,
double *  inverseJacobian,
int *  l2g,
double *  nodeArray,
double *  xArray,
double *  xiArray 
)

Definition at line 683 of file femIntegrals.c.

◆ parametricMaps_getInverseValuesGlobalExteriorTrace()

void parametricMaps_getInverseValuesGlobalExteriorTrace ( int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace_global,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  inverseJacobian,
int *  l2g,
double *  nodeArray,
double *  xArray,
double *  xiArray 
)

Definition at line 766 of file femIntegrals.c.

◆ parametricMaps_getInverseValuesTrace()

void parametricMaps_getInverseValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace_global,
double *  inverseJacobian,
int *  l2g,
double *  nodeArray,
double *  xArray,
double *  xiArray 
)

Definition at line 722 of file femIntegrals.c.

◆ parametricMaps_getJacobianValues1D()

void parametricMaps_getJacobianValues1D ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
int *  l2g,
double *  nodeArray,
double *  jacobianArray,
double *  jacobianDeterminantArray,
double *  jacobianInverseArray 
)

Definition at line 928 of file femIntegrals.c.

◆ parametricMaps_getJacobianValues2D()

void parametricMaps_getJacobianValues2D ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
int *  l2g,
double *  nodeArray,
double *  jacobianArray,
double *  jacobianDeterminantArray,
double *  jacobianInverseArray 
)

Definition at line 877 of file femIntegrals.c.

◆ parametricMaps_getJacobianValues3D()

void parametricMaps_getJacobianValues3D ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
int *  l2g,
double *  nodeArray,
double *  jacobianArray,
double *  jacobianDeterminantArray,
double *  jacobianInverseArray 
)

Definition at line 814 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesGlobalExteriorTrace1D()

void parametricMaps_getJacobianValuesGlobalExteriorTrace1D ( int  nQuadraturePoints_element,
int  nDOF_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1317 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesGlobalExteriorTrace2D()

void parametricMaps_getJacobianValuesGlobalExteriorTrace2D ( int  nQuadraturePoints_element,
int  nDOF_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1375 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesGlobalExteriorTrace2D_movingDomain()

void parametricMaps_getJacobianValuesGlobalExteriorTrace2D_movingDomain ( int  nQuadraturePoints_element,
int  nDOF_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  xtArray,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1455 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesGlobalExteriorTrace3D()

void parametricMaps_getJacobianValuesGlobalExteriorTrace3D ( int  nQuadraturePoints_element,
int  nDOF_element,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1542 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesTrace1D()

void parametricMaps_getJacobianValuesTrace1D ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1260 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesTrace2D()

void parametricMaps_getJacobianValuesTrace2D ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 1095 of file femIntegrals.c.

◆ parametricMaps_getJacobianValuesTrace3D()

void parametricMaps_getJacobianValuesTrace3D ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_element,
int  nDOF_element,
double *  grad_psi,
double *  boundaryNormals,
double *  boundaryJacobians,
int *  l2g,
double *  nodeArray,
double *  jacobianInverseArray,
double *  metricTensorArray,
double *  metricTensorDeterminantSqrtArray,
double *  unitNormalArray 
)

Definition at line 972 of file femIntegrals.c.

◆ parametricMaps_getPermutations()

void parametricMaps_getPermutations ( int  nElements_global,
int  nElementBoundaries_element,
int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nSpace_global,
double *  xiArray,
int *  permutations 
)

Definition at line 453 of file femIntegrals.c.

◆ parametricMaps_getPermutationsGlobalExterior()

void parametricMaps_getPermutationsGlobalExterior ( int  nElementBoundaryQuadraturePoints_elementBoundary,
int  nSpace_global,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  xiArray,
int *  permutations 
)

Definition at line 496 of file femIntegrals.c.

◆ parametricMaps_getValues()

void parametricMaps_getValues ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_element,
int  nSpace_global,
double *  psi,
int *  l2g,
double *  nodeArray,
double *  xArray 
)

Definition at line 580 of file femIntegrals.c.

◆ parametricMaps_getValuesGlobalExteriorTrace()

void parametricMaps_getValuesGlobalExteriorTrace ( int  nQuadraturePoints_elementBoundary,
int  nDOF_element,
int  nSpace_global,
int  nExteriorElementBoundaries_global,
const int *  exteriorElementBoundariesArray,
const int *  elementBoundaryElementsArray,
const int *  elementBoundaryLocalElementBoundariesArray,
double *  psi,
int *  l2g,
double *  nodeArray,
double *  xArray 
)

Definition at line 644 of file femIntegrals.c.

◆ parametricMaps_getValuesTrace()

void parametricMaps_getValuesTrace ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_element,
int  nDOF_element,
int  nSpace_global,
double *  psi,
int *  l2g,
double *  nodeArray,
double *  xArray 
)

Definition at line 610 of file femIntegrals.c.

◆ projectFromNodalInterpolationConditions()

void projectFromNodalInterpolationConditions ( int  nElements_global,
int  nDOF_element,
int  dim_dof,
const int *  l2g,
const int *  functional_map_element,
const double *  interpolationValues,
double *  dofs 
)

Definition at line 12477 of file femIntegrals.c.

◆ scalarDomainIntegral()

double scalarDomainIntegral ( int  nElements_global,
int  nQuadraturePoints_element,
double *  dV,
double *  nValueArray 
)

Definition at line 10668 of file femIntegrals.c.

◆ scalarHeavisideDomainIntegral()

double scalarHeavisideDomainIntegral ( int  nElements_global,
int  nQuadraturePoints_element,
double *  dV,
double *  nValueArray 
)

Definition at line 10684 of file femIntegrals.c.

◆ scalarSmoothedHeavisideDomainIntegral()

double scalarSmoothedHeavisideDomainIntegral ( int  nElements_global,
int  nQuadraturePoints_element,
double  epsFact,
double *  elementDiameter,
double *  dV,
double *  nValueArray 
)

Definition at line 10702 of file femIntegrals.c.

◆ setExteriorGlobalElementBoundaryVelocityValues()

void setExteriorGlobalElementBoundaryVelocityValues ( int  updateFluxValues,
int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  n,
double *  vn_in,
double *  v_out 
)

Definition at line 7532 of file femIntegrals.c.

◆ setInflowFlux()

void setInflowFlux ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int *  exteriorElementBoundaries,
double *  inflowFlux,
double *  flux 
)

Definition at line 7973 of file numericalFlux.c.

◆ update_f_movingDomain_constantMass_ebq()

void update_f_movingDomain_constantMass_ebq ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
double *  xt,
double *  f 
)

Definition at line 12196 of file femIntegrals.c.

◆ update_f_movingDomain_constantMass_q()

void update_f_movingDomain_constantMass_q ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  xt,
double *  f 
)

Definition at line 12149 of file femIntegrals.c.

◆ update_f_movingDomain_ebq()

void update_f_movingDomain_ebq ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
double *  xt,
double *  m,
double *  f 
)

Definition at line 12168 of file femIntegrals.c.

◆ update_f_movingDomain_q()

void update_f_movingDomain_q ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  xt,
double *  m,
double *  f 
)

Definition at line 12126 of file femIntegrals.c.

◆ updateAddJacobian_CSR()

void updateAddJacobian_CSR ( int  jacIndex,
double  val,
double *  jac 
)

Definition at line 7353 of file femIntegrals.c.

◆ updateAdvection_adjoint()

void updateAdvection_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  df,
double *  grad_w_dV,
double *  Lstar_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
nSpaceThe number of spatial dimensions.
df(nElements_global x nQuadraturePoints_element) The derivative of f with respect to u at the quadrature points
grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element) The gradient of the weighted test functions
Lstar_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element) The linearized adjoint applied to the weighted test functions

The result of calling this funciton is

\[ \mathcal{L}^* (w dV)_{k,i} \mapsto \mathcal{L}^* (w dV)_{k,i} - \frac{\partial \mathbf{f}}{\partial u}_k \cdot \nabla (w dV)_{k,i} \]

Definition at line 2247 of file femIntegrals.c.

◆ updateAdvection_strong()

void updateAdvection_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  df,
double *  grad_u,
double *  strong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
df(nElements_global x nQuadraturePoints_element) The derivative of f with respect to u at the quadrature points
grad_u(nElements_global x nQuadraturePoints_element) The gradient of u at the quadrature points
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + \frac{\mathbf{f}}{u}_k \cdot \nabla u_k \]

Definition at line 2143 of file femIntegrals.c.

◆ updateAdvection_weak()

void updateAdvection_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  f,
double *  grad_w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
nSpaceThe number of spatial dimensions.
f(nElements_global x nQuadraturePoints_element x nSpace). The advection associated with each quadrature point (includes integration weight).
grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace). The weighted finite element test function gradient values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} - \int_{\Omega_e} \mathbf{f} \cdot \nabla w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} \mathbf{f} \cdot \nabla w_i dV = \int_{\Omega_r} \mathbf{f} \cdot \nabla w_i |J_e| d\hat{V} \int_{\Omega_r} \sum_k \mathbf{f}_k \cdot (\nabla w dV)_i \]

Definition at line 1985 of file femIntegrals.c.

◆ updateAdvectionJacobian_strong()

void updateAdvectionJacobian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
double *  df,
double *  grad_v,
double *  dstrong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
df(nElements_global x nQuadraturePoints_element) The derivative of f with respect to u at the quadrature points
grad_u(nElements_global x nQuadraturePoints_element) The gradient of u at the quadrature points
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + \frac{\mathbf{f}}{u}_k \cdot \nabla u_k \]

Definition at line 2190 of file femIntegrals.c.

◆ updateAdvectionJacobian_weak()

void updateAdvectionJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  df,
double *  v_X_grad_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
nDOF_trial_elementThe number of degrees of freedom per element.
nSpaceThe number of spatial dimensions.
df(nElements_global x nQuadraturePoints_element x nSpace). The derivative of the advection associated with each quadrature point (includes integration weight).
v_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element x nDOF_test_element x nSpace). The tensor product of the finite element trial and test function gradient values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_weak_residual_{e,i,j} \mapsto jacobian_weak_residual_{e,i,j} - \int_{\Omega_e} \frac{\partial \mathbf{f}}{\partial u} v_j \cdot \nabla w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \frac{\partial \mathbf{f}}{\partial u} v_j \cdot \nabla w_i dV = \int_{\Omega_r} \frac{\partial \mathbf{f}}{\partial u} v_j \cdot \nabla w_i |J_e| d\hat{V} \approx \sum_k df_k \cdot (v \otimes \nabla w dV)_{j,i} \]

Definition at line 2055 of file femIntegrals.c.

◆ updateAdvectionJacobian_weak_lowmem()

void updateAdvectionJacobian_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  df,
double *  v,
double *  grad_w_dV,
double *  jacobian_weak_residual 
)

Definition at line 2085 of file femIntegrals.c.

◆ updateDiffusion2_adjoint()

void updateDiffusion2_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  a,
double *  Hess_w_dV,
double *  Lstar_w_dV 
)

Definition at line 3580 of file femIntegrals.c.

◆ updateDiffusion2_adjoint_sd()

void updateDiffusion2_adjoint_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
double *  a,
double *  Hess_w_dV,
double *  Lstar_w_dV 
)

Definition at line 3613 of file femIntegrals.c.

◆ updateDiffusion2_strong()

void updateDiffusion2_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  a,
double *  Hess_phi,
double *  strong_residual 
)

Definition at line 3413 of file femIntegrals.c.

◆ updateDiffusion2_strong_sd()

void updateDiffusion2_strong_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
int *  rowptr,
int *  colind,
double *  a,
double *  Hess_phi,
double *  strong_residual 
)

Definition at line 3441 of file femIntegrals.c.

◆ updateDiffusion_adjoint()

void updateDiffusion_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  da,
double *  grad_phi,
double *  grad_w_dV,
double *  Lstar_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
nSpaceThe number of spatial dimensions.
da(nElements_global x nQuadraturePoints_element x nSpace x nSpace) The derivative of the diffusion tensor with respect to u
grad_phi(nElements_global x nQuadraturePoints_element x nSpace) The gradient of phi
grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace) The gradient of the weighted test functions
Lstar_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element) The linearized adjoint applied to the weighted test functions

The result of calling this function is

\[ \mathcal{L}^* (w dV)_{k,i} \mapsto \mathcal{L}^* (w dV)_{k,i} + \frac{\mathbf{\:a}}{u} \nabla \phi \cdot \nabla (w dV)_{k,i} \]

Definition at line 3344 of file femIntegrals.c.

◆ updateDiffusion_adjoint_sd()

void updateDiffusion_adjoint_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
double *  da,
double *  grad_phi,
double *  grad_w_dV,
double *  Lstar_w_dV 
)

Definition at line 3378 of file femIntegrals.c.

◆ updateDiffusion_MixedForm_weak()

void updateDiffusion_MixedForm_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  a,
double *  qV,
double *  grad_w_dV,
double *  weak_residual 
)

Definition at line 10137 of file femIntegrals.c.

◆ updateDiffusion_strong()

void updateDiffusion_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  da,
double *  grad_phi,
double *  grad_u,
double *  strong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
da(nElements_global x nQuadraturePoints_element x nSpace x nSpace) The derivative of the diffusion tensor with respect to u
grad_phi(nElements_global x nQuadraturePoints_element x nSpace) The gradient of phi
grad_u(nElements_global x nQuadraturePoints_element x nSpace) The gradient of u

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k - \partial{\mathbf{\:a}}{u}_k \nabla \phi_k \cdot \nabla u_k \]

Definition at line 3125 of file femIntegrals.c.

◆ updateDiffusion_strong_sd()

void updateDiffusion_strong_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
int *  rowptr,
int *  colind,
double *  da,
double *  grad_phi,
double *  grad_u,
double *  strong_residual 
)

Definition at line 3153 of file femIntegrals.c.

◆ updateDiffusion_weak()

void updateDiffusion_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  a,
double *  grad_phi_X_grad_w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nSpaceThe number of spatial dimensions.
a(nElements_global x nQuadraturePoints_element x nSpace x nSpace). The diffusion coefficient associated with each quadrature point (includes integration weight).
grad_phi_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace x nSpace). The tensor product of potential gradient values and finite element test function gradient values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} + \int_{\Omega_e} \bar{\mathbf{a}} \nabla \phi \cdot \nabla w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} \bar{\mathbf{a}} \nabla \phi \cdot \nabla w_i dV = \int_{\Omega_r} \bar{\mathbf{a}} \nabla \phi \cdot \nabla w_i |J_e| d\hat{V} = \sum_k \bar{\mathbf{a}}_k \cdot (\nabla \phi \otimes \nabla w dV)_i \]

Definition at line 2634 of file femIntegrals.c.

◆ updateDiffusion_weak_lowmem()

void updateDiffusion_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  a,
double *  grad_phi,
double *  grad_w_dV,
double *  weak_residual 
)

Definition at line 2662 of file femIntegrals.c.

◆ updateDiffusion_weak_sd()

void updateDiffusion_weak_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
double *  a,
double *  grad_phi,
double *  grad_w_dV,
double *  weak_residual 
)

Definition at line 2714 of file femIntegrals.c.

◆ updateDiffusionJacobian2_strong()

void updateDiffusionJacobian2_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
int *  l2g,
double *  a,
double *  da,
double *  v,
double *  Hess_phi,
double *  dphi,
double *  Hess_v,
double *  dstrong_residual 
)

Definition at line 3470 of file femIntegrals.c.

◆ updateDiffusionJacobian2_strong_sd()

void updateDiffusionJacobian2_strong_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int *  l2g,
double *  a,
double *  da,
double *  v,
double *  Hess_phi,
double *  dphi,
double *  Hess_v,
double *  dstrong_residual 
)

Definition at line 3525 of file femIntegrals.c.

◆ updateDiffusionJacobian_MixedForm_weak()

void updateDiffusionJacobian_MixedForm_weak ( int  nElements_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  a,
double *  da,
double *  qV,
double *  qDV,
double *  qDV_eb,
double *  grad_w_dV,
double *  v,
double *  jacobian_weak_residual,
double *  jacobian_weak_residual_eb 
)

Definition at line 10231 of file femIntegrals.c.

◆ updateDiffusionJacobian_strong()

void updateDiffusionJacobian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
int *  l2g,
double *  da,
double *  dphi,
double *  grad_phi,
double *  grad_u,
double *  grad_v,
double *  dstrong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
da(nElements_global x nQuadraturePoints_element x nSpace x nSpace) The derivative of the diffusion tensor with respect to u
grad_phi(nElements_global x nQuadraturePoints_element x nSpace) The gradient of phi
grad_u(nElements_global x nQuadraturePoints_element x nSpace) The gradient of u

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k - \partial{\mathbf{\:a}}{u}_k \nabla \phi_k \cdot \nabla u_k \]

Definition at line 3207 of file femIntegrals.c.

◆ updateDiffusionJacobian_strong_sd()

void updateDiffusionJacobian_strong_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int *  l2g,
double *  da,
double *  dphi,
double *  grad_phi,
double *  grad_u,
double *  grad_v,
double *  dstrong_residual 
)

Definition at line 3258 of file femIntegrals.c.

◆ updateDiffusionJacobian_weak()

void updateDiffusionJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
int *  l2g,
double *  a,
double *  da,
double *  grad_phi_X_grad_w_dV,
double *  dphi,
double *  v,
double *  grad_v_X_grad_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
l2g(nElements_global x nDOF_test_element) The mapping between element degrees of freedom and global degrees of freedom.
nSpaceThe number of spatial dimensions.
a(nElements_global x nQuadraturePoints_element x nSpace x nSpace). The diffusion coefficient associated with each quadrature point (includes integration weight).
da(nElements_global x nQuadraturePoints_element x nSpace x nSpace). The derivative of the diffusion coefficient associated with each quadrature point (includes integration weight).
grad_phi_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace x nSpace). The tensor product of the finite element trial and test function gradient values.
dphi(nDOF_global). The global degrees of freedom of phi.
v(nElements_global x nQuadraturePoints_element x nDOF_trial_element). The trial function values at each quadrature point.
grad_v_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element x nDOF_test_element x nSpace x nSpace). The tensor product of trial function gradient values and test function gradient values at each quadrature point.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_{e,i,j} \mapsto jacobian_{e,i,j} + \int_{\Omega_e} (\frac{\partial \bar{\mathbf{a}}}{\partial u} v_j \nabla \phi + \bar{\mathbf{a}} \frac{\partial \phi}{\partial u} \nabla v_j ) \cdot \nabla w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \frac{\partial \bar{\mathbf{a}}}{\partial u} v_j \nabla \phi \cdot \nabla w_i dV = \int_{\Omega_r} \frac{\partial \bar{\mathbf{a}}}{\partial u} v_j \nabla \phi \cdot \nabla w_i |J_e| d\hat{V} \approx \sum_k da_k \cdot (\nabla \phi \otimes \nabla w dV)_{j,i} \]

\[ \int_{\Omega_e} \bar{\mathbf{a}}\frac{\partial \phi}{\partial u} \nabla v_j \cdot \nabla w_i dV = \int_{\Omega_r} \bar{\mathbf{a}} \frac{\partial \phi}{\partial u} \nabla v_j \cdot \nabla w_i |J_e| d\hat{V} \approx \sum_k a_k dphi_{j} \cdot (\nabla v \otimes \nabla w dV)_{j,i} \]

\[ dphi_j = dphi[l2g[e,j]] \]

Definition at line 2819 of file femIntegrals.c.

◆ updateDiffusionJacobian_weak_lowmem()

void updateDiffusionJacobian_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
int *  l2g,
double *  a,
double *  da,
double *  grad_phi,
double *  grad_w_dV,
double *  dphi,
double *  v,
double *  grad_v,
double *  jacobian_weak_residual 
)

Definition at line 2890 of file femIntegrals.c.

◆ updateDiffusionJacobian_weak_sd()

void updateDiffusionJacobian_weak_sd ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
int *  l2g,
double *  a,
double *  da,
double *  grad_phi,
double *  grad_w_dV,
double *  dphi,
double *  v,
double *  grad_v,
double *  jacobian_weak_residual 
)

Definition at line 3023 of file femIntegrals.c.

◆ updateExteriorElementBoundary_MixedForm_weak()

void updateExteriorElementBoundary_MixedForm_weak ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  n,
double *  phi_trace,
double *  w_dS,
double *  b 
)

Definition at line 8944 of file femIntegrals.c.

◆ updateExteriorElementBoundary_MixedForm_weakJacobian()

void updateExteriorElementBoundary_MixedForm_weakJacobian ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  n,
double *  dphi_trace_left,
double *  v,
double *  w_dS,
double *  db,
double *  db_eb 
)

Definition at line 8988 of file femIntegrals.c.

◆ updateExteriorElementBoundaryAdvectiveVelocity()

void updateExteriorElementBoundaryAdvectiveVelocity ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  f,
double *  velocity 
)

Definition at line 8113 of file femIntegrals.c.

◆ updateExteriorElementBoundaryDiffusionAdjoint()

void updateExteriorElementBoundaryDiffusionAdjoint ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  isDOFBoundary,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double  sigma,
double *  u,
double *  ub,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  residual 
)

Definition at line 11118 of file femIntegrals.c.

◆ updateExteriorElementBoundaryDiffusionAdjoint_sd()

void updateExteriorElementBoundaryDiffusionAdjoint_sd ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
int *  isDOFBoundary,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double  sigma,
double *  u,
double *  ub,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  residual 
)

Definition at line 11520 of file femIntegrals.c.

◆ updateExteriorElementBoundaryDiffusiveVelocity()

void updateExteriorElementBoundaryDiffusiveVelocity ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  a,
double *  grad_phi,
double *  velocity 
)

Definition at line 7911 of file femIntegrals.c.

◆ updateExteriorElementBoundaryDiffusiveVelocity_sd()

void updateExteriorElementBoundaryDiffusiveVelocity_sd ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  rowptr,
int *  colind,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  a,
double *  grad_phi,
double *  velocity 
)

Definition at line 7951 of file femIntegrals.c.

◆ updateExteriorElementBoundaryFlux()

void updateExteriorElementBoundaryFlux ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  flux,
double *  w_dS,
double *  residual 
)

Definition at line 4327 of file femIntegrals.c.

◆ updateExteriorElementBoundaryShockCapturingVelocity()

void updateExteriorElementBoundaryShockCapturingVelocity ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nQuadraturePoints_element,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  numDiff,
double *  grad_u,
double *  velocity 
)

Definition at line 8228 of file femIntegrals.c.

◆ updateGlobalExteriorElementBoundaryAdvectiveVelocity()

void updateGlobalExteriorElementBoundaryAdvectiveVelocity ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  f,
double *  velocity 
)

Definition at line 8147 of file femIntegrals.c.

◆ updateGlobalExteriorElementBoundaryDiffusiveVelocity()

void updateGlobalExteriorElementBoundaryDiffusiveVelocity ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  a,
double *  grad_phi,
double *  velocity 
)

Definition at line 7995 of file femIntegrals.c.

◆ updateGlobalExteriorElementBoundaryFlux()

void updateGlobalExteriorElementBoundaryFlux ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  flux,
double *  w_dS,
double *  residual 
)

Definition at line 4361 of file femIntegrals.c.

◆ updateGlobalExteriorElementBoundaryShockCapturingVelocity()

void updateGlobalExteriorElementBoundaryShockCapturingVelocity ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  numDiff,
double *  grad_u,
double *  velocity 
)

Definition at line 8270 of file femIntegrals.c.

◆ updateGlobalJacobianFromElementJacobian_CSR()

void updateGlobalJacobianFromElementJacobian_CSR ( int  nElements_global,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_ru,
double *  elementJacobian,
double *  globalJacobian 
)

Definition at line 5547 of file femIntegrals.c.

◆ updateGlobalJacobianFromElementJacobian_dense()

void updateGlobalJacobianFromElementJacobian_dense ( int  nElements_global,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementJacobian,
double *  globalJacobian 
)

Definition at line 4676 of file femIntegrals.c.

◆ updateGlobalJacobianFromElementJacobian_eb_CSR()

void updateGlobalJacobianFromElementJacobian_eb_CSR ( int *  elementNeighbors,
int  nElements_global,
int  nElementBoundaries_element,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double *  elementJacobian_eb,
double *  globalJacobian 
)

Definition at line 5587 of file femIntegrals.c.

◆ updateGlobalJacobianFromElementJacobian_eb_dense()

void updateGlobalJacobianFromElementJacobian_eb_dense ( int *  elementNeighbors,
int  nElements_global,
int  nElementBoundaries_element,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementJacobian_eb,
double *  globalJacobian 
)

Definition at line 4720 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd()

void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
int *  isDOFBoundary,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 12044 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense()

void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
int *  isDOFBoundary,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 11358 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd()

void updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
int *  isDOFBoundary,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 11768 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR()

void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 5785 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense()

void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense ( int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 5245 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR()

void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR ( int *  elementNeighbors,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_eNebN_ru,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 6106 of file femIntegrals.c.

◆ updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense()

void updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense ( int *  elementNeighbors,
int  nElements_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 5309 of file femIntegrals.c.

◆ updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR()

void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_CSR ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 5845 of file femIntegrals.c.

◆ updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense()

void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_dense ( int  nExteriorElementBoundaries_global,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 5486 of file femIntegrals.c.

◆ updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_CSR()

void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_CSR ( int *  elementNeighbors,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_eNebN_ru,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 6187 of file femIntegrals.c.

◆ updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_dense()

void updateGlobalJacobianFromGlobalExteriorElementBoundaryFluxJacobian_eb_dense ( int *  elementNeighbors,
int  nElements_global,
int  nExteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  exteriorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 5399 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd()

void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 11844 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense()

void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 11174 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd()

void updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  nSpace,
int *  rowptr,
int *  colind,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double  sigma,
double *  v,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  jac 
)

Definition at line 11577 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double *  elementBoundaryFluxJacobian_2sided,
double *  w_dS,
double *  jac 
)

Definition at line 6265 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian_2sided,
double *  w_dS,
double *  jac 
)

Definition at line 5109 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_ru,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 5643 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian,
double *  w_dS,
double *  jac 
)

Definition at line 4778 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR ( int *  elementNeighbors,
int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  csrRowIndeces_ru,
int *  csrColumnOffsets_eb_eNebN_ru,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 5902 of file femIntegrals.c.

◆ updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense()

void updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense ( int *  elementNeighbors,
int  nElements_global,
int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nDOF_trial_element,
int  offset_r,
int  stride_r,
int  offset_u,
int  stride_u,
int  nFreeVDOF_global,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
int *  nFreeDOF_element_u,
int *  freeLocal_u,
int *  freeGlobal_u,
double *  elementBoundaryFluxJacobian_eb,
double *  w_dS,
double *  jac 
)

Definition at line 4908 of file femIntegrals.c.

◆ updateGlobalResidualFromElementResidual()

void updateGlobalResidualFromElementResidual ( int  nElements_global,
int  nDOF_test_element,
int  offset_r,
int  stride_r,
int *  nFreeDOF_element_r,
int *  freeLocal_r,
int *  freeGlobal_r,
double *  elementResidual,
double *  globalResidual 
)

Definition at line 4651 of file femIntegrals.c.

◆ updateHamiltonian_adjoint()

void updateHamiltonian_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  dH,
double *  grad_w_dV,
double *  Lstar_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
nSpaceThe number of spatial dimensions.
dH(nElements_global x nQuadraturePoints_element) The derivative of H with respect to the gradient of u at the quadrature points
grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace) The gradient of the weighted test functions
Lstar_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element) The linearized adjoint applied to the weighted test functions

The result of calling this funciton is

\[ \mathcal{L}^* (w dV)_{k,i} \mapsto \mathcal{L}^* (w dV)_{k,i} \frac{\partial \mathbf{H}}{\partial \nabla u}_k \cdot \nabla (w dV)_{k,i} \]

Definition at line 2566 of file femIntegrals.c.

◆ updateHamiltonian_strong()

void updateHamiltonian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nSpace,
double *  dH,
double *  grad_u,
double *  strong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
dH(nElements_global x nQuadraturePoints_element) The derivative of the Hamiltonian at the quadrature points
grad_u(nElements_global x nQuadraturePoints_element) The gradient of u at the quadrature points
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + H_k \]

Definition at line 2462 of file femIntegrals.c.

◆ updateHamiltonian_weak()

void updateHamiltonian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  H,
double *  w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
h(nElements_global x nQuadraturePoints_element). The Hamiltonian associated with each quadrature point (includes integration weight).
w(nElements_global x nQuadraturePoints_element x nDOF_test_element). The finite element test function values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} - \int_{\Omega_e} h w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} h w_i dV = \int_{\Omega_r} h w_i |J_e| d\hat{V} \int_{\Omega_r} \sum_k h_k (w dV)_{k,i} \]

Definition at line 2306 of file femIntegrals.c.

◆ updateHamiltonianJacobian_strong()

void updateHamiltonianJacobian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nSpace,
double *  dH,
double *  grad_v,
double *  dstrong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nSpaceThe number of spatial dimensions.
dH(nElements_global x nQuadraturePoints_element) The derivative of the Hamiltonian at the quadrature points
grad_v(nElements_global x nQuadraturePoints_element) The gradient of the test functions at the quadrature points
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + H_k \]

Definition at line 2508 of file femIntegrals.c.

◆ updateHamiltonianJacobian_weak()

void updateHamiltonianJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  dH,
double *  grad_v_X_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
nSpaceThe number of spatial dimensions.
dH(nElements_global x nQuadraturePoints_element x nSpace). The derivative of the Hamiltonian (with respect to the solution gradient) associated with each quadrature point (includes integration weight).
grad_v_X_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element x nDOF_test_element x nSpace). The tensor product of the finite element trial and weighted test function gradient values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_{e,i,j} \mapsto jacobian_{e,i,j} - \int_{\Omega_e} \frac{\partial \mathbf{h}}{\partial \nabla u} \cdot \nabla v_j w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \frac{\partial \mathbf{h}}{\partial \nabla u} \cdot \nabla v_j \nabla w_i dV = \int_{\Omega_r} \frac{\partial \mathbf{h}}{\partial \nabla u} \nabla v_j \cdot w_i |J_e| d\hat{V} \approx \sum_k dh_k \cdot (\nabla v \otimes w dV)_{k,j,i} \]

Definition at line 2372 of file femIntegrals.c.

◆ updateHamiltonianJacobian_weak_lowmem()

void updateHamiltonianJacobian_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  dH,
double *  grad_v,
double *  w_dV,
double *  jacobian_weak_residual 
)

Definition at line 2402 of file femIntegrals.c.

◆ updateInteriorElementBoundary_MixedForm_weak()

void updateInteriorElementBoundary_MixedForm_weak ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  n,
double *  phi_trace,
double *  w_dS,
double *  b 
)

Definition at line 8754 of file femIntegrals.c.

◆ updateInteriorElementBoundary_MixedForm_weakJacobian()

void updateInteriorElementBoundary_MixedForm_weakJacobian ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  n,
double *  dphi_trace_left,
double *  dphi_trace_right,
double *  v,
double *  w_dS,
double *  db,
double *  db_eb 
)

Definition at line 8818 of file femIntegrals.c.

◆ updateInteriorElementBoundaryAdvectiveVelocity()

void updateInteriorElementBoundaryAdvectiveVelocity ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  f,
double *  velocity 
)

Definition at line 8066 of file femIntegrals.c.

◆ updateInteriorElementBoundaryDiffusionAdjoint()

void updateInteriorElementBoundaryDiffusionAdjoint ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double  sigma,
double *  u,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  residual 
)

Definition at line 11033 of file femIntegrals.c.

◆ updateInteriorElementBoundaryDiffusionAdjoint_sd()

void updateInteriorElementBoundaryDiffusionAdjoint_sd ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int  nSpace,
int *  rowptr,
int *  colind,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double  sigma,
double *  u,
double *  n,
double *  a,
double *  grad_w,
double *  dS,
double *  residual 
)

Definition at line 11433 of file femIntegrals.c.

◆ updateInteriorElementBoundaryDiffusiveVelocity()

void updateInteriorElementBoundaryDiffusiveVelocity ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  a,
double *  grad_phi,
double *  velocity 
)

Definition at line 7802 of file femIntegrals.c.

◆ updateInteriorElementBoundaryDiffusiveVelocity_sd()

void updateInteriorElementBoundaryDiffusiveVelocity_sd ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nSpace,
int *  rowptr,
int *  colind,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  a,
double *  grad_phi,
double *  velocity 
)

Definition at line 7855 of file femIntegrals.c.

◆ updateInteriorElementBoundaryFlux()

void updateInteriorElementBoundaryFlux ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  flux,
double *  w_dS,
double *  residual 
)

Definition at line 4280 of file femIntegrals.c.

◆ updateInteriorElementBoundaryShockCapturingVelocity()

void updateInteriorElementBoundaryShockCapturingVelocity ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nQuadraturePoints_element,
int  nSpace,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  numDiff,
double *  grad_u,
double *  velocity 
)

Definition at line 8176 of file femIntegrals.c.

◆ updateInteriorTwoSidedElementBoundaryFlux()

void updateInteriorTwoSidedElementBoundaryFlux ( int  nInteriorElementBoundaries_global,
int  nElementBoundaries_element,
int  nQuadraturePoints_elementBoundary,
int  nDOF_test_element,
int *  interiorElementBoundaries,
int *  elementBoundaryElements,
int *  elementBoundaryLocalElementBoundaries,
double *  flux,
double *  w_dS,
double *  residual 
)

Definition at line 4424 of file femIntegrals.c.

◆ updateMass_adjoint()

void updateMass_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  dmt,
double *  w_dV,
double *  Lstar_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
dmt(nElements_global x nQuadraturePoints_element). The derivative with respect to u of the change in mass associated with each quadrature point.

@Lstar_w_dV (nElements_global x nQuadraturePoints_element x nDOF_test_element). The linearized adjoint applied to the weighted element test functions.

The result of calling the function is

\[ \mathcal{L}^* (w dV)_{k,i} \mapsto \mathcal{L}^* (w dV)_{k,i} + \frac{\partial m_t}{\partial u}_{k} (w dV)_{k,i} \]

Definition at line 1921 of file femIntegrals.c.

◆ updateMass_strong()

void updateMass_strong ( int  nElements_global,
int  nQuadraturePoints_element,
double *  mt,
double *  strong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
mt(nElements_global x nQuadraturePoints_element) The change in mass with respect to time
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual at the quadrature points

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + m_k \]

Definition at line 1834 of file femIntegrals.c.

◆ updateMass_weak()

void updateMass_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  mt,
double *  w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
mt(nElements_global x nQuadraturePoints_element). The change in mass associated with each quadrature point.
w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element). The weighted finite element test function values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ residual_{e,i} \mapsto residual_{e,i} + \int_{\Omega_e} \rho w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} \rho w_i dV = \int_{\Omega_r} \rho w_i |J_e| d\hat{V} \approx \sum_k m_k (w dV)_{k,i} \]

Definition at line 1698 of file femIntegrals.c.

◆ updateMassJacobian_strong()

void updateMassJacobian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
double *  dmt,
double *  v,
double *  dstrong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of trial functions per element
dmt(nElements_global x nQuadraturePoints_element) The derivative with respect to u of the change in mass with respect to time
dstrong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual at the quadrature points

The result of calling this function is

\[ \partial{\mathcal{R}}{u}_{k,j} \mapsto \partial{\mathcal{R}}{u}_{k,j} + dm_k v_{k,j} \]

Definition at line 1873 of file femIntegrals.c.

◆ updateMassJacobian_weak()

void updateMassJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  dmt,
double *  v_X_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
dmt(nElements_global x nQuadraturePoints_element). The derivate of the change in mass associated with each quadrature point.
v_X_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element). The tensor product of the weighted finite element trial and test function values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_weak_residual_{e,i,j} \mapsto jacobian_weak_residual_{e,i,j} +\int_{\Omega_e} \frac{\partial \rho}{\partial u} v_j w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \frac{\partial \rho}{\partial u} v_j w_i dV = \int_{\Omega_r} \frac{\partial \rho}{\partial u} v_j w_i |J_e| d\hat{V} \approx \sum_k dm_k (v \otimes w dV)_{k,j,i} \]

Definition at line 1759 of file femIntegrals.c.

◆ updateMassJacobian_weak_lowmem()

void updateMassJacobian_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  dmt,
double *  v,
double *  w_dV,
double *  jacobian_weak_residual 
)

Definition at line 1785 of file femIntegrals.c.

◆ updateNumericalDiffusion()

void updateNumericalDiffusion ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  numDiff,
double *  grad_u_X_grad_w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
nSpaceThe number of spatial dimensions.
numDiff(nElements_global x nQuadraturePoints_element). The shock capturing diffusion associated with each quadrature point (includes integration weight).
grad_u_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element x nSpace x nSpace). The tensor product of the solution gradient values and the weighted test function gradient values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} + \int_{\Omega_e} \epsilon \nabla u \cdot \nabla w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} \epsilon \nabla u \cdot \nabla w_i dV = \int_{\Omega_r} \epsilon \nabla u \cdot \nabla w_i |J_e| d\hat{V} \approx \sum_k numDiff_k \bar{\mathbf{I}} \cdot (\nabla u \otimes \nabla w dV)_i \]

Definition at line 4034 of file femIntegrals.c.

◆ updateNumericalDiffusion_lowmem()

void updateNumericalDiffusion_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  numDiff,
double *  grad_u,
double *  grad_w_dV,
double *  weak_residual 
)

Definition at line 4059 of file femIntegrals.c.

◆ updateNumericalDiffusionJacobian()

void updateNumericalDiffusionJacobian ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  numDiff,
double *  grad_v_X_grad_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
nSpaceThe number of spatial dimensions.
numDiff(nElements_global x nQuadraturePoints_element). The shock capturing diffusion associated with each quadrature point (includes integration weight).
grad_v_X_grad_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element x nDOF_test_element x nSpace x nSpace). The tensor product of the trial function gradient values and the test function gradient values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_{e,i,j} \mapsto jacobian_{e,i,j} + \int_{\Omega_e} \epsilon \nabla v_j \cdot \nabla w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \epsilon \nabla v_j \cdot \nabla w_i dV = \int_{\Omega_r} \epsilon \nabla v_j \cdot \nabla w_i |J_e| d\hat{V} \approx \sum_k numDiff_k \bar{\mathbf{I}} \cdot (\nabla v \otimes \nabla w)_{j,i} \]

Definition at line 4131 of file femIntegrals.c.

◆ updateNumericalDiffusionJacobian_lowmem()

void updateNumericalDiffusionJacobian_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  numDiff,
double *  grad_v,
double *  grad_w_dV,
double *  jacobian_weak_residual 
)

Definition at line 4161 of file femIntegrals.c.

◆ updatePotential_MixedForm_weak()

void updatePotential_MixedForm_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  phi,
double *  grad_w_dV,
double *  b 
)

Definition at line 9040 of file femIntegrals.c.

◆ updatePotential_MixedForm_weakJacobian()

void updatePotential_MixedForm_weakJacobian ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  dphi,
double *  v,
double *  grad_w_dV,
double *  db 
)

Definition at line 9103 of file femIntegrals.c.

◆ updateReaction_adjoint()

void updateReaction_adjoint ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  dr,
double *  w_dV,
double *  Lstar_w_dV 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom in the test space per element.
dr(nElements_global x nQuadraturePoints_element). The derivative of r with respect to u

@Lstar_w_dV (nElements_global x nQuadraturePoints_element x nDOF_test_element). The linearized adjoint applied to the weighted element test functions.

The result of calling the function is

\[ \mathcal{L}^* (w dV)_{k,i} \mapsto \mathcal{L}^* (w dV)_{k,i} + \frac{\partial r}{\partial u}_{k} (w dV)_{k,i} \]

Definition at line 3852 of file femIntegrals.c.

◆ updateReaction_strong()

void updateReaction_strong ( int  nElements_global,
int  nQuadraturePoints_element,
double *  r,
double *  strong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
r(nElements_global x nQuadraturePoints_element) The reaction term
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual at the quadrature points

The result of calling this function is

\[ \mathcal{R}_k \mapsto \mathcal{R}_k + r_k \]

Definition at line 3771 of file femIntegrals.c.

◆ updateReaction_weak()

void updateReaction_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  r,
double *  w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
r(nElements_global x nQuadraturePoints_element). The reaction associated with each quadrature point (includes integration weight).
w(nElements_global x nQuadraturePoints_element x nDOF_test_element). The finite element test function values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} + \int_{\Omega_e} r w_i dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} r w_i dV = \int_{\Omega_r} r w_i |J_e| d\hat{V} \approx \sum_k r_k (w dV)_i \]

Definition at line 3680 of file femIntegrals.c.

◆ updateReactionJacobian_strong()

void updateReactionJacobian_strong ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
double *  dr,
double *  v,
double *  dstrong_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
r(nElements_global x nQuadraturePoints_element) The reaction term
strong_residual(nElements_global x nQuadraturePoints_element) The strong form of the residual at the quadrature points

The result of calling this function is

\[ \frac{\partial \mathcal{R}}{\partial u}_{k,j} \mapsto \frac{\partial \mathcal{R}}{\partial u}_{k,j} + dr_k (v dV)_{k,j} \]

Definition at line 3805 of file femIntegrals.c.

◆ updateReactionJacobian_weak()

void updateReactionJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  dr,
double *  v_X_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
dr(nElements_global x nQuadraturePoints_element). The derivate of the reaction associated with each quadrature point (includes integration weight).
v_X_w_dV(nElements_global x nQuadraturePoints_element x nDOF_trial_element x nDOF_test_element). The tensor product of the finite element trial and test function values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_{e,i,j} \mapsto jacobian_{e,i,j} +\int_{\Omega_e} \frac{\partial r}{\partial u} v_j w_i dV \quad \forall e,i,j \]

where

\[ \int_{\Omega_e} \frac{\partial r}{\partial u} v_j w_i dV = \int_{\Omega_r} \frac{\partial r}{\partial u} v_j w_i |J_e| d\hat{V} \approx \sum_k dr_k (v \otimes w dV)_{j,i} \]

Definition at line 3729 of file femIntegrals.c.

◆ updateReactionJacobian_weak_lowmem()

void updateReactionJacobian_weak_lowmem ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  dr,
double *  v,
double *  w_dV,
double *  jacobian_weak_residual 
)

Definition at line 3740 of file femIntegrals.c.

◆ updateStress_weak()

void updateStress_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
int  nSpace,
double *  sigma,
double *  grad_w_dV,
double *  weak_residual_x,
double *  weak_residual_y,
double *  weak_residual_z 
)

Definition at line 12219 of file femIntegrals.c.

◆ updateStressJacobian_weak()

void updateStressJacobian_weak ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
int  nSpace,
double *  dsigma_xx,
double *  dsigma_xy,
double *  dsigma_xz,
double *  dsigma_yx,
double *  dsigma_yy,
double *  dsigma_yz,
double *  dsigma_zx,
double *  dsigma_zy,
double *  dsigma_zz,
double *  grad_v,
double *  grad_w_dV,
double *  jacobian_weak_residual_xx,
double *  jacobian_weak_residual_xy,
double *  jacobian_weak_residual_xz,
double *  jacobian_weak_residual_yx,
double *  jacobian_weak_residual_yy,
double *  jacobian_weak_residual_yz,
double *  jacobian_weak_residual_zx,
double *  jacobian_weak_residual_zy,
double *  jacobian_weak_residual_zz 
)

Definition at line 12274 of file femIntegrals.c.

◆ updateSubgridError()

void updateSubgridError ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_test_element,
double *  error,
double *  Lstar_w_dV,
double *  weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element.
error(nElements_global x nQuadraturePoints_element). The error approximation associated with each quadrature point.
LstarW(nElements_global x nQuadraturePoints_element x nDOF_test_element). The linearized adjoint applied to the weighted finite element test function values.
weak_residual(nElements_global x nDOF_test_element). The element weak_residual, which is updated upon return.

The result of calling this function is

\[ weak_residual_{e,i} \mapsto weak_residual_{e,i} - \int_{\Omega_e} \mathcal{e} \mathcal{L^*}(w_i) dV \quad \forall e,i \]

where

\[ \int_{\Omega_e} \tau \mathcal{R} \mathcal{L^*}(w_i) dV = \int_{\Omega_r} \mathcal{e} \mathcal{L^*}(w_i) |J_e| d\hat{V} \approx \sum_k \tau_k \mathcal{R}_k \mathcal{L^*}(w dV)_i \]

Definition at line 3909 of file femIntegrals.c.

◆ updateSubgridErrorJacobian()

void updateSubgridErrorJacobian ( int  nElements_global,
int  nQuadraturePoints_element,
int  nDOF_trial_element,
int  nDOF_test_element,
double *  derror,
double *  Lstar_w_dV,
double *  jacobian_weak_residual 
)
Parameters
nElements_globalThe number of elements in the mesh
nQuadraturePoints_elementThe number of quadrature points per element.
nDOF_test_elementThe number of degrees of freedom per element in the test space.
nDOF_trial_elementThe number of degrees of freedom per element in the trial space.
error(nElements_global x nQuadraturePoints_element). The error approximation associated with each quadrature point
Lstar_w_dV(nElements_global x nQuadraturePoints_element x nDOF_test_element). The linearized adjoint applied to the weighted finite element test function values.
jacobian_weak_residual(nElements_global x nDOF_test_element x nDOF_trial_element). The element jacobian, which is updated upon return.

The result of calling this function is

\[ jacobian_{e,i,j} \mapsto jacobian_{e,i,j} - \int_{\Omega_e} \tau \frac{\partial \mathcal{R}}{\partial u_j} \mathcal{L^*}(w dV){k,i} \quad \forall e,i \]

where

\[ \int_{\Omega_e} \frac{\partial \mathcal{e}}{\partial u_j} \mathcal{L^*}(w_i) dV = \int_{\Omega_r} \frac{\partial \mathcal{e}}{\partial u_j} \mathcal{L^*}(w_i) |J_e| d\hat{V} \approx \sum_k (\frac{\partial \mathcal{e}}{\partial u_j})_k \mathcal{L^*}(w dV)_i \]

Definition at line 3969 of file femIntegrals.c.

◆ zeroJacobian_CSR()

void zeroJacobian_CSR ( int  nNonzeros,
double *  jac 
)

Definition at line 7363 of file femIntegrals.c.