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::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > Class Template Reference

#include <operatorinterpolation.hpp>

Detailed Description

template<typename DomainSpaceType, typename ImageSpaceType, typename IteratorRange = boost::tuple<mpl::size_t<MESH_ELEMENTS>, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator>, typename InterpType = InterpolationNonConforme>
class Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >

Global interpolation operator.

Author
Christophe Prud'homme
See Also
+ Inheritance diagram for Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >:

Public Member Functions

Constructors, destructor
 OperatorInterpolation ()
 
 OperatorInterpolation (domain_space_ptrtype const &domainspace, dual_image_space_ptrtype const &imagespace, backend_ptrtype const &backend, InterpType const &interptype, bool ddmethod=false)
 
 OperatorInterpolation (domain_space_ptrtype const &domainspace, dual_image_space_ptrtype const &imagespace, IteratorRange const &r, backend_ptrtype const &backend, InterpType const &interptype, bool ddmethod=false)
 
 OperatorInterpolation (domain_space_ptrtype const &domainspace, dual_image_space_ptrtype const &imagespace, std::list< IteratorRange > const &r, backend_ptrtype const &backend, InterpType const &interptype, bool ddmethod=false)
 
 OperatorInterpolation (OperatorInterpolation const &oi)
 
 ~OperatorInterpolation ()
 
Accessors
WorldComm const & worldCommFusion () const
 
InterpType const & interpolationType () const
 
bool isDomainMeshRelatedToImageMesh () const
 
bool isImageMeshRelatedToDomainMesh () const
 
- Public Member Functions inherited from Feel::OperatorLinear< DomainSpaceType, ImageSpaceType >
OperatorLinearadd (T const &scalar, OperatorLinear const &ol)
 
OperatorLinearadd (T const &scalar, boost::shared_ptr< OperatorLinear > ol)
 
void apply (const domain_element< typename domain_element_type::value_type, Storage > &de, image_element_type &ie) const
 
virtual void apply (const domain_element_type &de, image_element_type &ie) const
 
virtual void apply (const typename domain_space_type::element_type &de, typename dual_image_space_type::element_type &ie)
 
virtual void apply (const domain_element_range_type &de, typename dual_image_space_type::element_type &ie)
 
virtual void apply (const typename domain_space_type::element_type &de, dual_image_element_range_type &ie)
 
virtual void apply (const domain_element_range_type &de, dual_image_element_range_type &ie)
 
virtual void apply (const domain_element_slice_type &de, typename dual_image_space_type::element_type &ie)
 
virtual void apply (const typename domain_space_type::element_type &de, dual_image_element_slice_type &ie)
 
virtual void apply (domain_element_slice_typede, dual_image_element_slice_typeie)
 
virtual void apply (const domain_element_range_type &de, dual_image_element_slice_type &ie)
 
virtual void apply (const domain_element_slice_type &de, dual_image_element_range_type &ie)
 
virtual void applyInverse (domain_element_type &de, const image_element_type &ie)
 apply the inverse of the operator: $de = O^{-1} ie$
 
backend_ptrtype & backend ()
 
void close ()
 
virtual double energy (const typename domain_space_type::element_type &de, const typename dual_image_space_type::element_type &ie) const
 
virtual void init (domain_space_ptrtype domainSpace, dual_image_space_ptrtype dualImageSpace, backend_ptrtype backend, bool buildMatrix=true, size_type pattern=Pattern::COUPLED)
 
domain_element_type inv (RhsExpr const &rhs_expr)
 
matrix_typemat ()
 
matrix_type const & mat () const
 
matrix_ptrtype const & matPtr () const
 
matrix_ptrtype & matPtr ()
 
virtual void matPtr (matrix_ptrtype &matrix)
 
std::string name () const
 
T2 operator() (T1 &de)
 
T2 operator() (boost::shared_ptr< T1 > de)
 
OperatorLinearoperator+ (boost::shared_ptr< OperatorLinear > ol)
 
OperatorLinearoperator+ (OperatorLinear const &ol)
 
this_typeoperator+= (ExprT const &e)
 
this_typeoperator= (ExprT const &e)
 
this_typeoperator= (this_type const &m)
 
 OperatorLinear (OperatorLinear const &ol, bool deep_copy=false)
 
 OperatorLinear (domain_space_ptrtype domainSpace, dual_image_space_ptrtype dualImageSpace, backend_ptrtype backend, bool buildMatrix=true, size_type pattern=Pattern::COUPLED)
 
size_type pattern ()
 
void setName (std::string name)
 
- Public Member Functions inherited from Feel::Operator< DomainSpaceType, ImageSpaceType >
domain_space_ptrtype domainSpace ()
 
const domain_space_ptrtype domainSpace () const
 
dual_image_space_ptrtype dualImageSpace ()
 
const dual_image_space_ptrtype dualImageSpace () const
 
 Operator (domain_space_ptrtype domainSpace, dual_image_space_ptrtype dualImageSpace)
 
image_element_type operator() (const domain_element_type &de) const
 
void setDomainSpace (domain_space_ptrtype const &domainspace)
 
void setDualImageSpace (dual_image_space_ptrtype const &dualImageSpace)
 

Protected Member Functions

virtual void update ()
 

Typedefs

typedef super::domain_space_type domain_space_type
 
typedef super::domain_space_ptrtype domain_space_ptrtype
 
typedef
domain_space_type::mesh_type 
domain_mesh_type
 
typedef
domain_mesh_type::element_type 
domain_geoelement_type
 
typedef
domain_mesh_type::element_iterator 
domain_mesh_element_iterator
 
typedef super::backend_ptrtype backend_ptrtype
 
typedef
super::dual_image_space_type 
dual_image_space_type
 
typedef
super::dual_image_space_ptrtype 
dual_image_space_ptrtype
 
