Sorry, I forgot the attachment.
--
David
David Andrs <[email protected]> wrote on 09/30/2010 09:53:33 AM:
> Roy Stogner <[email protected]> wrote on 09/29/2010 03:51:25 PM:
>
> >
> > On Wed, 29 Sep 2010, David Andrs wrote:
> >
> > > Roy Stogner <[email protected]> wrote on 09/29/2010 02:42:58
> PM:
> > >
> > > > A workaround for some types of internal boundaries is to use
> subdomain
> > > > ids: i.e. if you're in subdomain 1 and your neighbor is in
subdomain
> 3
> > > > then you apply whatever interface condition is associated with
> > > > std::pair<>(1,3).
> > >
> > > Our boundary ids come as a sideset ids from exodus file. So as
> > long I'm able to iterate over the sideset and figure out the
neighboring
> > > subdomain id, this would be a way to go.
> >
> > Good to hear. But sounds like supporting internal boundary IDs would
> > be more natural for your problem, though, no?
> >
> > > > If that workaround isn't sufficient for your case then we should
> talk
> > > > about changing the API behavior. If internal boundary ids are all
> > > > defined on the coarse mesh, then additional cases to handle that
> would
> > > > be quick and easy. If you need to change boundary ids as you
refine
> > > > then life gets harder.
> > >
> > > So far, we do not need to change the boundary ids as we refine the
> mesh.
> >
> > In that case the solution's pretty easy: instead of calling
> > top_parent(), we'd iterate ourselves until parent() is NULL, but give
> > up and return invalid_id if is_child_on_side(which_child_am_i(..),..)
> > is false first. Maybe optimize for the common case by just calling
> > top_parent() if elem->side() is NULL.
> >
> > Looks like there'd be 4 functions which need changing in
> > boundary_info.C. I'll look over the patch if you want to take a crack
> > at it, otherwise I'll probably be able to code it up myself a few
> > weeks from now, after our upcoming big deadline passes and after my
> > stuff-to-postpone-until-after-deadline queue clears up.
> >
>
> Attached is the patch that does it for boundary_id() and boundary_ids().
> If you could check that I understood you correctly...
> I also tried that with my little test code that I sent earlier and it
> seems to work (I tried 1 and 2 levels of refinements)
>
> What are the other 2 functions that need this fix?
>
> > > One more thought: I'm not really familiar with libMesh internals,
> > > but as long as the local edge/face ids are preserved (I suspect they
> > > are, from what I saw so far)
> >
> > They are where possible; things get a little tricky for pyramids and
> > tets.
> >
> > > it should be possible to not copy the references for new internal
> > > edges that were created by the refinement and copy only the "outer"
> > > ones. Or not?
> >
> > No copies at all necessary, not if we're still happy with boundary ids
> > that don't change with refinement. Even in that latter case we could
> > get away with just storing the changed ids and falling back on parent
> > values when no changed id exists.
> >
> > On a somewhat-related note: if you're using internal boundary ids it's
> > possible that you've got a somewhat larger ID set (and are querying it
> > much more often) than most people. You might want to check and see if
>
> Right now we have only one inner boundary, so the ID set is not that
much
> bigger. Maybe later we get to something bigger.
>
> > std::unordered_multimap gives you any better performance than
> > std::multimap in the two containers in boundary_info.h. I suspect the
> > differences will be trivial, but it couldn't hurt to have someone test
> > and confirm that.
>
> > ---
> > Roy
>
> --
> David Andrs
>
>
------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> Libmesh-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-users
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users