------------------------------------------------------------------------------
| 894 | |
| 895 | //------------------------------------------------------------------------------ |
| 896 | int vtkPLagrangianParticleTracker::Integrate(vtkInitialValueProblemSolver* integrator, |
| 897 | vtkLagrangianParticle* particle, std::queue<vtkLagrangianParticle*>& particleQueue, |
| 898 | vtkPolyData* particlePathsOutput, vtkPolyLine* particlePath, vtkDataObject* interactionOutput) |
| 899 | { |
| 900 | if (this->Controller && this->Controller->GetNumberOfProcesses() > 1) |
| 901 | { |
| 902 | if (this->GenerateParticlePathsOutput && particle->GetPInsertPreviousPosition()) |
| 903 | { |
| 904 | // This is a particle from another rank, store a duplicated previous point |
| 905 | this->InsertPathOutputPoint(particle, particlePathsOutput, particlePath->GetPointIds(), true); |
| 906 | particle->SetPInsertPreviousPosition(false); |
| 907 | } |
| 908 | } |
| 909 | |
| 910 | int ret = this->vtkLagrangianParticleTracker::Integrate( |
| 911 | integrator, particle, particleQueue, particlePathsOutput, particlePath, interactionOutput); |
| 912 | |
| 913 | if (this->Controller && this->Controller->GetNumberOfProcesses() > 1) |
| 914 | { |
| 915 | if (particle->GetTermination() == vtkLagrangianParticle::PARTICLE_TERMINATION_OUT_OF_DOMAIN) |
| 916 | { |
| 917 | if (!this->ForcePManualShift && !particle->GetPManualShift()) |
| 918 | { |
| 919 | particle->SetPInsertPreviousPosition(true); |
| 920 | } |
| 921 | |
| 922 | // Stream out of domain particles |
| 923 | std::lock_guard<std::mutex> guard(this->StreamManagerMutex); |
| 924 | this->StreamManager->SendParticle(particle, this->ForcePManualShift); |
| 925 | } |
| 926 | } |
| 927 | return ret; |
| 928 | } |
| 929 | |
| 930 | //------------------------------------------------------------------------------ |
| 931 | void vtkPLagrangianParticleTracker::ReceiveTransferredParticleIds() |
nothing calls this directly
no test coverage detected