Roy,

I have attached an initial patch to handle the level-1 rule across periodic 
boundaries but I believe there is still more work to be done.  
What this patch DOES:
- Adds Elem::topological_neighbor(unsigned int side, Mesh &, PeriodicBoundaries 
*)
- Adds a few accessors and setters for getting a pointer to the Periodic 
Boundaries into MeshRefinement
- Replaces calls to neighbor with calls to topological_neighbor throughout 
MeshRefinement with the proper #ifdefs

At this point I don't have a good test case built on top of libMesh which is a 
real problem.  I have a few problems which I'm running through our software 
right now
to verify that this is doing what I want it to do, but we do need some 
regression tests for libMesh.  I'll work on getting something put together.

What I'd like to do at this point is get any feedback you may have.  I believe 
that I'll need to make a few more functions like "has_topological_neighbor" 
which might need to be used in certain instances.  I haven't even started to 
address the error estimators.  

If you can think of glaring oversights or design issues with where I'm going 
please let me know.  This patch should work with the current head.  I'll post a 
test case soon.

Attachment: periodic_AMR_libmesh_current.patch
Description: Binary data


Thanks,
Cody 


On Nov 10, 2010, at 5:00 PM, Roy Stogner wrote:

> 
> 
> On Wed, 10 Nov 2010, Cody Permann wrote:
> 
>> Sorry I don't mean to spam but I thought of one other issue to consider with 
>> changing
>> around the API for the Periodic BC AMR level one constraint issue.  Right 
>> now the
>> PeriodicBoundaries object is held inside of DofMap but for topological 
>> purposes,
>> perhaps it doesn't belong there.  At the very least, I clearly need access 
>> to it from the
>> objects dealing with the Mesh.  If we pass in the PeriodicBoundaries object
>> as a reference to the new topological_neighbor function then the callers 
>> will need
>> access to it only moving the problem "who should own it" problem.
>> 
>> For now I created a pointer in the MeshRefinement object and an accessor in 
>> DofMap to
>> get a reference for the purpose of setting that pointer.  This doesn't seem 
>> like the cleanest
>> solution.  If you have some better design ideas let me know.
> 
> I thought about the same problem but shoved it to the back of my mind;
> you're right to drag it out in the open.  PeriodicBoundaries was
> originally deep in DofMap because I'd thought that that was the only
> class which needed to use it.  I could definitely see an argument for,
> say, attaching it to a MeshBase instead.
> 
> Other ideas/opinions are welcome.
> ---
> Roy

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to