<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>Dear Ganesh,</div>

<div> </div>

<div>I do not think, that it is a trivial task in Dune-Fem and the solution somehow depends on your implementation of the agglomerated finite elements.</div>

<div>And of course there are different possible solutions...</div>

<div> </div>

<div><strong>First solution:</strong><br/>
<em>You implement a perfect GridInterface which implements all important grid features. </em></div>

<div>Some classes you should be aware of:</div>

<div>* Entity,</div>

<div>* Iterator with begin() and end(),</div>

<div>* IntersectionIterator: with begin() and end(),</div>

<div>* Intersection,</div>

<div>* Geometry,</div>

<div>* IndexSet,</div>

<div>See documentation: <a href="http://www.dune-project.org/doc-2.3.1/doxygen/html/group__GridInterface.html" target="_blank">http://www.dune-project.org/doc-2.3.1/doxygen/html/group__GridInterface.html</a></div>

<div> </div>

<div>To be honest, I do not really know, how to fulfill all the interfaces for a general polygon.</div>

<div> </div>

<div>The idea would then to plug this GridImplementation into a DiscreteFunctionSpace.</div>

<div>I cannot assure you that this will work with, but you will at least be able derive from the DiscreteFunctionInterface (or DiscreteFunctionDefault) and write your own DiscreteFunctionSpace.</div>

<div> </div>

<div>Of course, one should also think about the DataWriter etc. I do not know how difficult it is to generate some paraview data for general polygons.</div>

<div> </div>

<div><strong>Second solution:</strong></div>

<div><em>You give up (somehow) your agglomeratored finite element approach and write a something that I would call a "patch", i.e. you keep the basic geometries and "glue" them together with GridParts.</em></div>

<div>The idea is to have several "GridParts" - each grid part object containing an "agglomerated" <em>set of Entitys</em>.</div>

<div>Additionally, you have got a global GridPart, which knows all your the the other gridparts. A GridPart is similar to a GridView in Dune-Grid.</div>

<div> </div>

<div>You then have to write a new ShapeFunctionSet/LocalFunctionSet and a new DiscreteFunctionSpace which gets the global gridpart and can handle the local function sets.</div>

<div>Maybe, you will need a new dof mapper for your the local-to-global mapping, since you will need a new index set for the global GridPart.</div>

<div> </div>

<div> </div>

<div><strong>Other solutions:</strong></div>

<div>You should also have a look at the <u>dune-localfunctions</u> module.</div>

<div>The interface for local functions in dune-localfunctions is easy and can be used by dune-fem discrete function spaces (see example in dune/fem/spaces/shapefunctionset/localfunctions.hh and dune/fem/spaces/rannacherturek/space.hh)</div>

<div> </div>

<div>If you are using the dune-localfunctions module, you could also think about using other discretization modules (<u>dune-pdelab</u> or the new <u>dune-functions</u>)</div>

<div>dune-pdelab has got a "FiniteElementMap" which maps a (dune-)localfunction to an Entity. Maybe, there is an easy wrapper for polygon containing a set of Entitys.</div>

<div>In dune-functions the Entity-concept (I mean localfunction that is dependent on an Entity) is replaced by a LocalContext which could be anything, for example a set of Entitys. This module is a new development and I do not really know, how powerful it is at the moment. Unfortunately, there is now possiblity to use dune-functions in dune-fem, at the moment.</div>

<div> </div>

<div>But I am not an expert in dune-pdelab or dune-functions. ;)</div>

<div> </div>

<div> </div>

<div>I think the second one is the most convenient, but I do not really know your needs.</div>

<div> </div>

<div>Maybe there are other/better ways? Maybe someone else from the Dune-Fem community can comment on this topic?</div>

<div> </div>

<div>Best regards</div>

<div>Stefan Girke.</div>

<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Gesendet:</b> Dienstag, 06. Oktober 2015 um 19:23 Uhr<br/>
<b>Von:</b> "Ganesh Diwan" <gcdiwan83@gmail.com><br/>
<b>An:</b> "dune-fem@dune-project.org" <dune-fem@dune-project.org><br/>
<b>Betreff:</b> [dune-fem] integration and assembly for polygons</div>

<div>
<div>
<div>Dear Dune-Fem developers,</div>

<div> </div>

<div>I recall one of my old posts on this topic: <a href="http://lists.dune-project.org/pipermail/dune/2015-February/013459.html" target="_blank">http://lists.dune-project.org/pipermail/dune/2015-February/013459.html</a></div>

<div>which I had posted on main Dune mailing list. I am trying to build my Dune-Vem module under Dune-Fem by trying to use as much functions from Dune-fem as possible.<br/>
 </div>

<div>In order to "build" a polygon for my method: I first create a mesh the usual way (either Gmsh or in Dune itself) and then partition it using ParMETIS to agglomerate the finite elements. One such agglomerated unit is one of my polygons and so on.<br/>
<br/>
Now, I am trying to understand if it will be possible to treat these polygons (which are basically agglomerated finite elements) as finite elements in their own right in Dune? I can compute a given function f at the quadrature points inside the polygons and do int_Omega f,  but obviously I need more. For eg, if an agglomeration can be treated as one finite element, how do I evaluate the basis function phi_i, its derivatives and then do a subsequent assembly for them? To be precise, the methods which are already in place in dune-fem to do exactly this, can I use them to operate on my polygons? For eg. when reusing the dune-fem code, I would like to use methods such as localFunction.evaluate, rhsLocal.axpy and rhs.communicate but I do not understand how to and what to change in order to achieve this.<br/>
 </div>

<div>Many thanks for your help,</div>
Ganesh</div>
_______________________________________________ dune-fem mailing list dune-fem@dune-project.org <a href="http://lists.dune-project.org/mailman/listinfo/dune-fem" target="_blank">http://lists.dune-project.org/mailman/listinfo/dune-fem</a></div>
</div>
</div>
</div></div></body></html>