[cgma-dev] r4131 - in cgm/trunk: geom geom/OCC geom/parallel itaps

hongjun at mcs.anl.gov hongjun at mcs.anl.gov
Mon Sep 20 16:30:31 CDT 2010


Author: hongjun
Date: 2010-09-20 16:30:31 -0500 (Mon, 20 Sep 2010)
New Revision: 4131

Added:
   cgm/trunk/geom/parallel/CGMReadParallel.cpp
   cgm/trunk/geom/parallel/CGMReadParallel.hpp
Removed:
   cgm/trunk/geom/parallel/ParallelGeomTool.cpp
   cgm/trunk/geom/parallel/ParallelGeomTool.hpp
Modified:
   cgm/trunk/geom/GeometryQueryTool.cpp
   cgm/trunk/geom/OCC/OCCQueryEngine.cpp
   cgm/trunk/geom/OCC/OCCQueryEngine.hpp
   cgm/trunk/geom/parallel/CABodies.cpp
   cgm/trunk/geom/parallel/CABodies.hpp
   cgm/trunk/geom/parallel/CGMParallelComm.cpp
   cgm/trunk/geom/parallel/CGMParallelComm.hpp
   cgm/trunk/geom/parallel/CGMProcConfig.hpp
   cgm/trunk/geom/parallel/Makefile.am
   cgm/trunk/geom/parallel/TDParallel.cpp
   cgm/trunk/geom/parallel/TDParallel.hpp
   cgm/trunk/itaps/iGeom_CGMA.cc
   cgm/trunk/itaps/partest.cpp
Log:
o Parallel CGM is updated
o itaps/partest.cpp is a parallel CGM test file through iGeom. It is built with "make check" command, but it is not in the list of TEST
o OCC solid model import and export functions with buffer can now attach geomtry attributes
o Parallel tool data, "TDParallel.*pp" is updated
o Application specific atttribute "CABodies" having parallel "Body" distribution information is updated
o geom/parallel/ParallelGeomTool.*pp is removed
o geom/parallel/CGMReadParallel.*pp is added. It parses parallel command and calls functions for parallel distribution. It balances geometry too.
o geom/parallel/CGMParallelComm.*pp distributes(broadcast, scatter) and communicate geometry in parallel


Modified: cgm/trunk/geom/GeometryQueryTool.cpp
===================================================================
--- cgm/trunk/geom/GeometryQueryTool.cpp	2010-09-20 19:32:31 UTC (rev 4130)
+++ cgm/trunk/geom/GeometryQueryTool.cpp	2010-09-20 21:30:31 UTC (rev 4131)
@@ -507,16 +507,34 @@
   return result;
 }
 
+// export entities to buffer
 CubitStatus GeometryQueryTool::export_solid_model(DLIList<RefEntity*>& ref_entity_list,
 						  char*& p_buffer,
 						  int& n_buffer_size,
 						  bool b_export_buffer)
 {
+  if (0 == gqeList.size())
+  {
+    PRINT_WARNING("No active geometry engine.\n");
+    return CUBIT_FAILURE;
+  }
+
+  int i;
+
+  if (ref_entity_list.size() == 0) {
+    // All bodies are to be exported
+    RefEntityFactory::instance()->ref_entity_list("Body",
+                                                  ref_entity_list);
+    
+    // add free ref entities
+    get_free_ref_entities(ref_entity_list);
+  }
+  
   // Get TopologyBridges from RefEntities.
-  DLIList<TopologyBridge*> bridge_list(ref_entity_list.size()), ref_ent_bridges;
+  DLIList<TopologyBridge*> bridge_list(ref_entity_list.size()),
+    parent_bridges, ref_ent_bridges;
   ref_entity_list.reset();
-  for( int i = ref_entity_list.size(); i--; )
-  {
+  for( i = ref_entity_list.size(); i--; ) {
     ref_ent_bridges.clean_out();
     TopologyEntity* topo_ptr = dynamic_cast<TopologyEntity*>(ref_entity_list.get_and_step());
     if( topo_ptr )
@@ -524,12 +542,117 @@
     bridge_list += ref_ent_bridges;
   }
 
-  bridge_list.reset();
-  GeometryQueryEngine *gqe = bridge_list.get()->get_geometry_query_engine();
+  // Get all child RefEntities
+  DLIList<RefEntity*> child_list;
+  RefEntity::get_all_child_ref_entities( ref_entity_list, child_list );


More information about the cgma-dev mailing list