16#ifndef dealii_mesh_worker_functional_h
17#define dealii_mesh_worker_functional_h
47 template <
typename number =
double>
64 template <
class DOFINFO>
71 template <
class DOFINFO>
78 template <
class DOFINFO>
80 assemble(
const DOFINFO &info1,
const DOFINFO &info2);
104 template <
typename number =
double>
140 template <
class DOFINFO>
147 template <
class DOFINFO>
154 template <
class DOFINFO>
156 assemble(
const DOFINFO &info1,
const DOFINFO &info2);
170 template <
typename number>
175 std::fill(results.begin(), results.end(), 0.);
179 template <
typename number>
180 template <
class DOFINFO>
184 info.initialize_numbers(results.size());
188 template <
typename number>
189 template <
class DOFINFO>
193 for (
unsigned int i = 0; i < results.size(); ++i)
194 results[i] += info.value(i);
198 template <
typename number>
199 template <
class DOFINFO>
203 for (
unsigned int i = 0; i < results.size(); ++i)
205 results[i] += info1.value(i);
206 results[i] += info2.value(i);
211 template <
typename number>
221 template <
typename number>
223 : separate_faces(true)
228 template <
typename number>
241 separate_faces = sep;
244 template <
typename number>
245 template <
class DOFINFO>
249 info.initialize_numbers(
254 template <
typename number>
255 template <
class DOFINFO>
265 for (
unsigned int i = 0; i < info.n_values(); ++i)
266 v->
block(i)(info.cell->user_index()) += info.value(i);
270 template <
typename number>
271 template <
class DOFINFO>
275 for (
unsigned int i = 0; i < info1.n_values(); ++i)
280 const double J = info1.value(i) + info2.value(i);
281 v1->block(i)(info1.face->user_index()) += J;
282 if (info2.face != info1.face)
283 v1->block(i)(info2.face->user_index()) += J;
288 v0->block(i)(info1.cell->user_index()) += .5 * info1.value(i);
289 v0->block(i)(info2.cell->user_index()) += .5 * info2.value(i);
const std::string & name(const unsigned int i) const
Name of object at index.
type entry(const std::string &name)
Access to stored data object by name.
unsigned int n_blocks() const
BlockType & block(const unsigned int i)
number operator()(const unsigned int i) const
void assemble(const DOFINFO &info)
void initialize(AnyData &results, bool separate_faces=true)
void initialize_info(DOFINFO &info, bool face) const
void initialize(const unsigned int n)
std::vector< double > results
void initialize_info(DOFINFO &info, bool face)
number operator()(const unsigned int i) const
void assemble(const DOFINFO &info)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNameMismatch(int arg1, std::string arg2)
#define Assert(cond, exc)
#define AssertDimension(dim1, dim2)
#define AssertIndexRange(index, range)
static const unsigned int invalid_unsigned_int