Lines Matching refs:sw
69 PetscErrorCode createSwarm(const DM dm, PetscInt dim, DM *sw) in createSwarm() argument
74 PetscCall(DMCreate(PETSC_COMM_SELF, sw)); in createSwarm()
75 PetscCall(DMSetType(*sw, DMSWARM)); in createSwarm()
76 PetscCall(DMSetDimension(*sw, dim)); in createSwarm()
77 PetscCall(DMSwarmSetType(*sw, DMSWARM_PIC)); in createSwarm()
78 PetscCall(DMSwarmSetCellDM(*sw, dm)); in createSwarm()
79 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "w_q", Nc, PETSC_REAL)); in createSwarm()
80 PetscCall(DMSwarmFinalizeFieldRegister(*sw)); in createSwarm()
81 PetscCall(DMSetFromOptions(*sw)); in createSwarm()
82 PetscCall(PetscObjectSetName((PetscObject)*sw, "Particle Grid")); in createSwarm()
86 static PetscErrorCode makeSwarm(DM sw, const PetscInt dim, const PetscInt Np, const PetscReal xx[],… in makeSwarm() argument
93 PetscCall(DMSwarmSetLocalSizes(sw, Np, zero)); in makeSwarm()
94 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in makeSwarm()
100 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in makeSwarm()
101 PetscCall(DMSwarmVectorDefineField(sw, "w_q")); in makeSwarm()
105 static PetscErrorCode createMp(const DM dm, DM sw, Mat *Mp_out) in createMp() argument
112 PetscCall(DMSwarmMigrate(sw, removePoints)); in createMp()
114 PetscCall(PetscObjectSetName((PetscObject)sw, "Particle Grid")); in createMp()
129 PetscCall(DMCreateMassMatrix(sw, dm, &M_p)); in createMp()
130 PetscCall(DMViewFromOptions(sw, NULL, "-ex30_sw_view")); in createMp()
136 static PetscErrorCode particlesToGrid(const DM dm, DM sw, const PetscInt a_tid, const PetscInt dim,… in particlesToGrid() argument
144 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wq)); in particlesToGrid()
145 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in particlesToGrid()
147 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wq)); in particlesToGrid()
149 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &ff)); in particlesToGrid()
152 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &ff)); in particlesToGrid()
159 PetscErrorCode gridToParticles(const DM dm, DM sw, const Vec rhs, Vec work_ferhs, Mat M_p, Mat Mass) in gridToParticles() argument
245 PetscCall(DMSwarmCreateMassMatrixSquare(sw, dm, &PM_p)); in gridToParticles()
252 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &ff)); // this grabs access in gridToParticles()
269 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &ff)); in gridToParticles()
307 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in gridToParticles_private() local
309 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); // take data out here in gridToParticles_private()
310 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in gridToParticles_private()
311 PetscCall(DMSwarmGetLocalSize(sw, &npoints)); in gridToParticles_private()
319 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in gridToParticles_private()
320 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in gridToParticles_private()
327 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in gridToParticles_private() local
329 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); // take data out here in gridToParticles_private()
330 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in gridToParticles_private()
331 PetscCall(DMSwarmGetLocalSize(sw, &npoints)); in gridToParticles_private()
339 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in gridToParticles_private()
340 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in gridToParticles_private()
396 DM sw = printCtx->globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in PostStep() local
401 …PetscCall(gridToParticles(printCtx->grid_dm[grid], sw, subX, work, printCtx->globMpArray[LAND_PACK… in PostStep()
404 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in PostStep()
405 PetscCall(DMSwarmGetLocalSize(sw, &NN)); in PostStep()
406 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); in PostStep()
415 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in PostStep()
416 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in PostStep()
423 DM sw = printCtx->globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in PostStep() local
425 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in PostStep()
426 PetscCall(DMSwarmGetLocalSize(sw, &NN)); in PostStep()
427 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); in PostStep()
434 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in PostStep()
435 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in PostStep()
711 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
713 …ierr_t = makeSwarm(sw, dim, Np_t[grid][tid], xx_t[grid][tid], yy_t[grid][tid], zz_t[gri… in go()
723 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
725 PetscCall(createMp(dm, sw, &globMpArray[LAND_PACK_IDX(v_id, grid)])); in go()
738 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
741 …ierr_t = particlesToGrid(dm, sw, tid, dim, wp_t[grid][tid], subX, globMpArray[LAND_PACK_IDX(v_id, … in go()
779 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
784 …PetscCall(gridToParticles(grid_dm[grid], sw, subX, work, globMpArray[LAND_PACK_IDX(v_id, grid)], g… in go()
787 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in go()
788 PetscCall(DMSwarmGetLocalSize(sw, &NN)); in go()
789 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); in go()
797 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in go()
798 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in go()
806 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
808 PetscCall(DMSwarmGetLocalSize(sw, &NN)); in go()
809 PetscCall(DMSwarmGetField(sw, "w_q", &bs, &dtype, (void **)&wp)); in go()
810 PetscCall(DMSwarmGetField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in go()
818 PetscCall(DMSwarmRestoreField(sw, "w_q", &bs, &dtype, (void **)&wp)); in go()
819 PetscCall(DMSwarmRestoreField(sw, "DMSwarmPIC_coor", &bs, &dtype, (void **)&coords)); in go()
836 DM sw = globSwarmArray[LAND_PACK_IDX(v_target % ctx->batch_sz, g_target)]; in go() local
838 PetscCall(DMSetOutputSequenceNumber(sw, 0, 0.0)); in go()
840 PetscCall(DMViewFromOptions(sw, NULL, "-weights_sw_view")); in go()
841 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in go()
844 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in go()
948 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
950 …ierr_t = makeSwarm(sw, dim, Np_t[grid][tid], xx_t[grid][tid], yy_t[grid][tid], zz_t[gri… in go()
963 DM sw = globSwarmArray[LAND_PACK_IDX(v_id, grid)]; in go() local
965 ierr_t = createMp(dm, sw, &globMpArray[LAND_PACK_IDX(v_id, grid)]); in go()
984 DM sw = globSwarmArray[LAND_PACK_IDX(v_target % ctx->batch_sz, g_target)]; in go() local
986 PetscCall(DMSetOutputSequenceNumber(sw, 0, 0.0)); in go()
987 PetscCall(DMViewFromOptions(sw, NULL, "-resampled_weights_sw_view")); in go()
988 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in go()
991 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in go()
992 PetscCall(DMSwarmViewXDMF(sw, "resampled.xmf")); in go()