SheafSystem  0.0.0.0
fiber_bundle::eval_family Class Referenceabstract

A family of compatible section evaluators, one for each member of some family of cell types; a map from cell type to section evaluator. More...

#include <eval_family.h>

Inheritance diagram for fiber_bundle::eval_family:
sheaf::any fiber_bundle::constant_eval_family fiber_bundle::dlinear_eval_family fiber_bundle::uniform_eval_family

Public Member Functions

 eval_family (const eval_family &xother)
 Copy constructor. More...
 
virtual eval_familyclone () const
 Virtual constructor; makes a new instance of the same type as this. More...
 
virtual ~eval_family ()
 Destructor. More...
 
virtual bool invariant () const
 Class invariant. More...
 
virtual bool is_ancestor_of (const any *xother) const
 Conformance test; true if other conforms to this. More...
 
virtual const std::string & class_name () const =0
 The name of this family. More...
 
section_evaluatormember (pod_index_type xtype_id) const
 The evaluator associated with cell type xtype_id. Note that the result may be void. More...
 
template<typename S >
S * member (pod_index_type xtype_id) const
 The evaluator associated with cell type xtype_id. Note that the result may be void. More...
 
section_evaluatormember (const poset_state_handle &xhost, pod_index_type xhub_id)
 The evaluator associated with the cell with hub id xhub_id in host xhost. Note that the result may be void. More...
 
section_evaluatormember (const poset_state_handle &xhost, const scoped_index &xid)
 The evaluator associated with the cell with id xid in host xhost. Note that the result may be void. More...
 
template<typename S >
S * member (const poset_state_handle &xhost, pod_index_type xhub_id)
 The evaluator associated with the cell with hub id xhub_id in host xhost. Note that the result may be void. More...
 
template<typename S >
S * member (const poset_state_handle &xhost, const scoped_index &xd)
 The evaluator associated with the cell with id xid in host xhost. Note that the result may be void. More...
 
size_type size () const
 The number of members of this family. More...
 
virtual void initialize (const namespace_poset &xname_space)=0
 Initializes this to contain members for name space xname_space. More...
 
bool is_initialized () const
 True if this has been populated with members. More...
 
virtual bool dofs_are_values () const =0
 True if the dofs used by the members of this family are section values, that is, the evaluators are interpolation functions. More...
 
virtual bool extrema_are_dofs () const =0
 True if the extrema (minima or maxima) of the members of this family occur at the discretization points. More...
 
template<typename S >
S * member (pod_index_type xtype_id)
 
- 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 Member Functions

static eval_familynew_family (const std::string &xname)
 Creates an instance of the evaluator family associated with name xname. More...
 
static eval_familynew_family (const std::string &xname, const namespace_poset &xname_space)
 Creates an instance of the evaluator family associated with name xname and initialized with name space, xname_space. More...
 
static void insert_family_prototype (eval_family *xprototype)
 Inserts xprototype in family_factory(). More...
 
static factory< eval_family > & family_factory ()
 A factory for making eval_family objects. More...
 

Protected Types

typedef auto_block< section_evaluator *, zero_block_initialization_policy< section_evaluator * > > members_type
 Type of storage for members. More...
 

Protected Member Functions

 eval_family ()
 Default constructor. More...
 
void initialize_members (size_type xmembers_ub)
 Initialize storage for the members. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Protected Attributes

members_type _members
 The members of the family. More...
 
bool _is_initialized
 True if this has been populated with members. More...
 

Detailed Description

A family of compatible section evaluators, one for each member of some family of cell types; a map from cell type to section evaluator.

Definition at line 67 of file eval_family.h.

Member Typedef Documentation

◆ members_type

Type of storage for members.

Definition at line 216 of file eval_family.h.

Constructor & Destructor Documentation

◆ eval_family() [1/2]

fiber_bundle::eval_family::eval_family ( const eval_family xother)

Copy constructor.

Postcondition

Definition at line 39 of file eval_family.cc.

