deal.II version GIT relicensing-2206-gaa53ff9447 2024-12-02 09:10:00+00:00
\(\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// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2022 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_cgal_additional_data_h
16#define dealii_cgal_additional_data_h
17
18#include <deal.II/base/config.h>
19
21
22#ifdef DEAL_II_WITH_CGAL
23
24# include <CGAL/Mesh_facet_topology.h>
25
26# include <limits>
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:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
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.)