[cig-commits] commit: For the MaterialPointsSwarm, made sure the user has registered at least
Mercurial
hg at geodynamics.org
Mon Nov 24 11:30:24 PST 2008
changeset: 21:f79c61a75250
user: PatrickSunter
date: Thu Jun 28 05:23:57 2007 +0000
files: MaterialPoints/src/MaterialPointsSwarm.c
description:
For the MaterialPointsSwarm, made sure the user has registered at least
one ParticleCommHandler CommHandler, to make sure it works in parallel.
diff -r a3f5a746ca64 -r f79c61a75250 MaterialPoints/src/MaterialPointsSwarm.c
--- a/MaterialPoints/src/MaterialPointsSwarm.c Thu Jun 28 02:40:38 2007 +0000
+++ b/MaterialPoints/src/MaterialPointsSwarm.c Thu Jun 28 05:23:57 2007 +0000
@@ -297,8 +297,29 @@ void _MaterialPointsSwarm_Construct( voi
void _MaterialPointsSwarm_Build( void* swarm, void* data ) {
MaterialPointsSwarm* self = (MaterialPointsSwarm*) swarm;
+ int commHandler_I;
+ Bool movementCommHandlerFound = False;
+ Stream* errorStream = Journal_Register( Error_Type, self->type );
_Swarm_Build( self, data );
+
+ /* Since this swarm is being set up to advect a PICellerator material, it should make sure
+ * at least one ParticleMovementHandler-type ParticleCommHandler has been added to the base
+ * Swarm. */
+ for( commHandler_I=0; commHandler_I < self->commHandlerList->count; commHandler_I++ ){
+ ParticleCommHandler *pComm = NULL;
+
+ pComm = (ParticleCommHandler*)(Stg_ObjectList_At( self->commHandlerList, commHandler_I ));
+ if( pComm->type == ParticleMovementHandler_Type ) {
+ movementCommHandlerFound = True;
+ break;
+ }
+ }
+
+ Journal_Firewall( ( self->commHandlerList >= 1) && (movementCommHandlerFound == True),
+ errorStream, "Error: for MaterialPointsSwarm Swarms, at least one ParticleMovementHandler"
+ " commHandler must be registered. Please rectify this in your XML / code.\n" );
+
Stg_Component_Build( self->particleCoordVariable, data, False );
Stg_Component_Build( self->materialIndexVariable, data, False );
More information about the CIG-COMMITS
mailing list