deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+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
generators.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2019 - 2026 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_particles_particle_generator_h
14#define dealii_particles_particle_generator_h
15
16#include <deal.II/base/config.h>
17
20
22
24
25#include <deal.II/fe/mapping.h>
26
29
30#include <random>
31
33
34namespace Particles
35{
40 namespace Generators
41 {
61 template <int dim, int spacedim = dim>
62 void
64 const Triangulation<dim, spacedim> &triangulation,
65 const std::vector<Point<dim>> &particle_reference_locations,
66 ParticleHandler<dim, spacedim> &particle_handler,
67 const Mapping<dim, spacedim> &mapping =
68 (ReferenceCells::get_hypercube<dim>()
69#ifndef _MSC_VER
70 .template get_default_linear_mapping<spacedim>()
71#else
73#endif
74 ));
75
105 template <int dim, int spacedim = dim>
109 const types::particle_index id,
110 std::mt19937 &random_number_generator,
111 const Mapping<dim, spacedim> &mapping =
112 (ReferenceCells::get_hypercube<dim>()
113#ifndef _MSC_VER
114 .template get_default_linear_mapping<spacedim>()
115#else
117#endif
118 ));
119
126 template <int dim, int spacedim = dim>
130 const types::particle_index id,
131 std::mt19937 &random_number_generator,
132 ParticleHandler<dim, spacedim> &particle_handler,
133 const Mapping<dim, spacedim> &mapping =
134 (ReferenceCells::get_hypercube<dim>()
135#ifndef _MSC_VER
136 .template get_default_linear_mapping<spacedim>()
137#else
139#endif
140 ));
141
186 template <int dim, int spacedim = dim>
187 void
189 const Triangulation<dim, spacedim> &triangulation,
190 const Function<spacedim> &probability_density_function,
191 const bool random_cell_selection,
192 const types::particle_index n_particles_to_create,
193 ParticleHandler<dim, spacedim> &particle_handler,
194 const Mapping<dim, spacedim> &mapping =
195 (ReferenceCells::get_hypercube<dim>()
196#ifndef _MSC_VER
197 .template get_default_linear_mapping<spacedim>()),
198#else
200#endif
201 const unsigned int random_number_seed = 5432);
202
203
238 template <int dim, int spacedim = dim>
239 void
241 const std::vector<std::vector<BoundingBox<spacedim>>>
242 &global_bounding_boxes,
243 ParticleHandler<dim, spacedim> &particle_handler,
244 const Mapping<dim, spacedim> &mapping =
245 (ReferenceCells::get_hypercube<dim>()
246#ifndef _MSC_VER
247 .template get_default_linear_mapping<spacedim>()),
248#else
250 spacedim>()),
251#endif
252 const ComponentMask &components = {},
253 const std::vector<std::vector<double>> &properties = {});
254
289 template <int dim, int spacedim = dim>
290 void
292 const Quadrature<dim> &quadrature,
293 const std::vector<std::vector<BoundingBox<spacedim>>>
294 &global_bounding_boxes,
295 ParticleHandler<dim, spacedim> &particle_handler,
296 const Mapping<dim, spacedim> &mapping =
297 (ReferenceCells::get_hypercube<dim>()
298 .template get_default_linear_mapping<spacedim>()),
299 const std::vector<std::vector<double>> &properties = {});
300 } // namespace Generators
301} // namespace Particles
302
304
305#endif
Abstract base class for mapping classes.
Definition mapping.h:318
Definition point.h:111
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
void probabilistic_locations(const Triangulation< dim, spacedim > &triangulation, const Function< spacedim > &probability_density_function, const bool random_cell_selection, const types::particle_index n_particles_to_create, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()), const unsigned int random_number_seed=5432)
void regular_reference_locations(const Triangulation< dim, spacedim > &triangulation, const std::vector< Point< dim > > &particle_reference_locations, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()))
Particle< dim, spacedim > random_particle_in_cell(const typename Triangulation< dim, spacedim >::active_cell_iterator &cell, const types::particle_index id, std::mt19937 &random_number_generator, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()))
void dof_support_points(const DoFHandler< dim, spacedim > &dof_handler, const std::vector< std::vector< BoundingBox< spacedim > > > &global_bounding_boxes, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()), const ComponentMask &components={}, const std::vector< std::vector< double > > &properties={})
void quadrature_points(const Triangulation< dim, spacedim > &triangulation, const Quadrature< dim > &quadrature, const std::vector< std::vector< BoundingBox< spacedim > > > &global_bounding_boxes, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()), const std::vector< std::vector< double > > &properties={})
ParticleIterator< dim, spacedim > random_particle_in_cell_insert(const typename Triangulation< dim, spacedim >::active_cell_iterator &cell, const types::particle_index id, std::mt19937 &random_number_generator, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< spacedim >()))