[Trilinos-Users] [Stk-developers] Unique enumeration of faces in STK mesh?

Michael Buksas mwbuksas at lanl.gov
Tue Aug 10 14:10:47 MDT 2010


> Is the {nodeId}->faceId function parallel-consistent?
> I.e., will it give the same answer for the same set of nodes on two different processes?

I'm side-stepping that issue for now by doing the face enumeration in 
serial. In parallel, the nodes still have globally unique id numbers, 
right? So as long as the hash function doesn't depend on anything else 
that varies across processors, I should be okay.

One thing I'm _not_ doing yet is assigning face id via the hash 
function. It's just used to search for duplicates. This will have to 
change in parallel also.

Do the global face id values that I assign need to be a consecutive set? 
Or is the id value just a label?

Thanks again,
Mike


>
> Yes: PairIterRelation rel = element.relations( side_rank );
> If all sides are present then 'rel' can be indexed [0..#side-1].
> I recommend defining an integer in your code for side_rank and using that.
> The enumerations in stk_mesh/fem may be refactored soon to better address 2D vs. 3D and improve extensibility to other kinds of mesh entities.
>
> --Carter
>
>
> -----Original Message-----
> From: Michael Buksas [mailto:mwbuksas at lanl.gov]
> Sent: Tuesday, August 10, 2010 10:40 AM
> To: Edwards, Harold C
> Cc: stk-developers at software.sandia.gov; trilinos-users at software.sandia.gov
> Subject: Re: [Stk-developers] [Trilinos-Users] Unique enumeration of faces in STK mesh?
>
>> We have a "skinning" capability for STK-Mesh where only boundary faces are generated.
>> Generating all (interior and boundary) faces would be a simpler capability.
>
> Thanks. That's pretty much what I thought.
>
>> The algorithm you are using is good; assuming the {nodeId}->faceId function is unique and will not run into scaling problems for large meshes.
>
> I figure the naive approach is O(N*log N), assuming logarithmic lookups
> in the hash table. I may try to come up with something better later.
>
>> Field data can be stored on faces just like any other mesh entity.
>> I believe the element->face relations should provide the map you need.
>
> That's a great segue to my next question. Is the canonical way to access
> these maps something like:
>
>     PairIterRelation rel = element.relations(stk::mesh::Face)
>
> Or is there another interface?
>
> Thanks,
> Mike
>
>

-- 
Michael W. Buksas
CCS-7: Applied Computer Science
Los Alamos National Laboratory
(505) 667-7580



More information about the Trilinos-Users mailing list