Lines Matching refs:sw

325 static PetscErrorCode SetupContext(DM dm, DM sw, AppCtx *ctx)  in SetupContext()  argument
355 PetscCall(DMGetDimension(sw, &dim)); in SetupContext()
391 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in SetupContext()
579 static PetscErrorCode CheckNonNegativeWeights(DM sw, AppCtx *ctx) in CheckNonNegativeWeights() argument
586 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&w)); in CheckNonNegativeWeights()
587 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in CheckNonNegativeWeights()
589 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&w)); in CheckNonNegativeWeights()
615 static PetscErrorCode computeVelocityFEMMoments(DM sw, PetscReal moments[], AppCtx *ctx) in computeVelocityFEMMoments() argument
623 PetscCall(DMSwarmSetCellDMActive(sw, "velocity")); in computeVelocityFEMMoments()
624 PetscCall(DMSwarmGetCellDMActive(sw, &celldm)); in computeVelocityFEMMoments()
627 PetscCall(DMSwarmProjectFields(sw, vdm, 1, fields, u, SCATTER_FORWARD)); in computeVelocityFEMMoments()
630 PetscCall(DMSwarmSetCellDMActive(sw, "space")); in computeVelocityFEMMoments()
749 DM sw; in MonitorEField() local
762 PetscCall(TSGetDM(ts, &sw)); in MonitorEField()
763 PetscCall(DMGetDimension(sw, &dim)); in MonitorEField()
764 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MonitorEField()
765 PetscCall(DMSwarmGetSize(sw, &gNp)); in MonitorEField()
766 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorEField()
767 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorEField()
768 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorEField()
769 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in MonitorEField()
770 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorEField()
794 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorEField()
795 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorEField()
796 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorEField()
797 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in MonitorEField()
806 PetscCall(DMSwarmComputeMoments(sw, "velocity", "w_q", pmoments)); in MonitorEField()
808 PetscCall(DMViewFromOptions(sw, NULL, "-sw_efield_view")); in MonitorEField()
879 DM sw; in MonitorMoments() local
884 PetscCall(TSGetDM(ts, &sw)); in MonitorMoments()
886 PetscCall(DMSwarmComputeMoments(sw, "velocity", "w_q", pmoments)); in MonitorMoments()
887 PetscCall(computeVelocityFEMMoments(sw, fmoments, ctx)); in MonitorMoments()
916 DM sw; in ComputeMomentFields() local
928 PetscCall(TSGetDM(ts, &sw)); in ComputeMomentFields()
929 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeMomentFields()
930 PetscCall(DMSwarmSetCellDMActive(sw, "moment fields")); in ComputeMomentFields()
931 PetscCall(DMSwarmMigrate(sw, PETSC_FALSE)); in ComputeMomentFields()
933 PetscCall(DMCreateMassMatrix(sw, ctx->dmN, &M_p)); in ComputeMomentFields()
934 PetscCall(DMCreateGradientMatrix(sw, ctx->dmN, &D_p)); in ComputeMomentFields()
935 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in ComputeMomentFields()
936 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "velocity", &v)); in ComputeMomentFields()
937 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "E_field", &E)); in ComputeMomentFields()
982 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "velocity", &v)); in ComputeMomentFields()
983 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in ComputeMomentFields()
984 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "E_field", &E)); in ComputeMomentFields()
989 PetscCall(KSPCreate(PetscObjectComm((PetscObject)sw), &ksp)); in ComputeMomentFields()
1034 PetscCall(PetscPrintf(PetscObjectComm((PetscObject)sw), "Mass Residual: %g\n", (double)res[0])); in ComputeMomentFields()
1035 …PetscCall(PetscPrintf(PetscObjectComm((PetscObject)sw), "Momentum Residual: %g\n", (double)res[1])… in ComputeMomentFields()
1036 PetscCall(PetscPrintf(PetscObjectComm((PetscObject)sw), "Energy Residual: %g\n", (double)res[2])); in ComputeMomentFields()
1067 PetscCall(DMSwarmSetCellDMActive(sw, "space")); in ComputeMomentFields()
1110 DM sw; in MonitorInitialConditions() local
1118 PetscCall(TSGetDM(ts, &sw)); in MonitorInitialConditions()
1119 PetscCall(DMGetDimension(sw, &dim)); in MonitorInitialConditions()
1120 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MonitorInitialConditions()
1132 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&pos)); in MonitorInitialConditions()
1133 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorInitialConditions()
1134 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorInitialConditions()
1139 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&pos)); in MonitorInitialConditions()
1140 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorInitialConditions()
1141 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorInitialConditions()
1155 DM sw, dm; in MonitorVelocity() local
1165 PetscCall(TSGetDM(ts, &sw)); in MonitorVelocity()
1166 PetscCall(DMGetDimension(sw, &dim)); in MonitorVelocity()
1168 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorVelocity()
1194 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorVelocity()
1195 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorVelocity()
1196 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorVelocity()
1203 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorVelocity()
1226 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorVelocity()
1229 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorVelocity()
1230 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorVelocity()
1231 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorVelocity()
1251 DM dm, sw; in MonitorPositions_2D() local
1261 PetscCall(TSGetDM(ts, &sw)); in MonitorPositions_2D()
1262 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorPositions_2D()
1266 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPositions_2D()
1267 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&v)); in MonitorPositions_2D()
1268 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPositions_2D()
1269 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&s)); in MonitorPositions_2D()
1270 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorPositions_2D()
1279 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorPositions_2D()
1295 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorPositions_2D()
1301 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorPositions_2D()
1302 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPositions_2D()
1303 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPositions_2D()
1304 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&v)); in MonitorPositions_2D()
1305 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&s)); in MonitorPositions_2D()
1313 DM dm, sw; in MonitorPoisson() local
1317 PetscCall(TSGetDM(ts, &sw)); in MonitorPoisson()
1318 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorPoisson()
1331 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPoisson()
1332 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorPoisson()
1333 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPoisson()
1335 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorPoisson()
1340 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorPoisson()
1348 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorPoisson()
1353 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorPoisson()
1354 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPoisson()
1355 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPoisson()
1356 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorPoisson()
1728 static PetscErrorCode CreateVelocityDM(DM sw, DM *vdm) in CreateVelocityDM() argument
1767 static PetscErrorCode InitializeParticles_Centroid(DM sw) in InitializeParticles_Centroid() argument
1769 DM_Swarm *swarm = (DM_Swarm *)sw->data; in InitializeParticles_Centroid()
1781 PetscCall(PetscObjectGetComm((PetscObject)sw, &comm)); in InitializeParticles_Centroid()
1784 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in InitializeParticles_Centroid()
1786 if (flg) PetscCall(DMSwarmSetNumSpecies(sw, Ns)); in InitializeParticles_Centroid()
1792 PetscCall(DMGetDimension(sw, &dim)); in InitializeParticles_Centroid()
1793 PetscCall(DMSwarmGetCellDM(sw, &xdm)); in InitializeParticles_Centroid()
1796 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in InitializeParticles_Centroid()
1803 PetscCall(DMSwarmSetLocalSizes(sw, Np, 0)); in InitializeParticles_Centroid()
1814 PetscCall(DMSwarmGetCellDMActive(sw, &celldm)); in InitializeParticles_Centroid()
1816 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in InitializeParticles_Centroid()
1817 PetscCall(DMSwarmGetField(sw, cellidname, NULL, NULL, (void **)&cellid)); in InitializeParticles_Centroid()
1826 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in InitializeParticles_Centroid()
1827 PetscCall(DMSwarmRestoreField(sw, cellidname, NULL, NULL, (void **)&cellid)); in InitializeParticles_Centroid()
1830 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in InitializeParticles_Centroid()
1831 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&v)); in InitializeParticles_Centroid()
1832 PetscCall(DMSwarmSortGetAccess(sw)); in InitializeParticles_Centroid()
1840 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in InitializeParticles_Centroid()
1866 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in InitializeParticles_Centroid()
1868 PetscCall(DMSwarmSortRestoreAccess(sw)); in InitializeParticles_Centroid()
1869 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in InitializeParticles_Centroid()
1870 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&v)); in InitializeParticles_Centroid()
1888 static PetscErrorCode InitializeWeights(DM sw, PetscReal totalWeight, PetscProbFn *func, const Pets… in InitializeWeights() argument
1899 …PetscInt dim, Ns, xcStart, xcEnd, vcStart, vcEnd, debug = ((DM_Swarm *)sw->data)->printWei… in InitializeWeights()
1904 PetscCall(PetscObjectGetComm((PetscObject)sw, &comm)); in InitializeWeights()
1906 PetscCall(DMGetDimension(sw, &dim)); in InitializeWeights()
1907 PetscCall(DMSwarmGetCellDM(sw, &xdm)); in InitializeWeights()
1908 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in InitializeWeights()
1910 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in InitializeWeights()
1921 PetscCall(DMSwarmSortGetAccess(sw)); in InitializeWeights()
1922 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeWeights()
1932 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in InitializeWeights()
1975 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in InitializeWeights()
1977 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeWeights()
1978 PetscCall(DMSwarmSortRestoreAccess(sw)); in InitializeWeights()
1991 static PetscErrorCode InitializeParticles_PerturbedWeights(DM sw, AppCtx *ctx) in InitializeParticles_PerturbedWeights() argument
1997 PetscCall(DMGetDimension(sw, &dim)); in InitializeParticles_PerturbedWeights()
1998 PetscCall(InitializeParticles_Centroid(sw)); in InitializeParticles_PerturbedWeights()
1999 …PetscCall(InitializeWeights(sw, ctx->totalWeight, dim == 1 ? PetscPDFCosine1D : PetscPDFCosine2D, … in InitializeParticles_PerturbedWeights()
2003 static PetscErrorCode InitializeConstants(DM sw, AppCtx *ctx) in InitializeConstants() argument
2011 PetscCall(DMSwarmGetCellDM(sw, &dm)); in InitializeConstants()
2012 PetscCall(DMGetDimension(sw, &dim)); in InitializeConstants()
2013 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in InitializeConstants()
2015 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeConstants()
2016 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in InitializeConstants()
2021 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeConstants()
2022 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in InitializeConstants()
2071 static PetscErrorCode CreateSwarm(DM dm, AppCtx *ctx, DM *sw) in CreateSwarm() argument
2080 PetscCall(DMCreate(PetscObjectComm((PetscObject)dm), sw)); in CreateSwarm()
2081 PetscCall(DMSetType(*sw, DMSWARM)); in CreateSwarm()
2082 PetscCall(DMSetDimension(*sw, dim)); in CreateSwarm()
2083 PetscCall(DMSwarmSetType(*sw, DMSWARM_PIC)); in CreateSwarm()
2084 PetscCall(DMSetApplicationContext(*sw, ctx)); in CreateSwarm()
2086 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "w_q", 1, PETSC_SCALAR)); in CreateSwarm()
2087 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "velocity", dim, PETSC_REAL)); in CreateSwarm()
2088 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "species", 1, PETSC_INT)); in CreateSwarm()
2089 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "E_field", dim, PETSC_REAL)); in CreateSwarm()
2094 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
2099 PetscCall(CreateVelocityDM(*sw, &vdm)); in CreateSwarm()
2101 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
2112 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
2122 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
2125 PetscCall(DMSetFromOptions(*sw)); in CreateSwarm()
2126 PetscCall(DMSetUp(*sw)); in CreateSwarm()
2128 PetscCall(DMSwarmSetCellDMActive(*sw, "space")); in CreateSwarm()
2129 ctx->swarm = *sw; in CreateSwarm()
2132 PetscCall(InitializeParticles_PerturbedWeights(*sw, ctx)); in CreateSwarm()
2134 PetscCall(DMSwarmComputeLocalSizeFromOptions(*sw)); in CreateSwarm()
2135 PetscCall(DMSwarmInitializeCoordinates(*sw)); in CreateSwarm()
2136 PetscCall(DMSwarmInitializeVelocitiesFromOptions(*sw, v0)); in CreateSwarm()
2138 PetscCall(PetscObjectSetName((PetscObject)*sw, "Particles")); in CreateSwarm()
2139 PetscCall(DMViewFromOptions(*sw, NULL, "-sw_view")); in CreateSwarm()
2143 static PetscErrorCode ComputeFieldAtParticles_Coulomb(SNES snes, DM sw, PetscReal E[]) in ComputeFieldAtParticles_Coulomb() argument
2153 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Coulomb()
2154 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Coulomb()
2155 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in ComputeFieldAtParticles_Coulomb()
2156 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Coulomb()
2158 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Coulomb()
2159 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in ComputeFieldAtParticles_Coulomb()
2179 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in ComputeFieldAtParticles_Coulomb()
2180 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Coulomb()
2184 static PetscErrorCode ComputeFieldAtParticles_Primal(SNES snes, DM sw, Mat M_p, PetscReal E[]) in ComputeFieldAtParticles_Primal() argument
2199 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Primal()
2200 PetscCall(PetscLogEventBegin(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
2201 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Primal()
2202 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Primal()
2208 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Primal()
2216 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Primal()
2240 PetscCall(PetscLogEventEnd(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
2244 PetscCall(DMSwarmSortGetAccess(sw)); in ComputeFieldAtParticles_Primal()
2246 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Primal()
2248 PetscCall(PetscLogEventBegin(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
2257 PetscCall(DMSwarmSortGetNumberOfPointsPerCell(sw, c, &Ncp)); in ComputeFieldAtParticles_Primal()
2271 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Primal()
2292 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Primal()
2297 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Primal()
2298 PetscCall(DMSwarmSortRestoreAccess(sw)); in ComputeFieldAtParticles_Primal()
2301 PetscCall(PetscLogEventEnd(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
2305 static PetscErrorCode ComputeFieldAtParticles_Mixed(SNES snes, DM sw, Mat M_p, PetscReal E[]) in ComputeFieldAtParticles_Mixed() argument
2320 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Mixed()
2321 PetscCall(PetscLogEventBegin(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
2322 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Mixed()
2323 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Mixed()
2331 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Mixed()
2339 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Mixed()
2370 PetscCall(PetscLogEventEnd(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
2374 PetscCall(DMSwarmSortGetAccess(sw)); in ComputeFieldAtParticles_Mixed()
2376 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Mixed()
2378 PetscCall(PetscLogEventBegin(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
2387 PetscCall(DMSwarmSortGetNumberOfPointsPerCell(sw, c, &Ncp)); in ComputeFieldAtParticles_Mixed()
2398 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Mixed()
2419 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Mixed()
2424 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Mixed()
2425 PetscCall(DMSwarmSortRestoreAccess(sw)); in ComputeFieldAtParticles_Mixed()
2428 PetscCall(PetscLogEventEnd(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
2432 static PetscErrorCode ComputeFieldAtParticles(SNES snes, DM sw) in ComputeFieldAtParticles() argument
2441 PetscValidHeaderSpecific(sw, DM_CLASSID, 2); in ComputeFieldAtParticles()
2442 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles()
2443 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles()
2444 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles()
2446 PetscCall(DMSwarmSetCellDMActive(sw, "moments")); in ComputeFieldAtParticles()
2448 PetscCall(DMSwarmMigrate(sw, PETSC_FALSE)); in ComputeFieldAtParticles()
2449 PetscCall(DMCreateMassMatrix(sw, ctx->dmPot, &M_p)); in ComputeFieldAtParticles()
2450 PetscCall(DMSwarmSetCellDMActive(sw, "space")); in ComputeFieldAtParticles()
2452 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in ComputeFieldAtParticles()
2458 PetscCall(ComputeFieldAtParticles_Coulomb(snes, sw, E)); in ComputeFieldAtParticles()
2461 PetscCall(ComputeFieldAtParticles_Primal(snes, sw, M_p, E)); in ComputeFieldAtParticles()
2464 PetscCall(ComputeFieldAtParticles_Mixed(snes, sw, M_p, E)); in ComputeFieldAtParticles()
2471 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in ComputeFieldAtParticles()
2478 DM sw; in RHSFunction() local
2486 PetscCall(TSGetDM(ts, &sw)); in RHSFunction()
2487 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunction()
2489 PetscCall(DMGetDimension(sw, &dim)); in RHSFunction()
2490 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSFunction()
2491 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunction()
2501 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunction()
2515 DM sw; in RHSJacobian() local
2520 PetscCall(TSGetDM(ts, &sw)); in RHSJacobian()
2521 PetscCall(DMGetDimension(sw, &dim)); in RHSJacobian()
2522 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSJacobian()
2524 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSJacobian()
2525 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSJacobian()
2536 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSJacobian()
2537 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSJacobian()
2546 DM sw; in RHSFunctionX() local
2553 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionX()
2554 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionX()
2570 DM sw; in RHSFunctionV() local
2581 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionV()
2582 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunctionV()
2584 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionV()
2585 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionV()
2614 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionV()
2623 DM sw; in RHSJacobianS() local
2627 PetscCall(TSGetDM(ts, &sw)); in RHSJacobianS()
2628 PetscCall(DMGetDimension(sw, &dim)); in RHSJacobianS()
2646 DM sw; in RHSObjectiveF() local
2653 PetscCall(TSGetDM(ts, &sw)); in RHSObjectiveF()
2654 PetscCall(DMGetDimension(sw, &dim)); in RHSObjectiveF()
2662 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSObjectiveF()
2663 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSObjectiveF()
2664 PetscCall(DMSwarmSortGetAccess(sw)); in RHSObjectiveF()
2672 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in RHSObjectiveF()
2679 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in RHSObjectiveF()
2682 PetscCall(DMSwarmSortRestoreAccess(sw)); in RHSObjectiveF()
2683 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSObjectiveF()
2684 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSObjectiveF()
2691 DM sw; in RHSFunctionG() local
2700 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionG()
2701 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionG()
2702 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSFunctionG()
2709 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunctionG()
2711 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSFunctionG()
2712 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSFunctionG()
2713 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionG()
2720 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionG()
2721 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSFunctionG()
2722 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSFunctionG()
2730 DM sw; in CreateSolution() local
2735 PetscCall(TSGetDM(ts, &sw)); in CreateSolution()
2736 PetscCall(DMGetDimension(sw, &dim)); in CreateSolution()
2737 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in CreateSolution()
2750 DM sw; in SetProblem() local
2753 PetscCall(TSGetDM(ts, &sw)); in SetProblem()
2754 PetscCall(DMGetApplicationContext(sw, &ctx)); in SetProblem()
2760 PetscCall(DMGetDimension(sw, &dim)); in SetProblem()
2761 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in SetProblem()
2779 PetscCall(DMGetDimension(sw, &dim)); in SetProblem()
2780 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in SetProblem()
2808 DM sw; in DMSwarmTSRedistribute() local
2814 PetscCall(TSGetDM(ts, &sw)); in DMSwarmTSRedistribute()
2822 PetscCall(TSSetDM(ts, sw)); in DMSwarmTSRedistribute()
2838 DM sw, cdm; in line() local
2843 sw = ctx->swarm; in line()
2844 PetscCall(DMSwarmGetCellDM(sw, &cdm)); in line()
2847 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in line()
2870 DM sw; in InitializeSolveAndSwarm() local
2877 PetscCall(TSGetDM(ts, &sw)); in InitializeSolveAndSwarm()
2878 PetscCall(DMGetApplicationContext(sw, &ctx)); in InitializeSolveAndSwarm()
2879 PetscCall(DMGetDimension(sw, &dim)); in InitializeSolveAndSwarm()
2883 PetscCall(InitializeParticles_PerturbedWeights(sw, ctx)); in InitializeSolveAndSwarm()
2885 PetscCall(DMSwarmComputeLocalSizeFromOptions(sw)); in InitializeSolveAndSwarm()
2886 PetscCall(DMSwarmInitializeCoordinates(sw)); in InitializeSolveAndSwarm()
2887 PetscCall(DMSwarmInitializeVelocitiesFromOptions(sw, v0)); in InitializeSolveAndSwarm()
2889 PetscCall(DMSwarmMigrate(sw, PETSC_TRUE)); in InitializeSolveAndSwarm()
2892 PetscCall(DMSetUp(sw)); in InitializeSolveAndSwarm()
2896 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in InitializeSolveAndSwarm()
2897 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "velocity", &gv)); in InitializeSolveAndSwarm()
2900 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in InitializeSolveAndSwarm()
2901 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "velocity", &gv)); in InitializeSolveAndSwarm()
2915 DM sw, cdm; in MigrateParticles() local
2920 PetscCall(TSGetDM(ts, &sw)); in MigrateParticles()
2921 PetscCall(DMGetApplicationContext(sw, &ctx)); in MigrateParticles()
2922 PetscCall(DMViewFromOptions(sw, NULL, "-migrate_view_pre")); in MigrateParticles()
2935 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in MigrateParticles()
2936 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "velocity", &gv)); in MigrateParticles()
2940 PetscCall(DMSwarmGetCellDM(sw, &cdm)); in MigrateParticles()
2947 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MigrateParticles()
2972 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "velocity", &gv)); in MigrateParticles()
2973 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in MigrateParticles()
2975 PetscCall(DMSwarmMigrate(sw, PETSC_TRUE)); in MigrateParticles()
2988 PetscCall(DMSwarmRemap(sw)); in MigrateParticles()
2999 DM dm, sw; in main() local
3012 PetscCall(CreateSwarm(dm, &ctx, &sw)); in main()
3014 PetscCall(InitializeConstants(sw, &ctx)); in main()
3015 PetscCall(DMSetApplicationContext(sw, &ctx)); in main()
3019 PetscCall(TSSetDM(ts, sw)); in main()
3038 PetscCall(SetupContext(dm, sw, &ctx)); in main()
3044 PetscCall(CheckNonNegativeWeights(sw, &ctx)); in main()
3073 PetscCall(DMDestroy(&sw)); in main()