#include <operatorlinearparametrized.hpp>
An interface for linear parametrized operators.
Inheritance diagram for Feel::OperatorLinearParametrized< DomainSpace, DualImageSpace >:Public Types | |
Typedefs | |
|
typedef OperatorLinearParametrized < DomainSpace, DualImageSpace > | this_type |
|
typedef OperatorLinear < DomainSpace, DualImageSpace > | super_type |
| typedef super::domain_space_type | domain_space_type |
|
typedef super::dual_image_space_type | dual_image_space_type |
| typedef super::domain_space_ptrtype | domain_space_ptrtype |
|
typedef super::dual_image_space_ptrtype | dual_image_space_ptrtype |
|
typedef domain_space_type::element_type | domain_element_type |
| typedef super::backend_type | backend_type |
| typedef super::backend_ptrtype | backend_ptrtype |
|
typedef backend_type::sparse_matrix_type | matrix_type |
| typedef backend_type::vector_type | vector_type |
|
typedef backend_type::vector_ptrtype | vector_ptrtype |
|
typedef boost::shared_ptr < matrix_type > | matrix_ptrtype |
|
typedef FsFunctionalLinear < DualImageSpace > | image_element_type |
|
typedef ParameterSpace < ParameterSpaceDimension > | parameterspace_type |
|
typedef boost::shared_ptr < parameterspace_type > | parameterspace_ptrtype |
|
typedef parameterspace_type::element_type | parameter_type |
|
typedef parameterspace_type::element_ptrtype | parameter_ptrtype |
|
typedef parameterspace_type::sampling_type | sampling_type |
|
typedef parameterspace_type::sampling_ptrtype | sampling_ptrtype |
| typedef Eigen::VectorXd | theta_vector_type |
Public Types inherited from Feel::OperatorLinear< DomainSpace, DualImageSpace > | |
| 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 < DualImageSpace > | image_element_type |
|
typedef boost::shared_ptr < matrix_type > | matrix_ptrtype |
|
typedef backend_type::sparse_matrix_type | matrix_type |
|
typedef Operator< DomainSpace, DualImageSpace > | super_type |
|
typedef OperatorLinear < DomainSpace, DualImageSpace > | this_type |
|
typedef backend_type::vector_ptrtype | vector_ptrtype |
| typedef backend_type::vector_type | vector_type |
Public Types inherited from Feel::Operator< DomainSpace, DualImageSpace > | |
|
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 DomainSpace | domain_space_type |
|
typedef boost::shared_ptr < dual_image_space_type > | dual_image_space_ptrtype |
| typedef DualImageSpace | dual_image_space_type |
|
typedef FsFunctionalLinear < dual_image_space_type > | image_element_type |
|
typedef domain_space_type::value_type | value_type |
Public Member Functions | |
Constructors, destructor | |
| OperatorLinearParametrized () | |
| default constructor | |
| OperatorLinearParametrized (OperatorLinearParametrized const &olp, bool deep_copy=false) | |
| copy constructor | |
| OperatorLinearParametrized (domain_space_ptrtype domainSpace, dual_image_space_ptrtype dualImageSpace, backend_ptrtype backend) | |
| ~OperatorLinearParametrized () | |
| destructor | |
| void | init (domain_space_ptrtype domainSpace, dual_image_space_ptrtype dualImageSpace, backend_ptrtype backend) |
Operator overloads | |
| OperatorLinearParametrized & | operator= (OperatorLinearParametrized const &o) |
| copy operator | |
Accessors | |
| parameterspace_ptrtype | parameterSpace () const |
| return the parameter space | |
| theta_vector_type const & | thetaq () const |
| return the coefficient vector | |
| value_type | thetaq (int q) const |
return the coefficient vector q component | |
Methods | |
| virtual theta_vector_type | computeThetaq (parameter_type const &mu)=0 |
| compute the theta coefficient for both bilinear and linear form More... | |
| template<class ExprT > | |
| this_type & | add (int q, ExprT const &e) |
| template<class ExprT > | |
| this_type & | operator+= (ExprT const &e) |
| offline_merge_type | update (parameter_type const &mu) |
update the model wrt mu | |
| sparse_matrix_type | merge (parameter_type const &mu) |
Public Member Functions inherited from Feel::OperatorLinear< DomainSpace, DualImageSpace > | |
| template<typename T > | |
| OperatorLinear & | add (T const &scalar, OperatorLinear const &ol) |
| template<typename T > | |
| OperatorLinear & | add (T const &scalar, boost::shared_ptr< OperatorLinear > ol) |
| template<typename Storage > | |
| 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: | |
| 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) |
| template<typename RhsExpr > | |
| domain_element_type | inv (RhsExpr const &rhs_expr) |
| matrix_type & | mat () |
| matrix_type const & | mat () const |
| matrix_ptrtype const & | matPtr () const |
| matrix_ptrtype & | matPtr () |
| virtual void | matPtr (matrix_ptrtype &matrix) |
| std::string | name () const |
| template<typename T1 = typename domain_space_type::element_type, typename T2 = typename dual_image_space_type::element_type> | |
| T2 | operator() (T1 &de) |
| template<typename T1 = typename domain_space_type::element_type, typename T2 = typename dual_image_space_type::element_type> | |
| T2 | operator() (boost::shared_ptr< T1 > de) |
| OperatorLinear & | operator+ (boost::shared_ptr< OperatorLinear > ol) |
| OperatorLinear & | operator+ (OperatorLinear const &ol) |
| template<class ExprT > | |
| this_type & | operator+= (ExprT const &e) |
| template<class ExprT > | |
| this_type & | operator= (ExprT const &e) |
| this_type & | operator= (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< DomainSpace, DualImageSpace > | |
| 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 Attributes | |
| std::vector < sparse_matrix_ptrtype > | M_Aq |
| parameterspace_ptrtype | M_Dmu |
| theta_vector_type | M_thetaq |
| coefficients of the Aq matrices | |
|
inline |
Constructor from domain and image space
| domainSpace | |
| dualImageSpace | |
| backend | associated linear algebra backend |
|
pure virtual |
compute the theta coefficient for both bilinear and linear form
| mu | parameter to evaluate the coefficients |
| OperatorLinearParametrized< DomainSpace, DualImageSpace >::sparse_matrix_ptrtype Feel::OperatorLinearParametrized< DomainSpace, DualImageSpace >::merge | ( | parameter_type const & | mu | ) |
Sum the affine decomposition for the parameter mu, need to call update( mu ) before calling the merge( mu )
|
protected |
matrix storing the parameter independent matrices (affine decomposition)
|
protected |
parameter space
1.8.5