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® 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
