326 int local_subdomain_id, x_cell, y_cell, r_cell;
329 const int league_rank = team.league_rank();
330 int tmp = league_rank;
331 const int r_block_index = tmp % blocks_per_column_;
332 tmp /= blocks_per_column_;
333 y_cell = tmp & ( hex_lat_ - 1 );
334 tmp = tmp >> lat_refinement_level_;
335 x_cell = tmp & ( hex_lat_ - 1 );
336 local_subdomain_id = tmp >> lat_refinement_level_;
338 const int thread_index = team.team_rank();
339 const int block_size = team.team_size();
340 r_cell = r_block_index * block_size + thread_index;
354 A[0] = local_matrix_storage_.
get_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 0 );
355 A[1] = local_matrix_storage_.
get_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 1 );
359 if ( local_matrix_storage_.
has_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 0 ) &&
360 local_matrix_storage_.
has_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 1 ) )
362 A[0] = local_matrix_storage_.
get_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 0 );
363 A[1] = local_matrix_storage_.
get_matrix( local_subdomain_id, x_cell, y_cell, r_cell, 1 );
381 for (
int dimj = 0; dimj < 3; dimj++ )
385 src_d, local_subdomain_id, x_cell, y_cell, r_cell, dimj, src_ );
398 dst[0] = A[0] * src[0];
399 dst[1] = A[1] * src[1];
401 for (
int dimi = 0; dimi < 3; dimi++ )
408 dst_, local_subdomain_id, x_cell, y_cell, r_cell, dimi, dst_d );
413 double wedge_surf_phy_coords[2][3][3];
414 double quad_surface_coords[2][2][3];
415 quad_surface_coords[0][0][0] = grid_( local_subdomain_id, x_cell, y_cell, 0 );
416 quad_surface_coords[0][0][1] = grid_( local_subdomain_id, x_cell, y_cell, 1 );
417 quad_surface_coords[0][0][2] = grid_( local_subdomain_id, x_cell, y_cell, 2 );
418 quad_surface_coords[0][1][0] = grid_( local_subdomain_id, x_cell, y_cell + 1, 0 );
419 quad_surface_coords[0][1][1] = grid_( local_subdomain_id, x_cell, y_cell + 1, 1 );
420 quad_surface_coords[0][1][2] = grid_( local_subdomain_id, x_cell, y_cell + 1, 2 );
421 quad_surface_coords[1][0][0] = grid_( local_subdomain_id, x_cell + 1, y_cell, 0 );
422 quad_surface_coords[1][0][1] = grid_( local_subdomain_id, x_cell + 1, y_cell, 1 );
423 quad_surface_coords[1][0][2] = grid_( local_subdomain_id, x_cell + 1, y_cell, 2 );
424 quad_surface_coords[1][1][0] = grid_( local_subdomain_id, x_cell + 1, y_cell + 1, 0 );
425 quad_surface_coords[1][1][1] = grid_( local_subdomain_id, x_cell + 1, y_cell + 1, 1 );
426 quad_surface_coords[1][1][2] = grid_( local_subdomain_id, x_cell + 1, y_cell + 1, 2 );
427 wedge_surf_phy_coords[0][0][0] = quad_surface_coords[0][0][0];
428 wedge_surf_phy_coords[0][0][1] = quad_surface_coords[0][0][1];
429 wedge_surf_phy_coords[0][0][2] = quad_surface_coords[0][0][2];
430 wedge_surf_phy_coords[0][1][0] = quad_surface_coords[1][0][0];
431 wedge_surf_phy_coords[0][1][1] = quad_surface_coords[1][0][1];
432 wedge_surf_phy_coords[0][1][2] = quad_surface_coords[1][0][2];
433 wedge_surf_phy_coords[0][2][0] = quad_surface_coords[0][1][0];
434 wedge_surf_phy_coords[0][2][1] = quad_surface_coords[0][1][1];
435 wedge_surf_phy_coords[0][2][2] = quad_surface_coords[0][1][2];
436 wedge_surf_phy_coords[1][0][0] = quad_surface_coords[1][1][0];
437 wedge_surf_phy_coords[1][0][1] = quad_surface_coords[1][1][1];
438 wedge_surf_phy_coords[1][0][2] = quad_surface_coords[1][1][2];
439 wedge_surf_phy_coords[1][1][0] = quad_surface_coords[0][1][0];
440 wedge_surf_phy_coords[1][1][1] = quad_surface_coords[0][1][1];
441 wedge_surf_phy_coords[1][1][2] = quad_surface_coords[0][1][2];
442 wedge_surf_phy_coords[1][2][0] = quad_surface_coords[1][0][0];
443 wedge_surf_phy_coords[1][2][1] = quad_surface_coords[1][0][1];
444 wedge_surf_phy_coords[1][2][2] = quad_surface_coords[1][0][2];
445 double r_0 = radii_( local_subdomain_id, r_cell );
446 double r_1 = radii_( local_subdomain_id, r_cell + 1 );
447 double src_local_hex[3][2][6];
449 for ( dim = 0; dim < 3; dim += 1 )
451 src_local_hex[dim][0][0] = src_( local_subdomain_id, x_cell, y_cell, r_cell, dim );
452 src_local_hex[dim][0][1] = src_( local_subdomain_id, x_cell + 1, y_cell, r_cell, dim );
453 src_local_hex[dim][0][2] = src_( local_subdomain_id, x_cell, y_cell + 1, r_cell, dim );
454 src_local_hex[dim][0][3] = src_( local_subdomain_id, x_cell, y_cell, r_cell + 1, dim );
455 src_local_hex[dim][0][4] = src_( local_subdomain_id, x_cell + 1, y_cell, r_cell + 1, dim );
456 src_local_hex[dim][0][5] = src_( local_subdomain_id, x_cell, y_cell + 1, r_cell + 1, dim );
457 src_local_hex[dim][1][0] = src_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell, dim );
458 src_local_hex[dim][1][1] = src_( local_subdomain_id, x_cell, y_cell + 1, r_cell, dim );
459 src_local_hex[dim][1][2] = src_( local_subdomain_id, x_cell + 1, y_cell, r_cell, dim );
460 src_local_hex[dim][1][3] = src_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell + 1, dim );
461 src_local_hex[dim][1][4] = src_( local_subdomain_id, x_cell, y_cell + 1, r_cell + 1, dim );
462 src_local_hex[dim][1][5] = src_( local_subdomain_id, x_cell + 1, y_cell, r_cell + 1, dim );
464 double k_local_hex[2][6];
465 k_local_hex[0][0] = k_( local_subdomain_id, x_cell, y_cell, r_cell );
466 k_local_hex[0][1] = k_( local_subdomain_id, x_cell + 1, y_cell, r_cell );
467 k_local_hex[0][2] = k_( local_subdomain_id, x_cell, y_cell + 1, r_cell );
468 k_local_hex[0][3] = k_( local_subdomain_id, x_cell, y_cell, r_cell + 1 );
469 k_local_hex[0][4] = k_( local_subdomain_id, x_cell + 1, y_cell, r_cell + 1 );
470 k_local_hex[0][5] = k_( local_subdomain_id, x_cell, y_cell + 1, r_cell + 1 );
471 k_local_hex[1][0] = k_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell );
472 k_local_hex[1][1] = k_( local_subdomain_id, x_cell, y_cell + 1, r_cell );
473 k_local_hex[1][2] = k_( local_subdomain_id, x_cell + 1, y_cell, r_cell );
474 k_local_hex[1][3] = k_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell + 1 );
475 k_local_hex[1][4] = k_( local_subdomain_id, x_cell, y_cell + 1, r_cell + 1 );
476 k_local_hex[1][5] = k_( local_subdomain_id, x_cell + 1, y_cell, r_cell + 1 );
477 double qp_array[1][3];
479 qp_array[0][0] = 0.33333333333333331;
480 qp_array[0][1] = 0.33333333333333331;
481 qp_array[0][2] = 0.0;
483 int at_cmb_boundary =
has_flag( local_subdomain_id, x_cell, y_cell, r_cell, CMB );
484 int at_surface_boundary =
has_flag( local_subdomain_id, x_cell, y_cell, r_cell + 1, SURFACE );
485 int cmb_shift = ( ( treat_boundary_ && diagonal_ ==
false && at_cmb_boundary != 0 ) ? ( 3 ) : ( 0 ) );
486 int max_rad = radii_.extent( 1 ) - 1;
488 ( ( treat_boundary_ && diagonal_ ==
false && at_surface_boundary != 0 ) ? ( 3 ) : ( 0 ) );
489 double dst_array[3][2][6] = { 0 };
490 double grad_r = -1.0 / 2.0 * r_0 + ( 1.0 / 2.0 ) * r_1;
491 double grad_r_inv = 1.0 / grad_r;
494 constexpr int N_q = 1;
498 ScalarT* shmem_g1 = (ScalarT*) team.team_shmem().get_shmem( size_g1 );
499 ScalarT* shmem_g2 = (ScalarT*) team.team_shmem().get_shmem( size_g2 );
501 if ( team.team_rank() == 0 )
505 for (
int q = 0; q < N_q; ++q )
507 shmem_g2[wedge * N_q + q] = g2_( local_subdomain_id, x_cell, y_cell, wedge, q );
508 for (
int d1 = 0; d1 < 3; ++d1 )
510 for (
int d2 = 0; d2 < 3; ++d2 )
512 shmem_g1[wedge * N_q * 9 + q * 9 + 3 * d1 + d2] =
513 g1_( local_subdomain_id, x_cell, y_cell, wedge, q, d1, d2 );
522 for ( w = 0; w < 2; w += 1 )
525 for ( q = 0; q < 1; q += 1 )
528 double tmpcse_k_eval_0 = ( 1.0 / 2.0 ) * qp_array[q][2];
529 double tmpcse_k_eval_1 = 1.0 / 2.0 - tmpcse_k_eval_0;
530 double tmpcse_k_eval_2 = tmpcse_k_eval_0 + 1.0 / 2.0;
531 double tmpcse_k_eval_3 = -qp_array[q][0] - qp_array[q][1] + 1;
532 double k_eval = tmpcse_k_eval_1 * tmpcse_k_eval_3 * k_local_hex[w][0] +
533 tmpcse_k_eval_1 * k_local_hex[w][1] * qp_array[q][0] +
534 tmpcse_k_eval_1 * k_local_hex[w][2] * qp_array[q][1] +
535 tmpcse_k_eval_2 * tmpcse_k_eval_3 * k_local_hex[w][3] +
536 tmpcse_k_eval_2 * k_local_hex[w][4] * qp_array[q][0] +
537 tmpcse_k_eval_2 * k_local_hex[w][5] * qp_array[q][1];
542 double J_invT[3][3] = { 0 };
543 double r_inv = 1.0 / ( r_0 + ( -1.0 / 2.0 * r_0 + ( 1.0 / 2.0 ) * r_1 ) * ( qp_array[q][2] + 1 ) );
544 double factors[3] = { r_inv, r_inv, grad_r_inv };
547 for ( d1 = 0; d1 < 3; d1 += 1 )
549 for ( d2 = 0; d2 < 3; d2 += 1 )
551 J_invT[d1][d2] = factors[d2] * shmem_g1[w * N_q * 9 + q * 9 + 3 * d1 + d2];
554 double g2 = shmem_g2[w * N_q + q];
560 double scalar_grad[6][3] = { 0 };
561 double tmpcse_grad_i_0 = ( 1.0 / 2.0 ) * qp_array[q][2];
562 double tmpcse_grad_i_1 = tmpcse_grad_i_0 - 1.0 / 2.0;
563 double tmpcse_grad_i_2 = ( 1.0 / 2.0 ) * qp_array[q][0];
564 double tmpcse_grad_i_3 = ( 1.0 / 2.0 ) * qp_array[q][1];
565 double tmpcse_grad_i_4 = tmpcse_grad_i_2 + tmpcse_grad_i_3 - 1.0 / 2.0;
566 double tmpcse_grad_i_5 = tmpcse_grad_i_2 * J_invT[0][2];
567 double tmpcse_grad_i_6 = -tmpcse_grad_i_1;
568 double tmpcse_grad_i_7 = tmpcse_grad_i_2 * J_invT[1][2];
569 double tmpcse_grad_i_8 = tmpcse_grad_i_2 * J_invT[2][2];
570 double tmpcse_grad_i_9 = tmpcse_grad_i_3 * J_invT[0][2];
571 double tmpcse_grad_i_10 = tmpcse_grad_i_3 * J_invT[1][2];
572 double tmpcse_grad_i_11 = tmpcse_grad_i_3 * J_invT[2][2];
573 double tmpcse_grad_i_12 = tmpcse_grad_i_0 + 1.0 / 2.0;
574 double tmpcse_grad_i_13 = -tmpcse_grad_i_12;
575 double tmpcse_grad_i_14 = -tmpcse_grad_i_4;
576 scalar_grad[0][0] = tmpcse_grad_i_1 * J_invT[0][0] + tmpcse_grad_i_1 * J_invT[0][1] +
577 tmpcse_grad_i_4 * J_invT[0][2];
578 scalar_grad[0][1] = tmpcse_grad_i_1 * J_invT[1][0] + tmpcse_grad_i_1 * J_invT[1][1] +
579 tmpcse_grad_i_4 * J_invT[1][2];
580 scalar_grad[0][2] = tmpcse_grad_i_1 * J_invT[2][0] + tmpcse_grad_i_1 * J_invT[2][1] +
581 tmpcse_grad_i_4 * J_invT[2][2];
582 scalar_grad[1][0] = -tmpcse_grad_i_5 + tmpcse_grad_i_6 * J_invT[0][0];
583 scalar_grad[1][1] = tmpcse_grad_i_6 * J_invT[1][0] - tmpcse_grad_i_7;
584 scalar_grad[1][2] = tmpcse_grad_i_6 * J_invT[2][0] - tmpcse_grad_i_8;
585 scalar_grad[2][0] = tmpcse_grad_i_6 * J_invT[0][1] - tmpcse_grad_i_9;
586 scalar_grad[2][1] = -tmpcse_grad_i_10 + tmpcse_grad_i_6 * J_invT[1][1];
587 scalar_grad[2][2] = -tmpcse_grad_i_11 + tmpcse_grad_i_6 * J_invT[2][1];
588 scalar_grad[3][0] = tmpcse_grad_i_13 * J_invT[0][0] + tmpcse_grad_i_13 * J_invT[0][1] +
589 tmpcse_grad_i_14 * J_invT[0][2];
590 scalar_grad[3][1] = tmpcse_grad_i_13 * J_invT[1][0] + tmpcse_grad_i_13 * J_invT[1][1] +
591 tmpcse_grad_i_14 * J_invT[1][2];
592 scalar_grad[3][2] = tmpcse_grad_i_13 * J_invT[2][0] + tmpcse_grad_i_13 * J_invT[2][1] +
593 tmpcse_grad_i_14 * J_invT[2][2];
594 scalar_grad[4][0] = tmpcse_grad_i_12 * J_invT[0][0] + tmpcse_grad_i_5;
595 scalar_grad[4][1] = tmpcse_grad_i_12 * J_invT[1][0] + tmpcse_grad_i_7;
596 scalar_grad[4][2] = tmpcse_grad_i_12 * J_invT[2][0] + tmpcse_grad_i_8;
597 scalar_grad[5][0] = tmpcse_grad_i_12 * J_invT[0][1] + tmpcse_grad_i_9;
598 scalar_grad[5][1] = tmpcse_grad_i_10 + tmpcse_grad_i_12 * J_invT[1][1];
599 scalar_grad[5][2] = tmpcse_grad_i_11 + tmpcse_grad_i_12 * J_invT[2][1];
602 double grad_u[3][3] = { 0 };
609 for ( dimj = 0; dimj < 3; dimj += 1 )
611 if ( diagonal_ ==
false )
613 for ( node_idx = cmb_shift; node_idx < 6 - surface_shift; node_idx += 1 )
615 double E_grad_trial[3][3] = { 0 };
616 E_grad_trial[0][dimj] = scalar_grad[node_idx][0];
617 E_grad_trial[1][dimj] = scalar_grad[node_idx][1];
618 E_grad_trial[2][dimj] = scalar_grad[node_idx][2];
619 double tmpcse_symgrad_trial_0 = 0.5 * E_grad_trial[0][1] + 0.5 * E_grad_trial[1][0];
620 double tmpcse_symgrad_trial_1 = 0.5 * E_grad_trial[0][2] + 0.5 * E_grad_trial[2][0];
621 double tmpcse_symgrad_trial_2 = 0.5 * E_grad_trial[1][2] + 0.5 * E_grad_trial[2][1];
623 1.0 * E_grad_trial[0][0] * src_local_hex[dimj][w][node_idx] + grad_u[0][0];
624 grad_u[0][1] = tmpcse_symgrad_trial_0 * src_local_hex[dimj][w][node_idx] + grad_u[0][1];
625 grad_u[0][2] = tmpcse_symgrad_trial_1 * src_local_hex[dimj][w][node_idx] + grad_u[0][2];
626 grad_u[1][0] = tmpcse_symgrad_trial_0 * src_local_hex[dimj][w][node_idx] + grad_u[1][0];
628 1.0 * E_grad_trial[1][1] * src_local_hex[dimj][w][node_idx] + grad_u[1][1];
629 grad_u[1][2] = tmpcse_symgrad_trial_2 * src_local_hex[dimj][w][node_idx] + grad_u[1][2];
630 grad_u[2][0] = tmpcse_symgrad_trial_1 * src_local_hex[dimj][w][node_idx] + grad_u[2][0];
631 grad_u[2][1] = tmpcse_symgrad_trial_2 * src_local_hex[dimj][w][node_idx] + grad_u[2][1];
633 1.0 * E_grad_trial[2][2] * src_local_hex[dimj][w][node_idx] + grad_u[2][2];
634 div_u = div_u + E_grad_trial[dimj][dimj] * src_local_hex[dimj][w][node_idx];
640 for ( dimi = 0; dimi < 3; dimi += 1 )
642 if ( diagonal_ ==
false )
644 for ( node_idx = cmb_shift; node_idx < 6 - surface_shift; node_idx += 1 )
646 double E_grad_test[3][3] = { 0 };
647 E_grad_test[0][dimi] = scalar_grad[node_idx][0];
648 E_grad_test[1][dimi] = scalar_grad[node_idx][1];
649 E_grad_test[2][dimi] = scalar_grad[node_idx][2];
650 double tmpcse_symgrad_test_0 = 0.5 * E_grad_test[0][1] + 0.5 * E_grad_test[1][0];
651 double tmpcse_symgrad_test_1 = 0.5 * E_grad_test[0][2] + 0.5 * E_grad_test[2][0];
652 double tmpcse_symgrad_test_2 = 0.5 * E_grad_test[1][2] + 0.5 * E_grad_test[2][1];
653 double tmpcse_pairing_0 = 2 * tmpcse_symgrad_test_0;
654 double tmpcse_pairing_1 = 2 * tmpcse_symgrad_test_1;
655 double tmpcse_pairing_2 = 2 * tmpcse_symgrad_test_2;
656 dst_array[dimi][w][node_idx] =
657 g2 * grad_r * k_eval *
658 ( -0.66666666666666663 * div_u * E_grad_test[dimi][dimi] +
659 tmpcse_pairing_0 * grad_u[0][1] + tmpcse_pairing_0 * grad_u[1][0] +
660 tmpcse_pairing_1 * grad_u[0][2] + tmpcse_pairing_1 * grad_u[2][0] +
661 tmpcse_pairing_2 * grad_u[1][2] + tmpcse_pairing_2 * grad_u[2][1] +
662 2.0 * E_grad_test[0][0] * grad_u[0][0] +
663 2.0 * E_grad_test[1][1] * grad_u[1][1] +
664 2.0 * E_grad_test[2][2] * grad_u[2][2] ) *
665 qw_array[q] / pow( r_inv, 2 ) +
666 dst_array[dimi][w][node_idx];
672 for ( dim_diagBC = 0; dim_diagBC < 3; dim_diagBC += 1 )
674 if ( diagonal_ || treat_boundary_ && ( at_cmb_boundary != 0 || at_surface_boundary != 0 ) )
677 for ( node_idx = surface_shift; node_idx < 6 - cmb_shift; node_idx += 1 )
679 double E_grad_test[3][3] = { 0 };
680 E_grad_test[0][dim_diagBC] = scalar_grad[node_idx][0];
681 E_grad_test[1][dim_diagBC] = scalar_grad[node_idx][1];
682 E_grad_test[2][dim_diagBC] = scalar_grad[node_idx][2];
684 double grad_u_diag[3][3] = { 0 };
685 double tmpcse_symgrad_test_0 = 0.5 * E_grad_test[0][1] + 0.5 * E_grad_test[1][0];
686 double tmpcse_symgrad_test_1 = 0.5 * E_grad_test[0][2] + 0.5 * E_grad_test[2][0];
687 double tmpcse_symgrad_test_2 = 0.5 * E_grad_test[1][2] + 0.5 * E_grad_test[2][1];
688 grad_u_diag[0][0] = 1.0 * E_grad_test[0][0] * src_local_hex[dim_diagBC][w][node_idx];
689 grad_u_diag[0][1] = tmpcse_symgrad_test_0 * src_local_hex[dim_diagBC][w][node_idx];
690 grad_u_diag[0][2] = tmpcse_symgrad_test_1 * src_local_hex[dim_diagBC][w][node_idx];
691 grad_u_diag[1][0] = tmpcse_symgrad_test_0 * src_local_hex[dim_diagBC][w][node_idx];
692 grad_u_diag[1][1] = 1.0 * E_grad_test[1][1] * src_local_hex[dim_diagBC][w][node_idx];
693 grad_u_diag[1][2] = tmpcse_symgrad_test_2 * src_local_hex[dim_diagBC][w][node_idx];
694 grad_u_diag[2][0] = tmpcse_symgrad_test_1 * src_local_hex[dim_diagBC][w][node_idx];
695 grad_u_diag[2][1] = tmpcse_symgrad_test_2 * src_local_hex[dim_diagBC][w][node_idx];
696 grad_u_diag[2][2] = 1.0 * E_grad_test[2][2] * src_local_hex[dim_diagBC][w][node_idx];
697 double tmpcse_pairing_0 = 4 * src_local_hex[dim_diagBC][w][node_idx];
698 double tmpcse_pairing_1 = 2.0 * src_local_hex[dim_diagBC][w][node_idx];
699 dst_array[dim_diagBC][w][node_idx] =
700 g2 * grad_r * k_eval *
701 ( tmpcse_pairing_0 * pow( tmpcse_symgrad_test_0, 2 ) +
702 tmpcse_pairing_0 * pow( tmpcse_symgrad_test_1, 2 ) +
703 tmpcse_pairing_0 * pow( tmpcse_symgrad_test_2, 2 ) +
704 tmpcse_pairing_1 * pow( E_grad_test[0][0], 2 ) +
705 tmpcse_pairing_1 * pow( E_grad_test[1][1], 2 ) +
706 tmpcse_pairing_1 * pow( E_grad_test[2][2], 2 ) -
707 0.66666666666666663 * pow( E_grad_test[dim_diagBC][dim_diagBC], 2 ) *
708 src_local_hex[dim_diagBC][w][node_idx] ) *
709 qw_array[q] / pow( r_inv, 2 ) +
710 dst_array[dim_diagBC][w][node_idx];
717 for ( dim_add = 0; dim_add < 3; dim_add += 1 )
720 &dst_( local_subdomain_id, x_cell, y_cell, r_cell, dim_add ), dst_array[dim_add][0][0] );
722 &dst_( local_subdomain_id, x_cell + 1, y_cell, r_cell, dim_add ),
723 dst_array[dim_add][0][1] + dst_array[dim_add][1][2] );
725 &dst_( local_subdomain_id, x_cell, y_cell + 1, r_cell, dim_add ),
726 dst_array[dim_add][0][2] + dst_array[dim_add][1][1] );
728 &dst_( local_subdomain_id, x_cell, y_cell, r_cell + 1, dim_add ), dst_array[dim_add][0][3] );
730 &dst_( local_subdomain_id, x_cell + 1, y_cell, r_cell + 1, dim_add ),
731 dst_array[dim_add][0][4] + dst_array[dim_add][1][5] );
733 &dst_( local_subdomain_id, x_cell, y_cell + 1, r_cell + 1, dim_add ),
734 dst_array[dim_add][0][5] + dst_array[dim_add][1][4] );
736 &dst_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell, dim_add ), dst_array[dim_add][1][0] );
738 &dst_( local_subdomain_id, x_cell + 1, y_cell + 1, r_cell + 1, dim_add ),
739 dst_array[dim_add][1][3] );