SheafSystem
0.0.0.0
|
An iterator which concurrently traverses the schema of both the coordinates and property sections of a field. The two schema must share the same base space and evaluation subposet. More...
#include <field_eval_iterator.h>
FIELD_EVAL_ITERATOR FACET | |
field_eval_iterator (const field_vd &xfield) | |
Creates an iterator over the schema of xfield. More... | |
field_eval_iterator (const section_space_schema_member &xcoordinate_schema_anchor, const section_space_schema_member &xproperty_schema_anchor) | |
Creates an iterator anchored at xcoordinate_schema_anchor.base_space(). More... | |
~field_eval_iterator () | |
Destructor. More... | |
section_space_schema_member & | coordinate_schema_anchor () const |
The coordinates field schema member which is being iterated over. More... | |
section_space_schema_member & | property_schema_anchor () const |
The property field schema member which is being iterated over. More... | |
const base_space_poset & | base_space () const |
The base space shared by both schema. More... | |
const subposet & | evaluation () const |
The evaluation subposet shared by both schema. More... | |
int | db () const |
The dimension of the current evaluation member. More... | |
pod_index_type | type_id () const |
The type id of the current member. More... | |
std::string | type_name () const |
The type name of the current member. More... | |
section_evaluator & | coordinate_evaluator () const |
The coordinate field evaluator associated with the current evaluation member. More... | |
section_evaluator & | property_evaluator () const |
The property field evaluator associated with the current evaluation member. More... | |
const block< scoped_index > & | coordinate_discretization_members () const |
The coordinate discretization members in the downset of the current evaluation member. More... | |
const block< scoped_index > & | property_discretization_members () const |
The property discretization members in the downset of the current evaluation member. More... | |
bool | property_has_been_visited (pod_index_type xhub_id) const |
True if xhub_id is the hub id of a property discretization member that has been visited previously. More... | |
bool | property_has_been_visited (const scoped_index &xid) const |
True if xid is the id of a property discretization member that has been visited previously. More... | |
void | gather_coordinate_dofs (const sec_vd &xcoord, block< sec_vd::dof_type > &xdofs) |
Gather the coordinate dofs for the current evaluation member from xcoord into xdofs. More... | |
size_type | refinement_depth () const |
The refinement depth; the number of evaluation members the current evaluation member is contained in. More... | |
void | update_capacity () |
Updates capacity of internal data structures to match any changes in the size of the base space. Only needed in traversals that modify the base space, e.g. refinement. More... | |
bool | enough_capacity () const |
True if the internal data structures have enough capacity for the current size of base_space(). More... | |
void | initialize_coordinate_schema (const section_space_schema_member &xanchor) |
Initializes the coordinate schema anchor. More... | |
void | initialize_property_schema (const section_space_schema_member &xanchor) |
Initializes the property schema anchor. More... | |
void | initialize_discretization_order_correction () |
Initializes the set of evaluation member prototypes for which the discretization member order correction is applied. More... | |
void | ensure_discretization_order (block< scoped_index > &xdisc_mbrs) |
Ensures correct order of the discretization members. More... | |
DEPTH_FIRST_ITERATOR FACET | |
virtual void | force_is_done () |
Force the iterator to be done. More... | |
void | next () |
Makes this the next member of the subset. More... | |
virtual void | next (bool xtruncate) |
Makes this the next member of the subset. If xtruncate, new this is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited. More... | |
void | repeat (bool xwas_eval_member) |
Repeats the iteration over the down set of index(). If index() refers to a zone that has just been refined and removed from the evaluation subposet, call with xwas_eval_member == true, so this will update_capacity() and properly increment refinement_depth(). More... | |
virtual void | reset (bool xreset_markers=true) |
Restarts the iteration. More... | |
ANY FACET | |
virtual bool | is_ancestor_of (const any *xother) const |
True if other conforms to this. More... | |
virtual field_eval_iterator * | clone () const |
Make a new instance of the same type as this. More... | |
bool | invariant () const |
The class invariant. More... | |
Additional Inherited Members | |
Public Types inherited from sheaf::depth_first_iterator | |
enum | order_type { PREORDER, POSTORDER, LINKORDER, BIORDER, TRIORDER, NOT_AN_ORDER } |
The types of order in which the iterator will visit the members of the poset. Determines which actions are exported to the client. More... | |
enum | action_type { PREVISIT_ACTION, LINK_ACTION, POSTVISIT_ACTION, NOT_AN_ACTION } |
The types of action a client should take when the iterator returns control to the client. More... | |
Public Member Functions inherited from sheaf::depth_first_iterator | |
depth_first_iterator & | operator= (const depth_first_iterator &xother) |
Assignment operator. More... | |
virtual | ~depth_first_iterator () |
Destructor. More... | |
bool | invariant () const |
The class invariant. More... | |
order_type | order () const |
The order of the iteration. Determines which actions are exported to the client. More... | |
virtual bool | is_initialized () const |
True if this has been initialized for iteration with respect to a specific anchor. More... | |
virtual abstract_poset_member & | anchor () |
The poset member whose downset is being iterated over; the top member of the domain of iteration (mutable version). More... | |
virtual const abstract_poset_member & | anchor () const |
The poset member whose downset is being iterated over; the top member of the domain of iteration (const version). More... | |
virtual bool | anchor_is_ancestor_of (const abstract_poset_member &xmbr) const |
True if xmbr conforms to the type of anchor of this. More... | |
bool | descending () const |
True if iterating over down set of anchor. More... | |
bool | strict () const |
True if iterating over xstrict up/down set of anchor. More... | |
subposet & | filter () |
The subposet which is the filter; Defines what is passed, not what is blocked. More... | |
bool | is_done () const |
True if iteration finished. More... | |
void | next () |
Makes this the next member of the subset. More... | |
void | truncate () |
Makes this the next member of the subset which is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited. More... | |
int | ct (bool xreset=false) |
The number of members of the iteration set, from the current member to the end, inclusive. If xreset, reset before computing the count. More... | |
bool | has_visited (pod_index_type xhub_id) const |
True if this has already visited member with hub id xhub_id. More... | |
bool | has_visited (const scoped_index &xid) const |
True if this has already visited member with id xid. More... | |
bool | has_visited (const abstract_poset_member *xmbr) const |
True if this has already visited member xmbr. More... | |
void | put_has_visited (pod_index_type xhub_id, bool xvalue) |
Set the visited marker for hub id xhub_id to xvalue. Intended for use reseting iterator without having to reset entire collection of markers. More... | |
void | put_has_visited (const scoped_index &xid, bool xvalue) |
Set the visisted marker for id xid to xvalue. Intended for use reseting iterator without having to reset entire collection of markers. More... | |
bool | visit_once () const |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited. More... | |
void | put_visit_once (bool xvisit_once) |
Set visit_once() to xvisit_once. More... | |
bool | is_maximal () const |
True if the current member has no greater member within the subposet visited by this iterator. More... | |
const scoped_index & | greater_index () const |
The index of the greater member of the current link. More... | |
const scoped_index & | lesser_index () const |
The index of the lesser member of the current link. More... | |
action_type | action () const |
The type of action the client should take when the iterator returns control to the client. More... | |
void | erase_cover () |
Schedules the lesser member entry in the cover of the greater member of the current link for deletion on the next call to next(). Warning: this function can change the state of the the cover relation graph in unpredictable ways. Use only if you know what you are doing. More... | |
const scoped_index & | index () const |
The index of the current member of the iteration. More... | |
size_t | depth () const |
The length of the path from anchor() to the current member. More... | |
Public Member Functions inherited from sheaf::any | |
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 Attributes inherited from sheaf::depth_first_iterator | |
static const char * | NULL_FILTER = "" |
Placeholder for null filter. More... | |
Protected Types inherited from sheaf::depth_first_iterator | |
enum | iterator_state { FIRST, INIT_COVER_ITERATOR, TEST_HAS_VISITED, INC_COVER_ITERATOR, ERASE_COVER_ITERATOR, DESCEND, TEST_PATH_TAIL, ASCEND, EXECUTE_PREVISIT_ACTION, EXECUTE_LINK_ACTION, EXECUTE_POSTVISIT_ACTION, FINISH, NOT_A_STATE } |
The states for the finite state machine that controls iteration. More... | |
enum | iterator_token { PASS, FAIL } |
The input tokens for the finite state machine. More... | |
typedef const iterator_state(* | transition_fcn_type)[FAIL+1] |
Protected Member Functions inherited from sheaf::depth_first_iterator | |
depth_first_iterator () | |
Default constructor; creates an unattached iterator,. More... | |
depth_first_iterator (const depth_first_iterator &xother) | |
Copy constructor. More... | |
void | first () |
Moves this to the first member of the iteration. More... | |
void | mark_visited (abstract_poset_member *xmbr) |
Mark xmbr as visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing. More... | |
void | mark_not_visited (abstract_poset_member *xmbr) |
Mark xmbr as not visited. Warning: this function can change the state of the iteration in unpredictable ways. Use only if you know what you are doing. More... | |
virtual void | attach_item () |
Attaches the item handle to the current index. Empty in this class; intended for redefinition in descendants. More... | |
virtual void | detach_item () |
Detaches the item handle to the current index. Empty in this class; intended for redefinition in descendants. More... | |
void | initialize_order (order_type xorder) |
Initializes _order and _transition_fcn. More... | |
void | initialize_traversal (const abstract_poset_member &xanchor) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_traversal (pod_index_type xanchor_hub_id) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_traversal (const scoped_index &xanchor_id) |
Initializes the anchor, has_visited markers and filter. More... | |
void | initialize_anchor (const abstract_poset_member &xanchor) |
Initializes the anchor. More... | |
virtual void | initialize_has_visited (const abstract_poset_member &xanchor) |
Initializes the has_visited markers. More... | |
zn_to_bool * | has_visited () const |
The marker bit vector. /. More... | |
void | put_has_visited (zn_to_bool *xhas_visited) |
Sets _has_visited to xhas_visited. /. More... | |
bool | filter (pod_index_type xhub_id) const |
The value of the filter at hub id xhub_id. More... | |
bool | filter (const scoped_index &xid) const |
The value of the filter at id xid. More... | |
void | initialize_filter () |
Initializes the filter subposet from the client filter. More... | |
void | initialize_filter (const subposet &xfilter) |
Initializes the client filter to xfilter then initializes the filter from the client filter. More... | |
void | initialize_filter (pod_index_type xfilter_hub_id) |
Initializes the client filter to the subposet with hub id xfilter_hub_id then initializes the filter from the client filter. More... | |
void | initialize_filter (const scoped_index &xfilter_id) |
Initializes the client filter to the subposet with id xfilter_id then initializes the filter from the client filter. More... | |
void | initialize_filter (const std::string &xfilter_name) |
Initializes the client filter to the subposet with name xfilter_name then initializes the filter from the client filter. More... | |
void | release_cover_id_space_iterators () |
Release the cover iterators back to the pool of iterators. More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
Protected Attributes inherited from sheaf::depth_first_iterator | |
abstract_poset_member * | _anchor |
The top member of the down set being iterated over. More... | |
action_type | _action |
The type of action the client should take; the state of the iterator. More... | |
scoped_index | _index |
The index of the lesser end of the current link; the current item in the iteration. More... | |
scoped_index | _greater_index |
The index of the greater member of the current link. More... | |
scoped_index | _lesser_index |
The index of the lesser member of the current link. More... | |
subposet | _client_filter |
The filter specified by the client. More... | |
bool | _new_filter |
True if this allocated a new filter;. More... | |
bool | _descending |
True if iterating over the up/down set of anchor. More... | |
bool | _strict |
True if iterating over the strict up/down set of anchor. More... | |
order_type | _order |
The order of the iteration. More... | |
const iterator_state(* | _transition_fcn )[FAIL+1] |
The current state transition function for the iterator finite state machine. Points to one of the predefined transition functions. More... | |
iterator_state | _state |
The current state of iteration. More... | |
index_space_iterator * | _path_head_lc |
The lower cover iterator for the head of the path to the current member of the iteration. More... | |
index_space_iterator * | _path_head |
The head of the path to the current member of the iteration lesser_index() == this->index() == **_path_head == lesser member of current link. More... | |
std::stack< index_space_iterator * > | _path_tail |
The tail of the path to the current member of the iteration greater_index() == **(_path_tail.top()) == greater member of current link. More... | |
std::stack< pod_index_type > | _filtered_path_tail |
The tail of the filtered path to the current member of the iteration. Contains only members which pass the filter; equivalent to the path in the subposet selected by the filter. More... | |
bool | _visit_once |
True if traversal should only visit a member once; that is, it should not revisit members it has already visited. More... | |
Static Protected Attributes inherited from sheaf::depth_first_iterator | |
static const char * | iterator_state_names [NOT_A_STATE+1] |
The names of the iterator states, convenient for debugging. More... | |
static const iterator_state | PREORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | POSTORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for postorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | LINKORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for linkorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | BIORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for biorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const iterator_state | TRIORDER_TRANSITION_FCN [NOT_A_STATE-1][FAIL+1] |
The predefined transition function for triorder iteration. Defines the next state for each combination of state and input token, except for state FINISH, which is always a terminal state. More... | |
static const transition_fcn_type | STD_TRANSITION_FCNS [NOT_AN_ORDER+1] |
The set of predefined transition functions. More... | |
An iterator which concurrently traverses the schema of both the coordinates and property sections of a field. The two schema must share the same base space and evaluation subposet.
Definition at line 67 of file field_eval_iterator.h.
fields::field_eval_iterator::field_eval_iterator | ( | const field_vd & | xfield | ) |
Creates an iterator over the schema of xfield.
Definition at line 55 of file field_eval_iterator.cc.
References fields::field_vd::base_space(), fiber_bundle::section_space_schema_member::base_space(), sheaf::schema_poset_member::conforms_to(), coordinate_schema_anchor(), fields::field_vd::coordinates(), sheaf::depth_first_iterator::descending(), sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::depth_first_iterator::first(), initialize_coordinate_schema(), initialize_discretization_order_correction(), sheaf::depth_first_iterator::initialize_order(), initialize_property_schema(), sheaf::depth_first_iterator::initialize_traversal(), invariant(), sheaf::depth_first_iterator::is_done(), sheaf::depth_first_iterator::is_initialized(), sheaf::poset_component::is_same_state(), sheaf::any::is_same_type(), fields::field_vd::property(), property_schema_anchor(), reset(), fields::field_vd::same_evaluation(), sheaf::total_poset_member::schema(), fiber_bundle::sec_rep_space_member::schema(), fiber_bundle::base_space_member::standard_schema_path(), fields::field_vd::state_is_read_accessible(), sheaf::depth_first_iterator::strict(), and sheaf::poset_component::version().
fields::field_eval_iterator::field_eval_iterator | ( | const section_space_schema_member & | xcoordinate_schema_anchor, |
const section_space_schema_member & | xproperty_schema_anchor | ||
) |
Creates an iterator anchored at xcoordinate_schema_anchor.base_space().
Definition at line 112 of file field_eval_iterator.cc.
References fiber_bundle::section_space_schema_member::base_space(), sheaf::schema_poset_member::conforms_to(), coordinate_schema_anchor(), sheaf::depth_first_iterator::descending(), sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), fiber_bundle::section_space_schema_member::evaluation(), sheaf::depth_first_iterator::first(), initialize_coordinate_schema(), initialize_discretization_order_correction(), sheaf::depth_first_iterator::initialize_order(), initialize_property_schema(), sheaf::depth_first_iterator::initialize_traversal(), invariant(), sheaf::depth_first_iterator::is_done(), sheaf::depth_first_iterator::is_initialized(), sheaf::poset_component::is_same_state(), sheaf::any::is_same_type(), property_schema_anchor(), reset(), sheaf::total_poset_member::schema(), fiber_bundle::base_space_member::standard_schema_path(), sheaf::read_write_monitor_handle::state_is_read_accessible(), sheaf::depth_first_iterator::strict(), sheaf::poset_component::version(), and ~field_eval_iterator().
fields::field_eval_iterator::~field_eval_iterator | ( | ) |
Destructor.
Definition at line 172 of file field_eval_iterator.cc.
References coordinate_schema_anchor(), sheaf::poset_component::detach_from_state(), and fiber_bundle::section_space_schema_member::detach_from_state().
Referenced by field_eval_iterator().
const fiber_bundle::base_space_poset & fields::field_eval_iterator::base_space | ( | ) | const |
The base space shared by both schema.
Definition at line 236 of file field_eval_iterator.cc.
References coordinate_schema_anchor(), evaluation(), sheaf::poset_state_handle::is_same_state(), and property_schema_anchor().
Referenced by invariant(), and property_schema_anchor().
|
virtual |
Make a new instance of the same type as this.
Reimplemented from sheaf::depth_first_iterator.
Definition at line 1135 of file field_eval_iterator.cc.
References coordinate_schema_anchor(), invariant(), and property_schema_anchor().
Referenced by is_ancestor_of().
const sheaf::block< sheaf::scoped_index > & fields::field_eval_iterator::coordinate_discretization_members | ( | ) | const |
The coordinate discretization members in the downset of the current evaluation member.
Definition at line 398 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::is_done(), and property_discretization_members().
Referenced by gather_coordinate_dofs(), property_evaluator(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
fiber_bundle::section_evaluator & fields::field_eval_iterator::coordinate_evaluator | ( | ) | const |
The coordinate field evaluator associated with the current evaluation member.
Definition at line 348 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::is_done(), sheaf::depth_first_iterator::is_initialized(), fiber_bundle::eval_family::member(), property_evaluator(), and type_id().
Referenced by fields::refining_section_pusher::push(), fields::field_refiner::refine(), and type_name().
fiber_bundle::section_space_schema_member & fields::field_eval_iterator::coordinate_schema_anchor | ( | ) | const |
The coordinates field schema member which is being iterated over.
Definition at line 194 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::is_initialized(), and property_schema_anchor().
Referenced by base_space(), clone(), evaluation(), field_eval_iterator(), gather_coordinate_dofs(), invariant(), next(), and ~field_eval_iterator().
int fields::field_eval_iterator::db | ( | ) | const |
The dimension of the current evaluation member.
Definition at line 280 of file field_eval_iterator.cc.
References fiber_bundle::base_space_poset::db(), sheaf::depth_first_iterator::index(), sheaf::depth_first_iterator::is_done(), and type_id().
Referenced by evaluation().
bool fields::field_eval_iterator::enough_capacity | ( | ) | const |
True if the internal data structures have enough capacity for the current size of base_space().
Definition at line 544 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::has_visited(), initialize_coordinate_schema(), sheaf::depth_first_iterator::is_done(), sheaf::poset_state_handle::member_index_ub(), sheaf::scoped_index::pod(), and sheaf::zn_to_bool::ub().
Referenced by update_capacity().
|
protected |
Ensures correct order of the discretization members.
Definition at line 693 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::_anchor, sheaf::auto_block< T, S >::ct(), sheaf::poset_state_handle::first_cover_member(), force_is_done(), sheaf::depth_first_iterator::greater_index(), sheaf::poset_component::host(), sheaf::scoped_index::hub_pod(), and sheaf::UPPER.
Referenced by initialize_discretization_order_correction(), and next().
const sheaf::subposet & fields::field_eval_iterator::evaluation | ( | ) | const |
The evaluation subposet shared by both schema.
Definition at line 258 of file field_eval_iterator.cc.
References coordinate_schema_anchor(), db(), sheaf::poset_component::is_same_state(), and property_schema_anchor().
Referenced by base_space(), invariant(), and next().
|
virtual |
Force the iterator to be done.
Reimplemented from sheaf::depth_first_iterator.
Definition at line 753 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::force_is_done(), invariant(), sheaf::depth_first_iterator::is_done(), next(), and sheaf::auto_block< T, S >::set_ct().
Referenced by ensure_discretization_order().
void fields::field_eval_iterator::gather_coordinate_dofs | ( | const sec_vd & | xcoord, |
block< sec_vd::dof_type > & | xdofs | ||
) |
Gather the coordinate dofs for the current evaluation member from xcoord into xdofs.
Definition at line 464 of file field_eval_iterator.cc.
References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), coordinate_discretization_members(), coordinate_schema_anchor(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), sheaf::auto_block< T, S >::ct(), fiber_bundle::section_space_schema_member::df(), fiber_bundle::sec_vd::get_fiber(), sheaf::poset_component::is_same_state(), refinement_depth(), fiber_bundle::sec_rep_space_member::schema(), sheaf::auto_block< T, un_block_initialization_policy< T > >::set_ct(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ub().
Referenced by property_has_been_visited().
|
protected |
Initializes the coordinate schema anchor.
Definition at line 573 of file field_eval_iterator.cc.
References sheaf::poset_component::attach_to_state(), fiber_bundle::section_space_schema_member::attach_to_state(), fiber_bundle::section_space_schema_poset::base_space(), fiber_bundle::section_space_schema_member::clone(), fiber_bundle::section_space_schema_member::evaluation(), fiber_bundle::section_space_schema_member::evaluator_family_name(), fiber_bundle::section_space_schema_member::host(), initialize_property_schema(), sheaf::depth_first_iterator::is_done(), sheaf::poset_component::is_same_state(), sheaf::any::is_same_type(), sheaf::poset_component::name_space(), fiber_bundle::eval_family::new_family(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and sheaf::poset_component::version().
Referenced by enough_capacity(), and field_eval_iterator().
|
protected |
Initializes the set of evaluation member prototypes for which the discretization member order correction is applied.
Definition at line 661 of file field_eval_iterator.cc.
References fiber_bundle::section_space_schema_member::discretization(), ensure_discretization_order(), sheaf::subposet::name(), and fiber_bundle::base_space_poset::prototype_type_id().
Referenced by field_eval_iterator(), and initialize_property_schema().
|
protected |
Initializes the property schema anchor.
Definition at line 617 of file field_eval_iterator.cc.
References fiber_bundle::section_space_schema_member::attach_to_state(), fiber_bundle::section_space_schema_member::clone(), fiber_bundle::section_space_schema_member::evaluator_family_name(), initialize_discretization_order_correction(), sheaf::depth_first_iterator::is_done(), sheaf::poset_component::is_same_state(), sheaf::any::is_same_type(), sheaf::poset_state_handle::member_index_ub(), sheaf::poset_component::name_space(), fiber_bundle::eval_family::new_family(), sheaf::scoped_index::pod(), sheaf::read_write_monitor_handle::state_is_read_accessible(), and sheaf::poset_component::version().
Referenced by field_eval_iterator(), and initialize_coordinate_schema().
|
virtual |
The class invariant.
Reimplemented from sheaf::any.
Definition at line 1156 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::anchor(), base_space(), coordinate_schema_anchor(), sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), evaluation(), sheaf::depth_first_iterator::invariant(), sheaf::any::invariant_check(), sheaf::depth_first_iterator::order(), and property_schema_anchor().
Referenced by clone(), field_eval_iterator(), force_is_done(), and next().
|
virtual |
True if other conforms to this.
Reimplemented from sheaf::depth_first_iterator.
Definition at line 1118 of file field_eval_iterator.cc.
References clone().
Referenced by reset().
|
inline |
Makes this the next member of the subset.
Definition at line 349 of file field_eval_iterator.h.
Referenced by force_is_done(), fields::refining_section_pusher::push(), fields::field_refiner::refine(), and repeat().
|
virtual |
Makes this the next member of the subset. If xtruncate, new this is not less than old this, i.e. the depth-first descent is truncated and the cover of this is not visited.
Reimplemented from sheaf::depth_first_iterator.
Definition at line 780 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::action(), sheaf::subposet::contains_member(), coordinate_schema_anchor(), sheaf::auto_block< T, S >::ct(), sheaf::depth_first_iterator::depth(), ensure_discretization_order(), evaluation(), sheaf::depth_first_iterator::index(), invariant(), sheaf::depth_first_iterator::is_done(), sheaf::poset_state_handle::is_jim(), sheaf::poset_state_handle::jims(), fiber_bundle::vd_algebra::max(), sheaf::depth_first_iterator::next(), property_schema_anchor(), sheaf::auto_block< T, S >::push_back(), sheaf::zn_to_bool::put(), sheaf::depth_first_iterator::put_has_visited(), refinement_depth(), fiber_bundle::base_space_poset::refinement_depth(), repeat(), sheaf::auto_block< T, S >::set_ct(), type_id(), and type_name().
const sheaf::block< sheaf::scoped_index > & fields::field_eval_iterator::property_discretization_members | ( | ) | const |
The property discretization members in the downset of the current evaluation member.
Definition at line 417 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::is_done(), and property_has_been_visited().
Referenced by coordinate_discretization_members(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
fiber_bundle::section_evaluator & fields::field_eval_iterator::property_evaluator | ( | ) | const |
The property field evaluator associated with the current evaluation member.
Definition at line 373 of file field_eval_iterator.cc.
References coordinate_discretization_members(), sheaf::depth_first_iterator::is_done(), sheaf::depth_first_iterator::is_initialized(), fiber_bundle::eval_family::member(), and type_id().
Referenced by coordinate_evaluator(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
bool fields::field_eval_iterator::property_has_been_visited | ( | pod_index_type | xhub_id | ) | const |
True if xhub_id is the hub id of a property discretization member that has been visited previously.
Definition at line 436 of file field_eval_iterator.cc.
Referenced by property_discretization_members(), and property_has_been_visited().
bool fields::field_eval_iterator::property_has_been_visited | ( | const scoped_index & | xid | ) | const |
True if xid is the id of a property discretization member that has been visited previously.
Definition at line 453 of file field_eval_iterator.cc.
References gather_coordinate_dofs(), sheaf::scoped_index::hub_pod(), and property_has_been_visited().
fiber_bundle::section_space_schema_member & fields::field_eval_iterator::property_schema_anchor | ( | ) | const |
The property field schema member which is being iterated over.
Definition at line 215 of file field_eval_iterator.cc.
References base_space(), and sheaf::depth_first_iterator::is_initialized().
Referenced by base_space(), clone(), coordinate_schema_anchor(), evaluation(), field_eval_iterator(), invariant(), and next().
sheaf::size_type fields::field_eval_iterator::refinement_depth | ( | ) | const |
The refinement depth; the number of evaluation members the current evaluation member is contained in.
Definition at line 508 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::depth(), and update_capacity().
Referenced by gather_coordinate_dofs(), next(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
void fields::field_eval_iterator::repeat | ( | bool | xwas_eval_member | ) |
Repeats the iteration over the down set of index(). If index() refers to a zone that has just been refined and removed from the evaluation subposet, call with xwas_eval_member == true, so this will update_capacity() and properly increment refinement_depth().
Definition at line 1029 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::_state, sheaf::depth_first_iterator::depth(), fiber_bundle::vd_algebra::max(), next(), reset(), and update_capacity().
Referenced by next(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
|
virtual |
Restarts the iteration.
Reimplemented from sheaf::depth_first_iterator.
Definition at line 1075 of file field_eval_iterator.cc.
References sheaf::auto_block< T, S >::ct(), is_ancestor_of(), sheaf::zn_to_bool::make_false(), fiber_bundle::vd_algebra::max(), sheaf::zn_to_bool::put(), sheaf::depth_first_iterator::reset(), and sheaf::auto_block< T, S >::set_ct().
Referenced by field_eval_iterator(), and repeat().
sheaf::pod_index_type fields::field_eval_iterator::type_id | ( | ) | const |
The type id of the current member.
Definition at line 303 of file field_eval_iterator.cc.
References sheaf::depth_first_iterator::index(), sheaf::depth_first_iterator::is_done(), fiber_bundle::base_space_poset::type_id(), and type_name().
Referenced by coordinate_evaluator(), db(), next(), property_evaluator(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().
std::string fields::field_eval_iterator::type_name | ( | ) | const |
The type name of the current member.
Definition at line 325 of file field_eval_iterator.cc.
References coordinate_evaluator(), sheaf::depth_first_iterator::index(), sheaf::depth_first_iterator::is_done(), and fiber_bundle::base_space_poset::type_name().
void fields::field_eval_iterator::update_capacity | ( | ) |
Updates capacity of internal data structures to match any changes in the size of the base space. Only needed in traversals that modify the base space, e.g. refinement.
Definition at line 517 of file field_eval_iterator.cc.
References enough_capacity(), sheaf::zn_to_bool::extend_to(), sheaf::depth_first_iterator::has_visited(), sheaf::depth_first_iterator::is_done(), sheaf::poset_state_handle::member_index_ub(), and sheaf::scoped_index::pod().
Referenced by refinement_depth(), and repeat().