SheafSystem  0.0.0.0
fields::local_field_refiner Class Referenceabstract

An abstract refiner for a field over a local region (primitive cell) in the base space. More...

#include <local_field_refiner.h>

Inheritance diagram for fields::local_field_refiner:
sheaf::any fields::edge_centered_polygon_refiner fields::zone_centered_segment_refiner fields::zone_centered_tet_refiner fields::zone_centered_triangle_refiner fields::barycentric_quad_refiner fields::barycentric_triangle_refiner fields::edge_centered_triangle_refiner

LOCAL_FIELD_REFINER FACET

const field_refinement_policy_policy
 The refinement policy. More...
 
block< scoped_index_point_dof_tuple_ids
 The dof tuple index for point cells at various depths. More...
 
block< scoped_index_zone_dof_tuple_ids
 The dof tuple index for quadrangle cells at various depths. More...
 
block< scoped_index_refined_zone_ids
 The member ids of the zones created by the most recent execution of refine(). More...
 
virtual ~local_field_refiner ()
 Destructor. More...
 
virtual int db () const =0
 The base dimension; the dimension of the local coordinates (independent variable). More...
 
virtual const std::string & zone_type_name () const =0
 The name of the type of zone this creates during refinement. More...
 
virtual const std::string & vertex_type_name () const
 The name of the type of vertex this creates during refinement. More...
 
const field_refinement_policypolicy () const
 The refinement policy for this refiner. More...
 
void refine (field_refinement_buffer &xbuffer)
 Refines the zone specified by xbuffer.zone_id one level and evaluates the coordinates section on the refined zone. More...
 
virtual size_type refined_zone_ct () const =0
 The number of refined zones created by this. More...
 
const block< scoped_index > & refined_zone_ids () const
 The member ids of the zones created by the most recent execution of refine(). More...
 
virtual const chart_point_coord_typelocal_coordinates_map (size_type xi) const =0
 The affine map from the local coordinates of refined zone xi the the local coordinates of the parent zone. Specifically, u_parent[i] = result[i*(db()+1) + j]*u[j] + result[i*(db()+1) + db()]; sum convention on 0 <= j < db(). More...
 
 local_field_refiner ()
 Default constructor; disabled. More...
 
 local_field_refiner (const local_field_refiner &xother)
 Copy constructor. More...
 
 local_field_refiner (const field_refinement_policy &xpolicy)
 Creates an instance for refining xtarget using xsource as the reference field. More...
 
void initialize_buffers ()
 Initializes the dof tuple and refined zone buffers. More...
 
virtual void refine_base_space (field_refinement_buffer &xbuffer)=0
 Refines the base space or the target. More...
 
virtual void refine_coordinates (field_refinement_buffer &xbuffer)=0
 Refines the coordinates section of the target. More...
 
pod_index_type create_vertex (base_space_poset &xbase, int xdepth)
 Creates a new vertex at depth xdepth. More...
 
pod_index_type create_zone (base_space_poset &xbase, int xdepth)
 Creates a new quadrangle in base space xbase, with refinement depth xdepth. More...
 

ANY FACET

virtual local_field_refinerclone () const =0
 Virtual constructor, makes a new instance of the same type as this. More...
 
virtual local_field_refineroperator= (const local_field_refiner &xother)
 Assignment operator. More...
 
virtual bool invariant () const
 Class invariant. More...
 
virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 

Additional Inherited Members

- 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...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

An abstract refiner for a field over a local region (primitive cell) in the base space.

Definition at line 58 of file local_field_refiner.h.

Constructor & Destructor Documentation

◆ ~local_field_refiner()

fields::local_field_refiner::~local_field_refiner ( )
virtual

Destructor.

Postcondition

Definition at line 43 of file local_field_refiner.cc.

References db().

◆ local_field_refiner() [1/3]

fields::local_field_refiner::local_field_refiner ( )
protected

Default constructor; disabled.

Not Implemented.

Postcondition

Definition at line 207 of file local_field_refiner.cc.

References initialize_buffers(), and invariant().

Referenced by local_coordinates_map(), and local_field_refiner().

◆ local_field_refiner() [2/3]

fields::local_field_refiner::local_field_refiner ( const local_field_refiner xother)
protected

Copy constructor.

Postcondition

Definition at line 226 of file local_field_refiner.cc.

References invariant(), and local_field_refiner().

◆ local_field_refiner() [3/3]

fields::local_field_refiner::local_field_refiner ( const field_refinement_policy xpolicy)
protected

Creates an instance for refining xtarget using xsource as the reference field.

Postcondition

Definition at line 244 of file local_field_refiner.cc.

References initialize_buffers(), invariant(), and policy().

Member Function Documentation

◆ clone()

