64 const std::vector<double>& coordinate_dofs0,
65 const ufc::cell& ufc_cell,
66 const std::vector<bool> & enabled_coefficients);
71 const std::vector<std::vector<double>>& coordinate_dofs0,
72 const std::vector<ufc::cell>& ufc_cells,
73 const std::vector<bool> & enabled_coefficients);
77 const std::vector<double>& coordinate_dofs0,
78 const ufc::cell& ufc_cell0,
80 const std::vector<double>& coordinate_dofs1,
81 const ufc::cell& ufc_cell1,
82 const std::vector<bool> & enabled_coefficients);
88 const std::vector<double>& coordinate_dofs0,
89 const ufc::cell& ufc_cell);
95 const std::vector<double>& coordinate_dofs0,
96 const ufc::cell& ufc_cell0,
98 const std::vector<double>& coordinate_dofs1,
99 const ufc::cell& ufc_cell1);
102 const double*
const *
w()
const
103 {
return w_pointer.data(); }
108 {
return w_pointer.data(); }
113 {
return macro_w_pointer.data(); }
118 {
return macro_w_pointer.data(); }
123 std::vector<FiniteElement> coefficient_elements;
127 std::vector<std::shared_ptr<ufc::cell_integral>>
132 std::vector<std::shared_ptr<ufc::exterior_facet_integral>>
133 exterior_facet_integrals;
137 std::vector<std::shared_ptr<ufc::interior_facet_integral>>
138 interior_facet_integrals;
142 std::vector<std::shared_ptr<ufc::vertex_integral>>
147 std::vector<std::shared_ptr<ufc::custom_integral>> custom_integrals;
151 std::vector<std::shared_ptr<ufc::cutcell_integral>> cutcell_integrals;
155 std::vector<std::shared_ptr<ufc::interface_integral>> interface_integrals;
159 std::vector<std::shared_ptr<ufc::overlap_integral>> overlap_integrals;
164 std::shared_ptr<ufc::cell_integral>
165 default_cell_integral;
168 std::shared_ptr<ufc::exterior_facet_integral>
169 default_exterior_facet_integral;
172 std::shared_ptr<ufc::interior_facet_integral>
173 default_interior_facet_integral;
176 std::shared_ptr<ufc::vertex_integral>
177 default_vertex_integral;
180 std::shared_ptr<ufc::custom_integral> default_custom_integral;
183 std::shared_ptr<ufc::cutcell_integral> default_cutcell_integral;
186 std::shared_ptr<ufc::interface_integral> default_interface_integral;
189 std::shared_ptr<ufc::overlap_integral> default_overlap_integral;
196 if (domain <
form.max_cell_subdomain_id())
198 ufc::cell_integral * integral
199 = cell_integrals[domain].get();
203 return default_cell_integral.get();
208 ufc::exterior_facet_integral*
211 if (domain <
form.max_exterior_facet_subdomain_id())
213 ufc::exterior_facet_integral* integral
214 = exterior_facet_integrals[domain].get();
218 return default_exterior_facet_integral.get();
223 ufc::interior_facet_integral*
226 if (domain <
form.max_interior_facet_subdomain_id())
228 ufc::interior_facet_integral* integral
229 = interior_facet_integrals[domain].get();
233 return default_interior_facet_integral.get();
238 ufc::vertex_integral*
241 if (domain <
form.max_vertex_subdomain_id())
243 ufc::vertex_integral * integral
244 = vertex_integrals[domain].get();
248 return default_vertex_integral.get();
255 if (domain <
form.max_custom_subdomain_id())
257 ufc::custom_integral * integral = custom_integrals[domain].get();
261 return default_custom_integral.get();
268 if (domain <
form.max_cutcell_subdomain_id())
270 ufc::cutcell_integral * integral = cutcell_integrals[domain].get();
274 return default_cutcell_integral.get();
281 if (domain <
form.max_interface_subdomain_id())
283 ufc::interface_integral * integral = interface_integrals[domain].get();
287 return default_interface_integral.get();
294 if (domain <
form.max_overlap_subdomain_id())
296 ufc::overlap_integral * integral = overlap_integrals[domain].get();
300 return default_overlap_integral.get();
309 std::vector<double>
A;
321 std::vector<std::vector<double>> _w;
322 std::vector<double*> w_pointer;
326 std::vector<std::vector<double>> _macro_w;
327 std::vector<double*> macro_w_pointer;
330 const std::vector<std::shared_ptr<const GenericFunction>> coefficients;