SheafSystem  0.0.0.0
fiber_bundle::constant_eval_family Class Reference

A family of section evaluators containing members for constant functions on primitive cells. More...

#include <constant_eval_family.h>

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

Public Member Functions

 constant_eval_family (const constant_eval_family &xother)
 Copy constructor. More...
 
virtual constant_eval_familyclone () const
 Virtual constructor; makes a new instance of the same type as this. More...
 
virtual ~constant_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...
 
 constant_eval_family (const namespace_poset &xname_space)
 Creates an instance containing all the dlinear evaluators defined in the namespace xname_space. More...
 
virtual const std::string & class_name () const
 The name of this family. More...
 
virtual void initialize (const namespace_poset &xname_space)
 Initializes this to contain members for name space xname_space. More...
 
virtual bool dofs_are_values () const
 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
 True if the extrema (minima or maxima) of the members of this family occur at the discretization points. More...
 
- Public Member Functions inherited from fiber_bundle::eval_family
 eval_family (const eval_family &xother)
 Copy constructor. More...
 
virtual ~eval_family ()
 Destructor. 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...
 
bool is_initialized () const
 True if this has been populated with members. 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 const std::string & static_class_name ()
 The name of this class of families. More...
 
- Static Public Member Functions inherited from fiber_bundle::eval_family
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...
 

Friends

class eval_family
 

Additional Inherited Members

- Protected Types inherited from fiber_bundle::eval_family
typedef auto_block< section_evaluator *, zero_block_initialization_policy< section_evaluator * > > members_type
 Type of storage for members. More...
 
- Protected Member Functions inherited from fiber_bundle::eval_family
 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 inherited from fiber_bundle::eval_family
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 section evaluators containing members for constant functions on primitive cells.

Definition at line 38 of file constant_eval_family.h.

Constructor & Destructor Documentation

◆ constant_eval_family() [1/2]

fiber_bundle::constant_eval_family::constant_eval_family ( const constant_eval_family xother)

Copy constructor.

Postcondition

Definition at line 46 of file constant_eval_family.cc.

References clone(), and invariant().

◆ ~constant_eval_family()

fiber_bundle::constant_eval_family::~constant_eval_family ( )
virtual

Destructor.

Definition at line 89 of file constant_eval_family.cc.

References invariant().

Referenced by clone().

◆ constant_eval_family() [2/2]

fiber_bundle::constant_eval_family::constant_eval_family ( const namespace_poset xname_space)

Creates an instance containing all the dlinear evaluators defined in the namespace xname_space.

Precondition
  • xname_space.state_is_read_accessible()
  • xname_space.contains_poset(base_space_member::prototypes_poset_name())
Postcondition

Definition at line 166 of file constant_eval_family.cc.

References class_name(), sheaf::namespace_poset::contains_poset(), initialize(), invariant(), fiber_bundle::base_space_member::prototypes_poset_name(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

Member Function Documentation

◆ class_name()

const std::string & fiber_bundle::constant_eval_family::class_name ( ) const
virtual

The name of this family.

Postcondition
  • !result.empty()

Implements fiber_bundle::eval_family.

Definition at line 186 of file constant_eval_family.cc.

References static_class_name().

Referenced by constant_eval_family().

◆ clone()

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

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

Postcondition
  • result != 0
  • is_same_type(result)

Reimplemented from fiber_bundle::eval_family.

Definition at line 66 of file constant_eval_family.cc.

References sheaf::any::is_same_type(), and ~constant_eval_family().

Referenced by constant_eval_family().

◆ dofs_are_values()

bool fiber_bundle::constant_eval_family::dofs_are_values ( ) const
virtual

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

Implements fiber_bundle::eval_family.

Definition at line 333 of file constant_eval_family.cc.

References extrema_are_dofs().

Referenced by initialize().

◆ extrema_are_dofs()

bool fiber_bundle::constant_eval_family::extrema_are_dofs ( ) const
virtual

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

Implements fiber_bundle::eval_family.

Definition at line 341 of file constant_eval_family.cc.

References fiber_bundle::eval_family::eval_family(), and invariant().

Referenced by dofs_are_values().

◆ initialize()

void fiber_bundle::constant_eval_family::initialize ( const namespace_poset xname_space)
virtual

Initializes this to contain members for name space xname_space.

Precondition
  • !is_initialized()
  • xname_space.state_is_read_accessible()
  • xname_space.contains_poset(base_space_member::prototypes_poset_name())
Issue:
Should the compound types be represented separately? Evaluator_family is supposed to support the notion of a map from a local cell to an evaluator on that local cell. The compound cell types, e.g. triangle_nodes and triangle_complex, are exactly the same type of local cell as triangle. They probably should have the same cell type id and not appear separately in this table.
Postcondition

Implements fiber_bundle::eval_family.

Definition at line 227 of file constant_eval_family.cc.

References fiber_bundle::eval_family::_members, sheaf::abstract_poset_member::attach_to_state(), sheaf::namespace_poset::contains_poset(), dofs_are_values(), sheaf::auto_block< T, S >::force_item(), sheaf::poset_state_handle::get_read_access(), fiber_bundle::eval_family::initialize(), fiber_bundle::eval_family::initialize_members(), invariant(), fiber_bundle::eval_family::is_initialized(), sheaf::poset_state_handle::member_index_ub(), sheaf::namespace_poset::member_poset(), sheaf::scoped_index::pod(), fiber_bundle::base_space_member::prototypes_poset_name(), sheaf::poset_state_handle::release_access(), and sheaf::read_write_monitor_handle::state_is_read_accessible().

Referenced by constant_eval_family(), and static_class_name().

◆ invariant()

bool fiber_bundle::constant_eval_family::invariant ( ) const
virtual

◆ is_ancestor_of()

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

Conformance test; true if other conforms to this.

Precondition
  • xother != 0

Reimplemented from fiber_bundle::eval_family.

Definition at line 140 of file constant_eval_family.cc.

Referenced by invariant().

◆ static_class_name()

const std::string & fiber_bundle::constant_eval_family::static_class_name ( )
static

The name of this class of families.

Postcondition
  • !result.empty()

Definition at line 206 of file constant_eval_family.cc.

References initialize().

Referenced by class_name().


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