32 template <
unsigned int dim>
36 std::shared_ptr<BulkIntegral> bulk_integral = std::make_shared<BulkIntegral>(shared_from_this(), dim);
44 std::shared_ptr<BulkIntegral> EvalPoints::add_bulk<0>(
const Quadrature &quad)
47 std::shared_ptr<BulkIntegral> bulk_integral = std::make_shared<BulkIntegral>(shared_from_this(), 0);
53 template <
unsigned int dim>
58 std::shared_ptr<EdgeIntegral> edge_integral = std::make_shared<EdgeIntegral>(shared_from_this(), dim);
60 for (
unsigned int i=0; i<dim+1; ++i) {
70 template <
unsigned int dim>
74 std::shared_ptr<BulkIntegral> bulk_integral = this->
add_bulk<dim-1>(quad);
75 std::shared_ptr<EdgeIntegral> edge_integral = this->add_edge<dim>(quad);
76 return std::make_shared<CouplingIntegral>(edge_integral, bulk_integral);
79 template <
unsigned int dim>
82 std::shared_ptr<BulkIntegral> bulk_integral = this->
add_bulk<dim-1>(quad);
83 std::shared_ptr<EdgeIntegral> edge_integral = this->add_edge<dim>(quad);
84 return std::make_shared<BoundaryIntegral>(edge_integral, bulk_integral);
88 : local_points_(dim), n_subsets_(0), dim_(dim)
94 template <
unsigned int dim>
96 ASSERT_GT(dim, 0).error(
"Dimension 0 not supported!\n");
97 unsigned int local_points_old_size = local_points_.size();
98 local_points_.resize(quad_points.
size() + local_points_old_size);
99 for (
unsigned int i=0; i<quad_points.
size(); ++i) {
100 local_points_.set(i+local_points_old_size) = quad_points.
vec<dim>(i);
109 subset_starts_[n_subsets_] = this->
size();
113 template std::shared_ptr<BulkIntegral> EvalPoints::add_bulk<0>(
const Quadrature &);
114 template std::shared_ptr<BulkIntegral> EvalPoints::add_bulk<1>(
const Quadrature &);
115 template std::shared_ptr<BulkIntegral> EvalPoints::add_bulk<2>(
const Quadrature &);
116 template std::shared_ptr<BulkIntegral> EvalPoints::add_bulk<3>(
const Quadrature &);
117 template std::shared_ptr<EdgeIntegral> EvalPoints::add_edge<1>(
const Quadrature &);
118 template std::shared_ptr<EdgeIntegral> EvalPoints::add_edge<2>(
const Quadrature &);
119 template std::shared_ptr<EdgeIntegral> EvalPoints::add_edge<3>(
const Quadrature &);
120 template std::shared_ptr<CouplingIntegral> EvalPoints::add_coupling<2>(
const Quadrature &);
121 template std::shared_ptr<CouplingIntegral> EvalPoints::add_coupling<3>(
const Quadrature &);
122 template std::shared_ptr<BoundaryIntegral> EvalPoints::add_boundary<1>(
const Quadrature &);
123 template std::shared_ptr<BoundaryIntegral> EvalPoints::add_boundary<2>(
const Quadrature &);
124 template std::shared_ptr<BoundaryIntegral> EvalPoints::add_boundary<3>(
const Quadrature &);