16 #ifndef __H2D_DISCRETE_PROBLEM_DG_ASSEMBLER_H
17 #define __H2D_DISCRETE_PROBLEM_DG_ASSEMBLER_H
19 #include "hermes_common.h"
21 #include "weakform/weakform.h"
22 #include "function/function.h"
23 #include "neighbor_search.h"
24 #include "refinement_selectors/selector.h"
25 #include "exceptions.h"
27 #include "multimesh_dg_neighbor_tree.h"
28 #include "discrete_problem/discrete_problem_selective_assembler.h"
38 template<
typename Scalar>
51 void assemble_one_state();
53 void deinit_assembling_one_state();
55 static unsigned int dg_order;
58 bool DG_matrix_forms_present;
61 bool DG_vector_forms_present;
64 void init_assembling_one_neighbor();
66 void assemble_one_neighbor(
bool edge_processed,
unsigned int neighbor_i,
NeighborSearch<Scalar>** neighbor_searches);
68 void deinit_assembling_one_neighbor();
80 unsigned int* num_neighbors;
91 std::vector<Transformable *> fns;
97 SparseMatrix<Scalar>* current_mat;
98 Vector<Scalar>* current_rhs;
102 Scalar local_stiffness_matrix[H2D_MAX_LOCAL_BASIS_SIZE * H2D_MAX_LOCAL_BASIS_SIZE * 4];
104 const std::vector<SpaceSharedPtr<Scalar> > spaces;
105 const std::vector<MeshSharedPtr>& meshes;
113 #ifdef DEBUG_DG_ASSEMBLING
PrecalcShapeset variant for fast assembling.
This class represents a function with jump discontinuity on an interface of two elements.
Provides capabilities to (re-)assemble a matrix / vector only where necessary. See also Solver::keep_...
Used to pass the instances of Space around.
This class is a one-thread (non-DG) assembly worker.
Represents the reference mapping.
Provides methods of integration order calculation.
This class characterizes a neighborhood of a given edge in terms of adjacent elements and provides me...
Represents the solution of a PDE.