diff --git a/Geo/GEntity.h b/Geo/GEntity.h index 8396c26578bfb300fd05a7bd19b4eb3a8a378d5d..1fe452ccee3945d14d75c3d75ff2a3c5fd88b5a2 100644 --- a/Geo/GEntity.h +++ b/Geo/GEntity.h @@ -99,7 +99,10 @@ class GEntity { CompoundSurface, Volume, DiscreteVolume, - CompoundVolume + CompoundVolume, + PartitionVertex, + PartitionEdge, + PartitionSurface }; // return a string describing the entity type @@ -140,7 +143,10 @@ class GEntity { "Compound surface", "Volume", "Discrete volume", - "Compound Volume" + "Compound Volume", + "Partition Vertex", + "Partition Edge", + "Partition Surface" }; unsigned int type = (unsigned int)geomType(); if(type >= sizeof(name) / sizeof(name[0])) diff --git a/Mesh/meshPartition.cpp b/Mesh/meshPartition.cpp index a0703b31677f2501933347d99b4e23faaba04e1d..2aa005e2c812b4c4f548504db78dd814887366a5 100644 --- a/Mesh/meshPartition.cpp +++ b/Mesh/meshPartition.cpp @@ -128,6 +128,9 @@ int PartitionMesh(GModel *const model, meshPartitionOptions &options) } model->recomputeMeshPartitions(); + + if (options.createPartitionBoundaries)CreatePartitionBoundaries (model); + Msg::Info("Partitioning complete"); Msg::StatusBar(1, false, "Mesh"); return 0; diff --git a/Mesh/meshPartitionOptions.h b/Mesh/meshPartitionOptions.h index 03d9be42c00bad1aa1824d9709c47c53f7a4f42e..a290c602457360f27992a49eda3382674e3883a4 100644 --- a/Mesh/meshPartitionOptions.h +++ b/Mesh/meshPartitionOptions.h @@ -14,6 +14,8 @@ struct meshPartitionOptions // 2 - METIS int num_partitions; + bool createPartitionBoundaries; + //--Chaco int global_method; // 1 - Multilevel-KL @@ -97,6 +99,7 @@ struct meshPartitionOptions algorithm = 1; edge_matching = 3; refine_algorithm = 3; + createPartitionBoundaries = false;//true; } }; diff --git a/Numeric/gmshLinearSystemGmm.h b/Numeric/gmshLinearSystemGmm.h index 83ee875c871c4190eb51e8625d67aa35691c2735..10b1326521d9f455801e379babf7e86143bd10ce 100644 --- a/Numeric/gmshLinearSystemGmm.h +++ b/Numeric/gmshLinearSystemGmm.h @@ -111,6 +111,7 @@ public : virtual void zeroRightHandSide() {} virtual int systemSolve() { return 0; } void setPrec(double p){} + virtual void clear(){} void setNoisy(int n){} void setGmres(int n){} };