PLaSK library
Loading...
Searching...
No Matches
boundary.hpp File Reference

This file contains templates of base classes for mesh's boundaries. More...

#include "../utils/iterators.hpp"
#include "../utils/xml/reader.hpp"
#include "../memory.hpp"
#include "../log/log.hpp"
#include "../exceptions.hpp"
#include "../geometry/space.hpp"
#include <vector>
#include <set>
Include dependency graph for boundary.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  plask::BoundaryNodeSetImpl
 Base class for boundaries logic. More...
 
struct  plask::BoundaryNodeSetWithMeshImpl< MeshType >
 Template of base class for boundaries of mesh with given type which store reference to mesh. More...
 
struct  plask::BoundaryNodeSetWithMeshImpl< MeshType >::IteratorWithMeshImpl
 Base class for boundary iterator implementation which contains reference to boundary. More...
 
struct  plask::BoundaryNodeSet
 Holds BoundaryNodeSetImpl and delegate all calls to it. More...
 
struct  plask::EmptyBoundaryImpl
 Implementation of empty boundary logic. More...
 
struct  plask::EmptyBoundaryImpl::IteratorImpl
 
struct  plask::StdSetBoundaryImpl
 Implementation of boundary logic which holds a set of node indices in std::set. More...
 
struct  plask::Boundary< MeshT >
 Instance of this class represents predicate which chooses a subset of points (strictly: indices of points) from a mesh. More...
 
struct  plask::BoundaryOp< MeshType, OpNodeSetImplT >
 Boundary which represents union/intersection/difference (depending on OpNodeSetImplT) of boundaries. More...
 
struct  plask::UnionBoundarySetImpl
 This logic holds a list of boundaries and represent a set of indices which is an union of sets from this boundaries. More...
 
struct  plask::UnionBoundarySetImpl::IteratorImpl
 
struct  plask::UnionBoundarySetImpl::IteratorImpl::IteratorWithEnd
 
struct  plask::DiffBoundarySetImpl
 This logic holds two boundaries and represent a set difference of them. More...
 
struct  plask::DiffBoundarySetImpl::IteratorImpl
 
struct  plask::DiffBoundarySetImpl::IteratorImpl::IteratorWithEnd
 
struct  plask::IntersectionBoundarySetImpl
 This logic holds two boundaries and represent a set intersection of them. More...
 
struct  plask::IntersectionBoundarySetImpl::IteratorImpl
 
struct  plask::IntersectionBoundarySetImpl::IteratorImpl::IteratorWithEnd
 
struct  plask::PredicateBoundaryImpl< MeshT, Predicate >
 Boundary logic implementation which represents set of indexes which fulfill predicate. More...
 
struct  plask::PredicateBoundaryImpl< MeshT, Predicate >::PredicateIteratorImpl
 

Namespaces

namespace  plask
 Patterson quadrature for complex function along specified line.
 

Typedefs

template<typename MeshType >
using plask::UnionBoundary = BoundaryOp< MeshType, UnionBoundarySetImpl >
 Boundary which represents union of boundaries.
 
template<typename MeshType >
using plask::DiffBoundary = BoundaryOp< MeshType, DiffBoundarySetImpl >
 Boundary which represents difference of boundaries.
 
template<typename MeshType >
using plask::IntersectionBoundary = BoundaryOp< MeshType, IntersectionBoundarySetImpl >
 Boundary which represents intersection of boundaries.
 

Functions

BoundaryNodeSet plask::operator+ (BoundaryNodeSet left, BoundaryNodeSet right)
 Return union of left and right sets of nodes.
 
BoundaryNodeSet plask::operator| (BoundaryNodeSet left, BoundaryNodeSet right)
 
BoundaryNodeSet plask::operator* (BoundaryNodeSet left, BoundaryNodeSet right)
 Return intersection of left and right sets of nodes.
 
BoundaryNodeSet plask::operator& (BoundaryNodeSet left, BoundaryNodeSet right)
 
BoundaryNodeSet plask::operator- (BoundaryNodeSet left, BoundaryNodeSet right)
 Return difference of left and right sets of nodes.
 
template<typename MeshType >
Boundary< MeshType > plask::operator+ (Boundary< MeshType > left, Boundary< MeshType > right)
 Return boundary which produces the union of sets given by left and right boundaries.
 
template<typename MeshType >
Boundary< MeshType > plask::operator| (Boundary< MeshType > left, Boundary< MeshType > right)
 
template<typename MeshType >
Boundary< MeshType > plask::operator* (Boundary< MeshType > left, Boundary< MeshType > right)
 Return boundary which produces the intersection of sets given by left and right boundaries.
 
template<typename MeshType >
Boundary< MeshType > plask::operator& (Boundary< MeshType > left, Boundary< MeshType > right)
 
template<typename MeshType >
Boundary< MeshType > plask::operator- (Boundary< MeshType > left, Boundary< MeshType > right)
 Return boundary which produces the difference of sets given by left and right boundaries.
 
template<typename MeshType >
MeshType::Boundary plask::makeEmptyBoundary ()
 Helper to create empty boundary.
 
template<typename Boundary , typename Predicate >
Boundary plask::makePredicateBoundary (Predicate predicate)
 Helper to create boundary which represents set of indexes which fulfill given predicate.
 
template<typename Boundary >
Boundary plask::parseBoundary (const std::string &PLASK_UNUSED(boundary_desc), Manager &PLASK_UNUSED(manager))
 Parse boundary of given type from string.
 
template<typename Boundary >
Boundary plask::parseBoundary (XMLReader &PLASK_UNUSED(boundary_desc), Manager &PLASK_UNUSED(manager))
 Parse boundary from XML reader.
 

Detailed Description

This file contains templates of base classes for mesh's boundaries.

See also
Meshes

Definition in file boundary.hpp.