Reference documentation for deal.II version 9.4.1
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
additional_data.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2022 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef dealii_cgal_additional_data_h
17#define dealii_cgal_additional_data_h
18
19#include <deal.II/base/config.h>
20
22
23#ifdef DEAL_II_WITH_CGAL
24
25# include <CGAL/Mesh_facet_topology.h>
26
27
29namespace CGALWrappers
30{
31 enum class FacetTopology
32 {
37 facet_vertices_on_surface = CGAL::FACET_VERTICES_ON_SURFACE,
38
44 CGAL::FACET_VERTICES_ON_SAME_SURFACE_PATCH,
45
52 CGAL::FACET_VERTICES_ON_SAME_SURFACE_PATCH_WITH_ADJACENCY_CHECK,
53 };
54
90 template <int dim>
92 {
98 double edge_size;
99
104
114
120
128 double cell_size;
129
134 double edge_s = std::numeric_limits<double>::max(),
135 double facet_a = 0.,
136 double facet_s = 0.,
137 double facet_d = 0.,
138 FacetTopology facet_t =
140 double cell_radius_edge_r = 0.,
141 double cell_s = 0.)
142 {
144 dim == 3,
146 "These struct can be instantiated with 3D Triangulations only."));
147 edge_size = edge_s;
148 facet_angle = facet_a;
149 facet_size = facet_s;
150 facet_distance = facet_d;
151 facet_topology = facet_t;
152 cell_radius_edge_ratio = cell_radius_edge_r;
153 cell_size = cell_s;
154 }
155 };
156
170 template <>
172 {
177
183
189
193 AdditionalData(double angular_b = 0.,
194 double radius_b = 0.,
195 double distance_b = 0.)
196 {
197 angular_bound = angular_b;
198 radius_bound = radius_b;
199 distance_bound = distance_b;
200 }
201 };
202
203} // namespace CGALWrappers
205
206#else
207
209namespace CGALWrappers
210{
214 template <int dim>
215 struct AdditionalData
216 {};
217} // namespace CGALWrappers
218
220#endif
221
222#endif
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)
Definition: exceptions.h:1583
@ facet_vertices_on_same_surface_patch_with_adjacency_check
AdditionalData(double angular_b=0., double radius_b=0., double distance_b=0.)
AdditionalData(double edge_s=std::numeric_limits< double >::max(), double facet_a=0., double facet_s=0., double facet_d=0., FacetTopology facet_t=::CGALWrappers::FacetTopology::facet_vertices_on_surface, double cell_radius_edge_r=0., double cell_s=0.)