Moving ParFUM_TOPS code into its own directory, and adding it as a language in charmc.
authorIsaac Dooley <idooley2@illinois.edu>
Wed, 14 Feb 2007 01:46:49 +0000 (01:46 +0000)
committerIsaac Dooley <idooley2@illinois.edu>
Wed, 14 Feb 2007 01:46:49 +0000 (01:46 +0000)
src/libs/ck-libs/ParFUM-Tops/Makefile
src/libs/ck-libs/ParFUM-Tops/ParFUM_TOPS.C
src/libs/ck-libs/ParFUM-Tops/ParFUM_TOPS.h
src/libs/ck-libs/ParFUM-Tops/libmoduleParFUM_TOPS.dep
src/libs/ck-libs/ParFUM/headers [deleted file]
src/scripts/charmc

index efea379068e48f20774b9d3bd1937885ca636ae9..715e128d228ae67700fd059c88dea898e7c01596 100644 (file)
@@ -4,6 +4,9 @@ CHARMC=$(CDIR)/bin/charmc $(OPTS)
 #Headers to be copied to include directory so application users can see them
 HEADERS= ParFUM_TOPS.h  $(INTERNALHEADERS)
 
+#Headers generated from .ci files
+GENHEADERS= ParFUM_TOPS.def.h ParFUM_TOPS.decl.h 
+
 HEADDEP= $(GENHEADERS) $(HEADERS) $(INTERNALHEADERS)
 
 OBJS=ParFUM_TOPS.o
@@ -12,13 +15,17 @@ LIB=libmoduleParFUM_TOPS
 
 LIBDIR=$(CDIR)/lib
 DEST=$(LIBDIR)/$(LIB).a
-PARFUMMAIN=$(LIBDIR)/libParFUMmain.o
 
 INCS=-I.
 
 all: $(DEST)
 
 
+ParFUM_TOPS.decl.h: ParFUM_TOPS.ci
+       $(CHARMC) ParFUM_TOPS.ci
+ParFUM_TOPS.def.h: ParFUM_TOPS.ci
+       $(CHARMC) ParFUM_TOPS.ci
+
 # Build libmoduleParFUM
 $(DEST): $(OBJS) headers $(HEADDEP)
        $(CHARMC) $(OBJS) -o $@
index 8c79bb61c8ebc4eaed589cb195b01ebb10546226..4b9479f8efcb0bdc82a207e77a163adbf0cb735c 100644 (file)
@@ -2,18 +2,23 @@
 *      A ParFUM TOPS compatibility layer
 *
 *      Author: Isaac Dooley
-*/
-
 
-#include <ParFUM_TOPS.h>
+mesh_modify.C:  FEM_Mesh *m=FEM_Mesh_lookup(mesh,"FEM_Print_Mesh_Summary");
+mesh_modify.C:  return FEM_add_node(FEM_Mesh_lookup(mesh,"FEM_add_node"), adjacent_nodes, num_adjacent_nodes, chunks, numChunks, forceShared);
+mesh_modify.C:  return FEM_remove_node(FEM_Mesh_lookup(mesh,"FEM_remove_node"), node);
+mesh_modify.C:  return FEM_add_element(FEM_Mesh_lookup(mesh,"FEM_add_element"), conn, conn_size, elem_type, chunkNo);
+mesh_modify.C:  return FEM_remove_element(FEM_Mesh_lookup(mesh,"FEM_remove_element"), element, elem_type, permanent);
+mesh_modify.C:  return FEM_purge_element(FEM_Mesh_lookup(mesh,"FEM_remove_element"), element, elem_type);
 
+*/
 
