SheafSystem
0.0.0.0
|
A discontiguous tuple, discontiguous fiber representation of the abstract map from section dof ids to section dof values of type sec_vd_dof_type. This class assumes most of the dofs have some given value (0.0 by default) and only stores dofs with a non-default value. More...
#include <sparse_section_dof_map.h>
Public Member Functions | |
virtual const std::string & | class_name () const |
The name of the actual (possibly derived) class of this instance. More... | |
sparse_section_dof_map () | |
Default constructor. More... | |
sparse_section_dof_map (const sparse_section_dof_map &xother) | |
Copy constructor. More... | |
sparse_section_dof_map (sec_rep_space *xhost, double xdefault_value=0.0) | |
Creates a dof map for a member of sec_rep_space xhost. More... | |
virtual sparse_section_dof_map * | clone () const |
Virtual default constructor. More... | |
virtual sparse_section_dof_map * | copy () const |
Virtual copy constructor. More... | |
sparse_section_dof_map & | operator= (const sparse_section_dof_map &xother) |
Assignment operator. More... | |
virtual | ~sparse_section_dof_map () |
Destructor. More... | |
double | default_value () |
The default value; the value for dofs that are not stored in _val_map. More... | |
virtual bool | invariant () const |
The class invariant. More... | |
virtual dof_tuple_type | type_id () const |
An identifer for the type of dof tuple this is. More... | |
virtual void * | dof_tuple () |
The dof tuple (mutable version). More... | |
virtual const void * | dof_tuple () const |
The dof tuple (const version). More... | |
virtual void | get_dof_tuple (void *xbuf, size_t xbuflen) const |
Copies the entire dof tuple from internal storage into xbuf. More... | |
virtual void | put_dof_tuple (const void *xbuf, size_t xbuflen) |
Copies the entire dof tuple from xbuf into internal storage. More... | |
virtual bool | supports_xfr_opt () const |
True if this dof map type supports dof tuple transfer optimization. /. More... | |
Public Member Functions inherited from fiber_bundle::section_dof_map | |
section_dof_map & | operator= (const section_dof_map &xother) |
Assignment operator. More... | |
virtual | ~section_dof_map () |
Destructor. More... | |
virtual sec_rep_space * | host () const |
The poset which hosts member() More... | |
virtual section_space_schema_member & | schema () |
The schema on which this is allocated (mutable version). More... | |
virtual const section_space_schema_member & | schema () const |
The schema on which this is allocated (const version). More... | |
virtual bool | dof_in_bounds (pod_index_type xdof_id, bool xis_table_dofs) const |
True if and only if the dof asociated with id xdof_id is within the current capacity of the dofs storage. More... | |
virtual bool | dof_in_bounds (pod_index_type xdisc_id, pod_index_type xfiber_id, bool xis_table_dofs) const |
True if and only if the dof asociated with discretization id xdisc_id and fiber dof id xfiber_id is within the current capacity of the dofs storage. More... | |
void | get_dof (pod_index_type xdisc_id, pod_index_type xfiber_dof_id, void *xdof, size_type xdof_size) |
void | get_dof (const scoped_index &xdisc_id, const scoped_index &xfiber_dof_id, void *xdof, size_type xdof_size) const |
Copies the dof referred to by xdisc_id, xfiber_dof_id into xdof. More... | |
void | get_dof (const scoped_index &xdisc_id, const scoped_index &xfiber_dof_id, void *xdof, size_type xdof_size) |
void | put_dof (const scoped_index &xdisc_id, const scoped_index &xfiber_dof_id, const void *xdof, size_type xdof_size) |
Sets the dof referred to by xdof_id to the value at xdof. More... | |
virtual bool | fiber_in_bounds (pod_index_type xdisc_id, bool xis_table_dofs) const |
True if and only if the fiber asociated with discretization id xdisc_id is within the current capacity of the dofs storage. More... | |
void | get_fiber (const scoped_index &xdisc_id, void *xfiber, size_type xfiber_size) const |
Sets xfiber to the fiber referred to by discretization id xdisc_id. More... | |
void | put_fiber (const scoped_index &xdisc_id, const void *xfiber, size_type xfiber_size) |
Sets the fiber referred to by discretization id xdisc_id to xfiber. More... | |
virtual void | force_fiber (pod_index_type xdisc_id, const void *xfiber, size_type xfiber_size) |
Sets the fiber referred to by discretization id xdisc_id to xfiber; allocates additional memory if necessary. More... | |
void | force_fiber (const scoped_index &xdisc_id, const void *xfiber, size_type xfiber_size) |
Sets the fiber referred to by discretization id xdisc_id to xfiber; allocates additional memory if necessary. More... | |
void | get_component (const scoped_index &xfiber_dof_id, void *xcomponent, size_type xcomponent_size) const |
Sets xcomponent to the component referred to by fiber id xfiber_dof_id. More... | |
void | put_component (const scoped_index &xfiber_dof_id, const void *xcomponent, size_type xcomponent_size) |
Sets the component referred to by fiber id xfiber_dof_id to xcomponent. More... | |
Public Member Functions inherited from sheaf::poset_dof_map | |
poset_dof_map & | operator= (const poset_dof_map &xother) |
Assignment operator. More... | |
virtual | ~poset_dof_map () |
Destructor. More... | |
virtual void | init_row_dof_map (const poset_state_handle *xhost, pod_index_type xschema_mbr_id, int xschema_version) |
Initializes this as a map for row dofs in host xhost, with schema member specified by xschema_mbr_id and schema version xschema_version. More... | |
void | init_row_dof_map (const poset_state_handle *xhost, const scoped_index &xschema_mbr_id, int xschema_version) |
Initializes this as a map for row dofs in host xhost, with schema member specified by xschema_mbr_id and schema version xschema_version. More... | |
bool | is_initialized () const |
True if this has been initialized, that is, if the schema has been set and the dof map storage allocated. More... | |
const scoped_index & | index () const |
The index of this in host() dof tuple table. More... | |
bool | is_table_dof_map () const |
True if this is a table dof map. More... | |
int | dof_ct () const |
The number of dofs in this map. More... | |
primitive_value | dof (pod_index_type xdof_id) const |
The dof referred to by xdof_id. More... | |
primitive_value | dof (const scoped_index &xdof_id) const |
The dof referred to by xdof_id. More... | |
primitive_value | dof (const std::string &xname) const |
The dof with name xname. More... | |
void | put_dof (pod_index_type xdof_id, const primitive_value &xdof) |
Sets the dof referred to by xdof_id to xdof. More... | |
void | put_dof (const scoped_index &xdof_id, const primitive_value &xdof) |
Sets the dof referred to by xdof_id to xdof. More... | |
void | put_dof (const std::string &xname, const primitive_value &xdof) |
Sets the dof with name xname to xdof. More... | |
void | get_dof (const scoped_index &xdof_id, void *xdof, size_type xdof_size) const |
Copies the dof referred to by xdof_id into xdof. More... | |
void | put_dof (const scoped_index &xdof_id, const void *xdof, size_type xdof_size) |
Sets the dof referred to by xdof_id to the value at xdof. More... | |
size_t | dof_tuple_ub () const |
The size of the dof tuple in bytes. More... | |
void | get_dof_tuple (arg_list &xargs) const |
Copies the entire dof tuple from internal storage into xargs. More... | |
void | put_dof_tuple (const arg_list &xargs) |
Copies the entire dof tuple from xargs into internal storage. More... | |
void | copy_dof_tuple (const poset_dof_map &xother) |
Copies the dof tuple of xother into this. More... | |
virtual void | put_defaults () |
Sets all dofs to defualt values. More... | |
unsigned int | ref_ct () const |
The number of references to this map. More... | |
void | inc_ref_ct () |
Increase the number of references to this map by one;. More... | |
void | dec_ref_ct () |
Decrease the number of references to this map by one. More... | |
int | version () const |
The version of the host of the schema this is defined on. More... | |
virtual const index_space_handle & | client_id_space () const |
The map from library ids to clients ids for the schema this is defined on. More... | |
std::string | to_string (const schema_poset_member &xschema) const |
Return schema member dof value as a string. More... | |
std::string | to_string () const |
Return dof values as a formated string. More... | |
Public Member Functions inherited from sheaf::any | |
virtual bool | is_ancestor_of (const any *other) const |
True if other conforms to this. More... | |
bool | is_same_type (const any *other) const |
True if other is the same type as this. More... | |
virtual | ~any () |
Destructor. More... | |
bool | invariant_check () const |
True if invariant checking is enabled. More... | |
void | enable_invariant_check () const |
Enable invariant checking. More... | |
void | disable_invariant_check () const |
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More... | |
int | disable_invariance_check_request_depth () const |
Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More... | |
Static Public Member Functions | |
static const std::string & | static_class_name () |
The name of this class. More... | |
Static Public Member Functions inherited from fiber_bundle::section_dof_map | |
static const std::string & | static_class_name () |
The name of this class. More... | |
Static Public Member Functions inherited from sheaf::poset_dof_map | |
static const std::string & | static_class_name () |
The name of this class. More... | |
static poset_dof_map * | new_dof_map (const std::string &xclass_name, dof_tuple_type xsheaf_base_class_id) |
Creates an uninitialized dof map of type xclass_name, if a prototype of that name exists, otherwise of type xsheaf_base_class_id. More... | |
Protected Member Functions | |
virtual void | allocate_dofs () |
Allocates dof storage. More... | |
Protected Member Functions inherited from fiber_bundle::section_dof_map | |
section_dof_map () | |
Default constructor. More... | |
section_dof_map (const section_dof_map &xother) | |
Copy constructor. More... | |
section_dof_map (sec_rep_space *xhost, pod_index_type xbase_id, int xversion) | |
Creates a map for a (possibly partial) section of xhost defined on version xversion of the base space member identified by xbase_id. More... | |
Protected Member Functions inherited from sheaf::poset_dof_map | |
poset_dof_map () | |
Default constructor;. More... | |
poset_dof_map (const poset_dof_map &xother) | |
Copy constructor. More... | |
poset_dof_map (const poset_state_handle *xhost, bool xis_table_dof_map) | |
Creates a map for the table dofs (xis_table_dofs true) or row dofs (xis_table dofs false) for use in host xhost. More... | |
poset_dof_map (const schema_poset_member *xschema, bool xis_table_dof_map) | |
Creates a map for the table dofs (xis_table_dofs true) or row dofs (xis_table dofs false) for use in host xhost. More... | |
virtual void | put_host (const poset_state_handle *xhost) |
Sets host() to xhost. More... | |
void | put_index (const scoped_index &xindex) |
Sets the index of the member for which this provides the dofs. More... | |
void | put_dof_ct (int xdof_ct) |
Sets dof_ct() to xdof_ct. More... | |
void | put_dof_tuple_ub (size_t xub) |
Sets dof_tuple_ub() to xub. More... | |
void | put_ref_ct (int xref_ct) |
Sets ref_ct() to xref_ct). More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
Friends | |
class | fiber_bundles_namespace |
NEW DOF ACCESS FACET | |
virtual void | get_dof (pod_index_type xdof_id, void *xdof, size_type xdof_size) const |
Copies the dof referred to by xdof_id into xdof. More... | |
virtual void | put_dof (pod_index_type xdof_id, const void *xdof, size_type xdof_size) |
Sets the dof referred to by xdof_id to the value at xdof. More... | |
virtual void | get_dof (pod_index_type xdisc_id, pod_index_type xfiber_dof_id, void *xdof, size_type xdof_size) const |
Copies the dof referred to by xdisc_id, xfiber_dof_id into xdof. More... | |
virtual void | put_dof (pod_index_type xdisc_id, pod_index_type xfiber_dof_id, const void *xdof, size_type xdof_size) |
Sets the dof referred to by xdof_id to the value at xdof. More... | |
virtual void | get_fiber (pod_index_type xdisc_id, void *xfiber, size_type xfiber_size) const |
Sets xfiber to the fiber referred to by discretization id xdisc_id. More... | |
virtual void | put_fiber (pod_index_type xdisc_id, const void *xfiber, size_type xfiber_size) |
Sets the fiber referred to by discretization id xdisc_id to xfiber. More... | |
virtual void | get_component (pod_index_type xfiber_dof_id, void *xcomponent, size_type xcomponent_size) const |
Sets xcomponent to the component referred to by fiber id xfiber_dof_id. More... | |
virtual void | put_component (pod_index_type xfiber_dof_id, const void *xcomponent, size_type xcomponent_size) |
Sets the component referred to by fiber id xfiber_dof_id to xcomponent. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from sheaf::poset_dof_map | |
static dof_map_factory & | factory () |
The dof map factory. More... | |
Protected Attributes inherited from sheaf::poset_dof_map | |
poset_state_handle * | _host |
The host of the poset member for which this stores the dofs. More... | |
scoped_index | _index |
The poset member for which this stores the dofs. More... | |
schema_poset_member * | _schema |
The schema on which this is instantiated. More... | |
bool | _is_table_dof_map |
True if this is a table dof map. More... | |
int | _dof_ct |
The number of dofs in this map. More... | |
size_t | _dof_tuple_ub |
The size of the dof tuple. More... | |
unsigned int | _ref_ct |
The number of references to this map /. More... | |
A discontiguous tuple, discontiguous fiber representation of the abstract map from section dof ids to section dof values of type sec_vd_dof_type. This class assumes most of the dofs have some given value (0.0 by default) and only stores dofs with a non-default value.
Definition at line 53 of file sparse_section_dof_map.h.
fiber_bundle::sparse_section_dof_map::sparse_section_dof_map | ( | ) |
Default constructor.
Definition at line 80 of file sparse_section_dof_map.cc.
References invariant(), and sheaf::poset_dof_map::is_initialized().
Referenced by allocate_dofs(), clone(), copy(), sparse_section_dof_map(), and static_class_name().
fiber_bundle::sparse_section_dof_map::sparse_section_dof_map | ( | const sparse_section_dof_map & | xother | ) |
Copy constructor.
Definition at line 104 of file sparse_section_dof_map.cc.
References invariant(), and sparse_section_dof_map().
fiber_bundle::sparse_section_dof_map::sparse_section_dof_map | ( | sec_rep_space * | xhost, |
double | xdefault_value = 0.0 |
||
) |
Creates a dof map for a member of sec_rep_space xhost.
Definition at line 125 of file sparse_section_dof_map.cc.
References clone(), default_value(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
|
virtual |
Destructor.
Definition at line 228 of file sparse_section_dof_map.cc.
References invariant().
Referenced by operator=().
|
protectedvirtual |
Allocates dof storage.
Implements sheaf::poset_dof_map.
Definition at line 743 of file sparse_section_dof_map.cc.
References sheaf::poset_dof_map::factory(), sheaf::dof_map_factory::insert_prototype(), and sparse_section_dof_map().
Referenced by supports_xfr_opt().
|
virtual |
The name of the actual (possibly derived) class of this instance.
Reimplemented from fiber_bundle::section_dof_map.
Definition at line 38 of file sparse_section_dof_map.cc.
References static_class_name().
|
virtual |
Virtual default constructor.
Implements sheaf::poset_dof_map.
Definition at line 147 of file sparse_section_dof_map.cc.
References copy(), sheaf::any::is_same_type(), and sparse_section_dof_map().
Referenced by sparse_section_dof_map().
|
virtual |
Virtual copy constructor.
Implements sheaf::poset_dof_map.
Definition at line 173 of file sparse_section_dof_map.cc.
References sheaf::any::is_same_type(), operator=(), and sparse_section_dof_map().
Referenced by clone().
|
inline |
The default value; the value for dofs that are not stored in _val_map.
Definition at line 112 of file sparse_section_dof_map.h.
Referenced by sparse_section_dof_map().
|
virtual |
The dof tuple (mutable version).
Not Implemented.
Implements sheaf::poset_dof_map.
Definition at line 565 of file sparse_section_dof_map.cc.
References invariant().
Referenced by put_component().
|
virtual |
The dof tuple (const version).
Not Implemented.
Implements sheaf::poset_dof_map.
Definition at line 587 of file sparse_section_dof_map.cc.
References get_dof_tuple(), and invariant().
|
virtual |
Sets xcomponent to the component referred to by fiber id xfiber_dof_id.
Implements fiber_bundle::section_dof_map.
Definition at line 484 of file sparse_section_dof_map.cc.
References fiber_bundle::section_space_schema_member::discretization_ct(), get_dof(), sheaf::ij_product_structure::ordinal(), sheaf::index_space_handle::product_structure(), put_component(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
Referenced by put_fiber().
|
virtual |
Copies the dof referred to by xdof_id into xdof.
Reimplemented from sheaf::poset_dof_map.
Definition at line 278 of file sparse_section_dof_map.cc.
References sheaf::poset_dof_map::is_table_dof_map(), put_dof(), and fiber_bundle::section_dof_map::schema().
Referenced by get_component(), get_dof(), get_dof_tuple(), get_fiber(), invariant(), and put_dof().
|
virtual |
Copies the dof referred to by xdisc_id, xfiber_dof_id into xdof.
Implements fiber_bundle::section_dof_map.
Definition at line 352 of file sparse_section_dof_map.cc.
References get_dof(), sheaf::ordinal(), sheaf::index_space_handle::product_structure(), put_dof(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
|
virtual |
Copies the entire dof tuple from internal storage into xbuf.
Implements sheaf::poset_dof_map.
Definition at line 609 of file sparse_section_dof_map.cc.
References sheaf::poset_dof_map::dof(), sheaf::poset_dof_map::dof_tuple_ub(), get_dof(), sheaf::index_space_handle::get_iterator(), invariant(), sheaf::index_space_iterator::is_done(), sheaf::index_space_iterator::next(), sheaf::index_space_iterator::pod(), put_dof_tuple(), sheaf::index_space_handle::release_iterator(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
Referenced by dof_tuple().
|
virtual |
Sets xfiber to the fiber referred to by discretization id xdisc_id.
Reimplemented from fiber_bundle::section_dof_map.
Definition at line 410 of file sparse_section_dof_map.cc.
References sheaf::index_space_handle::end(), fiber_bundle::section_space_schema_member::fiber_schema_id_space(), get_dof(), sheaf::ij_product_structure::ordinal(), sheaf::index_space_handle::product_structure(), put_fiber(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
Referenced by put_dof().
|
virtual |
The class invariant.
Reimplemented from fiber_bundle::section_dof_map.
Definition at line 248 of file sparse_section_dof_map.cc.
References get_dof().
Referenced by dof_tuple(), get_dof_tuple(), operator=(), put_dof_tuple(), sparse_section_dof_map(), and ~sparse_section_dof_map().
fiber_bundle::sparse_section_dof_map & fiber_bundle::sparse_section_dof_map::operator= | ( | const sparse_section_dof_map & | xother | ) |
Assignment operator.
Definition at line 199 of file sparse_section_dof_map.cc.
References invariant(), sheaf::poset_dof_map::is_initialized(), fiber_bundle::section_dof_map::operator=(), and ~sparse_section_dof_map().
Referenced by copy().
|
virtual |
Sets the component referred to by fiber id xfiber_dof_id to xcomponent.
Implements fiber_bundle::section_dof_map.
Definition at line 520 of file sparse_section_dof_map.cc.
References fiber_bundle::section_space_schema_member::discretization_ct(), dof_tuple(), sheaf::ij_product_structure::ordinal(), sheaf::index_space_handle::product_structure(), put_dof(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
Referenced by get_component().
|
virtual |
Sets the dof referred to by xdof_id to the value at xdof.
Reimplemented from sheaf::poset_dof_map.
Definition at line 312 of file sparse_section_dof_map.cc.
References get_dof(), sheaf::poset_dof_map::is_table_dof_map(), and fiber_bundle::section_dof_map::schema().
Referenced by get_dof(), put_component(), put_dof(), put_dof_tuple(), and put_fiber().
|
virtual |
Sets the dof referred to by xdof_id to the value at xdof.
Implements fiber_bundle::section_dof_map.
Definition at line 380 of file sparse_section_dof_map.cc.
References get_fiber(), sheaf::ordinal(), sheaf::index_space_handle::product_structure(), put_dof(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
|
virtual |
Copies the entire dof tuple from xbuf into internal storage.
Implements sheaf::poset_dof_map.
Definition at line 645 of file sparse_section_dof_map.cc.
References sheaf::poset_dof_map::dof(), sheaf::poset_dof_map::dof_tuple_ub(), sheaf::index_space_handle::get_iterator(), invariant(), sheaf::index_space_iterator::is_done(), sheaf::index_space_iterator::next(), sheaf::index_space_iterator::pod(), put_dof(), sheaf::index_space_handle::release_iterator(), sheaf::schema_poset_member::row_dof_id_space(), fiber_bundle::section_dof_map::schema(), and supports_xfr_opt().
Referenced by get_dof_tuple().
|
virtual |
Sets the fiber referred to by discretization id xdisc_id to xfiber.
Implements fiber_bundle::section_dof_map.
Definition at line 447 of file sparse_section_dof_map.cc.
References sheaf::index_space_handle::end(), fiber_bundle::section_space_schema_member::fiber_schema_id_space(), get_component(), sheaf::ij_product_structure::ordinal(), sheaf::index_space_handle::product_structure(), put_dof(), sheaf::schema_poset_member::row_dof_id_space(), and fiber_bundle::section_dof_map::schema().
Referenced by get_fiber().
|
static |
The name of this class.
Definition at line 58 of file sparse_section_dof_map.cc.
References sparse_section_dof_map().
Referenced by class_name().
|
virtual |
True if this dof map type supports dof tuple transfer optimization. /.
Reimplemented from fiber_bundle::section_dof_map.
Definition at line 681 of file sparse_section_dof_map.cc.
References allocate_dofs().
Referenced by put_dof_tuple().
|
inlinevirtual |
An identifer for the type of dof tuple this is.
Implements sheaf::poset_dof_map.
Definition at line 129 of file sparse_section_dof_map.h.
References fiber_bundle::section_dof_map::get_dof(), and fiber_bundle::section_dof_map::put_dof().