ryujin 2.1.1 revision 46bf70e400e423a8ffffe8300887eeb35b8dfb2c
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 <compile_time_options.h>
9
10#include "discretization.h"
11
12#include <deal.II/base/quadrature_lib.h>
13#include <deal.II/hp/fe_values.h>
14#include <deal.II/lac/full_matrix.h>
15
16namespace ryujin
17{
18
25 template <int dim>
27 {
28 public:
29 AssemblyScratchData(const AssemblyScratchData<dim> &assembly_scratch_data)
30 : AssemblyScratchData(assembly_scratch_data.discretization_)
31 {
32 }
33
34
36 : discretization_(discretization)
38 discretization_.finite_element(),
39 discretization_.quadrature(),
40 dealii::update_values | dealii::update_gradients |
41 dealii::update_quadrature_points |
42 dealii::update_JxW_values)
44 discretization_.mapping(),
45 discretization_.finite_element(),
46 discretization_.face_quadrature(),
47 dealii::update_values | dealii::update_quadrature_points |
48 dealii::update_JxW_values | dealii::update_normal_vectors)
50 discretization_.finite_element(),
51 discretization_.face_nodal_quadrature(),
52 dealii::update_values |
53 dealii::update_quadrature_points)
55 discretization_.finite_element(),
56 discretization_.face_quadrature(),
57 dealii::update_values)
59 discretization_.mapping(),
60 discretization_.finite_element(),
61 discretization_.face_nodal_quadrature(),
62 dealii::update_values)
63 {
64 }
65
67
68 dealii::hp::FEValues<dim> hp_fe_values_;
69 dealii::hp::FEFaceValues<dim> hp_fe_face_values_;
70 dealii::hp::FEFaceValues<dim> hp_fe_face_values_nodal_;
71 dealii::hp::FEFaceValues<dim> hp_fe_neighbor_face_values_;
72 dealii::hp::FEFaceValues<dim> hp_fe_neighbor_face_values_nodal_;
73 };
74
79 template <int dim, typename Number = double>
81 {
82 public:
84 std::vector<dealii::types::global_dof_index> local_dof_indices_;
85 dealii::FullMatrix<Number> cell_mass_matrix_;
86 dealii::FullMatrix<Number> cell_mass_matrix_inverse_;
87 dealii::FullMatrix<Number> cell_betaij_matrix_;
88 std::array<dealii::FullMatrix<Number>, dim> cell_cij_matrix_;
90
91 static constexpr unsigned int n_faces = 2 * dim;
92 std::array<std::vector<dealii::types::global_dof_index>, n_faces>
94 std::array<std::array<dealii::FullMatrix<Number>, dim>, n_faces>
96 std::array<dealii::FullMatrix<Number>, n_faces> interface_incidence_matrix_;
97 };
98
99} // namespace ryujin
dealii::FullMatrix< Number > cell_mass_matrix_
Definition: scratch_data.h:85
std::array< dealii::FullMatrix< Number >, n_faces > interface_incidence_matrix_
Definition: scratch_data.h:96
std::vector< dealii::types::global_dof_index > local_dof_indices_
Definition: scratch_data.h:84
std::array< std::array< dealii::FullMatrix< Number >, dim >, n_faces > interface_cij_matrix_
Definition: scratch_data.h:95
dealii::FullMatrix< Number > cell_mass_matrix_inverse_
Definition: scratch_data.h:86
static constexpr unsigned int n_faces
Definition: scratch_data.h:91
dealii::FullMatrix< Number > cell_betaij_matrix_
Definition: scratch_data.h:87
std::array< std::vector< dealii::types::global_dof_index >, n_faces > neighbor_local_dof_indices_
Definition: scratch_data.h:93
std::array< dealii::FullMatrix< Number >, dim > cell_cij_matrix_
Definition: scratch_data.h:88
const Discretization< dim > & discretization_
Definition: scratch_data.h:66
AssemblyScratchData(const Discretization< dim > &discretization)
Definition: scratch_data.h:35
dealii::hp::FEFaceValues< dim > hp_fe_face_values_
Definition: scratch_data.h:69
AssemblyScratchData(const AssemblyScratchData< dim > &assembly_scratch_data)
Definition: scratch_data.h:29
dealii::hp::FEFaceValues< dim > hp_fe_neighbor_face_values_nodal_
Definition: scratch_data.h:72
dealii::hp::FEFaceValues< dim > hp_fe_face_values_nodal_
Definition: scratch_data.h:70
dealii::hp::FEFaceValues< dim > hp_fe_neighbor_face_values_
Definition: scratch_data.h:71
dealii::hp::FEValues< dim > hp_fe_values_
Definition: scratch_data.h:68