.\" .de Id .. .de Sp .if n .sp .if t .sp 0.4 .. .TH space 2rheolef "rheolef-6.7" "rheolef-6.7" "rheolef-6.7" .\" label: /*Class:space .SH NAME \fBspace\fP -- piecewise polynomial finite element space .\" skip: @clindex space .SH DESCRIPTION The \fBspace\fP class contains some numbering for unknowns and blocked degrees of freedoms related to a given mesh and polynomial approximation. .SH SYNOPSIS .\" begin_example .Sp .nf space Q (omega, "P1"); space V (omega, "P2", "vector"); space T (omega, "P1d", "tensor"); .Sp .fi .\" end_example .SH PRODUCT .\" begin_example .Sp .nf space X = T*V*Q; space Q2 = pow(Q,2); .Sp .fi .\" end_example .\" skip start:SEE ALSO: .\" skip start:AUTHORS: .\" skip start:DATE: .\" END .SH IMPLEMENTATION .\" begin_example .Sp .nf template class space_basic : public smart_pointer > { public: // typedefs: typedef space_rep rep; typedef smart_pointer base; typedef typename rep::size_type size_type; typedef typename rep::valued_type valued_type; // allocators: space_basic (const geo_basic& omega = (geo_basic()), std::string approx = "", std::string valued = "scalar"); space_basic (const space_mult_list& expr); space_basic (const space_constitution& constit); // accessors: void block (std::string dom_name); void unblock(std::string dom_name); void block (const domain_indirect_basic& dom); void unblock(const domain_indirect_basic& dom); const distributor& ownership() const; const communicator& comm() const; size_type ndof() const; size_type dis_ndof() const; const geo_basic& get_geo() const; const numbering& get_numbering() const; size_type size() const; valued_type valued_tag() const; const std::string& valued() const; space_component operator[] (size_type i_comp); space_component_const operator[] (size_type i_comp) const; const space_constitution& 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& 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& xdof (size_type idof) const; const disarray,sequential>& get_xdofs() const; template T momentum (const Function& f, size_type idof) const; template point_basic vector_momentum (const Function& f, size_type idof) const; template tensor_basic tensor_momentum (const Function& f, size_type idof) const; disarray build_indirect_array ( const space_basic& Wh, const std::string& dom_name) const; disarray build_indirect_array ( const space_basic& Wh, const geo_basic& bgd_gamma) const; const std::set& ext_iu_set() const { return base::data().ext_iu_set(); } const std::set& ext_ib_set() const { return base::data().ext_ib_set(); } // comparator: bool operator== (const space_basic& V2) const { return base::data().operator==(V2.data()); } bool operator!= (const space_basic& V2) const { return ! operator== (V2); } friend bool are_compatible (const space_basic& V1, const space_basic& V2) { return are_compatible (V1.data(), V2.data()); } }; .Sp .fi .\" end_example .SH IMPLEMENTATION .\" begin_example .Sp .nf template class space_basic : public smart_pointer > { public: // typedefs: typedef space_rep rep; typedef smart_pointer base; typedef typename rep::size_type size_type; typedef typename rep::valued_type valued_type; // allocators: space_basic (const geo_basic& omega = (geo_basic()), std::string approx = "", std::string valued = "scalar"); space_basic (const space_mult_list&); space_basic (const space_constitution& constit); // accessors: void block (std::string dom_name); void unblock(std::string dom_name); void block (const domain_indirect_basic& dom); void unblock(const domain_indirect_basic& dom); const distributor& ownership() const; const communicator& comm() const; size_type ndof() const; size_type dis_ndof() const; const geo_basic& get_geo() const; const numbering& get_numbering() const; size_type size() const; valued_type valued_tag() const; const std::string& valued() const; space_component operator[] (size_type i_comp); space_component_const operator[] (size_type i_comp) const; const space_constitution& 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& 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& xdof (size_type idof) const; const disarray,distributed>& get_xdofs() const; template T momentum (const Function& f, size_type idof) const; template point_basic vector_momentum (const Function& f, size_type idof) const; template tensor_basic tensor_momentum (const Function& f, size_type idof) const; disarray build_indirect_array ( const space_basic& Wh, const std::string& dom_name) const; disarray build_indirect_array ( const space_basic& Wh, const geo_basic& bgd_gamma) const; const std::set& ext_iu_set() const { return base::data().ext_iu_set(); } const std::set& ext_ib_set() const { return base::data().ext_ib_set(); } // comparator: bool operator== (const space_basic& V2) const { return base::data().operator==(V2.data()); } bool operator!= (const space_basic& V2) const { return ! operator== (V2); } friend bool are_compatible (const space_basic& V1, const space_basic& V2) { return are_compatible (V1.data(), V2.data()); } }; .Sp .fi .\" end_example