Loading...
Searching...
No Matches
Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB > Class Template Reference

Class representing the intersection between two subdomains. More...

`#include <dune/functions/common/subdomain.hh>`

## Public Types

using | Intersection = typename SubDomainA::GridView::Intersection

## Public Member Functions

| SubDomainInterface (const SubDomainA &subDomainA, const SubDomainB &subDomainB)
| Create interface between two subdomains.
bool | contains (const Intersection &is) const
| Check if intersection is contained in the interface between the subdomains.
bool | isOriented (const Intersection &is) const
| Check if intersection is oriented.
const auto | begin () const
| Begin iterator over all intersection between the subdomains.
const auto | end () const
| End iterator (sentinel).

## Detailed Description

template<class SubDomainA, class SubDomainB>
class Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >

Class representing the intersection between two subdomains.

Conceptually this represents a range of intersections.

## Member Typedef Documentation

## Intersection

template<class SubDomainA, class SubDomainB>

using Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::Intersection = typename SubDomainA::GridView::Intersection

## Constructor & Destructor Documentation

## SubDomainInterface()

template<class SubDomainA, class SubDomainB>

Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::SubDomainInterface | ( | const SubDomainA & | subDomainA,
|  | const SubDomainB & | subDomainB )

inline

Create interface between two subdomains.

Notice that the order of the passed subdomains does matter, because the intersections visited by the iterator will always be oriented such that A is inside and B outside.

## Member Function Documentation

## begin()

template<class SubDomainA, class SubDomainB>

const auto Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::begin | ( |  | ) | const

inline

Begin iterator over all intersection between the subdomains.

The iterator will always have the elements from sub domain A and B as inside and outside, respectively.

## contains()

template<class SubDomainA, class SubDomainB>

bool Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::contains | ( | const Intersection & | is | ) | const

inline

Check if intersection is contained in the interface between the subdomains.

This evaluates to true for all intersections having element from subdomain A and B as inside and outside or outside and inside, respectively.

Notice that this also evaluates to true for intersection with B as inside and A as outside, despite the fact that these are not visited by the iterator.

## end()

template<class SubDomainA, class SubDomainB>

const auto Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::end | ( |  | ) | const

inline

End iterator (sentinel).

## isOriented()

template<class SubDomainA, class SubDomainB>

bool Dune::Functions::Experimental::SubDomainInterface< SubDomainA, SubDomainB >::isOriented | ( | const Intersection & | is | ) | const

inline

Check if intersection is oriented.

The intersection is called oriented if its inside and outside element are contained in subDomainA and subDomainB, respectively. The result of this method is undefined if the intersection is not contained in the intersection.

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

- subdomain.hh