|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
17 #ifndef dealii_mesh_worker_functional_h
18 #define dealii_mesh_worker_functional_h
49 template <
typename number =
double>
66 template <
class DOFINFO>
73 template <
class DOFINFO>
80 template <
class DOFINFO>
82 assemble(
const DOFINFO &info1,
const DOFINFO &info2);
107 template <
typename number =
double>
143 template <
class DOFINFO>
150 template <
class DOFINFO>
157 template <
class DOFINFO>
159 assemble(
const DOFINFO &info1,
const DOFINFO &info2);
173 template <
typename number>
178 std::fill(results.begin(), results.end(), 0.);
182 template <
typename number>
183 template <
class DOFINFO>
187 info.initialize_numbers(results.size());
191 template <
typename number>
192 template <
class DOFINFO>
196 for (
unsigned int i = 0; i < results.size(); ++i)
197 results[i] += info.value(i);
201 template <
typename number>
202 template <
class DOFINFO>
206 for (
unsigned int i = 0; i < results.size(); ++i)
208 results[i] += info1.value(i);
209 results[i] += info2.value(i);
214 template <
typename number>
224 template <
typename number>
226 : separate_faces(true)
231 template <
typename number>
244 separate_faces = sep;
247 template <
typename number>
248 template <
class DOFINFO>
252 info.initialize_numbers(
257 template <
typename number>
258 template <
class DOFINFO>
268 for (
unsigned int i = 0; i < info.n_values(); ++i)
269 v->
block(i)(info.cell->user_index()) += info.value(i);
273 template <
typename number>
274 template <
class DOFINFO>
278 for (
unsigned int i = 0; i < info1.n_values(); ++i)
283 const double J = info1.value(i) + info2.value(i);
284 v1->
block(i)(info1.face->user_index()) += J;
285 if (info2.face != info1.face)
286 v1->
block(i)(info2.face->user_index()) += J;
291 v0->
block(i)(info1.cell->user_index()) += .5 * info1.value(i);
292 v0->
block(i)(info2.cell->user_index()) += .5 * info2.value(i);
void initialize_info(DOFINFO &info, bool face) const
void initialize(const unsigned int n)
const std::string & name(const unsigned int i) const
Name of object at index.
#define AssertIndexRange(index, range)
void assemble(const DOFINFO &info)
type entry(const std::string &name)
Access to stored data object by name.
void initialize_info(DOFINFO &info, bool face)
#define DEAL_II_NAMESPACE_OPEN
unsigned int n_blocks() const
#define AssertDimension(dim1, dim2)
static ::ExceptionBase & ExcNameMismatch(int arg1, std::string arg2)
void assemble(const DOFINFO &info)
#define Assert(cond, exc)
number operator()(const unsigned int i) const
static const unsigned int invalid_unsigned_int
number operator()(const unsigned int i) const
#define DEAL_II_NAMESPACE_CLOSE
BlockType & block(const unsigned int i)
std::vector< double > results
void initialize(AnyData &results, bool separate_faces=true)