typedef
dual_image_space_type::value_type 
value_type
 
typedef
dual_image_space_type::mesh_type 
image_mesh_type
 
typedef
image_mesh_type::element_type 
image_geoelement_type
 
typedef
image_mesh_type::element_iterator 
image_mesh_element_iterator
 
typedef image_mesh_type::gm_type image_gm_type
 
typedef image_mesh_type::gm_ptrtype image_gm_ptrtype
 
typedef
image_mesh_type::template gmc
< vm::POINT >::type 
image_gmc_type
 
typedef
image_mesh_type::template gmc
< vm::POINT >::ptrtype 
image_gmc_ptrtype
 
typedef
dual_image_space_type::dof_type 
dof_type
 
typedef
dual_image_space_type::basis_type 
image_basis_type
 
typedef
domain_space_type::basis_type 
domain_basis_type
 
typedef
boost::tuples::template
element< 0, IteratorRange >
::type 
idim_type
 
typedef
boost::tuples::template
element< 1, IteratorRange >
::type 
iterator_type
 
typedef IteratorRange range_iterator
 
typedef InterpType interpolation_type
 
typedef GraphCSR graph_type
 
typedef boost::shared_ptr
< graph_type
graph_ptrtype
 
typedef matrix_node< typename
image_mesh_type::value_type >
::type 
matrix_node_type
 
static const uint16_type nLocalDofInDualImageElt
 

Additional Inherited Members

- Public Types inherited from Feel::OperatorLinear< DomainSpaceType, ImageSpaceType >
typedef super::backend_ptrtype backend_ptrtype
 
typedef super::backend_type backend_type
 
typedef
domain_space_type::template
Element< typename
domain_space_type::value_type,
typename VectorUblas< typename
domain_space_type::value_type >
::range::type > 
domain_element_range_type
 
typedef
domain_space_type::template
Element< typename
domain_space_type::value_type,
typename VectorUblas< typename
domain_space_type::value_type >
::slice::type > 
domain_element_slice_type
 
typedef
domain_space_type::element_type 
domain_element_type
 
typedef super::domain_space_ptrtype domain_space_ptrtype
 
typedef super::domain_space_type domain_space_type
 
typedef
dual_image_space_type::template
Element< typename
dual_image_space_type::value_type,
typename VectorUblas< typename
dual_image_space_type::value_type >
::range::type > 
dual_image_element_range_type
 
typedef
dual_image_space_type::template
Element< typename
dual_image_space_type::value_type,
typename VectorUblas< typename
dual_image_space_type::value_type >
::slice::type > 
dual_image_element_slice_type
 
typedef
dual_image_space_type::element_type 
dual_image_element_type
 
typedef
super::dual_image_space_ptrtype 
dual_image_space_ptrtype
 
typedef
super::dual_image_space_type 
dual_image_space_type
 
typedef FsFunctionalLinear
< ImageSpaceType > 
image_element_type
 
typedef boost::shared_ptr
< matrix_type
matrix_ptrtype
 
typedef
backend_type::sparse_matrix_type 
matrix_type
 
typedef Operator
< DomainSpaceType,
ImageSpaceType > 
super_type
 
typedef OperatorLinear
< DomainSpaceType,
ImageSpaceType > 
this_type
 
typedef
backend_type::vector_ptrtype 
vector_ptrtype
 
typedef backend_type::vector_type vector_type
 
- Public Types inherited from Feel::Operator< DomainSpaceType, ImageSpaceType >
typedef boost::shared_ptr
< backend_type
backend_ptrtype
 
typedef Backend< value_type > backend_type
 
typedef
domain_space_type::element_type 
domain_element_type
 
typedef boost::shared_ptr
< domain_space_type > 
domain_space_ptrtype
 
typedef DomainSpaceType domain_space_type
 
typedef boost::shared_ptr
< dual_image_space_type > 
dual_image_space_ptrtype
 
typedef ImageSpaceType dual_image_space_type
 
typedef FsFunctionalLinear
< dual_image_space_type > 
image_element_type
 
typedef
domain_space_type::value_type 
value_type
 

Constructor & Destructor Documentation

template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = boost::tuple<mpl::size_t<MESH_ELEMENTS>, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator>, typename InterpType = InterpolationNonConforme>
Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >::OperatorInterpolation ( )
inline

default constructor

template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange , typename InterpType >
Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >::OperatorInterpolation ( domain_space_ptrtype const &  domainspace,
dual_image_space_ptrtype const &  imagespace,
backend_ptrtype const &  backend,
InterpType const &  interptype,
bool  ddmethod = false 
)

Construction the global interpolation operator from domainspace to imagespace and represent it in matrix form using the backend backend

References Feel::elements().

template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = boost::tuple<mpl::size_t<MESH_ELEMENTS>, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator>, typename InterpType = InterpolationNonConforme>
Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >::OperatorInterpolation ( OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > const &  oi)
inline

copy constructor

Member Data Documentation

template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = boost::tuple<mpl::size_t<MESH_ELEMENTS>, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator, typename MeshTraits<typename ImageSpaceType::mesh_type>::element_const_iterator>, typename InterpType = InterpolationNonConforme>
const uint16_type Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >::nLocalDofInDualImageElt
static
Initial value:
= mpl::if_< mpl::equal_to< idim_type ,mpl::size_t<MESH_ELEMENTS> >,
mpl::int_< image_basis_type::nLocalDof > ,
mpl::int_< image_mesh_type::face_type::numVertices*dual_image_space_type::fe_type::nDofPerVertex +
image_mesh_type::face_type::numEdges*dual_image_space_type::fe_type::nDofPerEdge +
image_mesh_type::face_type::numFaces*dual_image_space_type::fe_type::nDofPerFace > >::type::value

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

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