SheafSystem
0.0.0.0
|
An abstract refiner for a field over a local region (primitive cell) in the base space. More...
#include <local_field_refiner.h>
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_policy & | policy () 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_type * | local_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_refiner * | clone () const =0 |
Virtual constructor, makes a new instance of the same type as this. More... | |
virtual local_field_refiner & | operator= (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... | |
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.
|
virtual |
|
protected |
Default constructor; disabled.
Not Implemented.
Definition at line 207 of file local_field_refiner.cc.
References initialize_buffers(), and invariant().
Referenced by local_coordinates_map(), and local_field_refiner().
|
protected |
Copy constructor.
Definition at line 226 of file local_field_refiner.cc.
References invariant(), and local_field_refiner().
|
protected |
Creates an instance for refining xtarget using xsource as the reference field.
Definition at line 244 of file local_field_refiner.cc.
References initialize_buffers(), invariant(), and policy().
|
pure virtual |
Virtual constructor, makes a new instance of the same type as this.
Is Abstract.
Reimplemented from sheaf::any.
Implemented in fields::edge_centered_polygon_refiner, 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 391 of file local_field_refiner.cc.
References sheaf::any::is_same_type(), and operator=().
Referenced by create_zone(), and fields::field_refiner_family::field_refiner_family().
|
protected |
Creates a new vertex at depth xdepth.
Definition at line 298 of file local_field_refiner.cc.
References _point_dof_tuple_ids, sheaf::poset_state_handle::contains_member(), create_zone(), sheaf::auto_block< T, S >::force_item(), sheaf::scoped_index::hub_pod(), sheaf::poset_state_handle::in_jim_edit_mode(), sheaf::scoped_index::is_valid(), sheaf::poset_state_handle::new_link(), fiber_bundle::base_space_poset::new_member(), fiber_bundle::base_space_poset::prototype_dof_tuple_id(), fiber_bundle::base_space_poset::refinement_depth(), fiber_bundle::base_space_poset::type_name(), sheaf::auto_block< T, S >::ub(), and vertex_type_name().
Referenced by fields::edge_centered_polygon_refiner::create_edge_center(), initialize_buffers(), fields::edge_centered_polygon_refiner::make_new_vertices(), fields::zone_centered_tet_refiner::modify_crg(), fields::zone_centered_segment_refiner::modify_crg(), and fields::zone_centered_triangle_refiner::modify_crg().
|
protected |
Creates a new quadrangle in base space xbase, with refinement depth xdepth.
Definition at line 346 of file local_field_refiner.cc.
References _zone_dof_tuple_ids, clone(), sheaf::poset_state_handle::contains_member(), sheaf::auto_block< T, S >::force_item(), sheaf::poset_state_handle::in_jim_edit_mode(), fiber_bundle::base_space_poset::new_member(), fiber_bundle::base_space_poset::prototype_dof_tuple_id(), sheaf::auto_block< T, S >::ub(), and zone_type_name().
Referenced by create_vertex(), fields::edge_centered_polygon_refiner::make_new_zones(), fields::edge_centered_triangle_refiner::modify_crg(), fields::zone_centered_tet_refiner::modify_crg(), fields::zone_centered_segment_refiner::modify_crg(), and fields::zone_centered_triangle_refiner::modify_crg().
|
pure virtual |
The base dimension; the dimension of the local coordinates (independent variable).
Is Abstract.
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().
|
protected |
Initializes the dof tuple and refined zone buffers.
Definition at line 263 of file local_field_refiner.cc.
References _point_dof_tuple_ids, _refined_zone_ids, _zone_dof_tuple_ids, sheaf::auto_block< T, S >::assign(), create_vertex(), sheaf::scoped_index::INVALID(), sheaf::auto_block< T, S >::reserve(), sheaf::auto_block< T, S >::set_ct(), and sheaf::auto_block< T, S >::ub().
Referenced by local_field_refiner().
|
virtual |
Class invariant.
Reimplemented from sheaf::any.
Reimplemented in fields::edge_centered_polygon_refiner, 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 434 of file local_field_refiner.cc.
References sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::any::invariant(), sheaf::any::invariant_check(), and is_ancestor_of().
Referenced by fields::edge_centered_triangle_refiner::invariant(), fields::zone_centered_segment_refiner::invariant(), fields::zone_centered_tet_refiner::invariant(), fields::zone_centered_triangle_refiner::invariant(), fields::edge_centered_polygon_refiner::invariant(), local_field_refiner(), and operator=().
|
virtual |
Conformance test; true if other conforms to this.
Reimplemented from sheaf::any.
Reimplemented in fields::edge_centered_polygon_refiner, 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 464 of file local_field_refiner.cc.
Referenced by invariant(), and operator=().
|
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().
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().
|
virtual |
Assignment operator.
Reimplemented in fields::edge_centered_polygon_refiner, 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 413 of file local_field_refiner.cc.
References invariant(), and is_ancestor_of().
Referenced by clone().
const fields::field_refinement_policy & fields::local_field_refiner::policy | ( | ) | const |
The refinement policy for this refiner.
Definition at line 124 of file local_field_refiner.cc.
References refine().
Referenced by fields::barycentric_quad_refiner::barycentric_quad_refiner(), fields::barycentric_triangle_refiner::barycentric_triangle_refiner(), fields::edge_centered_polygon_refiner::edge_centered_polygon_refiner(), fields::edge_centered_triangle_refiner::edge_centered_triangle_refiner(), local_field_refiner(), fields::refining_section_pusher::push(), fields::field_refiner::refine(), vertex_type_name(), fields::zone_centered_segment_refiner::zone_centered_segment_refiner(), fields::zone_centered_tet_refiner::zone_centered_tet_refiner(), and fields::zone_centered_triangle_refiner::zone_centered_triangle_refiner().
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.
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().
|
protectedpure virtual |
Refines the base space or the target.
Implemented in fields::edge_centered_polygon_refiner, fields::zone_centered_triangle_refiner, fields::zone_centered_segment_refiner, and fields::zone_centered_tet_refiner.
|
protectedpure virtual |
Refines the coordinates section of the target.
Implemented in fields::edge_centered_polygon_refiner, fields::zone_centered_triangle_refiner, fields::zone_centered_segment_refiner, and fields::zone_centered_tet_refiner.
|
pure virtual |
The number of refined zones created by this.
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 153 of file local_field_refiner.cc.
References refined_zone_ids().
Referenced by fields::edge_centered_polygon_refiner::modify_crg(), refine(), and fields::field_refinement_buffer::refine_prop_dofs().
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().
|
virtual |
The name of the type of vertex this creates during refinement.
Definition at line 103 of file local_field_refiner.cc.
References policy().
Referenced by create_vertex(), and zone_type_name().
|
pure virtual |
The name of the type of zone this creates during refinement.
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 80 of file local_field_refiner.cc.
References vertex_type_name().
Referenced by create_zone(), and db().
|
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().
|
protected |
The refinement policy.
Definition at line 141 of file local_field_refiner.h.
|
protected |
The member ids of the zones created by the most recent execution of refine().
Definition at line 157 of file local_field_refiner.h.
Referenced by initialize_buffers(), fields::edge_centered_polygon_refiner::make_new_zones(), fields::edge_centered_triangle_refiner::modify_crg(), fields::zone_centered_tet_refiner::modify_crg(), fields::edge_centered_polygon_refiner::modify_crg(), fields::zone_centered_tet_refiner::modify_subposets(), fields::edge_centered_polygon_refiner::modify_subposets(), fields::zone_centered_segment_refiner::refine_base_space(), and fields::zone_centered_triangle_refiner::refine_base_space().
|
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().