Fluid structure interaction suite
assemble_coupling_mass_matrix_with_exact_intersections.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2022 by Luca Heltai
4 //
5 // This file is part of the FSI-suite platform, based on the deal.II library.
6 //
7 // The FSI-suite platform is free software; you can use it, redistribute it,
8 // and/or modify it under the terms of the GNU Lesser General Public License as
9 // published by the Free Software Foundation; either version 3.0 of the License,
10 // or (at your option) any later version. The full text of the license can be
11 // found in the file LICENSE at the top level of the FSI-suite platform
12 // distribution.
13 //
14 // ---------------------------------------------------------------------
15 #ifndef assemble_coupling_exact_h
16 #define assemble_coupling_exact_h
17 
18 #include <deal.II/base/config.h>
19 
22 
24 
25 #include <deal.II/fe/mapping.h>
26 #include <deal.II/fe/mapping_q1.h>
27 
30 #include <deal.II/grid/tria.h>
31 
32 #include <set>
33 #include <tuple>
34 #include <vector>
35 
36 #include "compute_intersections.h"
37 
38 namespace dealii
39 {
40  namespace NonMatching
41  {
55  template <int dim0, int dim1, int spacedim, typename Matrix>
56  void
58  const dealii::DoFHandler<dim0, spacedim> &,
59  const dealii::DoFHandler<dim1, spacedim> &,
60  const std::vector<std::tuple<
61  typename dealii::Triangulation<dim0, spacedim>::cell_iterator,
62  typename dealii::Triangulation<dim1, spacedim>::cell_iterator,
63  dealii::Quadrature<spacedim>>> &,
64  Matrix &matrix,
65  const dealii::AffineConstraints<typename Matrix::value_type> &,
66  const dealii::ComponentMask &,
67  const dealii::ComponentMask &,
68  const dealii::Mapping<dim0, spacedim> &,
69  const dealii::Mapping<dim1, spacedim> &,
70  const dealii::AffineConstraints<typename Matrix::value_type> &);
71  } // namespace NonMatching
72 } // namespace dealii
73 #endif
void assemble_coupling_mass_matrix_with_exact_intersections(const DoFHandler< dim0, spacedim > &, const DoFHandler< dim1, spacedim > &, const std::vector< std::tuple< typename Triangulation< dim0, spacedim >::cell_iterator, typename Triangulation< dim1, spacedim >::cell_iterator, Quadrature< spacedim >>> &, Matrix &matrix, const AffineConstraints< typename Matrix::value_type > &, const ComponentMask &, const ComponentMask &, const Mapping< dim0, spacedim > &, const Mapping< dim1, spacedim > &, const AffineConstraints< typename Matrix::value_type > &)
Create the coupling mass matrix for non-matching, overlapping grids in an "exact" way,...