[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