|
| template<std::floating_point T> |
| void | terra::fe::wedge::wedge_surface_physical_coords (dense::Vec< T, 3 >(&wedge_surf_phy_coords)[num_wedges_per_hex_cell][num_nodes_per_wedge_surface], const grid::Grid3DDataVec< T, 3 > &lateral_grid, const int local_subdomain_id, const int x_cell, const int y_cell) |
| | Extracts the (unit sphere) surface vertex coords of the two wedges of a hex cell.
|
| |
| template<std::floating_point T> |
| void | terra::fe::wedge::wedge_0_surface_physical_coords (dense::Vec< T, 3 > *wedge_surf_phy_coords, const grid::Grid3DDataVec< T, 3 > &lateral_grid, const int local_subdomain_id, const int x_cell, const int y_cell) |
| |
| template<std::floating_point T> |
| void | terra::fe::wedge::wedge_1_surface_physical_coords (dense::Vec< T, 3 > *wedge_surf_phy_coords, const grid::Grid3DDataVec< T, 3 > &lateral_grid, const int local_subdomain_id, const int x_cell, const int y_cell) |
| |
| template<std::floating_point T, int NumQuadPoints> |
| constexpr void | terra::fe::wedge::jacobian_lat_inverse_transposed_and_determinant (dense::Mat< T, 3, 3 >(&jac_lat_inv_t)[num_wedges_per_hex_cell][NumQuadPoints], T(&det_jac_lat)[num_wedges_per_hex_cell][NumQuadPoints], const dense::Vec< T, 3 > wedge_surf_phy_coords[num_wedges_per_hex_cell][num_nodes_per_wedge_surface], const dense::Vec< T, 3 > quad_points[NumQuadPoints]) |
| | Computes the transposed inverse of the Jacobian of the lateral forward map from the reference triangle to the triangle on the unit sphere and the absolute determinant of that Jacobian at the passed quadrature points.
|
| |
| template<std::floating_point T, int NumQuadPoints> |
| constexpr void | terra::fe::wedge::jacobian_lat_determinant (T(&det_jac_lat)[num_wedges_per_hex_cell][NumQuadPoints], const dense::Vec< T, 3 > wedge_surf_phy_coords[num_wedges_per_hex_cell][num_nodes_per_wedge_surface], const dense::Vec< T, 3 > quad_points[NumQuadPoints]) |
| | Like jacobian_lat_inverse_transposed_and_determinant() but only computes the determinant (cheaper if the transposed inverse of the Jacobian is not required).
|
| |
| template<std::floating_point T, int NumQuadPoints> |
| constexpr void | terra::fe::wedge::lateral_parts_of_grad_phi (dense::Vec< T, 3 >(&g_rad)[num_wedges_per_hex_cell][num_nodes_per_wedge][NumQuadPoints], dense::Vec< T, 3 >(&g_lat)[num_wedges_per_hex_cell][num_nodes_per_wedge][NumQuadPoints], const dense::Mat< T, 3, 3 > jac_lat_inv_t[num_wedges_per_hex_cell][NumQuadPoints], const dense::Vec< T, 3 > quad_points[NumQuadPoints]) |
| | Computes the radially independent parts of the physical shape function gradients.
|
| |
| template<std::floating_point T, int NumQuadPoints> |
| constexpr dense::Vec< T, 3 > | terra::fe::wedge::grad_shape_full (const dense::Vec< T, 3 > g_rad[num_wedges_per_hex_cell][num_nodes_per_wedge][NumQuadPoints], const dense::Vec< T, 3 > g_lat[num_wedges_per_hex_cell][num_nodes_per_wedge][NumQuadPoints], const T r_inv, const T grad_r_inv, const int wedge_idx, const int node_idx, const int quad_point_idx) |
| | Computes and returns J^-T grad(N_j).
|
| |
| template<std::floating_point T, int NumQuadPoints> |
| constexpr T | terra::fe::wedge::det_full (const T det_jac_lat[num_wedges_per_hex_cell][NumQuadPoints], const T r, const T grad_r, const int wedge_idx, const int quad_point_idx) |
| | Computes |det(J)|.
|
| |
| template<std::floating_point T> |
| void | terra::fe::wedge::extract_local_wedge_scalar_coefficients (dense::Vec< T, 6 >(&local_coefficients)[2], const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const grid::Grid4DDataScalar< T > &global_coefficients) |
| | Extracts the local vector coefficients for the two wedges of a hex cell from the global coefficient vector.
|
| |
| template<std::floating_point T, int VecDim> |
| void | terra::fe::wedge::extract_local_wedge_vector_coefficients (dense::Vec< T, 6 >(&local_coefficients)[2], const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const int d, const grid::Grid4DDataVec< T, VecDim > &global_coefficients) |
| | Extracts the local vector coefficients for the two wedges of a hex cell from the global coefficient vector.
|
| |
| template<std::floating_point T> |
| void | terra::fe::wedge::atomically_add_local_wedge_scalar_coefficients (const grid::Grid4DDataScalar< T > &global_coefficients, const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const dense::Vec< T, 6 >(&local_coefficients)[2]) |
| | Performs an atomic add of the two local wedge coefficient vectors of a hex cell into the global coefficient vector.
|
| |
| template<std::floating_point T, int VecDim> |
| void | terra::fe::wedge::atomically_add_local_wedge_vector_coefficients (const grid::Grid4DDataVec< T, VecDim > &global_coefficients, const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const int d, const dense::Vec< T, 6 > local_coefficients[2]) |
| | Performs an atomic add of the two local wedge coefficient vectors of a hex cell into the global coefficient vector.
|
| |
| constexpr int | terra::fe::wedge::fine_lateral_wedge_idx (const int x_cell_fine, const int y_cell_fine, const int wedge_idx_fine) |
| | Returns the lateral wedge index with respect to a coarse grid wedge from the fine wedge indices.
|
| |
| template<typename ScalarT > |
| constexpr void | terra::fe::wedge::reorder_local_dofs (const DoFOrdering doo_from, const DoFOrdering doo_to, dense::Vec< ScalarT, 18 > &dofs) |
| |