void _IntegrationPointsSwarm_Build( void* integrationPoints, void* data ) {
   IntegrationPointsSwarm* self = (IntegrationPointsSwarm*) integrationPoints;

   _Swarm_Build( self, data );

   Stg_Component_Build( self->localCoordVariable, data, False );
   Stg_Component_Build( self->weightVariable, data, False );
   Stg_Component_Build( self->mesh, data, False );
}
void _IntegrationPointsSwarm_Build( void* integrationPoints, void* data ) {
   IntegrationPointsSwarm* self = (IntegrationPointsSwarm*) integrationPoints;

   _Swarm_Build( self, data );

   Stg_Component_Build( self->localCoordVariable, data, False );
   Stg_Component_Build( self->weightVariable, data, False );
   Stg_Component_Build( self->mesh, data, False );

   if( self->mapper != NULL );
      Stg_Component_Build( self->mapper, data, False );
   if ( self->timeIntegrator != NULL )
      Stg_Component_Build( self->timeIntegrator, data, False );
   if ( self->weights != NULL )
      Stg_Component_Build( self->weights, data, False );
}
void _GeneralSwarm_Build( void* swarm, void* data )
{
   GeneralSwarm*	self = (GeneralSwarm*) swarm;
   int			commHandler_I;
   Bool                    movementCommHandlerFound = False;
   Stream*                 errorStream = Journal_Register( Error_Type, (Name)self->type  );
   int var_I;

   _Swarm_Build( self, data );

   if( self->escapedRoutine != NULL) Stg_Component_Build( self->escapedRoutine, data , False );

   /* 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( (Stg_ObjectList_Count(self->commHandlerList) >= 1) && (movementCommHandlerFound == True),
                     errorStream, "Error: for GeneralSwarm Swarms, at least one ParticleMovementHandler"
                     " commHandler must be registered. Please rectify this in your XML / code.\n" );

   for( var_I = 0 ; var_I < self->nSwarmVars ; var_I++ )
   {
      Stg_Component_Build( self->swarmVars[var_I], data , False );
   }
}