Lines Matching refs:sw

244 static PetscErrorCode SetupContext(DM dm, DM sw, AppCtx *ctx)  in SetupContext()  argument
270 PetscCall(DMGetDimension(sw, &dim)); in SetupContext()
306 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in SetupContext()
417 static PetscErrorCode CheckNonNegativeWeights(DM sw, AppCtx *ctx) in CheckNonNegativeWeights() argument
424 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&w)); in CheckNonNegativeWeights()
425 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in CheckNonNegativeWeights()
427 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&w)); in CheckNonNegativeWeights()
453 static PetscErrorCode computeVelocityFEMMoments(DM sw, PetscReal moments[], AppCtx *user) in computeVelocityFEMMoments() argument
461 PetscCall(DMSwarmSetCellDMActive(sw, "velocity")); in computeVelocityFEMMoments()
462 PetscCall(DMSwarmGetCellDMActive(sw, &celldm)); in computeVelocityFEMMoments()
468 PetscCall(PetscObjectQuery((PetscObject)sw, "__vdm__", (PetscObject *)&vdm)); in computeVelocityFEMMoments()
470 PetscCall(DMGetDimension(sw, &dim)); in computeVelocityFEMMoments()
471 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in computeVelocityFEMMoments()
472 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&v)); in computeVelocityFEMMoments()
479 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&v)); in computeVelocityFEMMoments()
499 PetscCall(DMSwarmProjectFields(sw, vdm, 1, fields, u, SCATTER_FORWARD)); in computeVelocityFEMMoments()
502 PetscCall(DMSwarmSetCellDMActive(sw, "space")); in computeVelocityFEMMoments()
515 DM sw; in MonitorEField() local
526 PetscCall(TSGetDM(ts, &sw)); in MonitorEField()
527 PetscCall(DMGetDimension(sw, &dim)); in MonitorEField()
528 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MonitorEField()
529 PetscCall(DMSwarmGetSize(sw, &gNp)); in MonitorEField()
530 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorEField()
531 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorEField()
532 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorEField()
533 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in MonitorEField()
534 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorEField()
558 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorEField()
559 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorEField()
560 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorEField()
561 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in MonitorEField()
568 PetscCall(DMSwarmComputeMoments(sw, "velocity", "w_q", pmoments)); in MonitorEField()
570 PetscCall(DMViewFromOptions(sw, NULL, "-sw_efield_view")); in MonitorEField()
577 DM sw; in MonitorMoments() local
582 PetscCall(TSGetDM(ts, &sw)); in MonitorMoments()
584 PetscCall(DMSwarmComputeMoments(sw, "velocity", "w_q", pmoments)); in MonitorMoments()
585 PetscCall(computeVelocityFEMMoments(sw, fmoments, ctx)); in MonitorMoments()
594 DM sw; in MonitorInitialConditions() local
602 PetscCall(TSGetDM(ts, &sw)); in MonitorInitialConditions()
603 PetscCall(DMGetDimension(sw, &dim)); in MonitorInitialConditions()
604 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MonitorInitialConditions()
616 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&pos)); in MonitorInitialConditions()
617 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorInitialConditions()
618 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorInitialConditions()
623 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&pos)); in MonitorInitialConditions()
624 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorInitialConditions()
625 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorInitialConditions()
639 DM sw, dm; in MonitorVelocity() local
649 PetscCall(TSGetDM(ts, &sw)); in MonitorVelocity()
650 PetscCall(DMGetDimension(sw, &dim)); in MonitorVelocity()
652 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorVelocity()
678 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorVelocity()
679 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorVelocity()
680 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorVelocity()
687 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorVelocity()
710 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorVelocity()
713 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in MonitorVelocity()
714 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorVelocity()
715 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorVelocity()
735 DM dm, sw; in MonitorPositions_2D() local
745 PetscCall(TSGetDM(ts, &sw)); in MonitorPositions_2D()
746 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorPositions_2D()
750 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPositions_2D()
751 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&v)); in MonitorPositions_2D()
752 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPositions_2D()
753 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&s)); in MonitorPositions_2D()
754 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorPositions_2D()
763 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorPositions_2D()
779 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorPositions_2D()
785 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorPositions_2D()
786 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPositions_2D()
787 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPositions_2D()
788 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&v)); in MonitorPositions_2D()
789 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&s)); in MonitorPositions_2D()
797 DM dm, sw; in MonitorPoisson() local
801 PetscCall(TSGetDM(ts, &sw)); in MonitorPoisson()
802 PetscCall(DMSwarmGetCellDM(sw, &dm)); in MonitorPoisson()
815 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPoisson()
816 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorPoisson()
817 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPoisson()
819 PetscCall(DMSwarmSortGetAccess(sw)); in MonitorPoisson()
824 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in MonitorPoisson()
832 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in MonitorPoisson()
837 PetscCall(DMSwarmSortRestoreAccess(sw)); in MonitorPoisson()
838 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in MonitorPoisson()
839 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in MonitorPoisson()
840 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in MonitorPoisson()
1114 static PetscErrorCode CreateVelocityDM(DM sw, DM *vdm) in CreateVelocityDM() argument
1153 static PetscErrorCode InitializeParticles_Centroid(DM sw) in InitializeParticles_Centroid() argument
1155 DM_Swarm *swarm = (DM_Swarm *)sw->data; in InitializeParticles_Centroid()
1167 PetscCall(PetscObjectGetComm((PetscObject)sw, &comm)); in InitializeParticles_Centroid()
1170 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in InitializeParticles_Centroid()
1172 if (flg) PetscCall(DMSwarmSetNumSpecies(sw, Ns)); in InitializeParticles_Centroid()
1178 PetscCall(DMGetDimension(sw, &dim)); in InitializeParticles_Centroid()
1179 PetscCall(DMSwarmGetCellDM(sw, &xdm)); in InitializeParticles_Centroid()
1182 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in InitializeParticles_Centroid()
1189 PetscCall(DMSwarmSetLocalSizes(sw, Np, 0)); in InitializeParticles_Centroid()
1200 PetscCall(DMSwarmGetCellDMActive(sw, &celldm)); in InitializeParticles_Centroid()
1202 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in InitializeParticles_Centroid()
1203 PetscCall(DMSwarmGetField(sw, cellidname, NULL, NULL, (void **)&cellid)); in InitializeParticles_Centroid()
1212 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in InitializeParticles_Centroid()
1213 PetscCall(DMSwarmRestoreField(sw, cellidname, NULL, NULL, (void **)&cellid)); in InitializeParticles_Centroid()
1216 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in InitializeParticles_Centroid()
1217 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&v)); in InitializeParticles_Centroid()
1218 PetscCall(DMSwarmSortGetAccess(sw)); in InitializeParticles_Centroid()
1226 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in InitializeParticles_Centroid()
1252 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in InitializeParticles_Centroid()
1254 PetscCall(DMSwarmSortRestoreAccess(sw)); in InitializeParticles_Centroid()
1255 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&x)); in InitializeParticles_Centroid()
1256 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&v)); in InitializeParticles_Centroid()
1274 static PetscErrorCode InitializeWeights(DM sw, PetscReal totalWeight, PetscProbFn *func, const Pets… in InitializeWeights() argument
1285 …PetscInt dim, Ns, xcStart, xcEnd, vcStart, vcEnd, debug = ((DM_Swarm *)sw->data)->printWei… in InitializeWeights()
1290 PetscCall(PetscObjectGetComm((PetscObject)sw, &comm)); in InitializeWeights()
1292 PetscCall(DMGetDimension(sw, &dim)); in InitializeWeights()
1293 PetscCall(DMSwarmGetCellDM(sw, &xdm)); in InitializeWeights()
1294 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in InitializeWeights()
1296 PetscCall(DMSwarmGetCellDMByName(sw, "velocity", &celldm)); in InitializeWeights()
1307 PetscCall(DMSwarmSortGetAccess(sw)); in InitializeWeights()
1308 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeWeights()
1318 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Npc, &pidx)); in InitializeWeights()
1361 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Npc, &pidx)); in InitializeWeights()
1363 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeWeights()
1364 PetscCall(DMSwarmSortRestoreAccess(sw)); in InitializeWeights()
1377 static PetscErrorCode InitializeParticles_PerturbedWeights(DM sw, AppCtx *ctx) in InitializeParticles_PerturbedWeights() argument
1383 PetscCall(DMGetDimension(sw, &dim)); in InitializeParticles_PerturbedWeights()
1384 PetscCall(InitializeParticles_Centroid(sw)); in InitializeParticles_PerturbedWeights()
1385 …PetscCall(InitializeWeights(sw, ctx->totalWeight, dim == 1 ? PetscPDFCosine1D : PetscPDFCosine2D, … in InitializeParticles_PerturbedWeights()
1389 static PetscErrorCode InitializeConstants(DM sw, AppCtx *ctx) in InitializeConstants() argument
1397 PetscCall(DMSwarmGetCellDM(sw, &dm)); in InitializeConstants()
1398 PetscCall(DMGetDimension(sw, &dim)); in InitializeConstants()
1399 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in InitializeConstants()
1401 PetscCall(DMSwarmGetField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeConstants()
1402 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in InitializeConstants()
1407 PetscCall(DMSwarmRestoreField(sw, "w_q", NULL, NULL, (void **)&weight)); in InitializeConstants()
1408 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in InitializeConstants()
1457 static PetscErrorCode CreateSwarm(DM dm, AppCtx *ctx, DM *sw) in CreateSwarm() argument
1466 PetscCall(DMCreate(PetscObjectComm((PetscObject)dm), sw)); in CreateSwarm()
1467 PetscCall(DMSetType(*sw, DMSWARM)); in CreateSwarm()
1468 PetscCall(DMSetDimension(*sw, dim)); in CreateSwarm()
1469 PetscCall(DMSwarmSetType(*sw, DMSWARM_PIC)); in CreateSwarm()
1470 PetscCall(DMSetApplicationContext(*sw, ctx)); in CreateSwarm()
1472 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "w_q", 1, PETSC_SCALAR)); in CreateSwarm()
1473 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "velocity", dim, PETSC_REAL)); in CreateSwarm()
1474 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "species", 1, PETSC_INT)); in CreateSwarm()
1475 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "E_field", dim, PETSC_REAL)); in CreateSwarm()
1480 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
1485 PetscCall(CreateVelocityDM(*sw, &vdm)); in CreateSwarm()
1487 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
1498 PetscCall(DMSwarmAddCellDM(*sw, celldm)); in CreateSwarm()
1501 PetscCall(DMSetFromOptions(*sw)); in CreateSwarm()
1502 PetscCall(DMSetUp(*sw)); in CreateSwarm()
1504 PetscCall(DMSwarmSetCellDMActive(*sw, "space")); in CreateSwarm()
1505 ctx->swarm = *sw; in CreateSwarm()
1508 PetscCall(InitializeParticles_PerturbedWeights(*sw, ctx)); in CreateSwarm()
1510 PetscCall(DMSwarmComputeLocalSizeFromOptions(*sw)); in CreateSwarm()
1511 PetscCall(DMSwarmInitializeCoordinates(*sw)); in CreateSwarm()
1512 PetscCall(DMSwarmInitializeVelocitiesFromOptions(*sw, v0)); in CreateSwarm()
1514 PetscCall(PetscObjectSetName((PetscObject)*sw, "Particles")); in CreateSwarm()
1515 PetscCall(DMViewFromOptions(*sw, NULL, "-sw_view")); in CreateSwarm()
1519 static PetscErrorCode ComputeFieldAtParticles_Coulomb(SNES snes, DM sw, PetscReal E[]) in ComputeFieldAtParticles_Coulomb() argument
1529 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Coulomb()
1530 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Coulomb()
1531 PetscCall(DMSwarmGetNumSpecies(sw, &Ns)); in ComputeFieldAtParticles_Coulomb()
1532 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Coulomb()
1534 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Coulomb()
1535 PetscCall(DMSwarmGetField(sw, "species", NULL, NULL, (void **)&species)); in ComputeFieldAtParticles_Coulomb()
1555 PetscCall(DMSwarmRestoreField(sw, "species", NULL, NULL, (void **)&species)); in ComputeFieldAtParticles_Coulomb()
1556 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Coulomb()
1560 static PetscErrorCode ComputeFieldAtParticles_Primal(SNES snes, DM sw, Mat M_p, PetscReal E[]) in ComputeFieldAtParticles_Primal() argument
1575 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Primal()
1576 PetscCall(PetscLogEventBegin(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
1577 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Primal()
1578 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Primal()
1584 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Primal()
1592 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Primal()
1639 PetscCall(PetscLogEventEnd(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
1643 PetscCall(DMSwarmSortGetAccess(sw)); in ComputeFieldAtParticles_Primal()
1645 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Primal()
1647 PetscCall(PetscLogEventBegin(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
1656 PetscCall(DMSwarmSortGetNumberOfPointsPerCell(sw, c, &Ncp)); in ComputeFieldAtParticles_Primal()
1667 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Primal()
1688 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Primal()
1693 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Primal()
1694 PetscCall(DMSwarmSortRestoreAccess(sw)); in ComputeFieldAtParticles_Primal()
1697 PetscCall(PetscLogEventEnd(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Primal()
1701 static PetscErrorCode ComputeFieldAtParticles_Mixed(SNES snes, DM sw, Mat M_p, PetscReal E[]) in ComputeFieldAtParticles_Mixed() argument
1716 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles_Mixed()
1717 PetscCall(PetscLogEventBegin(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
1718 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles_Mixed()
1719 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles_Mixed()
1726 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Mixed()
1734 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "w_q", &f)); in ComputeFieldAtParticles_Mixed()
1765 PetscCall(PetscLogEventEnd(ctx->ESolveEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
1769 PetscCall(DMSwarmSortGetAccess(sw)); in ComputeFieldAtParticles_Mixed()
1771 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Mixed()
1773 PetscCall(PetscLogEventBegin(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
1782 PetscCall(DMSwarmSortGetNumberOfPointsPerCell(sw, c, &Ncp)); in ComputeFieldAtParticles_Mixed()
1793 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Mixed()
1814 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in ComputeFieldAtParticles_Mixed()
1819 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in ComputeFieldAtParticles_Mixed()
1820 PetscCall(DMSwarmSortRestoreAccess(sw)); in ComputeFieldAtParticles_Mixed()
1823 PetscCall(PetscLogEventEnd(ctx->ETabEvent, snes, sw, 0, 0)); in ComputeFieldAtParticles_Mixed()
1827 static PetscErrorCode ComputeFieldAtParticles(SNES snes, DM sw) in ComputeFieldAtParticles() argument
1836 PetscValidHeaderSpecific(sw, DM_CLASSID, 2); in ComputeFieldAtParticles()
1837 PetscCall(DMGetDimension(sw, &dim)); in ComputeFieldAtParticles()
1838 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in ComputeFieldAtParticles()
1839 PetscCall(DMGetApplicationContext(sw, &ctx)); in ComputeFieldAtParticles()
1841 PetscCall(DMSwarmSetCellDMActive(sw, "moments")); in ComputeFieldAtParticles()
1843 PetscCall(DMSwarmMigrate(sw, PETSC_FALSE)); in ComputeFieldAtParticles()
1844 PetscCall(DMCreateMassMatrix(sw, ctx->dmPot, &M_p)); in ComputeFieldAtParticles()
1845 PetscCall(DMSwarmSetCellDMActive(sw, "space")); in ComputeFieldAtParticles()
1847 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in ComputeFieldAtParticles()
1853 PetscCall(ComputeFieldAtParticles_Coulomb(snes, sw, E)); in ComputeFieldAtParticles()
1856 PetscCall(ComputeFieldAtParticles_Primal(snes, sw, M_p, E)); in ComputeFieldAtParticles()
1859 PetscCall(ComputeFieldAtParticles_Mixed(snes, sw, M_p, E)); in ComputeFieldAtParticles()
1866 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in ComputeFieldAtParticles()
1873 DM sw; in RHSFunction() local
1881 PetscCall(TSGetDM(ts, &sw)); in RHSFunction()
1882 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunction()
1884 PetscCall(DMGetDimension(sw, &dim)); in RHSFunction()
1885 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSFunction()
1886 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunction()
1896 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunction()
1910 DM sw; in RHSJacobian() local
1915 PetscCall(TSGetDM(ts, &sw)); in RHSJacobian()
1916 PetscCall(DMGetDimension(sw, &dim)); in RHSJacobian()
1917 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSJacobian()
1919 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSJacobian()
1920 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSJacobian()
1931 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSJacobian()
1932 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSJacobian()
1941 DM sw; in RHSFunctionX() local
1948 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionX()
1949 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionX()
1965 DM sw; in RHSFunctionV() local
1976 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionV()
1977 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunctionV()
1979 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionV()
1980 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionV()
2009 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionV()
2018 DM sw; in RHSJacobianS() local
2022 PetscCall(TSGetDM(ts, &sw)); in RHSJacobianS()
2023 PetscCall(DMGetDimension(sw, &dim)); in RHSJacobianS()
2041 DM sw; in RHSObjectiveF() local
2048 PetscCall(TSGetDM(ts, &sw)); in RHSObjectiveF()
2049 PetscCall(DMGetDimension(sw, &dim)); in RHSObjectiveF()
2057 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSObjectiveF()
2058 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSObjectiveF()
2059 PetscCall(DMSwarmSortGetAccess(sw)); in RHSObjectiveF()
2067 PetscCall(DMSwarmSortGetPointsPerCell(sw, c, &Ncp, &points)); in RHSObjectiveF()
2074 PetscCall(DMSwarmSortRestorePointsPerCell(sw, c, &Ncp, &points)); in RHSObjectiveF()
2077 PetscCall(DMSwarmSortRestoreAccess(sw)); in RHSObjectiveF()
2078 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSObjectiveF()
2079 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSObjectiveF()
2086 DM sw; in RHSFunctionG() local
2095 PetscCall(TSGetDM(ts, &sw)); in RHSFunctionG()
2096 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionG()
2097 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in RHSFunctionG()
2104 PetscCall(ComputeFieldAtParticles(snes, sw)); in RHSFunctionG()
2106 PetscCall(DMSwarmGetField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSFunctionG()
2107 PetscCall(DMSwarmGetField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSFunctionG()
2108 PetscCall(DMSwarmGetField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionG()
2115 PetscCall(DMSwarmRestoreField(sw, "E_field", NULL, NULL, (void **)&E)); in RHSFunctionG()
2116 PetscCall(DMSwarmRestoreField(sw, DMSwarmPICField_coor, NULL, NULL, (void **)&coords)); in RHSFunctionG()
2117 PetscCall(DMSwarmRestoreField(sw, "velocity", NULL, NULL, (void **)&vel)); in RHSFunctionG()
2125 DM sw; in CreateSolution() local
2130 PetscCall(TSGetDM(ts, &sw)); in CreateSolution()
2131 PetscCall(DMGetDimension(sw, &dim)); in CreateSolution()
2132 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in CreateSolution()
2145 DM sw; in SetProblem() local
2148 PetscCall(TSGetDM(ts, &sw)); in SetProblem()
2149 PetscCall(DMGetApplicationContext(sw, &ctx)); in SetProblem()
2155 PetscCall(DMGetDimension(sw, &dim)); in SetProblem()
2156 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in SetProblem()
2174 PetscCall(DMGetDimension(sw, &dim)); in SetProblem()
2175 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in SetProblem()
2203 DM sw; in DMSwarmTSRedistribute() local
2209 PetscCall(TSGetDM(ts, &sw)); in DMSwarmTSRedistribute()
2217 PetscCall(TSSetDM(ts, sw)); in DMSwarmTSRedistribute()
2233 DM sw, cdm; in line() local
2238 sw = ctx->swarm; in line()
2239 PetscCall(DMSwarmGetCellDM(sw, &cdm)); in line()
2242 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in line()
2265 DM sw; in InitializeSolveAndSwarm() local
2272 PetscCall(TSGetDM(ts, &sw)); in InitializeSolveAndSwarm()
2273 PetscCall(DMGetApplicationContext(sw, &ctx)); in InitializeSolveAndSwarm()
2274 PetscCall(DMGetDimension(sw, &dim)); in InitializeSolveAndSwarm()
2278 PetscCall(InitializeParticles_PerturbedWeights(sw, ctx)); in InitializeSolveAndSwarm()
2280 PetscCall(DMSwarmComputeLocalSizeFromOptions(sw)); in InitializeSolveAndSwarm()
2281 PetscCall(DMSwarmInitializeCoordinates(sw)); in InitializeSolveAndSwarm()
2282 PetscCall(DMSwarmInitializeVelocitiesFromOptions(sw, v0)); in InitializeSolveAndSwarm()
2284 PetscCall(DMSwarmMigrate(sw, PETSC_TRUE)); in InitializeSolveAndSwarm()
2287 PetscCall(DMSetUp(sw)); in InitializeSolveAndSwarm()
2291 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in InitializeSolveAndSwarm()
2292 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "velocity", &gv)); in InitializeSolveAndSwarm()
2295 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in InitializeSolveAndSwarm()
2296 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "velocity", &gv)); in InitializeSolveAndSwarm()
2310 DM sw, cdm; in MigrateParticles() local
2315 PetscCall(TSGetDM(ts, &sw)); in MigrateParticles()
2316 PetscCall(DMGetApplicationContext(sw, &ctx)); in MigrateParticles()
2317 PetscCall(DMViewFromOptions(sw, NULL, "-migrate_view_pre")); in MigrateParticles()
2330 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in MigrateParticles()
2331 PetscCall(DMSwarmCreateGlobalVectorFromField(sw, "velocity", &gv)); in MigrateParticles()
2335 PetscCall(DMSwarmGetCellDM(sw, &cdm)); in MigrateParticles()
2341 PetscCall(DMSwarmGetLocalSize(sw, &Np)); in MigrateParticles()
2366 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, "velocity", &gv)); in MigrateParticles()
2367 PetscCall(DMSwarmDestroyGlobalVectorFromField(sw, DMSwarmPICField_coor, &gc)); in MigrateParticles()
2369 PetscCall(DMSwarmMigrate(sw, PETSC_TRUE)); in MigrateParticles()
2382 PetscCall(DMSwarmRemap(sw)); in MigrateParticles()
2390 PetscCall(DMSwarmVectorDefineFields(sw, 2, fieldnames)); in MigrateParticles()
2397 DM dm, sw; in main() local
2409 PetscCall(CreateSwarm(dm, &ctx, &sw)); in main()
2411 PetscCall(InitializeConstants(sw, &ctx)); in main()
2412 PetscCall(DMSetApplicationContext(sw, &ctx)); in main()
2416 PetscCall(TSSetDM(ts, sw)); in main()
2434 PetscCall(SetupContext(dm, sw, &ctx)); in main()
2440 PetscCall(CheckNonNegativeWeights(sw, &ctx)); in main()
2449 PetscCall(DMDestroy(&sw)); in main()