Reference documentation for deal.II version 9.5.0
\(\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 - 2023 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# include <limits>
28
30namespace CGALWrappers
31{
32 enum class FacetTopology
33 {
38 facet_vertices_on_surface = CGAL::FACET_VERTICES_ON_SURFACE,
39
45 CGAL::FACET_VERTICES_ON_SAME_SURFACE_PATCH,
46
53 CGAL::FACET_VERTICES_ON_SAME_SURFACE_PATCH_WITH_ADJACENCY_CHECK,
54 };
55
91 template <int dim>
93 {
99 double edge_size;
100
105
115
121
129 double cell_size;
130
135 double edge_s = std::numeric_limits<double>::max(),
136 double facet_a = 0.,
137 double facet_s = 0.,
138 double facet_d = 0.,
139 FacetTopology facet_t =
141 double cell_radius_edge_r = 0.,
142 double cell_s = 0.)
143 {
145 dim == 3,
147 "These struct can be instantiated with 3d Triangulations only."));
148 edge_size = edge_s;
149 facet_angle = facet_a;
150 facet_size = facet_s;
151 facet_distance = facet_d;
152 facet_topology = facet_t;
153 cell_radius_edge_ratio = cell_radius_edge_r;
154 cell_size = cell_s;
155 }
156 };
157
171 template <>
173 {
178
184
190
194 AdditionalData(double angular_b = 0.,
195 double radius_b = 0.,
196 double distance_b = 0.)
197 {
198 angular_bound = angular_b;
199 radius_bound = radius_b;
200 distance_bound = distance_b;
201 }
202 };
203
204} // namespace CGALWrappers
206
207#else
208
210namespace CGALWrappers
211{
215 template <int dim>
216 struct AdditionalData
217 {};
218} // namespace CGALWrappers
219
221#endif
222
223#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)
@ 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.)