fields::local_field_refiner * fields::local_field_refiner::clone ( ) const
pure virtual

◆ create_vertex()

◆ create_zone()

◆ db()

int fields::local_field_refiner::db ( ) const
pure virtual

The base dimension; the dimension of the local coordinates (independent variable).

Is Abstract.

Postcondition
  • result >= -1

Implemented in fields::edge_centered_polygon_refiner, fields::zone_centered_triangle_refiner, fields::zone_centered_tet_refiner, and fields::zone_centered_segment_refiner.

Definition at line 58 of file local_field_refiner.cc.

References zone_type_name().

Referenced by ~local_field_refiner().

◆ initialize_buffers()

void fields::local_field_refiner::initialize_buffers ( )
protected

◆ invariant()

◆ is_ancestor_of()

bool fields::local_field_refiner::is_ancestor_of ( const any other) const
virtual

◆ local_coordinates_map()

const fiber_bundle::chart_point_coord_type * fields::local_field_refiner::local_coordinates_map ( size_type  xi) const
pure virtual

The affine map from the local coordinates of refined zone xi the the local coordinates of the parent zone. Specifically, u_parent[i] = result[i*(db()+1) + j]*u[j] + result[i*(db()+1) + db()]; sum convention on 0 <= j < db().

Precondition
Is Abstract.

Implemented in fields::zone_centered_triangle_refiner, fields::zone_centered_tet_refiner, fields::zone_centered_segment_refiner, fields::edge_centered_triangle_refiner, fields::barycentric_triangle_refiner, and fields::barycentric_quad_refiner.

Definition at line 182 of file local_field_refiner.cc.

References local_field_refiner().

Referenced by fields::field_refinement_buffer::refine_prop_dofs(), and refined_zone_ids().

◆ operator=()

fields::local_field_refiner & fields::local_field_refiner::operator= ( const local_field_refiner xother)
virtual

◆ policy()

◆ refine()

void fields::local_field_refiner::refine ( field_refinement_buffer xbuffer)

Refines the zone specified by xbuffer.zone_id one level and evaluates the coordinates section on the refined zone.

Precondition
  • -unexecutable( "coordinate dofs have been gathered" )
  • -unexecutable( "property dofs have been gathered" )

Definition at line 132 of file local_field_refiner.cc.

References refined_zone_ct().

Referenced by policy(), fields::refining_section_pusher::push(), and fields::field_refiner::refine().

◆ refine_base_space()

virtual void fields::local_field_refiner::refine_base_space ( field_refinement_buffer xbuffer)
protectedpure virtual

◆ refine_coordinates()

virtual void fields::local_field_refiner::refine_coordinates ( field_refinement_buffer xbuffer)
protectedpure virtual

◆ refined_zone_ct()

◆ refined_zone_ids()

const sheaf::block< sheaf::scoped_index > & fields::local_field_refiner::refined_zone_ids ( ) const

The member ids of the zones created by the most recent execution of refine().

Definition at line 175 of file local_field_refiner.cc.

References local_coordinates_map().

Referenced by refined_zone_ct().

◆ vertex_type_name()

const std::string & fields::local_field_refiner::vertex_type_name ( ) const
virtual

The name of the type of vertex this creates during refinement.

Postcondition
  • !result.empty()

Definition at line 103 of file local_field_refiner.cc.

References policy().

Referenced by create_vertex(), and zone_type_name().

◆ zone_type_name()

const std::string & fields::local_field_refiner::zone_type_name ( ) const
pure virtual

The name of the type of zone this creates during refinement.

Is Abstract.

Postcondition
  • !result.empty()

Implemented in fields::zone_centered_triangle_refiner, fields::zone_centered_tet_refiner, fields::zone_centered_segment_refiner, fields::edge_centered_triangle_refiner, fields::barycentric_triangle_refiner, and fields::barycentric_quad_refiner.

Definition at line 80 of file local_field_refiner.cc.

References vertex_type_name().

Referenced by create_zone(), and db().

Member Data Documentation

◆ _point_dof_tuple_ids

block<scoped_index> fields::local_field_refiner::_point_dof_tuple_ids
protected

The dof tuple index for point cells at various depths.

Definition at line 146 of file local_field_refiner.h.

Referenced by create_vertex(), and initialize_buffers().

◆ _policy

const field_refinement_policy& fields::local_field_refiner::_policy
protected

The refinement policy.

Definition at line 141 of file local_field_refiner.h.

◆ _refined_zone_ids

◆ _zone_dof_tuple_ids

block<scoped_index> fields::local_field_refiner::_zone_dof_tuple_ids
protected

The dof tuple index for quadrangle cells at various depths.

Definition at line 151 of file local_field_refiner.h.

Referenced by create_zone(), and initialize_buffers().


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