ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
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 - 2025 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
81 template <int dim, typename Number = double>
83 {
84 public:
86 std::vector<dealii::types::global_dof_index> local_dof_indices_;
87 dealii::FullMatrix<Number> cell_mass_matrix_;
88 dealii::FullMatrix<Number> cell_mass_matrix_inverse_;
89 dealii::FullMatrix<Number> cell_betaij_matrix_;
90 std::array<dealii::FullMatrix<Number>, dim> cell_cij_matrix_;
92
93 static constexpr unsigned int n_faces = 2 * dim;
94 std::array<std::vector<dealii::types::global_dof_index>, n_faces>
96 std::array<std::array<dealii::FullMatrix<Number>, dim>, n_faces>
98 std::array<dealii::FullMatrix<Number>, n_faces> interface_incidence_matrix_;
99 };
100
101} // namespace ryujin
dealii::FullMatrix< Number > cell_mass_matrix_
std::array< dealii::FullMatrix< Number >, n_faces > interface_incidence_matrix_
std::vector< dealii::types::global_dof_index > local_dof_indices_
std::array< std::array< dealii::FullMatrix< Number >, dim >, n_faces > interface_cij_matrix_
dealii::FullMatrix< Number > cell_mass_matrix_inverse_
static constexpr unsigned int n_faces
dealii::FullMatrix< Number > cell_betaij_matrix_
std::array< std::vector< dealii::types::global_dof_index >, n_faces > neighbor_local_dof_indices_
std::array< dealii::FullMatrix< Number >, dim > cell_cij_matrix_
const Discretization< dim > & discretization_
AssemblyScratchData(const Discretization< dim > &discretization)
dealii::hp::FEFaceValues< dim > hp_fe_face_values_
AssemblyScratchData(const AssemblyScratchData< dim > &assembly_scratch_data)
dealii::hp::FEFaceValues< dim > hp_fe_neighbor_face_values_nodal_
dealii::hp::FEFaceValues< dim > hp_fe_face_values_nodal_
dealii::hp::FEFaceValues< dim > hp_fe_neighbor_face_values_
dealii::hp::FEValues< dim > hp_fe_values_