52 template<
unsigned int dim,
unsigned int spacedim>
inline
59 jacobians.resize(size);
62 determinants.resize(size);
66 JxW_values.resize(size);
69 inverse_jacobians.resize(size);
75 shape_values.resize(size);
79 shape_vectors.resize(size);
87 shape_gradients.resize(size);
91 shape_grad_vectors.resize(size);
99 normal_vectors.resize(size);
106 template<
unsigned int dim,
unsigned int spacedim>
inline
108 : mapping(NULL), quadrature(NULL), fe(NULL), mapping_data(NULL), fe_data(NULL)
114 template<
unsigned int dim,
unsigned int spacedim>
inline
116 if (mapping_data)
delete mapping_data;
117 if (fe_data)
delete fe_data;
122 template<
unsigned int dim,
unsigned int spacedim>
130 quadrature = &_quadrature;
134 data.allocate(quadrature->size(), update_each(_flags), fe->is_scalar());
139 template<
unsigned int dim,
unsigned int spacedim>
inline
143 f |= mapping->update_each(f);
147 template<
unsigned int dim,
unsigned int spacedim>
inline
150 return data.shape_values[point_no][function_no];
153 template<
unsigned int dim,
unsigned int spacedim>
inline
156 return trans(data.shape_gradients[point_no].row(function_no));
159 template<
unsigned int dim,
unsigned int spacedim>
inline
162 return data.shape_vectors[point_no][function_no];
165 template<
unsigned int dim,
unsigned int spacedim>
inline
168 return data.shape_grad_vectors[point_no][function_no];
171 template<
unsigned int dim,
unsigned int spacedim>
inline
174 return data.determinants[point_no];
177 template<
unsigned int dim,
unsigned int spacedim>
inline
180 return data.JxW_values[point_no];
183 template<
unsigned int dim,
unsigned int spacedim>
inline
186 return data.points[point_no];
189 template<
unsigned int dim,
unsigned int spacedim>
inline
195 template<
unsigned int dim,
unsigned int spacedim>
inline
198 return data.normal_vectors[point_no];
201 template<
unsigned int dim,
unsigned int spacedim>
inline
204 return quadrature->size();
207 template<
unsigned int dim,
unsigned int spacedim>
inline
213 template<
unsigned int dim,
unsigned int spacedim>
inline
227 template<
unsigned int dim,
unsigned int spacedim>
234 this->
allocate(_mapping, _quadrature, _fe, _flags);
243 template<
unsigned int dim,
unsigned int spacedim>
inline
247 this->data.present_cell = &cell;
250 this->mapping->fill_fe_values(cell,
255 this->fe->fill_fe_values(*this->quadrature,
268 template<
unsigned int dim,
unsigned int spacedim>
inline
277 this->
allocate(_mapping, *q, _fe, _flags);
279 for (
unsigned int sid = 0; sid < RefElement<dim>::n_sides; sid++)
281 for (
unsigned int pid = 0; pid < RefElement<dim>::n_side_permutations; pid++)
293 template<
unsigned int dim,
unsigned int spacedim>
297 for (
unsigned int sid=0; sid<RefElement<dim>::n_sides; sid++)
299 for (
unsigned int pid=0; pid<RefElement<dim>::n_side_permutations; pid++)
301 delete side_mapping_data[sid][pid];
302 delete side_fe_data[sid][pid];
308 delete this->quadrature;
312 template<
unsigned int dim,
unsigned int spacedim>
inline
316 this->data.present_cell = &cell;
318 unsigned int pid = cell->permutation_idx_[sid];
321 this->mapping->fill_fe_side_values(cell,
323 side_quadrature[sid][pid],
324 *side_mapping_data[sid][pid],
328 this->fe->fill_fe_values(side_quadrature[sid][pid],
329 *side_fe_data[sid][pid],