BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Related Functions | List of all members
Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType > Class Template Reference

Boundary operator consisting of multiple blocks arranged in a matrix. More...

#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/blocked_boundary_operator.hpp>

Public Member Functions

 BlockedBoundaryOperator (const BlockedOperatorStructure< BasisFunctionType, ResultType > &structure)
 Constructor. More...
 
BoundaryOperator
< BasisFunctionType,
ResultType > 
block (size_t row, size_t column) const
 Return the operator from row row and column column. More...
 
bool isEmpty (size_t row, size_t column) const
 Return whether the block in row row and column column is empty.
 
size_t rowCount () const
 Return number of block rows.
 
size_t columnCount () const
 Return number of block columns.
 
size_t totalGlobalDofCountInDomains () const
 Return total number of global degrees of freedom in all domains.
 
size_t totalGlobalDofCountInRanges () const
 Return total number of global degrees of freedom in all ranges.
 
size_t totalGlobalDofCountInDualsToRanges () const
 Return total number of global degrees of freedom in all duals to ranges.
 
shared_ptr< const
DiscreteBoundaryOperator
< ResultType > > 
weakForm () const
 Return the weak form of this boundary operator. More...
 
shared_ptr< const Space
< BasisFunctionType > > 
domain (size_t column) const
 Return the function space being the domain of all the operators from column column of this blocked operator.
 
shared_ptr< const Space
< BasisFunctionType > > 
range (size_t row) const
 Return the function space being the range of all the operators from row row of this blocked operator.
 
shared_ptr< const Space
< BasisFunctionType > > 
dualToRange (size_t row) const
 Return the function space dual to the range of all the operators from row row of this blocked operator.
 
void apply (const TranspositionMode trans, const std::vector< GridFunction< BasisFunctionType, ResultType > > &x_in, std::vector< GridFunction< BasisFunctionType, ResultType > > &y_inout, ResultType alpha, ResultType beta) const
 Set y_inout := alpha * A * x_in + beta * y_inout, where A is this operator.
 

Related Functions

(Note that these are not member functions.)

template<typename BasisFunctionType , typename ResultType >
std::vector< GridFunction
< BasisFunctionType,
ResultType > > 
operator* (const BlockedBoundaryOperator< BasisFunctionType, ResultType > &op, const std::vector< GridFunction< BasisFunctionType, ResultType > > &funs)
 Act with a BoundaryOperator on a GridFunction. More...
 

Detailed Description

template<typename BasisFunctionType, typename ResultType>
class Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >

Boundary operator consisting of multiple blocks arranged in a matrix.

Constructor & Destructor Documentation

template<typename BasisFunctionType , typename ResultType >
Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::BlockedBoundaryOperator ( const BlockedOperatorStructure< BasisFunctionType, ResultType > &  structure)

Constructor.

Parameters
[in]structureA BlockedOperatorStructure object determining the operators occupying individual blocks.

All the boundary operators from a single column of structure must have the same domain, and all the operators from a single row of structure must have the same range and space dual to range. No row and no column of structure must be completely empty (contain only uninitialized BoundaryOperator objects). If these conditions are not satisfied, an exception is thrown.

References Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::block(), Bempp::BlockedOperatorStructure< BasisFunctionType, ResultType >::block(), Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::columnCount(), Bempp::BlockedOperatorStructure< BasisFunctionType, ResultType >::columnCount(), Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::domain(), Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::rowCount(), Bempp::BlockedOperatorStructure< BasisFunctionType, ResultType >::rowCount(), and Bempp::toString().

Member Function Documentation

template<typename BasisFunctionType , typename ResultType >
BoundaryOperator< BasisFunctionType, ResultType > Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::block ( size_t  row,
size_t  column 
) const

Return the operator from row row and column column.

If block (row, column) is empty, an uninitialized BoundaryOperator object is returned.

Referenced by Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::BlockedBoundaryOperator().

template<typename BasisFunctionType , typename ResultType >
shared_ptr< const DiscreteBoundaryOperator< ResultType > > Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::weakForm ( ) const

Return the weak form of this boundary operator.

The returned discrete operator represents the matrix

\[ L = \begin{bmatrix} L_{11} & L_{12} & \dots & L_{1n} \\ L_{21} & L_{22} & \dots & L_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ L_{m1} & L_{m2} & \dots & L_{mn} \end{bmatrix}, \]

where $L_{ij}$ is the weak form of the operator from row i and column j of this blocked boundary operator.

Friends And Related Function Documentation

template<typename BasisFunctionType , typename ResultType >
std::vector< GridFunction< BasisFunctionType, ResultType > > operator* ( const BlockedBoundaryOperator< BasisFunctionType, ResultType > &  op,
const std::vector< GridFunction< BasisFunctionType, ResultType > > &  funs 
)
related

Act with a BoundaryOperator on a GridFunction.

This function returns the GridFunction obtained by acting with the operator op on the grid function fun. It is equivalent to calling

* op.apply(NO_TRANSPOSE, fun, result, 1., 0.);
* return result;
*

on GridFunction result with space and dual space compatible with the range and dual to range of op.

References Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::apply(), Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::columnCount(), Bempp::NO_TRANSPOSE, Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::range(), and Bempp::BlockedBoundaryOperator< BasisFunctionType, ResultType >::rowCount().


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