References _is_initialized, _members, clone(), fiber_bundle::section_evaluator::clone(), and sheaf::auto_block< T, S >::ct().

◆ ~eval_family()

fiber_bundle::eval_family::~eval_family ( )
virtual

Destructor.

Definition at line 95 of file eval_family.cc.

References invariant().

Referenced by clone().

◆ eval_family() [2/2]

fiber_bundle::eval_family::eval_family ( )
protected

Member Function Documentation

◆ class_name()

const std::string & fiber_bundle::eval_family::class_name ( ) const
pure virtual

The name of this family.

Is Abstract.

Postcondition
  • !result.empty()

Implemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

Definition at line 277 of file eval_family.cc.

References member().

Referenced by family_factory(), insert_family_prototype(), and new_family().

◆ clone()

fiber_bundle::eval_family * fiber_bundle::eval_family::clone ( ) const
virtual

Virtual constructor; makes a new instance of the same type as this.

Is Abstract.

Postcondition
  • result != 0
  • is_same_type(result)

Reimplemented from sheaf::any.

Reimplemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

Definition at line 72 of file eval_family.cc.

References ~eval_family().

Referenced by eval_family().

◆ dofs_are_values()

virtual bool fiber_bundle::eval_family::dofs_are_values ( ) const
pure virtual

True if the dofs used by the members of this family are section values, that is, the evaluators are interpolation functions.

Implemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

◆ extrema_are_dofs()

virtual bool fiber_bundle::eval_family::extrema_are_dofs ( ) const
pure virtual

True if the extrema (minima or maxima) of the members of this family occur at the discretization points.

Implemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

Referenced by fiber_bundle::sec_vd_algebra::extrema().

◆ family_factory()

sheaf::factory< fiber_bundle::eval_family > & fiber_bundle::eval_family::family_factory ( )
static

A factory for making eval_family objects.

Definition at line 256 of file eval_family.cc.

References class_name().

Referenced by insert_family_prototype().

◆ initialize()

void fiber_bundle::eval_family::initialize ( const namespace_poset xname_space)
pure virtual

Initializes this to contain members for name space xname_space.

Precondition
  • !is_initialized()
  • xname_space.state_is_read_accessible()
Postcondition

Implemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

Definition at line 394 of file eval_family.cc.

