A 3D space with continuous, piecewise linear basis functions. More...

#include <space.hh>

Inheritance diagram for bem::Linear3d< F >:
concepts::Space< concepts::Real >

Public Types

typedef Scan< Element< concepts::Real > > Scanner
 
typedef Element< concepts::Realtype
 

Public Member Functions

uint dim () const
 Returns the number of degrees of freedom. More...
 
virtual uint dim () const=0
 Returns the dimension of the space. More...
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space. More...
 
std::ostream & info (std::ostream &os, uint mode=0) const
 Returns information in an output stream. More...
 
 Linear3d (concepts::Mesh2 &msh, uint lvl)
 Constructor. More...
 
uint nelm () const
 Returns the number of elements. More...
 
virtual uint nelm () const=0
 Returns the number of elements in the space. More...
 
concepts::Scan< concepts::Element< F > > * scan () const
 Returns a scanner of the space. More...
 
virtual Scannerscan () const=0
 Returns a scanner to iterate over the elements of the space. More...
 
virtual ~Linear3d ()
 

Protected Member Functions

std::ostream & info (std::ostream &os) const
 

Private Member Functions

void constructor_ (concepts::Triangle3d *cell, uint lvl, concepts::DynArray< uint > &map)
 Private constructor for recursive construction. More...
 

Private Attributes

uint dim_
 Number of degrees of freedom in the space. More...
 
concepts::Joiner< concepts::Element< F > *, 1 > * elm_
 Linked list of elements. More...
 
uint nelm_
 Number of elements. More...
 

Detailed Description

template<class F = concepts::Real>
class bem::Linear3d< F >

A 3D space with continuous, piecewise linear basis functions.

The elements are triangles.

It consists of elements in a regular (uniformly refined) mesh. The elements use linear shape functions.

The space cannot be refined but only created with a given level of refinement.

Test:
test::BEMSpaceTest

Definition at line 93 of file space.hh.

Member Typedef Documentation

◆ Scanner

typedef Scan<Element<concepts::Real > > concepts::Space< concepts::Real >::Scanner
inherited

Definition at line 47 of file space.hh.

◆ type

typedef Element<concepts::Real > concepts::Space< concepts::Real >::type
inherited

Definition at line 46 of file space.hh.

Constructor & Destructor Documentation

◆ Linear3d()

template<class F = concepts::Real>
bem::Linear3d< F >::Linear3d ( concepts::Mesh2 msh,
uint  lvl 
)

Constructor.

Parameters
mshMesh for the space
lvlLevel of uniform refinement
Exceptions
MissingFeature

◆ ~Linear3d()

template<class F = concepts::Real>
virtual bem::Linear3d< F >::~Linear3d ( )
virtual

Member Function Documentation

◆ constructor_()

template<class F = concepts::Real>
void bem::Linear3d< F >::constructor_ ( concepts::Triangle3d cell,
uint  lvl,
concepts::DynArray< uint > &  map 
)
private

Private constructor for recursive construction.

Parameters
cellTriangle to refine
lvlRefinement level of the triangle
mapMap for the global DoF's

◆ dim() [1/2]

template<class F = concepts::Real>
uint bem::Linear3d< F >::dim ( ) const
inline

Returns the number of degrees of freedom.

Definition at line 122 of file space.hh.

◆ dim() [2/2]

◆ getOutputDimension()

virtual uint concepts::Space< concepts::Real >::getOutputDimension ( ) const
inlinevirtualinherited

Returns the default output dimension, when we consider plotting a real-valued operator on this space.

Definition at line 50 of file space.hh.

◆ info() [1/2]

template<class F = concepts::Real>
std::ostream& bem::Linear3d< F >::info ( std::ostream &  os) const
inlineprotectedvirtual

Reimplemented from concepts::Space< concepts::Real >.

Definition at line 110 of file space.hh.

◆ info() [2/2]

template<class F = concepts::Real>
std::ostream& bem::Linear3d< F >::info ( std::ostream &  os,
uint  mode = 0 
) const

Returns information in an output stream.

Parameters
osOutput stream
modeThere are different levels of information available. mode = 0 Output of dimension and number of elements mode = 1 As mode 0 but in addition output of all elements mode > 1 As mode 0 but prints also the vertices with the DoF number

◆ nelm() [1/2]

template<class F = concepts::Real>
uint bem::Linear3d< F >::nelm ( ) const
inline

Returns the number of elements.

Definition at line 124 of file space.hh.

◆ nelm() [2/2]

◆ scan() [1/2]

template<class F >
concepts::Scan< concepts::Element< F > > * bem::Linear3d< F >::scan
inline

Returns a scanner of the space.

Definition at line 139 of file space.hh.

◆ scan() [2/2]

Member Data Documentation

◆ dim_

template<class F = concepts::Real>
uint bem::Linear3d< F >::dim_
private

Number of degrees of freedom in the space.

Definition at line 95 of file space.hh.

◆ elm_

template<class F = concepts::Real>
concepts::Joiner<concepts::Element<F>*, 1>* bem::Linear3d< F >::elm_
private

Linked list of elements.

Definition at line 99 of file space.hh.

◆ nelm_

template<class F = concepts::Real>
uint bem::Linear3d< F >::nelm_
private

Number of elements.

Definition at line 97 of file space.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich