[cig-commits] r4855 - in long/3D/Gale/trunk/src/StGermain: .
Discretisation/Swarm/src
walter at geodynamics.org
walter at geodynamics.org
Wed Oct 11 13:47:18 PDT 2006
Author: walter
Date: 2006-10-11 13:47:18 -0700 (Wed, 11 Oct 2006)
New Revision: 4855
Modified:
long/3D/Gale/trunk/src/StGermain/
long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c
long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h
Log:
r2912 at earth: boo | 2006-10-11 13:42:39 -0700
r2828 at earth (orig r3816): LukeHodkinson | 2006-09-26 20:35:48 -0700
When using the escaped routine in parallel,
ParticleCommHandler was aborting before particles
had been removed. Adding a flag to stop this
behaviour when particle removal is enabled.
Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
- 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2911
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3815
+ 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2912
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3816
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c 2006-10-11 20:47:16 UTC (rev 4854)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c 2006-10-11 20:47:18 UTC (rev 4855)
@@ -42,6 +42,7 @@
#include "SwarmClass.h"
#include "CellLayout.h"
+#include "ElementCellLayout.h"
#include "StandardParticle.h"
#include <stdio.h>
@@ -125,6 +126,7 @@
self->particlesOutsideDomainTotalCount = 0;
self->particlesOutsideDomainUnfilledCount = 0;
self->currParticleLeavingMyDomainIndex = 0;
+ self->defensive = True;
}
@@ -1125,20 +1127,21 @@
Memory_Free( globalParticlesLeavingDomains );
/* Defensive check to make sure particles not lost/created accidentally somehow */
- MPI_Reduce( globalParticlesArrivingMyDomainCountPtr, &totalParticlesFoundEnteringDomains,
- 1, MPI_UNSIGNED, MPI_SUM, 0, self->swarm->comm );
- if ( 0 == self->swarm->myRank ) {
- Stream* errorStream = Journal_Register( Error_Type, self->type );
+ if( self->defensive == True ) {
+ MPI_Reduce( globalParticlesArrivingMyDomainCountPtr, &totalParticlesFoundEnteringDomains,
+ 1, MPI_UNSIGNED, MPI_SUM, 0, self->swarm->comm );
+ if ( 0 == self->swarm->myRank ) {
+ Stream* errorStream = Journal_Register( Error_Type, self->type );
- Journal_Firewall( totalParticlesFoundEnteringDomains == (*globalParticlesOutsideDomainTotalPtr),
- errorStream, "Error - in %s(): %d particles were found across all processors to be "
- "leaving the individual domains directly, but after sharing and searching %d were "
- "found entering them directly! These must match as no particles should be "
- "lost/created through advection.\n",
- __func__, (*globalParticlesOutsideDomainTotalPtr),
- totalParticlesFoundEnteringDomains );
+ Journal_Firewall( totalParticlesFoundEnteringDomains == (*globalParticlesOutsideDomainTotalPtr),
+ errorStream, "Error - in %s(): %d particles were found across all processors to be "
+ "leaving the individual domains directly, but after sharing and searching %d were "
+ "found entering them directly! These must match as no particles should be "
+ "lost/created through advection.\n",
+ __func__, (*globalParticlesOutsideDomainTotalPtr),
+ totalParticlesFoundEnteringDomains );
+ }
}
-
}
Memory_Free( globalParticlesOutsideDomainCounts );
Stream_UnIndentBranch( Swarm_Debug );
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h 2006-10-11 20:47:16 UTC (rev 4854)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h 2006-10-11 20:47:18 UTC (rev 4855)
@@ -79,6 +79,7 @@
/** transfer array [nbr] of particles to recv */ \
Particle** particlesArrivingFromNbrShadowCells; \
MPI_Request** particlesArrivingFromNbrShadowCellsHandles; \
+ Bool defensive;
struct ParticleCommHandler { __ParticleCommHandler };
More information about the cig-commits
mailing list