16 #ifndef __H2D_DISCRETE_PROBLEM_ASSEMBLY_DATA_H
17 #define __H2D_DISCRETE_PROBLEM_ASSEMBLY_DATA_H
19 #include "../weakform/weakform.h"
20 #include "../shapeset/precalc.h"
21 #include "../function/solution.h"
22 #include "discrete_problem_helpers.h"
23 #include "discrete_problem_integration_order_calculator.h"
24 #include "discrete_problem_selective_assembler.h"
33 template<
typename Scalar>
59 void init_funcs_space();
61 pj_pool_t *FuncMemoryPool;
62 void init_funcs_memory_pool();
67 void deinit_funcs_space();
68 bool funcs_space_initialized;
69 void deinit_funcs_wf();
70 bool funcs_wf_initialized;
72 void init_u_ext_values(
int order);
74 template<
typename Geom>
80 void assemble_one_state();
82 template<
typename MatrixFormType,
typename Geom>
86 template<
typename VectorFormType,
typename Geom>
88 int n_quadrature_points,
Geom* geometry,
double* jacobian_x_weights);
90 void deinit_assembling_one_state();
93 void deinit_assembling();
98 void free_weak_formulation();
103 Vector<Scalar>* dirichlet_lift_rhs;
109 std::vector<Transformable *> fns;
117 Scalar local_stiffness_matrix[H2D_MAX_LOCAL_BASIS_SIZE * H2D_MAX_LOCAL_BASIS_SIZE * 4];
128 void init_calculation_variables();
129 void deinit_calculation_variables();
130 Func<double>* funcs[H2D_MAX_COMPONENTS][H2D_MAX_LOCAL_BASIS_SIZE];
134 double jacobian_x_weights[H2D_MAX_INTEGRATION_POINTS_COUNT];
136 int n_quadrature_points;
142 int ext_funcs_allocated_size;
144 int ext_funcs_local_allocated_size;
148 unsigned short spaces_size;
149 bool nonlinear, add_dirichlet_lift;
155 bool** reusable_DOFs;
156 bool** reusable_Dirichlet;
PrecalcShapeset variant for fast assembling.
Geometry (coordinates, normals, tangents) of either an element or an edge.
Provides capabilities to (re-)assemble a matrix / vector only where necessary. See also Solver::keep_...
Used to pass the instances of Space around.
#define H2D_MAX_NUMBER_EDGES
A maximum number of edges of an element.
Calculated function values (from the class Function) on an element for assembling.
This class is a one-thread (non-DG) assembly worker.
Represents the reference mapping.
Provides methods of integration order calculation.
Represents the solution of a PDE.