18 #include <deal.II/meshworker/vector_selector.h>
19 #include <deal.II/base/vector_slice.h>
20 #include <deal.II/fe/fe_values.h>
26 template <
int dim,
int spacedim>
31 template <
int dim,
int spacedim>
38 template <
int dim,
int spacedim>
43 template <
int dim,
int spacedim>
46 std::vector<std::vector<std::vector<double> > > &,
50 const std::vector<types::global_dof_index> &,
54 const unsigned int)
const
60 template <
int dim,
int spacedim>
63 std::vector<std::vector<std::vector<double> > > &,
68 const std::vector<types::global_dof_index> &,
72 const unsigned int)
const
80 template <
class VECTOR,
int dim,
int spacedim>
85 template <
class VECTOR,
int dim,
int spacedim>
92 template <
class VECTOR,
int dim,
int spacedim>
101 template <
class VECTOR,
int dim,
int spacedim>
111 template <
class VECTOR,
int dim,
int spacedim>
114 std::vector<std::vector<std::vector<double> > > &values,
115 std::vector<std::vector<std::vector<
Tensor<1,dim> > > > &gradients,
116 std::vector<std::vector<std::vector<
Tensor<2,dim> > > > &hessians,
118 const std::vector<types::global_dof_index> &index,
119 const unsigned int component,
120 const unsigned int n_comp,
121 const unsigned int start,
122 const unsigned int size)
const
128 for (
unsigned int i=0; i<this->n_values(); ++i)
130 const VECTOR &src = *data(this->value_index(i));
135 for (
unsigned int i=0; i<this->n_gradients(); ++i)
137 const VECTOR &src = *data(this->gradient_index(i));
142 for (
unsigned int i=0; i<this->n_hessians(); ++i)
144 const VECTOR &src = *data(this->hessian_index(i));
151 template <
class VECTOR,
int dim,
int spacedim>
156 mem +=
sizeof (data);
162 template <
class VECTOR,
int dim,
int spacedim>
167 template <
class VECTOR,
int dim,
int spacedim>
174 template <
class VECTOR,
int dim,
int spacedim>
183 template <
class VECTOR,
int dim,
int spacedim>
194 template <
class VECTOR,
int dim,
int spacedim>
197 std::vector<std::vector<std::vector<double> > > &values,
198 std::vector<std::vector<std::vector<
Tensor<1,dim> > > > &gradients,
199 std::vector<std::vector<std::vector<
Tensor<2,dim> > > > &hessians,
201 const unsigned int level,
202 const std::vector<types::global_dof_index> &index,
203 const unsigned int component,
204 const unsigned int n_comp,
205 const unsigned int start,
206 const unsigned int size)
const
212 for (
unsigned int i=0; i<this->n_values(); ++i)
214 const VECTOR &src = (*data(this->value_index(i)))[level];
219 for (
unsigned int i=0; i<this->n_gradients(); ++i)
221 const VECTOR &src = (*data(this->value_index(i)))[level];
226 for (
unsigned int i=0; i<this->n_hessians(); ++i)
228 const VECTOR &src = (*data(this->value_index(i)))[level];
235 template <
class VECTOR,
int dim,
int spacedim>
240 mem +=
sizeof (data);
245 DEAL_II_NAMESPACE_CLOSE
void initialize(const NamedData< VECTOR * > &)
#define AssertDimension(dim1, dim2)
std::size_t memory_consumption() const
void initialize(const NamedData< DATA > &)
virtual ~VectorDataBase()
virtual void fill(std::vector< std::vector< std::vector< double > > > &values, std::vector< std::vector< std::vector< Tensor< 1, dim > > > > &gradients, std::vector< std::vector< std::vector< Tensor< 2, dim > > > > &hessians, const FEValuesBase< dim, spacedim > &fe, const std::vector< types::global_dof_index > &index, const unsigned int component, const unsigned int n_comp, const unsigned int start, const unsigned int size) const
void get_function_hessians(const InputVector &fe_function, std::vector< Tensor< 2, spacedim > > &hessians) const
void initialize(const NamedData< MGLevelObject< VECTOR > * > &)
void get_function_values(const InputVector &fe_function, std::vector< number > &values) const
#define Assert(cond, exc)
void get_function_gradients(const InputVector &fe_function, std::vector< Tensor< 1, spacedim > > &gradients) const
std::size_t memory_consumption() const
std::size_t memory_consumption() const
virtual void mg_fill(std::vector< std::vector< std::vector< double > > > &values, std::vector< std::vector< std::vector< Tensor< 1, dim > > > > &gradients, std::vector< std::vector< std::vector< Tensor< 2, dim > > > > &hessians, const FEValuesBase< dim, spacedim > &fe, const unsigned int level, const std::vector< types::global_dof_index > &index, const unsigned int component, const unsigned int n_comp, const unsigned int start, const unsigned int size) const
virtual void fill(std::vector< std::vector< std::vector< double > > > &values, std::vector< std::vector< std::vector< Tensor< 1, dim > > > > &gradients, std::vector< std::vector< std::vector< Tensor< 2, dim > > > > &hessians, const FEValuesBase< dim, spacedim > &fe, const std::vector< types::global_dof_index > &index, const unsigned int component, const unsigned int n_comp, const unsigned int start, const unsigned int size) const
::ExceptionBase & ExcNotImplemented()
virtual void mg_fill(std::vector< std::vector< std::vector< double > > > &values, std::vector< std::vector< std::vector< Tensor< 1, dim > > > > &gradients, std::vector< std::vector< std::vector< Tensor< 2, dim > > > > &hessians, const FEValuesBase< dim, spacedim > &fe, const unsigned int level, const std::vector< types::global_dof_index > &index, const unsigned int component, const unsigned int n_comp, const unsigned int start, const unsigned int size) const