Base class for Bilinear Forms handle algebraic representation and multithreading.
More...
|
|
BilinearFormBase & | add (double alpha, BilinearFormBase const &a) |
| |
|
| BilinearFormBase (BilinearFormBase &&__vf)=default |
| |
|
| BilinearFormBase (BilinearFormBase const &__vf) |
| |
|
template<typename FE1 , typename FE2 > |
| | BilinearFormBase (std::string name, FE1 const &Xh, FE2 const &Yh, matrix_ptrtype &__M, list_block_type const &__lb={}, size_type rowstart=0, size_type colstart=0, bool do_threshold=false, value_type threshold=type_traits< value_type >::epsilon(), size_type graph_hints=Pattern::COUPLED) |
| |
|
template<typename FE1 , typename FE2 > |
| | BilinearFormBase (std::string name, FE1 const &Xh, FE2 const &Yh, matrix_ptrtype &__M, size_type rowstart=0, size_type colstart=0, bool build=true, bool do_threshold=false, value_type threshold=type_traits< value_type >::epsilon(), size_type graph_hints=Pattern::COUPLED) |
| |
|
virtual void | get () |
| |
| BilinearFormBase & | operator*= (value_type const &alpha) |
| | operator *= More...
|
| |
|
BilinearFormBase & | operator+= (BilinearFormBase const &a) |
| |
|
BilinearFormBase & | operator-= (BilinearFormBase const &a) |
| |
| BilinearFormBase & | operator/= (value_type const &alpha) |
| | operator/= by a scalar More...
|
| |
|
BilinearFormBase & | operator= (BilinearFormBase const &form) |
| | copy operator
|
| |
|
virtual void | push_back (std::future< void > &&f) |
| |
|
BilinearFormBase & | scale (double alpha) |
| | scale the form
|
| |
| WorldComm const & | comm () const |
| |
|
| CommObject (CommObject &&)=default |
| |
|
| CommObject (CommObject const &)=default |
| |
|
| CommObject (worldcomm_ptr_t &w) |
| |
|
| CommObject (worldcomm_ptr_t const &w) |
| |
|
bool | hasWorldComm () const |
| | returns true if worldcomm is allocated, false othewise
|
| |
|
CommObject & | operator= (CommObject &&)=default |
| |
|
CommObject & | operator= (CommObject const &)=default |
| |
|
virtual void | setWorldComm (worldcomm_ptr_t const &w) |
| |
|
virtual void | setWorldComm (worldcomm_t &w) |
| |
|
worldcomm_ptr_t & | subWorldCommSeqPtr () |
| |
| worldcomm_ptr_t const & | subWorldCommSeqPtr () const |
| |
| WorldComm & | worldComm () |
| |
| WorldComm const & | worldComm () const |
| |
|
worldcomm_ptr_t & | worldCommPtr () |
| |
| worldcomm_ptr_t const & | worldCommPtr () const |
| |
|
|
std::string | M_name |
| |
|
size_type | M_pattern |
| |
|
matrix_ptrtype | M_matrix |
| |
|
list_block_type | M_lb |
| |
|
size_type | M_row_startInMatrix |
| |
|
size_type | M_col_startInMatrix |
| |
|
bool | M_do_build |
| |
|
bool | M_do_threshold |
| |
|
value_type | M_threshold |
| |
|
std::vector< size_type > | M_n_nz |
| |
|
std::vector< size_type > | M_n_oz |
| |
|
std::vector< size_type > const * | M_dofIdToContainerIdTest |
| |
|
std::vector< size_type > const * | M_dofIdToContainerIdTrial |
| |
|
deferred_dirichlet_state_ptrtype | M_dirichletState |
| |
|
std::vector< std::future< void > > | M_fut_assign |
| |
|
std::mutex | b_mutex |
| |
|
void | close () |
| |
|
void | closeBaseOperator () |
| |
|
bool | closed () const noexcept |
| |
|
bool | baseOperatorClosed () const noexcept |
| |
| void | zeroRows (std::vector< int > const &__dofs, Vector< value_type > const &__values, Vector< value_type > &rhs, Feel::Context const &on_context, double value_on_diagonal) |
| | Diagonalize representation(matrix) associated to the BilinearForm at selected dofs dofs by putting 0 on the extra diagonal terms and 1 on the diagonal. More...
|
| |
|
bool | useDeferredDirichlet () const noexcept |
| |
|
vf::DeferredDirichletPolicy | dirichletPolicy () const noexcept |
| |
|
void | setDirichletPolicy (vf::DeferredDirichletPolicy policy) noexcept |
| |
| void | setDirichletInPlace (bool value) |
| | Select whether deferred Dirichlet constraints modify the matrix in place. More...
|
| |
| bool | dirichletInPlace () const noexcept |
| |
| bool | hasUnconstrainedMatrix () const noexcept |
| |
|
void | setUseDeferredDirichlet (bool value) noexcept |
| |
|
BilinearFormBase & | deferDirichlet () noexcept |
| |
|
BilinearFormBase & | autoDirichlet () noexcept |
| |
|
BilinearFormBase & | immediateDirichlet () noexcept |
| |
|
bool | hasDeferredDirichlet () const noexcept |
| |
|
bool | hasPendingDirichletConstraints () const noexcept |
| |
|
bool | hasDirichletConstraints () const noexcept |
| |
|
bool | supportsConstrainedOperatorView () const noexcept |
| |
|
bool | hasMaterializedConstrainedOperator () const noexcept |
| |
| std::size_t | localStoredDirichletColumnEntryCount () const noexcept |
| |
|
bool | shouldDeferDirichlet (Feel::Context const &on_context) const noexcept |
| |
|
void | deferZeroRows (std::vector< int > const &dofs, std::vector< value_type > const &values, Feel::Context const &on_context, double value_on_diagonal, std::uint8_t entity_priority=vf::deferredDirichletEntityPriority(vf::DeferredDirichletEntity::unspecified)) |
| |
| void | clearDeferredDirichlet () |
| | Remove deferred constraints while the operator is still unconstrained. More...
|
| |
|
deferred_dirichlet_state_ptrtype const & | deferredDirichletStatePtr () const noexcept |
| |
|
void | shareDeferredDirichletState (deferred_dirichlet_state_ptrtype state) |
| |
| matrix_ptrtype const & | baseMatrixPtr () const |
| |
|
matrix_ptrtype & | baseMatrixPtr () |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| auto | constrainedSystem (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| auto | constrainedSystem (RhsType const &rhs) |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| auto | activeSystem (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| auto | activeSystem (RhsType const &rhs) |
| |
|
matrix_ptrtype | constrainedMatrixPtr () |
| |
|
matrix_ptrtype | constrainedMatrixPtr () const |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| matrix_ptrtype | constrainedMatrixPtr (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| matrix_ptrtype | constrainedMatrixPtr (RhsType const &rhs) |
| |
|
matrix_ptrtype | activeMatrixPtr () |
| |
|
matrix_ptrtype | activeMatrixPtr () const |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| matrix_ptrtype | activeMatrixPtr (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| matrix_ptrtype | activeMatrixPtr (RhsType const &rhs) |
| |
|
void | materializeConstrainedOperator () |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| void | materializeConstrainedOperator (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| void | materializeConstrainedOperator (RhsType const &rhs) |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| auto | constrainedVectorPtr (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| auto | constrainedVectorPtr (RhsType const &rhs) |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| auto | activeVectorPtr (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| auto | activeVectorPtr (RhsType const &rhs) |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| void | applyDeferredDirichlet (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| void | applyDeferredDirichlet (RhsType const &rhs) |
| |
template<typename RhsType >
requires requires( RhsType& rhs ) { rhs.vectorPtr(); } |
| void | applyDeferredDirichletToBaseOperator (RhsType &rhs) |
| |
template<typename RhsType >
requires requires( RhsType const& rhs ) { rhs.vectorPtr(); } |
| void | applyDeferredDirichletToBaseOperator (RhsType const &rhs) |
| |
|
void | add (size_type i, size_type j, value_type const &v) |
| | add value v at position (i, j) of the matrix associated with the bilinear form
|
| |
|
void | addMatrix (int *rows, int nrows, int *cols, int ncols, value_type *data, size_type K=0, size_type K2=invalid_v< size_type >) |
| | add value v at position (i, j) of the matrix associated with the bilinear form
|
| |
|
void | set (size_type i, size_type j, value_type const &v) |
| | set value v at position (i, j) of the matrix associated with the bilinear form
|
| |
|
void | addToNOz (size_type i, size_type n) |
| |
|
void | addToNNz (size_type i, size_type n) |
| |
|
size_type | nOz (size_type i) const |
| |
|
size_type | nNz (size_type i) const |
| |
|
template<typename X1 , typename X2 > |
| void | allocateMatrix (std::shared_ptr< X1 > const &x1, std::shared_ptr< X2 > const &x2) |
| |
|
bool | isMatrixAllocated () const |
| |
|
template<typename ... Ts> |
| Backend< value_type >::solve_return_type | solve (Ts &&... v) |
| |
|
template<typename ... Ts> |
| Backend< value_type >::solve_return_type | solveb (Ts &&... v) |
| |
|
deferred_dirichlet_state_type & | ensureDeferredDirichletState () |
| |
|
void | invalidateMaterializedDeferredDirichlet () |
| |
|
void | resetDeferredDirichletAfterOperatorReset () noexcept |
| |
|
deferred_dirichlet_set_type | allDeferredDirichletConstraints () const |
| |
|
void | promotePendingDeferredDirichlet () |
| |
|
template<typename EntryRange , typename VectorPtrType > |
| void | materializeInPlaceDeferredDirichlet (EntryRange const &entries, VectorPtrType const &rhsContribution) |
| |
|
template<typename VectorPtrType > |
| void | applyDeferredDirichletToBaseOperatorVector (VectorPtrType const &rhsVector) |
| |
|
template<typename VectorPtrType > |
| auto | materializeConstrainedSystem (VectorPtrType const &rhsVector) |
| |
|
matrix_ptrtype | materializeConstrainedMatrix () |
| |
|
template<typename VectorPtrType > |
| auto | materializeConstrainedVector (VectorPtrType const &rhsVector) |
| |
template<typename T = double>
class Feel::BilinearFormBase< T >
Base class for Bilinear Forms handle algebraic representation and multithreading.