Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

asr(2rheolef) [debian man page]

asr(2rheolef)							    rheolef-6.1 						     asr(2rheolef)

NAME
asr - associative sparse matrix (rheolef-6.1) SYNOPSYS
Associative sparse matrix container stored row by row using the STL map class. IMPLEMENTATION NOTE
Implementation use MPI-1.1 and is inspired from Mat_MPI in PETSc-2.0.22. TO DO
For efficiency purpose, the assembly phase may access directly to the asr representation, without crossing the reference counting and pointer handler. Something like the iterator for dense vectors. IMPLEMENTATION
template<class R> class basic_asr : public smart_pointer<R> { public: // typedefs: typedef typename R::size_type size_type; typedef typename R::element_type element_type; typedef typename R::memory_type memory_type; typedef distributor::communicator_type communicator_type; // allocators/deallocators: basic_asr (size_type dis_nrow = 0, size_type dis_ncol = 0); basic_asr (const distributor& row_ownership, const distributor& col_ownership); explicit basic_asr (const csr<element_type,memory_type>&); // accessors: const communicator_type& comm() const; // local sizes size_type nrow () const; size_type ncol () const; size_type nnz () const; // global sizes size_type dis_nrow () const; size_type dis_ncol () const; size_type dis_nnz () const; const distributor& row_ownership() const; const distributor& col_ownership() const; // range on local memory size_type row_first_index () const; size_type row_last_index () const; size_type col_first_index () const; size_type col_last_index () const; // global modifiers: element_type& dis_entry (size_type dis_i, size_type dis_j); void dis_entry_assembly(); void dis_entry_assembly_begin (); void dis_entry_assembly_end (); void resize (size_type dis_nrow = 0, size_type dis_ncol = 0); // output: void dump (const std::string& name) const; }; template <class T, class M = rheo_default_memory_model> class asr { typedef M memory_type; }; template <class T> class asr<T,sequential> : public basic_asr<asr_seq_rep<T> > { public: typedef typename basic_asr<asr_seq_rep<T> >::size_type size_type; typedef sequential memory_type; asr (size_type dis_nrow = 0, size_type dis_ncol = 0); asr (const distributor& row_ownership, const distributor& col_ownertship); explicit asr(const csr<T,memory_type>&); }; #ifdef _RHEOLEF_HAVE_MPI template <class T> class asr<T,distributed> : public basic_asr<asr_mpi_rep<T> > { public: typedef distributed memory_type; typedef typename basic_asr<asr_mpi_rep<T> >::size_type size_type; asr (size_type dis_nrow = 0, size_type dis_ncol = 0); asr (const distributor& row_ownership, const distributor& col_ownertship); explicit asr(const csr<T,memory_type>&); }; #endif // _RHEOLEF_HAVE_MPI // inputs/outputs: template <class T, class M> idiststream& operator >> (idiststream& s, asr<T,M>& x); template <class T, class M> odiststream& operator << (odiststream& s, const asr<T,M>& x); rheolef-6.1 rheolef-6.1 asr(2rheolef)

Check Out this Related Man Page

space(2rheolef) 						    rheolef-6.1 						   space(2rheolef)

NAME
space -- piecewise polynomial finite element space DESCRIPTION
The space class contains some numbering for unknowns and blocked degrees of freedoms related to a given mesh and polynomial approximation. SYNOPSIS
space Q (omega, "P1"); space V (omega, "P2", "vector"); space T (omega, "P1d", "tensor"); PRODUCT
space X = T*V*Q; space Q2 = pow(Q,2); IMPLEMENTATION
template <class T> class space_basic<T,sequential> : public smart_pointer<space_rep<T,sequential> > { public: // typedefs: typedef space_rep<T,sequential> rep; typedef smart_pointer<rep> base; typedef typename rep::size_type size_type; typedef typename rep::valued_type valued_type; // allocators: space_basic (const geo_basic<T,sequential>& omega = (geo_basic<T,sequential>()), std::string approx = "", std::string valued = "scalar"); space_basic (const space_mult_list<T,sequential>& expr); space_basic (const space_constitution<T,sequential>& constit); // accessors: void block (std::string dom_name); void unblock(std::string dom_name); void block (const domain_indirect_basic<sequential>& dom); void unblock(const domain_indirect_basic<sequential>& dom); const distributor& ownership() const; const communicator& comm() const; size_type ndof() const; size_type dis_ndof() const; const geo_basic<T,sequential>& get_geo() const; const numbering<T,sequential>& get_numbering() const; size_type size() const; valued_type valued_tag() const; const std::string& valued() const; space_component<T,sequential> operator[] (size_type i_comp); space_component_const<T,sequential> operator[] (size_type i_comp) const; const space_constitution<T,sequential>& get_constitution() const; size_type degree() const; std::string get_approx() const; std::string stamp() const; void dis_idof (const geo_element& K, std::vector<size_type>& dis_idof) const; const distributor& iu_ownership() const; const distributor& ib_ownership() const; bool is_blocked (size_type idof) const; size_type iub (size_type idof) const; bool dis_is_blocked (size_type dis_idof) const; size_type dis_iub (size_type dis_idof) const; const distributor& ios_ownership() const; size_type idof2ios_dis_idof (size_type idof) const; size_type ios_idof2dis_idof (size_type ios_idof) const; const point_basic<T>& xdof (size_type idof) const; const array<point_basic<T>,sequential>& get_xdofs() const; template <class Function> T momentum (Function f, size_type idof) const; template <class Function> point_basic<T> vector_momentum (Function f, size_type idof) const; array<size_type, sequential> build_indirect_array ( const space_basic<T,sequential>& Wh, const std::string& dom_name) const; array<size_type, sequential> build_indirect_array ( const space_basic<T,sequential>& Wh, const geo_basic<T,sequential>& bgd_gamma) const; const std::set<size_type>& ext_iu_set() const { return base::data().ext_iu_set(); } const std::set<size_type>& ext_ib_set() const { return base::data().ext_ib_set(); } // comparator: bool operator== (const space_basic<T,sequential>& V2) const { return base::data().operator==(V2.data()); } bool operator!= (const space_basic<T,sequential>& V2) const { return ! operator== (V2); } friend bool are_compatible (const space_basic<T,sequential>& V1, const space_basic<T,sequential>& V2) { return are_compatible (V1.data(), V2.data()); } }; IMPLEMENTATION
template <class T> class space_basic<T,distributed> : public smart_pointer<space_rep<T,distributed> > { public: // typedefs: typedef space_rep<T,distributed> rep; typedef smart_pointer<rep> base; typedef typename rep::size_type size_type; typedef typename rep::valued_type valued_type; // allocators: space_basic (const geo_basic<T,distributed>& omega = (geo_basic<T,distributed>()), std::string approx = "", std::string valued = "scalar"); space_basic (const space_mult_list<T,distributed>&); space_basic (const space_constitution<T,distributed>& constit); // accessors: void block (std::string dom_name); void unblock(std::string dom_name); void block (const domain_indirect_basic<distributed>& dom); void unblock(const domain_indirect_basic<distributed>& dom); const distributor& ownership() const; const communicator& comm() const; size_type ndof() const; size_type dis_ndof() const; const geo_basic<T,distributed>& get_geo() const; const numbering<T,distributed>& get_numbering() const; size_type size() const; valued_type valued_tag() const; const std::string& valued() const; space_component<T,distributed> operator[] (size_type i_comp); space_component_const<T,distributed> operator[] (size_type i_comp) const; const space_constitution<T,distributed>& get_constitution() const; size_type degree() const; std::string get_approx() const; std::string stamp() const; void dis_idof (const geo_element& K, std::vector<size_type>& dis_idof) const; const distributor& iu_ownership() const; const distributor& ib_ownership() const; bool is_blocked (size_type idof) const; size_type iub (size_type idof) const; bool dis_is_blocked (size_type dis_idof) const; size_type dis_iub (size_type dis_idof) const; const distributor& ios_ownership() const; size_type idof2ios_dis_idof (size_type idof) const; size_type ios_idof2dis_idof (size_type ios_idof) const; const point_basic<T>& xdof (size_type idof) const; const array<point_basic<T>,distributed>& get_xdofs() const; template <class Function> T momentum (Function f, size_type idof) const; template <class Function> point_basic<T> vector_momentum (Function f, size_type idof) const; array<size_type, distributed> build_indirect_array ( const space_basic<T,distributed>& Wh, const std::string& dom_name) const; array<size_type, distributed> build_indirect_array ( const space_basic<T,distributed>& Wh, const geo_basic<T,distributed>& bgd_gamma) const; const std::set<size_type>& ext_iu_set() const { return base::data().ext_iu_set(); } const std::set<size_type>& ext_ib_set() const { return base::data().ext_ib_set(); } // comparator: bool operator== (const space_basic<T,distributed>& V2) const { return base::data().operator==(V2.data()); } bool operator!= (const space_basic<T,distributed>& V2) const { return ! operator== (V2); } friend bool are_compatible (const space_basic<T,distributed>& V1, const space_basic<T,distributed>& V2) { return are_compatible (V1.data(), V2.data()); } }; rheolef-6.1 rheolef-6.1 space(2rheolef)
Man Page