References is_initialized(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

Referenced by fiber_bundle::dlinear_eval_family::initialize(), fiber_bundle::uniform_eval_family::initialize(), fiber_bundle::constant_eval_family::initialize(), and size().

◆ initialize_members()

void fiber_bundle::eval_family::initialize_members ( size_type  xmembers_ub)
protected

◆ insert_family_prototype()

void fiber_bundle::eval_family::insert_family_prototype ( eval_family xprototype)
static

Inserts xprototype in family_factory().

Precondition
  • xprototype != 0
Postcondition

Definition at line 233 of file eval_family.cc.

References class_name(), and family_factory().

Referenced by new_family().

◆ invariant()

◆ is_ancestor_of()

bool fiber_bundle::eval_family::is_ancestor_of ( const any xother) const
virtual

Conformance test; true if other conforms to this.

Precondition
  • xother != 0

Reimplemented from sheaf::any.

Reimplemented in fiber_bundle::constant_eval_family, fiber_bundle::dlinear_eval_family, and fiber_bundle::uniform_eval_family.

Definition at line 155 of file eval_family.cc.

References new_family().

Referenced by invariant().

◆ is_initialized()

bool fiber_bundle::eval_family::is_initialized ( ) const

◆ member() [1/6]

fiber_bundle::section_evaluator * fiber_bundle::eval_family::member ( pod_index_type  xtype_id) const

The evaluator associated with cell type xtype_id. Note that the result may be void.

Precondition
  • (0 <= xtype_id) && (xtype_id < size())

Definition at line 301 of file eval_family.cc.

Referenced by class_name(), fields::field_eval_iterator::coordinate_evaluator(), fiber_bundle::eval_iterator::evaluator(), member(), fields::field_eval_iterator::property_evaluator(), and fiber_bundle::sec_vd::value_at_point_ua().

◆ member() [2/6]

template<typename S >
S* fiber_bundle::eval_family::member ( pod_index_type  xtype_id) const

The evaluator associated with cell type xtype_id. Note that the result may be void.

◆ member() [3/6]

fiber_bundle::section_evaluator * fiber_bundle::eval_family::member ( const poset_state_handle xhost,
pod_index_type  xhub_id 
)

The evaluator associated with the cell with hub id xhub_id in host xhost. Note that the result may be void.

Precondition
  • xhost.state_is_read_accessible()
  • xhost.schema().conforms_to(base_space_member::standard_schema_path())
  • xhost.contains_member(xhub_id)
  • xhost.is_jim(xhub_id)

Definition at line 324 of file eval_family.cc.

References sheaf::schema_poset_member::conforms_to(), sheaf::poset_state_handle::contains_member(), sheaf::poset_state_handle::is_jim(), member(), sheaf::poset_state_handle::schema(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

◆ member() [4/6]

fiber_bundle::section_evaluator * fiber_bundle::eval_family::member ( const poset_state_handle xhost,
const scoped_index xid 
)

The evaluator associated with the cell with id xid in host xhost. Note that the result may be void.

Precondition
  • xhost.state_is_read_accessible()
  • xhost.schema().conforms_to(base_space_member::standard_schema_path())
  • xhost.contains_member(xid)
  • xhost.is_jim(xid)

Definition at line 354 of file eval_family.cc.

References sheaf::schema_poset_member::conforms_to(), sheaf::poset_state_handle::contains_member(), sheaf::scoped_index::hub_pod(), sheaf::poset_state_handle::is_jim(), sheaf::poset_state_handle::schema(), size(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

◆ member() [5/6]

template<typename S >
S * fiber_bundle::eval_family::member ( const poset_state_handle xhost,
pod_index_type  xhub_id 
)

The evaluator associated with the cell with hub id xhub_id in host xhost. Note that the result may be void.

Definition at line 47 of file eval_family.impl.h.

References member().

◆ member() [6/6]

template<typename S >
S * fiber_bundle::eval_family::member ( const poset_state_handle xhost,
const scoped_index xd 
)

The evaluator associated with the cell with id xid in host xhost. Note that the result may be void.

Definition at line 67 of file eval_family.impl.h.

References sheaf::scoped_index::hub_pod(), and member().

◆ new_family() [1/2]

fiber_bundle::eval_family * fiber_bundle::eval_family::new_family ( const std::string &  xname)
static

Creates an instance of the evaluator family associated with name xname.

Precondition
Postcondition
  • result != 0

Definition at line 181 of file eval_family.cc.

References class_name(), and is_initialized().

Referenced by fiber_bundle::sec_rep_descriptor::attach_handle_data_members(), fields::field_eval_iterator::initialize_coordinate_schema(), fields::field_eval_iterator::initialize_property_schema(), fiber_bundle::eval_iterator::initialize_schema_anchor(), and is_ancestor_of().

◆ new_family() [2/2]

fiber_bundle::eval_family * fiber_bundle::eval_family::new_family ( const std::string &  xname,
const namespace_poset xname_space 
)
static

Creates an instance of the evaluator family associated with name xname and initialized with name space, xname_space.

Precondition
  • xname_space.state_is_read_accessible()
Postcondition
  • result != 0

Definition at line 207 of file eval_family.cc.

References insert_family_prototype(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

◆ size()

sheaf::size_type fiber_bundle::eval_family::size ( ) const

The number of members of this family.

Definition at line 373 of file eval_family.cc.

References initialize().

Referenced by member().

Member Data Documentation

◆ _is_initialized

bool fiber_bundle::eval_family::_is_initialized
protected

True if this has been populated with members.

Definition at line 226 of file eval_family.h.

Referenced by eval_family().

◆ _members


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