-TopModel* topModel_Create(){
-    return new TopModel;
-    // We really need to support multiple meshes for this to work
 
-       // Setup tables for attributes for the new model
+#include "ParFUM_TOPS.h"
+#include "ParFUM.decl.h"
 
+TopModel* topModel_Create(){
+       int which_mesh=FEM_Mesh_default_read();  // fix this to create a new mesh
+       return FEM_Mesh_lookup(which_mesh,"TopModel::TopModel()");
 }
 
 TopNode topModel_InsertNode(TopModel*, double x, double y, double z){
@@ -75,7 +80,7 @@ void topNodeItr_Begin(TopNodeItr* itr){
 }
 
 bool topNodeItr_IsValid(TopNodeItr*itr){
-     return itr->model->mesh->node.is_valid(itr->parfum_nodal_index);
+     return itr->model->node.is_valid(itr->parfum_nodal_index);
 }
 
 void topNodeItr_next(TopNodeItr* itr){
@@ -88,23 +93,23 @@ void topNodeItr_next(TopNodeItr* itr){
 
     if(itr->parfum_nodal_index > 0) {// local nodes
 
-        while ((! itr->model->mesh->node.is_valid(itr->parfum_nodal_index)) &&
-                  (itr->parfum_nodal_index<itr->model->mesh->node.size()))
+        while ((! itr->model->node.is_valid(itr->parfum_nodal_index)) &&
+                  (itr->parfum_nodal_index<itr->model->node.size()))
         {
             itr->parfum_nodal_index++;
         }
 
-        if(itr->model->mesh->node.is_valid(itr->parfum_nodal_index)) {
+        if(itr->model->node.is_valid(itr->parfum_nodal_index)) {
             return;
         } else {
             // cycle to most negative index possible for ghosts
-            itr->parfum_nodal_index = FEM_To_ghost_index(itr->model->mesh->node.ghost->size());
+            itr->parfum_nodal_index = FEM_To_ghost_index(itr->model->node.ghost->size());
         }
     }
 
     // just go through ghost nodes
-
-    while ( (! itr->model->mesh->node.ghost->
+    
+    while ( (! itr->model->node.ghost->
                 is_valid(FEM_To_ghost_index(itr->parfum_nodal_index)))
                 &&
                 itr->parfum_nodal_index<0)
@@ -113,13 +118,13 @@ void topNodeItr_next(TopNodeItr* itr){
     }
 
     if(itr->parfum_nodal_index==0){
-        itr->parfum_nodal_index = itr->model->mesh->node.size()+1000; // way past the end
+        itr->parfum_nodal_index = itr->model->node.size()+1000; // way past the end
     }
 
 }
 
 TopNode topNodeItr_GetCurr(TopNodeItr*itr){
-    // TODO lookup data associated with this iterator
+    // TODO lookup data associated with this node
     TopNode a;
 return a;
 }
@@ -133,3 +138,4 @@ void topElemItr_next(TopElemItr*);
 TopElement topElemItr_GetCurr(TopElemItr*);
 
 
+#include "ParFUM_TOPS.def.h"
\ No newline at end of file
index 415daa5e5b7a7e36322d21d1dc8bf4a5e7fe3dcd..0f7e72c9c0f281ca7bca94bf64488648eb8b4b13 100644 (file)
@@ -40,20 +40,7 @@ Sample usage:
 #include <ParFUM_internals.h>
 
 
-
-/** some abstract data containers which will need to make sense at some point. */
-class TopModel{
-public:
-    FEM_Mesh *mesh;
-
-       // add a hash table for the attribute pointers here
-       // index into here with an int that is possibly stored in ParFUM int attribute
-
-       TopModel(){
-         //            mesh=FEM_Mesh_default_read();  // fix this to get the right FEM_Mesh instead of an int
-       }
-
-};
+typedef FEM_Mesh TopModel;
 
 typedef unsigned TopNode;
 typedef unsigned TopElement;
index fb94da70eb5855bbd5356ce891c0d78c9830a876..b1cda3f6077c1393f5e347eebca6dc5e9f978be9 100644 (file)
@@ -1 +1 @@
--module tcharm  -lidxl -module ampi -lParFUM-compat -lmetis -lparmetis -module msa -moduleParFUM
+-module tcharm  -lidxl -module ampi -lParFUM-compat -lmetis -lparmetis -module msa -module ParFUM
diff --git a/src/libs/ck-libs/ParFUM/headers b/src/libs/ck-libs/ParFUM/headers
deleted file mode 100644 (file)
index e69de29..0000000
index af9a6006c05ab0e8671fd246bfbb3d6c33006da7..f1c63e738abf22d75aed86c9f481fef974d758fd 100755 (executable)
@@ -355,6 +355,7 @@ do
                "armcif") AddModules tcharmmain armci ; USE_F90_LIBRARIES="1" ;;
                "fem") AddModules tcharmmain fem ; AMPIMAIN="femmain";;
                "femf") AddModules tcharmmain fem ; AMPIMAIN="femmain"; USE_F90_LIBRARIES="1" ;;
+               "ParFUM_TOPS") AddModules tcharmmain ParFUM ParFUM_TOPS ; AMPIMAIN="ParFUMmain";;
     "ParFUM") AddModules tcharmmain ParFUM ; AMPIMAIN="ParFUMmain";;
     "ParFUMf") AddModules tcharmmain ParFUM ; AMPIMAIN="ParFUMmain"; USE_F90_LIBRARIES="1" ;;
                "mblock") AddModules tcharmmain mblock ;;