[MOAB-dev] r4940 - in MOAB/trunk: src src/moab test
Tim Tautges
tautges at mcs.anl.gov
Fri Jun 3 10:46:56 CDT 2011
Sometimes the geom topo sets will be created before the mesh is actually generated, is this still possible? Maybe it
just fails the test, but that's ok?
- tim
On 06/03/2011 10:40 AM, iulian at mcs.anl.gov wrote:
> Author: iulian
> Date: 2011-06-03 10:40:53 -0500 (Fri, 03 Jun 2011)
> New Revision: 4940
>
> Modified:
> MOAB/trunk/src/GeomTopoTool.cpp
> MOAB/trunk/src/moab/GeomTopoTool.hpp
> MOAB/trunk/test/gttool_test.cpp
> Log:
> add a method on GeomTopoTool for checking the model consistency
> for example:
> vertex sets need to have one node inside
> edge sets need to be ordered with mesh edges chained
> edge ends need to be in children vertex sets
> face/edge senses need to be consistent with the embedded mesh entities
> face skins are indeed forming the boundary edges
>
> more checks might need to be added:
> can we build edge loops?
> face/region checks are not done yet
>
>
>
> Modified: MOAB/trunk/src/GeomTopoTool.cpp
> ===================================================================
> --- MOAB/trunk/src/GeomTopoTool.cpp 2011-06-03 03:30:59 UTC (rev 4939)
> +++ MOAB/trunk/src/GeomTopoTool.cpp 2011-06-03 15:40:53 UTC (rev 4940)
> @@ -1059,6 +1059,8 @@
> // this would be a deep copy, into a new geom topo tool
> // sets will be duplicated, but entities not
> // modelSet will be a new one
> + // if the original set was null (root), a new model set will be created for
> + // original model, and its entities will be the original g sets
> GeomTopoTool * GeomTopoTool::duplicate_model()
> {
> // will
> @@ -1181,10 +1183,202 @@
> return NULL;
> }
> }
> + // if the original root model set for this model is 0 (root set), then create
> + // a new set and put all the old sets in the new model set
> + // in this way, the existing gtt remains valid (otherwise, the modelSet would contain all the
> + // gsets, the old ones and the new ones; the root set contains everything)
> + if (modelSet==0)
> + {
> + rval = mdbImpl->create_meshset(MESHSET_SET, modelSet);
> + if (MB_SUCCESS != rval)
> + return NULL;
> + // add to this new set all previous sets (which are still in ranges)
> + for (int dim=0; dim<4; dim++)
> + {
> + rval = mdbImpl->add_entities(modelSet, geomRanges[dim]);
> + if (MB_SUCCESS != rval)
> + return NULL;
> + }
>
> + }
> +
> return newgtt;
> }
>
> +#define RETFALSE(a) { std::cout<<a<<"\n"; return false; }
> +bool GeomTopoTool::check_model()
> +{
> + // vertex sets should have one node
> + Range::iterator rit;
> + ErrorCode rval;
> + for (rit = geomRanges[0].begin(); rit!=geomRanges[0].end(); rit++)
> + {
> + EntityHandle vSet = *rit;
> + Range nodes;
> + rval = mdbImpl->get_entities_by_handle(vSet, nodes);
> + if (MB_SUCCESS!=rval)
>
--
================================================================
"You will keep in perfect peace him whose mind is
steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory
(tautges at mcs.anl.gov) (telecommuting from UW-Madison)
phone: (608) 263-8485 1500 Engineering Dr.
fax: (608) 263-4499 Madison, WI 53706
More information about the moab-dev
mailing list