ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
scratch_data.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2020 - 2023 by the ryujin authors
4//
5
6#pragma once
7
8#include "discretization.h"
9
10#include <deal.II/base/quadrature_lib.h>
11#include <deal.II/fe/fe_values.h>
12#include <deal.II/lac/full_matrix.h>
13
14namespace ryujin
15{
16
23 template <int dim>
25 {
26 public:
27 AssemblyScratchData(const AssemblyScratchData<dim> &assembly_scratch_data)
28 : AssemblyScratchData(assembly_scratch_data.discretization_)
29 {
30 }
31
32
34 : discretization_(discretization)
35 , fe_values_(discretization_.mapping(),
36 discretization_.finite_element(),
37 discretization_.quadrature(),
38 dealii::update_values | dealii::update_gradients |
39 dealii::update_quadrature_points |
40 dealii::update_JxW_values)
42 discretization_.mapping(),
43 discretization_.finite_element(),
44 discretization_.face_quadrature(),
45 dealii::update_values | dealii::update_quadrature_points |
46 dealii::update_JxW_values | dealii::update_normal_vectors)
48 discretization_.finite_element(),
49 discretization_.face_nodal_quadrature(),
50 dealii::update_values |
51 dealii::update_quadrature_points)
53 discretization_.finite_element(),
54 discretization_.face_quadrature(),
55 dealii::update_values)
57 discretization_.mapping(),
58 discretization_.finite_element(),
59 discretization_.face_nodal_quadrature(),
60 dealii::update_values)
61 {
62 }
63
65 dealii::FEValues<dim> fe_values_;
66 dealii::FEFaceValues<dim> fe_face_values_;
67 dealii::FEFaceValues<dim> fe_face_values_nodal_;
68 dealii::FEFaceValues<dim> fe_neighbor_face_values_;
69 dealii::FEFaceValues<dim> fe_neighbor_face_values_nodal_;
70 };
71
76 template <int dim, typename Number = double>
78 {
79 public:
81 std::vector<dealii::types::global_dof_index> local_dof_indices_;
82 dealii::FullMatrix<Number> cell_mass_matrix_;
83 dealii::FullMatrix<Number> cell_mass_matrix_inverse_;
84 std::array<dealii::FullMatrix<Number>, dim> cell_cij_matrix_;
86
87 static constexpr unsigned int n_faces = 2 * dim;
88 std::array<std::vector<dealii::types::global_dof_index>, n_faces>
90 std::array<std::array<dealii::FullMatrix<Number>, dim>, n_faces>
92 std::array<dealii::FullMatrix<Number>, n_faces> interface_incidence_matrix_;
93 };
94
95} // namespace ryujin
dealii::FullMatrix< Number > cell_mass_matrix_
Definition: scratch_data.h:82
std::array< dealii::FullMatrix< Number >, n_faces > interface_incidence_matrix_
Definition: scratch_data.h:92
std::vector< dealii::types::global_dof_index > local_dof_indices_
Definition: scratch_data.h:81
std::array< std::array< dealii::FullMatrix< Number >, dim >, n_faces > interface_cij_matrix_
Definition: scratch_data.h:91
dealii::FullMatrix< Number > cell_mass_matrix_inverse_
Definition: scratch_data.h:83
static constexpr unsigned int n_faces
Definition: scratch_data.h:87
std::array< std::vector< dealii::types::global_dof_index >, n_faces > neighbor_local_dof_indices_
Definition: scratch_data.h:89
std::array< dealii::FullMatrix< Number >, dim > cell_cij_matrix_
Definition: scratch_data.h:84
dealii::FEFaceValues< dim > fe_face_values_
Definition: scratch_data.h:66
dealii::FEFaceValues< dim > fe_neighbor_face_values_
Definition: scratch_data.h:68
const Discretization< dim > & discretization_
Definition: scratch_data.h:64
AssemblyScratchData(const Discretization< dim > &discretization)
Definition: scratch_data.h:33
dealii::FEFaceValues< dim > fe_neighbor_face_values_nodal_
Definition: scratch_data.h:69
AssemblyScratchData(const AssemblyScratchData< dim > &assembly_scratch_data)
Definition: scratch_data.h:27
dealii::FEFaceValues< dim > fe_face_values_nodal_
Definition: scratch_data.h:67
dealii::FEValues< dim > fe_values_
Definition: scratch_data.h:65