Fluid structure interaction suite
create_coupling_sparsity_pattern_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 
16 #ifndef create_coupling_sparsity_pattern_with_exact_intersections_h
17 #define create_coupling_sparsity_pattern_with_exact_intersections_h
18 
19 
20 #include <deal.II/base/config.h>
21 
25 
28 
30 
32 #include <deal.II/fe/fe.h>
33 #include <deal.II/fe/fe_system.h>
34 #include <deal.II/fe/fe_values.h>
35 #include <deal.II/fe/mapping_q1.h>
36 
39 
43 
44 #include <boost/geometry.hpp>
45 
46 namespace dealii
47 {
48  namespace NonMatching
49  {
68  template <int dim0,
69  int dim1,
70  int spacedim,
71  typename Sparsity,
72  typename number = double>
73  void
75  const std::vector<std::tuple<
76  typename dealii::Triangulation<dim0, spacedim>::cell_iterator,
77  typename dealii::Triangulation<dim1, spacedim>::cell_iterator,
78  dealii::Quadrature<spacedim>>> &intersections_info,
79  const DoFHandler<dim0, spacedim> &space_dh,
80  const DoFHandler<dim1, spacedim> &immersed_dh,
81  Sparsity &sparsity,
82  const AffineConstraints<number> &constraints =
84  const ComponentMask &space_comps = ComponentMask(),
85  const ComponentMask &immersed_comps = ComponentMask(),
86  const AffineConstraints<number> &immersed_constraints =
88 
89  } // namespace NonMatching
90 } // namespace dealii
91 
92 #endif
void create_coupling_sparsity_pattern_with_exact_intersections(const std::vector< std::tuple< typename Triangulation< dim0, spacedim >::cell_iterator, typename Triangulation< dim1, spacedim >::cell_iterator, Quadrature< spacedim >>> &intersections_info, const DoFHandler< dim0, spacedim > &space_dh, const DoFHandler< dim1, spacedim > &immersed_dh, Sparsity &sparsity, const AffineConstraints< number > &constraints=AffineConstraints< number >(), const ComponentMask &space_comps=ComponentMask(), const ComponentMask &immersed_comps=ComponentMask(), const AffineConstraints< number > &immersed_constraints=AffineConstraints< number >())
Create a coupling sparsity pattern of two non-matching, overlapped grids.