Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Feel::Periodic< T > Class Template Reference

#include <periodic.hpp>

Detailed Description

template<typename T = double>
class Feel::Periodic< T >

Periodic class holder.

the periodic condition is set both as template parameter for the functionspace and constructor parameter. In the former the tags that are periodic/linked together are set as well as the fact that we have a periodic condition. In the former we set the translation Trans that allow to link the dofs of tag2 and tag1.

This data structure is then passed to the Dof class as well that will actually do the real work to treat the periodic condition. Its job is to set the same dof identifier for the dof on Tag2 as the Dof on Tag1 with respect to the translation Trans. The 'periodic condition' check must be done for all entities of an element (vertex,edge,face,volume) even for the volume (think P0 discontinuous). During the check the dof points coordinates of Tag1 are put into a data structure DS as well as the corresponding dof identifier for rapid localisation then the dof points are translation by Trans and look for in DS. One and only one point must be found, then the dof identifier of the original point in Tag2 is set to the one in Tag1.

Issues:

  • the dof are constructed by entity (vertex,edge,face,volume) so for each entity one must check that the dof points belongs to either Tag1 or Tag2. This is not yet clear how to do this.
  • the data structure DS must be efficient to find the proper point in Tag1 list, see sedgewick for reference.
  • the implementation of the periodic logic could be done either in dof or in periodic, with the former we have access to all information a priori but Dof get some added weight, with the latter we need to pass extra information and we make sure that the Dof stays more or less as it is. The other issue is that we must implement the same interface for all related periodic conditions.

    Author
    Christophe Prud'homme
    See Also

Inherits Feel::detail::periodicity_base.

Public Member Functions

Constructors, destructor
 Periodic ()
 
 Periodic (uint16_type tag1, uint16_type tag2, node_type const &trans)
 
 Periodic (Periodic const &p)
 
 ~Periodic ()
 
Methods
uint16_type tag1 () const
 
uint16_type tag2 () const
 

Constants

typedef node< T >::type node_type
 
static const bool is_periodic = true
 

Accessors

node_type const & translation ()
 return the translation condition that should be applied on Tag2
 
static bool isPeriodic ()
 return whether the condition is periodic or not
 

The documentation for this class was generated from the following file:

Generated on Sun Dec 22 2013 13:11:21 for Feel++ by doxygen 1.8.5