ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
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 - 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <ryujin/base/compile_time_options.h>
10
11#include <deal.II/base/quadrature_lib.h>
12#include <deal.II/hp/fe_values.h>
13#include <deal.II/lac/full_matrix.h>
14
15namespace ryujin
16{
17
24 template <int dim>
26 {
27 public:
28 AssemblyScratchData(const AssemblyScratchData<dim> &assembly_scratch_data)
29 : AssemblyScratchData(assembly_scratch_data.discretization_)
30 {
31 }
32
33
35 : discretization_(discretization)
37 discretization_.finite_element(),
38 discretization_.quadrature(),
39 dealii::update_values | dealii::update_gradients |
40 dealii::update_quadrature_points |
41 dealii::update_JxW_values)
43 discretization_.mapping(),
44 discretization_.finite_element(),
45 discretization_.face_quadrature(),
46 dealii::update_values | dealii::update_quadrature_points |
47 dealii::update_JxW_values | dealii::update_normal_vectors)
49 discretization_.finite_element(),
50 discretization_.face_nodal_quadrature(),
51 dealii::update_values |
52 dealii::update_quadrature_points)
54 discretization_.finite_element(),
55 discretization_.face_quadrature(),
56 dealii::update_values)
58 discretization_.mapping(),
59 discretization_.finite_element(),
60 discretization_.face_nodal_quadrature(),
61 dealii::update_values)
62 {
63 }
64
66
67 dealii::hp::FEValues<dim> hp_fe_values_;
68 dealii::hp::FEFaceValues<dim> hp_fe_face_values_;
69 dealii::hp::FEFaceValues<dim> hp_fe_face_values_nodal_;
70 dealii::hp::FEFaceValues<dim> hp_fe_neighbor_face_values_;
71 dealii::hp::FEFaceValues<dim> hp_fe_neighbor_face_values_nodal_;
72 };
73
80 template <int dim, typename Number = double>
82 {
83 public:
85 std::vector<dealii::types::global_dof_index> local_dof_indices_;
86 dealii::FullMatrix<Number> cell_mass_matrix_;
87 dealii::FullMatrix<Number> cell_mass_matrix_inverse_;
88 dealii::FullMatrix<Number> cell_betaij_matrix_;
89 std::array<dealii::FullMatrix<Number>, dim> cell_cij_matrix_;
91
92 static constexpr unsigned int n_faces = 2 * dim;
93 std::array<std::vector<dealii::types::global_dof_index>, n_faces>
95 std::array<std::array<dealii::FullMatrix<Number>, dim>, n_faces>
97 std::array<dealii::FullMatrix<Number>, n_faces> interface_incidence_matrix_;
98 };
99
100} // 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_