Lines Matching refs:grid

290         for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids  in gridToParticles_private()  local
292 …t_FMT ", index(b,g) %" PetscInt_FMT "\n", global_vertex_id, v_id, grid, LAND_PACK_IDX(v_id, grid)); in gridToParticles_private()
293grid], globSwarmArray[LAND_PACK_IDX(v_id, grid)], globXArray[LAND_PACK_IDX(v_id, grid)], t_fhat[gr… in gridToParticles_private()
304 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in gridToParticles_private() local
307 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in gridToParticles_private()
313 …PI * coords[p * dim + 0] : 1, w = fact * wp[p] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]]; in gridToParticles_private()
324 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in gridToParticles_private() local
327 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in gridToParticles_private()
333 …dim + 0] : 1, w = fact * wp[p] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]], ww = w * N_inv; in gridToParticles_private()
393 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in PostStep() local
396 DM sw = printCtx->globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in PostStep()
397 Vec work, subX = printCtx->globXArray[LAND_PACK_IDX(v_id, grid)]; in PostStep()
401 …oParticles(printCtx->grid_dm[grid], sw, subX, work, printCtx->globMpArray[LAND_PACK_IDX(v_id, grid in PostStep()
408 … * coords[pp * dim + 0] : 1, w = fact * wp[pp] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]]; in PostStep()
413 e_grid[grid] += w * 0.5 * ctx->v_0 * ctx->v_0 * v2; in PostStep()
420 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in PostStep() local
423 DM sw = printCtx->globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in PostStep()
429 …im + 0] : 1, w = fact * wp[pp] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]], ww = w * N_inv; in PostStep()
440 PetscInt grid = printCtx->g_target, id; in PostStep() local
445 PetscCall(DMGetOutputSequenceNumber(ctx->plex[grid], &id, NULL)); in PostStep()
446 PetscCall(DMSetOutputSequenceNumber(ctx->plex[grid], id + 1, t)); in PostStep()
447 …PetscCall(VecViewFromOptions(printCtx->globXArray[LAND_PACK_IDX(v_id % ctx->batch_sz, grid)], NULL… in PostStep()
448 if (ctx->num_grids > grid + 1) { in PostStep()
449 PetscCall(DMSetOutputSequenceNumber(ctx->plex[grid + 1], id + 1, t)); in PostStep()
450 …PetscCall(VecViewFromOptions(printCtx->globXArray[LAND_PACK_IDX(v_id % ctx->batch_sz, grid + 1)], … in PostStep()
509 …for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for a… in go() local
510 Vec subX = globXArray[LAND_PACK_IDX(0, grid)]; in go()
511 DM dm = ctx->plex[grid]; in go()
513 grid_dm[grid] = dm; in go()
514 PetscCall(DMCreateMassMatrix(dm, dm, &g_Mass[grid])); in go()
520 PetscCall(VecDuplicate(subX, &t_fhat[grid][tid])); in go()
521 PetscCall(KSPCreate(PETSC_COMM_SELF, &t_ksp[grid][tid])); in go()
522 PetscCall(KSPSetType(t_ksp[grid][tid], KSPCG)); in go()
523 PetscCall(KSPGetPC(t_ksp[grid][tid], &pc)); in go()
525 PetscCall(KSPSetOptionsPrefix(t_ksp[grid][tid], "ptof_")); in go()
526 PetscCall(KSPSetOperators(t_ksp[grid][tid], g_Mass[grid], g_Mass[grid])); in go()
527 PetscCall(KSPSetFromOptions(t_ksp[grid][tid])); in go()
553 …for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same parti… in go() local
555 …_m = ctx->k * ctx->thermal_temps[ctx->species_offset[grid]] / ctx->masses[ctx->species_offset[gri… in go()
556 …o[3] = {-ctx->radius[grid], -ctx->radius[grid], -ctx->radius[grid]}, hi[3] = {ctx->radius[grid], c… in go()
559 …PetscReal sigma = ctx->thermal_speed[grid] / ctx->thermal_speed[0], p2_shift = grid == 0 ? s… in go()
567 Np_t[grid][tid] = NN; in go()
568 if (glb_v_id == v_target) nTargetP[grid] = NN; in go()
569 …PetscCall(PetscMalloc4(NN, &xx_t[grid][tid], NN, &yy_t[grid][tid], NN, &wp_t[grid][tid], dim == 2 … in go()
575 …vole = hp[0] * hp[1] * hp[2] * ctx->n[grid]; … in go()
576 …etscInt_FMT " particles (diagnostic target = %" PetscInt_FMT ")\n", glb_v_id, grid, NN, v_target)); in go()
581 wp_t[grid][tid][pp] = 0; in go()
583 xx_t[grid][tid][pp] = lo[0] + hp[0] / 2.0 + pi * hp[0]; in go()
584 yy_t[grid][tid][pp] = lo[1] + hp[1] / 2.0 + pj * hp[1]; in go()
585 if (dim == 3) zz_t[grid][tid][pp] = lo[2] + hp[2] / 2.0 + pk * hp[2]; in go()
586 … PetscReal x[] = {xx_t[grid][tid][pp], yy_t[grid][tid][pp], dim == 2 ? 0 : zz_t[grid][tid][pp]}; in go()
587 p_shift *= ctx->thermal_speed[grid] / ctx->v_0; in go()
588 …if (ctx->sphere && PetscSqrtReal(PetscSqr(xx_t[grid][tid][pp]) + PetscSqr(yy_t[grid][tid][pp])) > … in go()
589 wp_t[grid][tid][pp] = 0; in go()
591 maxwellian(dim, x, kT_m, vole, p_shift, &wp_t[grid][tid][pp]); in go()
593 …maxwellian(dim, x, kT_m, vole, -p_shift, &wp_t[grid][tid][pp]); // symmetric shift of electron pla… in go()
605 xx_t[grid][tid][pp] = mag * PetscCosReal(2.0 * PETSC_PI * u2); in go()
606 yy_t[grid][tid][pp] = mag * PetscSinReal(2.0 * PETSC_PI * u2); in go()
607 … if (dim == 2 && xx_t[grid][tid][pp] < lo[0]) xx_t[grid][tid][pp] = -xx_t[grid][tid][pp]; in go()
608 if (dim == 3) zz_t[grid][tid][pp] = lo[2] + hp[2] / 2.0 + pk * hp[2]; in go()
610 … if (dim == 2 && xx_t[grid][tid][pp] < 0) xx_t[grid][tid][pp] = -xx_t[grid][tid][pp]; // ??? in go()
612 … while (zz_t[grid][tid][pp] >= hi[2] || zz_t[grid][tid][pp] <= lo[2]) zz_t[grid][tid][pp] *= .9; in go()
614 … while (xx_t[grid][tid][pp] >= hi[0] || xx_t[grid][tid][pp] <= lo[0]) xx_t[grid][tid][pp] *= .9; in go()
615 … while (yy_t[grid][tid][pp] >= hi[1] || yy_t[grid][tid][pp] <= lo[1]) yy_t[grid][tid][pp] *= .9; in go()
618 …while (PetscSqrtReal(PetscSqr(xx_t[grid][tid][pp]) + PetscSqr(yy_t[grid][tid][pp])) > 0.92 * hi[0]… in go()
619 xx_t[grid][tid][pp] *= .9; in go()
620 yy_t[grid][tid][pp] *= .9; in go()
624 p_shift *= ctx->thermal_speed[grid] / ctx->v_0; in go()
625 if (dim == 3) zz_t[grid][tid][pp] += p_shift; in go()
626 else yy_t[grid][tid][pp] += p_shift; in go()
627 …wp_t[grid][tid][pp] += ctx->n[grid] / NNreal * PetscSqrtReal(ctx->masses[ctx->species_offset[grid]… in go()
634 … PetscReal x[] = {xx_t[grid][tid][pp], yy_t[grid][tid][pp], dim == 2 ? 0 : zz_t[grid][tid][pp]}; in go()
635 … 2.0 * PETSC_PI * x[0] : 1, w = fact * wp_t[grid][tid][pp] * ctx->n_0 * ctx->masses[ctx->species_o… in go()
647 wp_t[grid][tid][pp] = 0; in go()
648 xx_t[grid][tid][pp] = 1.e-7; in go()
649 yy_t[grid][tid][pp++] = hi[1] - 5.e-7; in go()
650 wp_t[grid][tid][pp] = 0; in go()
651 xx_t[grid][tid][pp] = hi[0] - 5.e-7; in go()
652 yy_t[grid][tid][pp++] = 0; in go()
653 wp_t[grid][tid][pp] = 0; in go()
654 xx_t[grid][tid][pp] = 1.e-7; in go()
655 yy_t[grid][tid][pp++] = lo[1] + 5.e-7; in go()
658 …tscInt pj = 0; pj < 6; pj++) xx_t[grid][tid][p0 + pj] = yy_t[grid][tid][p0 + pj] = zz_t[grid][tid]… in go()
659 xx_t[grid][tid][p0 + 0] = lo[0]; in go()
660 xx_t[grid][tid][p0 + 1] = hi[0]; in go()
661 yy_t[grid][tid][p0 + 2] = lo[1]; in go()
662 yy_t[grid][tid][p0 + 3] = hi[1]; in go()
663 zz_t[grid][tid][p0 + 4] = lo[2]; in go()
664 zz_t[grid][tid][p0 + 5] = hi[2]; in go()
672 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in go() local
673 const PetscInt NN = nTargetP[grid]; in go()
675 … == 2 ? 2.0 * PETSC_PI * xx_t[grid][tid][pp] : 1, w = fact * ctx->n_0 * ctx->masses[ctx->species_o… in go()
689 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
692 DM dm = grid_dm[grid]; in go()
697 …%" PetscInt_FMT "] local block index %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid))); in go()
698 PetscCall(createSwarm(dm, dim, &globSwarmArray[LAND_PACK_IDX(v_id, grid)])); in go()
708 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
711 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
712 …nt_FMT ".%" PetscInt_FMT ") for block %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid)); in go()
713 …ierr_t = makeSwarm(sw, dim, Np_t[grid][tid], xx_t[grid][tid], yy_t[grid][tid], zz_t[gri… in go()
721 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
722 DM dm = grid_dm[grid]; in go()
723 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
724 …t_FMT ".%" PetscInt_FMT ") for block %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid))); in go()
725 PetscCall(createMp(dm, sw, &globMpArray[LAND_PACK_IDX(v_id, grid)])); in go()
726 … PetscCall(MatViewFromOptions(globMpArray[LAND_PACK_IDX(v_id, grid)], NULL, "-mp_mat_view")); in go()
735 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
737 DM dm = grid_dm[grid]; in go()
738 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
739 Vec subX = globXArray[LAND_PACK_IDX(v_id, grid)], work = t_fhat[grid][tid]; in go()
740 …nt_FMT ".%" PetscInt_FMT ") for block %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid)); in go()
741 …ierr_t = particlesToGrid(dm, sw, tid, dim, wp_t[grid][tid], subX, globMpArray[LAND_PACK_IDX(v_id, in go()
745 ierr_t = KSPSolve(t_ksp[grid][tid], work, subX); in go()
755 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
756 … PetscCall(PetscFree4(xx_t[grid][tid], yy_t[grid][tid], wp_t[grid][tid], zz_t[grid][tid])); in go()
776 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in go() local
779 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
780 Vec work, subX = globXArray[LAND_PACK_IDX(v_id, grid)]; in go()
784 …PetscCall(gridToParticles(grid_dm[grid], sw, subX, work, globMpArray[LAND_PACK_IDX(v_id, grid)], g… in go()
791 … * coords[pp * dim + 0] : 1, w = fact * wp[pp] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]]; in go()
803 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in go() local
806 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
812 …im + 0] : 1, w = fact * wp[pp] * ctx->n_0 * ctx->masses[ctx->species_offset[grid]], ww = w * N_inv; in go()
857 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in go() local
859 …o[3] = {-ctx->radius[grid], -ctx->radius[grid], -ctx->radius[grid]}, hi[3] = {ctx->radius[grid], c… in go()
862 PetscCall(DMDestroy(&globSwarmArray[LAND_PACK_IDX(v_id, grid)])); in go()
863 PetscCall(MatDestroy(&globMpArray[LAND_PACK_IDX(v_id, grid)])); in go()
865 PetscCall(MatGetLocalSize(g_Mass[grid], &Nv, NULL)); in go()
875 Np_t[grid][tid] = NN; in go()
876 …PetscCall(PetscMalloc4(NN, &xx_t[grid][tid], NN, &yy_t[grid][tid], NN, &wp_t[grid][tid], dim == 2 … in go()
885 wp_t[grid][tid][pp] = 0; in go()
886 xx_t[grid][tid][pp] = lo[0] + hp[0] / 2.0 + pi * hp[0]; in go()
887 yy_t[grid][tid][pp] = lo[1] + hp[1] / 2.0 + pj * hp[1]; in go()
888 if (dim == 3) zz_t[grid][tid][pp] = lo[2] + hp[2] / 2.0 + pk * hp[2]; in go()
894 wp_t[grid][tid][pp] = 0; in go()
895 xx_t[grid][tid][pp] = 1.e-7; in go()
896 yy_t[grid][tid][pp++] = hi[1] - 5.e-7; in go()
897 wp_t[grid][tid][pp] = 0; in go()
898 xx_t[grid][tid][pp] = hi[0] - 5.e-7; in go()
899 yy_t[grid][tid][pp++] = 0; in go()
900 wp_t[grid][tid][pp] = 0; in go()
901 xx_t[grid][tid][pp] = 1.e-7; in go()
902 yy_t[grid][tid][pp++] = lo[1] + 5.e-7; in go()
905 …tscInt pj = 0; pj < 6; pj++) xx_t[grid][tid][p0 + pj] = yy_t[grid][tid][p0 + pj] = zz_t[grid][tid]… in go()
906 xx_t[grid][tid][p0 + 0] = lo[0]; in go()
907 xx_t[grid][tid][p0 + 1] = hi[0]; in go()
908 yy_t[grid][tid][p0 + 2] = lo[1]; in go()
909 yy_t[grid][tid][p0 + 3] = hi[1]; in go()
910 zz_t[grid][tid][p0 + 4] = lo[2]; in go()
911 zz_t[grid][tid][p0 + 5] = hi[2]; in go()
920 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
925 DM dm = grid_dm[grid]; in go()
931 ….%" PetscInt_FMT "] local block index %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid)); in go()
932 ierr_t = createSwarm(dm, dim, &globSwarmArray[LAND_PACK_IDX(v_id, grid)]); in go()
945 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
948 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
949 …nt_FMT ".%" PetscInt_FMT ") for block %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid)); in go()
950 …ierr_t = makeSwarm(sw, dim, Np_t[grid][tid], xx_t[grid][tid], yy_t[grid][tid], zz_t[gri… in go()
960 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
962 DM dm = grid_dm[grid]; in go()
963 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go()
964 …nt_FMT ".%" PetscInt_FMT ") for block %" PetscInt_FMT "\n", v_id, grid, LAND_PACK_IDX(v_id, grid)); in go()
965 ierr_t = createMp(dm, sw, &globMpArray[LAND_PACK_IDX(v_id, grid)]); in go()
975 … for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
976 … PetscCall(PetscFree4(xx_t[grid][tid], yy_t[grid][tid], wp_t[grid][tid], zz_t[grid][tid])); in go()
1014 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { in go() local
1015 PetscCall(DMDestroy(&globSwarmArray[LAND_PACK_IDX(v_id, grid)])); in go()
1016 PetscCall(MatDestroy(&globMpArray[LAND_PACK_IDX(v_id, grid)])); in go()
1028 for (PetscInt grid = 0; grid < ctx->num_grids; grid++) { // add same particels for all grids in go() local
1029 PetscCall(MatDestroy(&g_Mass[grid])); in go()
1031 PetscCall(VecDestroy(&t_fhat[grid][tid])); in go()
1032 PetscCall(KSPDestroy(&t_ksp[grid][tid])); in go()