Proposal for telling an implementation what adjacency info an app/service needs

Tim Tautges tautges at mcs.anl.gov
Mon Nov 9 13:05:42 CST 2009


Questions:

1) What's the mechanism for registering decisions on these proposals?  I think we have several which have had tacit 
approval from everyone but which haven't been registered yet.

2) How is the example below different than the case I've tried to make for string options?  In each case, the 
implementation may or may not respond to the request from the service/application.  It's just the syntax or mechanism 
for specifying that request that's different, but IIRC that wasn't a factor in the major objection to string options.

Otherwise, I'm fine with the proposal below.

- tim

Carl Ollivier-Gooch wrote:
> One thing that's been discussed, and even openly experimented with is a 
> way to inform a mesh database of the actual adjacency information 
> required by an app/service.  (Also, which entity types need to be 
> iterable.)   This is how the swapping service communicates its adjacency 
> needs with MOAB, for instance.  FMDB's internal capabilities should 
> match up very well with this notion as well, allowing specialization 
> when appropriate.  Other implementations (GRUMMP, for instance) may or 
> may not be able to take much if any advantage of this, but that's no 
> reason not to allow an app/service to express what it actually needs.
> 
> The other possibility is to specify this at creation time, but if we're 
> going to do that, we should do the same with spatial dimension.  This 
> change provides the needed (?) capability in a way that's symmetric with 
> other calls.
> 
> Carl
> 
>     /**\brief  Tell an implementation the minimum adjacency information 
> required
>      *
>      * Tell an implementation the minimum adjacency information required
>      * by a service or application, in the form of an adjacency table.
>      * This table is a 4x4 array, with indices 0-based, where A(i,j)
>      * (i=row, j=column) is 1 if the service or application will require
>      * adjacencies between entities of dimension i to entities of
>      * dimension j and 0 otherwise.  A(i,i) is 1 if the service or
>      * application will iterate over entities of dimension i and 0
>      * otherwise.
>      * \param instance iMesh instance handle
>      * \param *adjacency_table Array representing adjacency table
>      *        required
>      * \param *err Pointer to error type returned from function
>      */
>   void iMesh_setAdjTable (iMesh_Instance instance,
>                           /*in*/ int* adjacency_table,
>                           /*out*/ int *err);

-- 
================================================================
"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 tstt-interface mailing list