CHanges for scalability.
authorIsaac Dooley <idooley2@illinois.edu>
Sun, 18 Mar 2007 05:04:42 +0000 (05:04 +0000)
committerIsaac Dooley <idooley2@illinois.edu>
Sun, 18 Mar 2007 05:04:42 +0000 (05:04 +0000)
src/libs/ck-libs/ParFUM-Tops/ParFUM_TOPS.C
src/libs/ck-libs/ParFUM-Tops/ParFUM_TOPS.h

index ad2b658d4bb31b27a1e8acd2da7d95c278a57dcd..7a8272a33ee707a3eee285d1950da02eb7320383 100644 (file)
@@ -187,6 +187,15 @@ void topModel_Destroy(TopModel* m){
 }
 
 
 }
 
 
+void topModel_SuggestInitialSize(TopModel* m, unsigned numNodes, unsigned numElements){
+  m->mesh->node.setLength(numNodes);
+  m->mesh->node.set_all_invalid();
+
+  m->mesh->elem[0].setLength(numElements);
+  m->mesh->elem[0].set_all_invalid();
+}
+
+
 TopNode topModel_InsertNode(TopModel* m, double x, double y, double z){
   int newNode = FEM_add_node_local(m->mesh,false,false,false);
   (*m->coord_T)(newNode,0)=x;
 TopNode topModel_InsertNode(TopModel* m, double x, double y, double z){
   int newNode = FEM_add_node_local(m->mesh,false,false,false);
   (*m->coord_T)(newNode,0)=x;
@@ -291,10 +300,12 @@ void* topNode_GetAttrib(TopModel* m, TopNode n){
 TopNode topModel_GetNodeAtId(TopModel* m, TopID id){
   // lookup node via global ID
   for(int i=0;i<m->node_id_T->size();++i){
 TopNode topModel_GetNodeAtId(TopModel* m, TopID id){
   // lookup node via global ID
   for(int i=0;i<m->node_id_T->size();++i){
-       if((*m->node_id_T)(i,0)==id){
+       if( m->mesh->node.is_valid(i) && (*m->node_id_T)(i,0)==id){
          return i;
        }
   }
          return i;
        }
   }
+  CkPrintf("ERROR: could not find node with id %d\n", id);
+  CkExit();
   return -1;
 }
 
   return -1;
 }
 
index 1aba27e5ce984fc9587d660c4e52562edb839628..93d37d36f80cc9bb0e53ab38adb92678a7602d87 100644 (file)
@@ -20,6 +20,7 @@ put example here!
 #include <ParFUM.h>
 #include <ParFUM_internals.h>
 
 #include <ParFUM.h>
 #include <ParFUM_internals.h>
 
+
 #include "ParFUM_TOPS_Types.h"
 #include "ParFUM_TOPS_CUDA.h"
 
 #include "ParFUM_TOPS_Types.h"
 #include "ParFUM_TOPS_CUDA.h"
 
@@ -86,6 +87,8 @@ void topModel_Destroy(TopModel* m);
 TopNode topModel_InsertNode(TopModel*, float x, float y, float z);
 TopNode topModel_InsertNode(TopModel*, double x, double y, double z);
 
 TopNode topModel_InsertNode(TopModel*, float x, float y, float z);
 TopNode topModel_InsertNode(TopModel*, double x, double y, double z);
 
+void topModel_SuggestInitialSize(TopModel* m, unsigned numNodes, unsigned numElements);
+
 
 /** Set id of a node */
 void topNode_SetId(TopModel*, TopNode, TopID id);
 
 /** Set id of a node */
 void topNode_SetId(TopModel*, TopNode, TopID id);