itaps-parallel Proposal for handling queries with parts, sets, and partitions
Tim Tautges
tautges at mcs.anl.gov
Tue Dec 18 20:45:51 CST 2007
Onkar Sahni wrote:
>>>> So again, I go back to asking: what are the core needs that prevent us
>>>> from using sets as both parts and partitions? The entity set mechanism
>>>> was designed with this specific usage in mind.
>>> If "sets as both parts and partitions" mean using entity-sets then we
>>> have
>>> already discussed this in great detail. I think the question in
>>> discussion
>>> is irrespective of how one implements parts and partitions? If I
>>> understood the question right then we need to answer queries which
>>> involve
>>> a specific part and a specific entity-set (where entity-set may span
>>> more
>>> than one part, may be local to a process). Now, if it is implied that
>>> choosing entity-sets for both parts and partitions allows to use set
>>> operations (booleans), outside the interface explicitly by applications,
>>> to answer such queries well then applications might as well do it in
>>> other
>>> equivalent ways (for example, loop over entities in set and ask
>>> residence
>>> parts to get entities in the entity-sey belonging to a specific part).
>>>
>> Sure, but the implication in the current discussion is that doing
>> booleans in the applications themselves is undesirable. Therefore we
>> are looking for a way to represent these questions in the interface. To
>> that I assert that there are lots of other set booleans that are also
>> likely and possibly more common, and therefore we should design these
>> functions to be more general than just applying to parts and partitions.
>> Examples of these queries include:
>> - boundary condition faces which are owned locally
>> - vertices in a set being smoothed which are also on a model face
>> - elements at one refinement level with faces on the skin
>
> These general queries are not (at least to me) related to "core needs that
> prevent us from using sets as both parts and partitions".
>
No, but I'm not sure the part-set booleans under discussion are either
(up to now it's been more of an efficiency issue, hasn't it?)
> Infact, applications can also ask for intersection (i.e., this+this+that)
> of all examples queries listed above. I would consider these more
> "utility" type functions which I hope is not confused with parallel
> interface ("parts and partitions") and may even be separate form mesh
> interface (iMesh, serial one) as one can ask these general questions at
> geometric model level too (iGeom)? Do we use "entity-sets" in iGeom
> (sorry, I am not familiar with iGeom)?
>
In the original SIDL interface, entity sets were part of iBase,
inherited by both iMesh and iGeom. In that sense, I would expect any
extra set functions to also appear in iGeom.
> For "utility" type functions, we can easily deal with them by following
> similar concepts as STL algorithms, like find, sort etc., that take
> iterators and some operators (may be we can pass in iMesh entity iterators
> and some iMesh boolean operators). For example,
>
> numBCFacesOwned = count(bcFaceIterBegin,bcFaceIterEnd,&iPart_isEntOwned);
>
I'm not sure that would work very well, depending on the cost of calls
through the interface (I know for a fact a SIDL-based interface like
that would be way too expensive). Note that the template-based STL
stuff only works in C++ and not across languages, and that's an
important class of applications.
- tim
> - Onkar
>
>
>
--
================================================================
"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 itaps-parallel
mailing list