64 const std::vector<double>& coordinate_dofs0,
65 const ufc::cell& ufc_cell,
66 const std::vector<bool> & enabled_coefficients);
70 const std::vector<double>& coordinate_dofs0,
71 const ufc::cell& ufc_cell0,
73 const std::vector<double>& coordinate_dofs1,
74 const ufc::cell& ufc_cell1,
75 const std::vector<bool> & enabled_coefficients);
81 const std::vector<double>& coordinate_dofs0,
82 const ufc::cell& ufc_cell);
88 const std::vector<double>& coordinate_dofs0,
89 const ufc::cell& ufc_cell0,
91 const std::vector<double>& coordinate_dofs1,
92 const ufc::cell& ufc_cell1);
95 const double*
const *
w()
const
96 {
return w_pointer.data(); }
101 {
return w_pointer.data(); }
106 {
return macro_w_pointer.data(); }
111 {
return macro_w_pointer.data(); }
116 std::vector<FiniteElement> coefficient_elements;
120 std::vector<std::shared_ptr<ufc::cell_integral>>
125 std::vector<std::shared_ptr<ufc::exterior_facet_integral>>
126 exterior_facet_integrals;
130 std::vector<std::shared_ptr<ufc::interior_facet_integral>>
131 interior_facet_integrals;
135 std::vector<std::shared_ptr<ufc::vertex_integral>>
140 std::vector<std::shared_ptr<ufc::custom_integral>> custom_integrals;
144 std::vector<std::shared_ptr<ufc::cutcell_integral>> cutcell_integrals;
148 std::vector<std::shared_ptr<ufc::interface_integral>> interface_integrals;
152 std::vector<std::shared_ptr<ufc::overlap_integral>> overlap_integrals;
157 std::shared_ptr<ufc::cell_integral>
158 default_cell_integral;
161 std::shared_ptr<ufc::exterior_facet_integral>
162 default_exterior_facet_integral;
165 std::shared_ptr<ufc::interior_facet_integral>
166 default_interior_facet_integral;
169 std::shared_ptr<ufc::vertex_integral>
170 default_vertex_integral;
173 std::shared_ptr<ufc::custom_integral> default_custom_integral;
176 std::shared_ptr<ufc::cutcell_integral> default_cutcell_integral;
179 std::shared_ptr<ufc::interface_integral> default_interface_integral;
182 std::shared_ptr<ufc::overlap_integral> default_overlap_integral;
189 if (domain <
form.max_cell_subdomain_id())
191 ufc::cell_integral * integral
192 = cell_integrals[domain].get();
196 return default_cell_integral.get();
201 ufc::exterior_facet_integral*
204 if (domain <
form.max_exterior_facet_subdomain_id())
206 ufc::exterior_facet_integral* integral
207 = exterior_facet_integrals[domain].get();
211 return default_exterior_facet_integral.get();
216 ufc::interior_facet_integral*
219 if (domain <
form.max_interior_facet_subdomain_id())
221 ufc::interior_facet_integral* integral
222 = interior_facet_integrals[domain].get();
226 return default_interior_facet_integral.get();
231 ufc::vertex_integral*
234 if (domain <
form.max_vertex_subdomain_id())
236 ufc::vertex_integral * integral
237 = vertex_integrals[domain].get();
241 return default_vertex_integral.get();
248 if (domain <
form.max_custom_subdomain_id())
250 ufc::custom_integral * integral = custom_integrals[domain].get();
254 return default_custom_integral.get();
261 if (domain <
form.max_cutcell_subdomain_id())
263 ufc::cutcell_integral * integral = cutcell_integrals[domain].get();
267 return default_cutcell_integral.get();
274 if (domain <
form.max_interface_subdomain_id())
276 ufc::interface_integral * integral = interface_integrals[domain].get();
280 return default_interface_integral.get();
287 if (domain <
form.max_overlap_subdomain_id())
289 ufc::overlap_integral * integral = overlap_integrals[domain].get();
293 return default_overlap_integral.get();
302 std::vector<double>
A;
314 std::vector<std::vector<double>> _w;
315 std::vector<double*> w_pointer;
319 std::vector<std::vector<double>> _macro_w;
320 std::vector<double*> macro_w_pointer;
323 const std::vector<std::shared_ptr<const GenericFunction>> coefficients;
void update(const Cell &cell, const std::vector< double > &coordinate_dofs0, const ufc::cell &ufc_cell, const std::vector< bool > &enabled_coefficients)
Update current cell.
Definition UFC.cpp:158