SheafSystem  0.0.0.0
fields::avg_section_pusher Class Reference

A section pusher that uses extension by averaging to define the target outside the domain of the source; an incomplete implementation intended mostly as an example of how the section_pusher hierarchy differentiates. More...

#include <avg_section_pusher.h>

Inheritance diagram for fields::avg_section_pusher:
fields::section_pusher sheaf::any

AVG_SECTION_PUSHER FACET

 avg_section_pusher (const sec_rep_space &xdomain, const sec_rep_space &xrange, const geometry::sec_ed_invertible &xdom_coord, const sec_ed &xran_coord, bool xauto_access)
 Creates the push-forward from xdomain to xrange induced by xdom_coord and xran_coord. More...
 
 avg_section_pusher ()
 Default constructor. More...
 
virtual void extend (sec_vd &result, const scoped_index &xdisc_id)
 Creates a value for the dofs at disc point xdisc_id. Intended for use when xdisc_id lies outside the domain of the source field. More...
 

ANY FACET

Issue:
it is not clear what the extend signature should be for maximum combined generality and efficiency.
 avg_section_pusher (const avg_section_pusher &xother)
 Copy constructor. More...
 
virtual ~avg_section_pusher ()
 Destructor. More...
 
virtual bool invariant () const
 Class invariant. More...
 

Additional Inherited Members

- Public Member Functions inherited from 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. 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_spacedomain () const
 The domain of the push-forward map. More...
 
const geometry::sec_ed_invertibledomain_coords () const
 The coordinates section for the domain. More...
 
const sec_rep_spacerange () const
 The range of the push-forward map. More...
 
const sec_edrange_coords () const
 The coordinates section for the range. More...
 
sec_vdpush (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_actionoverlap_action () const
 Computes value of destination dofs where dst overlaps src. More...
 
section_pusher_push_actiondefault_overlap_action () const
 Overlap action if none specified by clinet. More...
 
section_pusher_push_actionextension_action () const
 Computes value of destination dofs where dst does not overlap src. More...
 
section_pusher_push_actiondefault_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 (const section_pusher &xother)
 Copy constructor. More...
 
virtual ~section_pusher ()
 Destructor. 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 anyclone () 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 fields::section_pusher
 section_pusher ()
 Default constructor; protected to prevent default construction. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

A section pusher that uses extension by averaging to define the target outside the domain of the source; an incomplete implementation intended mostly as an example of how the section_pusher hierarchy differentiates.

Definition at line 41 of file avg_section_pusher.h.

Constructor & Destructor Documentation

◆ avg_section_pusher() [1/3]

fields::avg_section_pusher::avg_section_pusher ( const sec_rep_space xdomain,
const sec_rep_space xrange,
const geometry::sec_ed_invertible xdom_coord,
const sec_ed xran_coord,
bool  xauto_access 
)

Creates the push-forward from xdomain to xrange induced by xdom_coord and xran_coord.

Precondition
  • precondition_of(section_pusher(xdomain, xrange, xdom_coord, xran_coord))
Postcondition
  • postcondition_of(section_pusher(xdomain, xrange, xdomain_inverter, xran_coord))

Definition at line 38 of file avg_section_pusher.cc.

References avg_section_pusher(), and fields::section_pusher::section_pusher().

◆ avg_section_pusher() [2/3]

fields::avg_section_pusher::avg_section_pusher ( )
protected

Default constructor.

Not Implemented.

Postcondition

Definition at line 65 of file avg_section_pusher.cc.

References extend(), and invariant().

Referenced by avg_section_pusher(), and extend().

◆ avg_section_pusher() [3/3]

fields::avg_section_pusher::avg_section_pusher ( const avg_section_pusher xother)

Copy constructor.

Not Implemented.

Issue:
does anything need to happen or does section_pusher handle it all?
Postcondition

Definition at line 109 of file avg_section_pusher.cc.

References invariant(), and ~avg_section_pusher().

◆ ~avg_section_pusher()

fields::avg_section_pusher::~avg_section_pusher ( )
virtual

Destructor.

Not Implemented.

Postcondition

Definition at line 128 of file avg_section_pusher.cc.

References invariant().

Referenced by avg_section_pusher().

Member Function Documentation

◆ extend()

void fields::avg_section_pusher::extend ( sec_vd result,
const scoped_index xdisc_id 
)
protectedvirtual

Creates a value for the dofs at disc point xdisc_id. Intended for use when xdisc_id lies outside the domain of the source field.

Precondition
  • result.state_is_read_write_accessible()
  • range().schema().discretization().contains_member(xdisc_id)
Not Implemented.

Definition at line 82 of file avg_section_pusher.cc.

References avg_section_pusher(), fields::section_pusher::range(), and sheaf::read_write_monitor_handle::state_is_read_write_accessible().

Referenced by avg_section_pusher().

◆ invariant()

bool fields::avg_section_pusher::invariant ( ) const
virtual

Class invariant.

Invariant

Reimplemented from fields::section_pusher.

Definition at line 146 of file avg_section_pusher.cc.

References fields::section_pusher::invariant().

Referenced by avg_section_pusher(), and ~avg_section_pusher().


The documentation for this class was generated from the following files: