Yeah, I was thinking about the case 'this element is on a conduction-only 
subdomain and it is made of copper'

...and in any case we'd need the boost dynamic bitset - I still think chlidren 
should inherit from parents.



----- Original Message -----
From: Roy Stogner <[email protected]>
To: Kirk, Benjamin (JSC-EG311)
Cc: '[email protected]' <[email protected]>; '[email protected]' 
<[email protected]>; '[email protected]' 
<[email protected]>; '[email protected]' 
<[email protected]>; '[email protected]' 
<[email protected]>
Sent: Mon Mar 15 13:04:41 2010
Subject: Re: [Libmesh-users] Visualizing libmesh ex10 results



On Mon, 15 Mar 2010, Kirk, Benjamin (JSC-EG311) wrote:

> Yeah, I am thinking solely about the library, not exodus...
>
> A std::bitset would actually be perfect if we are willing to limit
> the ids to something like [0,something_not_so_big)

Ah, I see - you're thinking about the case of subdomains which don't
partition the domain, but which may overlap in any arbitrary fashion.

I could see supporting an API like that on top of the current
subdomain_id system - for a 32 bit subdomain_id you get 32 possible
overlapping_subdomains, and any element can be in any combination of
them.  But I'd rather not force that on people.  Cody was just
worrying about only having a few hundred million subdomain ids to use
instead of a few billion; I suspect that only have 32 ids would be
*way* too restrictive.  ;-)

And even for the places where we would like an API for overlapping
subdomains, it would be tricky to make it both flexible and efficient.
Imagine a radiating real gas flow problem, where we're doing model
adaptivity.  Subdomains are the best way in libMesh to enable that -
we might want one number to express 1<n<15 in an SPn approximation;
another to handle the number of spectral bins 0<b<15 in a
k-distribution model; another to handle some sort of recursive
chemistry model that added more species as higher enthalpies and
diffusing pyrolysis gas products warrant; suppose that has levels 0-15
too.  Then we've already got 47 possible subdomains, which is too many
to stuff in any of our file formats if we assume *any* amount of
overlap is permissible, but a clever user would pack each of those
three options into 4 bits and still have 20 bits left over.
---
Roy

> ----- Original Message -----
> From: Roy Stogner <[email protected]>
> To: Kirk, Benjamin (JSC-EG311)
> Cc: '[email protected]' <[email protected]>; '[email protected]' 
> <[email protected]>; '[email protected]' 
> <[email protected]>; '[email protected]' 
> <[email protected]>; '[email protected]' 
> <[email protected]>
> Sent: Mon Mar 15 12:38:28 2010
> Subject: Re: [Libmesh-users] Visualizing libmesh ex10 results
>
>
> On Mon, 15 Mar 2010, Kirk, Benjamin (JSC-EG311) wrote:
>
>> bool elem->on_subdomain(S) const
>> { return (_sid & S); }
>>
>> Or something like that? Of course care must be taken to set _sid 
>> originally??  Some kind of
>>
>> void elem->add_to_subdomain(S)
>> ...
>>
>> ??
>
> I must still be misunderstanding?  If S is 0b011 and _sid is the same
> then on_subdomain() returns true for 0b011, but also for 0b010 and
> 0b001.  But this sounds sort of like my idea - each libMesh
> subdomain_id maps to max_number_of_element_types different Exodus
> block ids.
>
> I would like to avoid touching Elem itself if we can; this is a
> restriction of the Exodus format and we ought to be able to
> "translate" entirely in the ExodusII I/O code.
> ---
> Roy
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to