22 #include "SheafSystem/d_array_point_locator.impl.h" 43 define_old_variable(
size_type old_box_ct = _box_ct);
50 _bins[i].push_front(xbox);
58 ensure(contains_box(xbox));
59 ensure(box_ct() == old_box_ct + 1);
77 define_old_variable(
size_type old_box_ct = _box_ct);
88 _bins[bin_id(i, j)].push_front(xbox);
97 ensure(contains_box(xbox));
98 ensure(box_ct() == old_box_ct + 1);
116 define_old_variable(
size_type old_box_ct = _box_ct);
131 _bins[bin_id(i, j, k)].push_front(xbox);
141 ensure(contains_box(xbox));
142 ensure(box_ct() == old_box_ct + 1);
160 define_old_variable(
size_type old_box_ct = _box_ct);
175 _bins[bin_id(i, j, k)].push_front(xbox);
185 ensure(contains_box(xbox));
186 ensure(box_ct() == old_box_ct + 1);
204 define_old_variable(
size_type old_box_ct = _box_ct);
219 _bins[bin_id(i, j, k)].push_front(xbox);
229 ensure(contains_box(xbox));
230 ensure(box_ct() == old_box_ct + 1);
251 require(xdofs_ub >= DC*xeval.
dof_ct());
252 require(unexecutable(
"this->domain_contains(xeval, xdofs)"));
262 xeval.
min(xdofs, xdofs_ub, gbl_pos, DC);
264 this->relative_position_pa(gbl_pos, DC, llb);
266 xeval.
max(xdofs, xdofs_ub, gbl_pos, DC);
268 this->relative_position_pa(gbl_pos, DC, lub);
300 require(xdofs_ub >= DC*xeval.
dof_ct());
301 require(unexecutable(
"this->domain_contains(xeval, xdofs)"));
311 xeval.
min(xdofs, xdofs_ub, gbl_pos, DC);
313 this->relative_position_pa(gbl_pos, DC, llb);
315 xeval.
max(xdofs, xdofs_ub, gbl_pos, DC);
317 this->relative_position_pa(gbl_pos, DC, lub);
354 require(xdofs_ub >= DC*xeval.
dof_ct());
355 require(unexecutable(
"this->domain_contains(xeval, xdofs)"));
365 xeval.
min(xdofs, xdofs_ub, gbl_pos, DC);
367 this->relative_position_pa(gbl_pos, DC, llb);
369 xeval.
max(xdofs, xdofs_ub, gbl_pos, DC);
371 this->relative_position_pa(gbl_pos, DC, lub);
413 require(xdofs_ub >= DC*xeval.
dof_ct());
414 require(unexecutable(
"this->domain_contains(xeval, xdofs)"));
424 xeval.
min(xdofs, xdofs_ub, gbl_pos, DC);
426 this->relative_position_pa(gbl_pos, DC, llb);
428 xeval.
max(xdofs, xdofs_ub, gbl_pos, DC);
430 this->relative_position_pa(gbl_pos, DC, lub);
472 require(xdofs_ub >= DC*xeval.
dof_ct());
473 require(unexecutable(
"this->domain_contains(xeval, xdofs)"));
483 xeval.
min(xdofs, xdofs_ub, gbl_pos, DC);
485 this->relative_position_pa(gbl_pos, DC, llb);
487 xeval.
max(xdofs, xdofs_ub, gbl_pos, DC);
489 this->relative_position_pa(gbl_pos, DC, lub);
537 xresult.insert(lbox_list.
begin(), lbox_list.
end());
567 xresult.insert(lbox_list.
begin(), lbox_list.
end());
602 xresult.insert(lbox_list.
begin(), lbox_list.
end());
638 xresult.insert(lbox_list.
begin(), lbox_list.
end());
674 xresult.insert(lbox_list.
begin(), lbox_list.
end());
694 require(contains_box(xbox));
698 define_old_variable(
size_type old_box_ct = _box_ct);
705 _bins[i].remove(xbox);
712 ensure(!contains_box(xbox));
713 ensure(box_ct() == old_box_ct - 1);
728 require(contains_box(xbox));
732 define_old_variable(
size_type old_box_ct = _box_ct);
743 _bins[bin_id(i, j)].remove(xbox);
751 ensure(!contains_box(xbox));
752 ensure(box_ct() == old_box_ct - 1);
767 require(contains_box(xbox));
771 define_old_variable(
size_type old_box_ct = _box_ct);
786 _bins[bin_id(i, j, k)].remove(xbox);
795 ensure(!contains_box(xbox));
796 ensure(box_ct() == old_box_ct - 1);
811 require(contains_box(xbox));
815 define_old_variable(
size_type old_box_ct = _box_ct);
830 _bins[bin_id(i, j, k)].remove(xbox);
839 ensure(!contains_box(xbox));
840 ensure(box_ct() == old_box_ct - 1);
855 require(contains_box(xbox));
859 define_old_variable(
size_type old_box_ct = _box_ct);
874 _bins[bin_id(i, j, k)].remove(xbox);
883 ensure(!contains_box(xbox));
884 ensure(box_ct() == old_box_ct - 1);
908 return (xcoord[0]*_bin_ub[1] + xcoord[1]);
916 return (xcoord[0]*_bin_ub[1] + xcoord[1])*_bin_ub[2] + xcoord[2];
924 return (xcoord[0]*_bin_ub[1] + xcoord[1])*_bin_ub[2] + xcoord[2];
932 return (xcoord[0]*_bin_ub[1] + xcoord[1])*_bin_ub[2] + xcoord[2];
948 return (xid[0]*_bin_ub[1] + xid[1]);
956 return (xid[0]*_bin_ub[1] + xid[1])*_bin_ub[2] + xid[2];
964 return (xid[0]*_bin_ub[1] + xid[1])*_bin_ub[2] + xid[2];
972 return (xid[0]*_bin_ub[1] + xid[1])*_bin_ub[2] + xid[2];
const d_bin_coordinates< DC, DB > & ub() const
The upper bound; the upper, right, rear corner.
iterator begin()
Returns an iterator to the first element of the container.
Fixed point relative coordinates for a tree domain.
virtual void insert_box(d_bounding_box< DC, DB > *xbox)
Insert xbox into this.
virtual dof_type max(const dof_type xdofs[], size_type xdofs_ub) const
The maximum value of the scalar or component section defined by xdofs.
virtual size_type dof_ct() const =0
The number of dofs required for each component of the dependent variable.
const d_bin_coordinates< DC, DB > & lb() const
The lower bound; the lower, left, front corner.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
A bounding box that can be strung together into a list.
iterator end()
Returns an iterator to the element following the last element of the container.
An abstract local section evaluator; a map from {local coordinates x dofs} to section value...
virtual const box_list_type & box_list(sec_vd_value_type *xpt, size_type xpt_ub) const
The list of bounding boxes which may contain xpt.
virtual dof_type min(const dof_type xdofs[], size_type xdofs_ub) const
The minimum value of the scalar or component section defined by xdofs.
void push_front(const T &value)
Prepends the given element value to the beginning of the container.
std::set< const d_bounding_box< DC, DB > * > box_set_type
The type of box set.
virtual void remove_box(d_bounding_box< DC, DB > *xbox)
Remove xbox from this.
Namespace for geometry component of sheaf system.
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
Wrapper class for forward_list or slist depending on compiler. The class replicates the minimum subse...
A point location query in domains with global coordinate dimension DC and local coordinate dimension ...