#469 interface for periodic grids
Metadata
Property | Value |
---|---|
Reported by | Andreas Dedner (A.S.Dedner@warwick.ac.uk) |
Reported at | Nov 24, 2008 12:47 |
Type | Unknown |
Version | Git (pre2.4) [autotools] |
Operating System | Unspecified / All |
Description
In the attached files two relevant cases (CASE 1,CASE 2 in the following) from application are described where periodic grids are used.
So far there are two suggestions for implementing periodic grids:
- use of ghost cells and communication
- use of periodic
GridView
s (periodic index sets and intersections)
The GridView
can always be implemented (we think) if the communication
method is available. For CASE 1 this is the simpler approach and it would
be a good idea to additionally provide a PeriodicGridView
.
As far as we can see CASE 2 can not be realized using PeriodicGridView
s
but with the communication method available in DUNE it is also
not clear how to implement this setting since the transformation from
one boundary to the other is required.
Suggestion:
the method scatter
should be extended:
template< class Buffer, class Entity, class Transformation >
void scatter ( Buffer &buffer,
const Entity &entity,
const Transformation &transformation,
size_t n );
This transformation should map a neighborhood of the sending boundary to the receiving boundary and implement the Jacobian (or Jacobian inverse transpose) for the transformation of vector field. In the case of a simple periodic topology transformation=identity and could be implemented in a way that the compiler can remove any call to the transformation (template argument).
Here are a few questions which should be answered by the DUNE documentation — some of them are but a discussion over the last few months show that a lot is still not clear):
- (1) equality of entity pointers (notation taken from periodic.eps) e=e_g? f=f_g? f'=f_g? f'=f?
- (2) id/index sets (same question as in (1))
- (3) intersection iterators:
- on e' should e or e_g be returned (different geometry)?
- on e' should boundary and neighbor be true or should this depend on the grid view used?
- If a transformed geometry is used, should e_g allow an intersection iterator to its neighbor (ghost or overlap behavior?)