SheafSystem
0.0.0.0
|
The general section push-forward operator; moves sections from one sec_rep_space to another using extension by zero to define the target outside the domain of the source. More...
#include <section_pusher.h>
SECTION_PUSHER FACET | |
section_pusher (const field_vd &xsrc, const field_vd &xdst, bool xauto_access) | |
Creates the push-forward from the property space of xsrc to the property space of xdst. More... | |
section_pusher (const sec_rep_space &xdomain, const sec_rep_space &xrange, const sec_ed &xdomain_coord, const sec_ed &xrange_coord, bool xauto_access) | |
Creates the push-forward from xdomain to xrange induced by xdomain_coord and xrange_coord. More... | |
const sec_rep_space & | domain () const |
The domain of the push-forward map. More... | |
const geometry::sec_ed_invertible & | domain_coords () const |
The coordinates section for the domain. More... | |
const sec_rep_space & | range () const |
The range of the push-forward map. More... | |
const sec_ed & | range_coords () const |
The coordinates section for the range. More... | |
sec_vd * | push (const sec_vd &xinput, bool xauto_access) |
Pushes field xinput from sec_rep_space domain() to sec_rep_space range(), auto-allocated. More... | |
void | push_pa (const sec_vd &xinput, sec_vd &result, bool xauto_access) |
Pushes field xinput from sec_rep_space domain() to sec_rep_space range(), pre-allocated. More... | |
bool | same_base (const sec_ed &xcoord, const sec_rep_space &xspace) const |
True if and only if xcoord and xspace have the same base space. More... | |
bool | same_discretization (const sec_ed &xcoord, const sec_rep_space &xspace) const |
True if and only if xcoord and xspace have the same discretization. More... | |
bool | same_fiber (const sec_rep_space &xspace1, const sec_rep_space &xspace2) const |
True if and only if xspace1 and xspace2 have the same fiber type and dimension. More... | |
section_pusher_push_action & | overlap_action () const |
Computes value of destination dofs where dst overlaps src. More... | |
section_pusher_push_action & | default_overlap_action () const |
Overlap action if none specified by clinet. More... | |
section_pusher_push_action & | extension_action () const |
Computes value of destination dofs where dst does not overlap src. More... | |
section_pusher_push_action & | default_extension_action () const |
Extension action if none specified by clinet. More... | |
void | put_overlap_action (section_pusher_push_action &xoverlap_action) |
Sets the overlap action to xoverlap_action. More... | |
void | put_extension_action (section_pusher_push_action &xextension_cction) |
Sets the extension action to xextension_action. More... | |
section_pusher () | |
Default constructor; protected to prevent default construction. More... | |
ANY FACET | |
section_pusher (const section_pusher &xother) | |
Copy constructor. More... | |
virtual | ~section_pusher () |
Destructor. More... | |
virtual bool | invariant () const |
Class invariant. More... | |
Additional Inherited Members | |
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 * | clone () const |
Virtual constructor, makes a new instance of 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... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
The general section push-forward operator; moves sections from one sec_rep_space to another using extension by zero to define the target outside the domain of the source.
Definition at line 65 of file section_pusher.h.
fields::section_pusher::section_pusher | ( | const field_vd & | xsrc, |
const field_vd & | xdst, | ||
bool | xauto_access | ||
) |
Creates the push-forward from the property space of xsrc to the property space of xdst.
Definition at line 91 of file section_pusher.cc.
References fields::field_vd::access_request_depth(), sheaf::poset_state_handle::attach_to_state(), fields::field_vd::coordinates(), fields::field_vd::get_read_access(), fiber_bundle::sec_at1::host(), fiber_bundle::sec_vd::host(), fields::field_vd::property(), fields::field_vd::release_access(), fiber_bundle::sec_rep_space_member::schema(), section_pusher(), and fields::field_vd::state_is_read_accessible().
fields::section_pusher::section_pusher | ( | const sec_rep_space & | xdomain, |
const sec_rep_space & | xrange, | ||
const sec_ed & | xdomain_coord, | ||
const sec_ed & | xrange_coord, | ||
bool | xauto_access | ||
) |
Creates the push-forward from xdomain to xrange induced by xdomain_coord and xrange_coord.
Definition at line 258 of file section_pusher.cc.
References sheaf::read_write_monitor_handle::access_request_depth(), sheaf::poset_state_handle::attach_to_state(), domain(), sheaf::poset_state_handle::get_read_access(), sheaf::poset_component::get_read_access(), fiber_bundle::sec_at1::host(), sheaf::poset_state_handle::release_access(), sheaf::poset_component::release_access(), fiber_bundle::sec_rep_space_member::schema(), fiber_bundle::sec_rep_space::schema(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
|
protected |
Default constructor; protected to prevent default construction.
Not Implemented.
Definition at line 720 of file section_pusher.cc.
References sheaf::abstract_poset_member::attach_to_state(), fiber_bundle::section_space_schema_member::base_space(), fiber_bundle::section_space_schema_member::base_space_id(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), sheaf::auto_block< T, S >::ct(), fiber_bundle::sec_tuple::detach_from_state(), fields::pullback_map_entry::disc_id, fiber_bundle::discretization_context::disc_id, fields::pullback_map_entry::domain_pt, sheaf::DOWN, fiber_bundle::section_space_schema_member::evaluation(), fiber_bundle::eval_iterator::evaluator(), fiber_bundle::eval_iterator::force_is_done(), sheaf::depth_first_iterator::force_is_done(), fiber_bundle::eval_iterator::gather_dofs(), fields::property_disc_iterator::get_prop_disc_values(), fiber_bundle::sec_vd::host(), sheaf::poset_component::index(), sheaf::depth_first_iterator::index(), fiber_bundle::chart_point::invalidate(), sheaf::depth_first_iterator::is_done(), sheaf::scoped_index::is_hub_scope(), sheaf::depth_first_iterator::next(), sheaf::NOT_STRICT, sheaf::scoped_index::pod(), fields::property_disc_iterator::property_discretization_members(), fiber_bundle::sec_rep_space_member::schema(), sheaf::auto_block< T, S >::set_ct(), sheaf::auto_block< T, un_block_initialization_policy< T > >::set_ct(), sheaf::depth_first_iterator::truncate(), fiber_bundle::section_evaluator::value_at_coord(), and fiber_bundle::discretization_context::values.
Referenced by fields::avg_section_pusher::avg_section_pusher(), put_extension_action(), and section_pusher().
fields::section_pusher::section_pusher | ( | const section_pusher & | xother | ) |
Copy constructor.
Not Implemented.
Definition at line 1517 of file section_pusher.cc.
References ~section_pusher().
|
virtual |
Destructor.
Definition at line 1533 of file section_pusher.cc.
References invariant().
Referenced by section_pusher().
fields::section_pusher_push_action & fields::section_pusher::default_extension_action | ( | ) | const |
Extension action if none specified by clinet.
Definition at line 670 of file section_pusher.cc.
References put_overlap_action().
Referenced by extension_action().
fields::section_pusher_push_action & fields::section_pusher::default_overlap_action | ( | ) | const |
Overlap action if none specified by clinet.
Definition at line 656 of file section_pusher.cc.
References extension_action().
Referenced by overlap_action().
const fiber_bundle::sec_rep_space & fields::section_pusher::domain | ( | ) | const |
The domain of the push-forward map.
Definition at line 340 of file section_pusher.cc.
References domain_coords().
Referenced by section_pusher().
const geometry::sec_ed_invertible & fields::section_pusher::domain_coords | ( | ) | const |
The coordinates section for the domain.
Definition at line 357 of file section_pusher.cc.
References range().
Referenced by domain().
fields::section_pusher_push_action & fields::section_pusher::extension_action | ( | ) | const |
Computes value of destination dofs where dst does not overlap src.
Definition at line 663 of file section_pusher.cc.
References default_extension_action().
Referenced by default_overlap_action().
|
virtual |
Class invariant.
Reimplemented from sheaf::any.
Reimplemented in fields::avg_section_pusher.
Definition at line 1549 of file section_pusher.cc.
Referenced by fields::avg_section_pusher::invariant(), and ~section_pusher().
fields::section_pusher_push_action & fields::section_pusher::overlap_action | ( | ) | const |
Computes value of destination dofs where dst overlaps src.
Definition at line 649 of file section_pusher.cc.
References default_overlap_action().
Referenced by same_fiber().
fiber_bundle::sec_vd * fields::section_pusher::push | ( | const sec_vd & | xinput, |
bool | xauto_access | ||
) |
Pushes field xinput from sec_rep_space domain() to sec_rep_space range(), auto-allocated.
Definition at line 408 of file section_pusher.cc.
References fiber_bundle::sec_vd::clone(), fiber_bundle::sec_rep_space_member::new_jim_state(), and push_pa().
Referenced by range_coords().
Pushes field xinput from sec_rep_space domain() to sec_rep_space range(), pre-allocated.
Definition at line 452 of file section_pusher.cc.
References sheaf::read_write_monitor_handle::access_request_depth(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), sheaf::abstract_poset_member::is_jim(), sheaf::poset_component::release_access(), same_base(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and sheaf::read_write_monitor_handle::state_is_read_write_accessible().
Referenced by push(), and fields::push().
void fields::section_pusher::put_extension_action | ( | section_pusher_push_action & | xextension_cction | ) |
Sets the extension action to xextension_action.
Definition at line 698 of file section_pusher.cc.
References section_pusher().
Referenced by put_overlap_action().
void fields::section_pusher::put_overlap_action | ( | section_pusher_push_action & | xoverlap_action | ) |
Sets the overlap action to xoverlap_action.
Definition at line 678 of file section_pusher.cc.
References put_extension_action().
Referenced by default_extension_action().
const fiber_bundle::sec_rep_space & fields::section_pusher::range | ( | ) | const |
The range of the push-forward map.
Definition at line 374 of file section_pusher.cc.
References range_coords().
Referenced by domain_coords(), and fields::avg_section_pusher::extend().
const fiber_bundle::sec_ed & fields::section_pusher::range_coords | ( | ) | const |
The coordinates section for the range.
Definition at line 391 of file section_pusher.cc.
References push().
Referenced by range().
bool fields::section_pusher::same_base | ( | const sec_ed & | xcoord, |
const sec_rep_space & | xspace | ||
) | const |
True if and only if xcoord and xspace have the same base space.
Definition at line 572 of file section_pusher.cc.
References fiber_bundle::section_space_schema_member::base_space(), sheaf::poset_component::is_same_state(), same_discretization(), fiber_bundle::sec_rep_space_member::schema(), fiber_bundle::sec_rep_space::schema(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
Referenced by push_pa().
bool fields::section_pusher::same_discretization | ( | const sec_ed & | xcoord, |
const sec_rep_space & | xspace | ||
) | const |
True if and only if xcoord and xspace have the same discretization.
Definition at line 597 of file section_pusher.cc.
References fiber_bundle::section_space_schema_member::discretization(), sheaf::poset_component::is_same_state(), same_fiber(), fiber_bundle::sec_rep_space_member::schema(), fiber_bundle::sec_rep_space::schema(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
Referenced by same_base().
bool fields::section_pusher::same_fiber | ( | const sec_rep_space & | xspace1, |
const sec_rep_space & | xspace2 | ||
) | const |
True if and only if xspace1 and xspace2 have the same fiber type and dimension.
Definition at line 621 of file section_pusher.cc.
References fiber_bundle::section_space_schema_member::df(), fiber_bundle::section_space_schema_member::fiber_schema(), sheaf::poset_component::is_same_state(), overlap_action(), fiber_bundle::sec_rep_space::schema(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
Referenced by same_discretization().