hyper.deal
Loading...
Searching...
No Matches
grid_generator.h
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2020 by the hyper.deal authors
4//
5// This file is part of the hyper.deal library.
6//
7// The hyper.deal 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 3.0 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 hyper.deal.
13//
14// ---------------------------------------------------------------------
15
16#ifndef HYPERDEAL_GRID_GRIDGENERATOR
17#define HYPERDEAL_GRID_GRIDGENERATOR
18
19#include <deal.II/distributed/fully_distributed_tria.h>
20#include <deal.II/distributed/tria.h>
21
22#include <deal.II/grid/grid_generator.h>
23#include <deal.II/grid/grid_tools.h>
24#include <deal.II/grid/manifold.h>
25
26namespace hyperdeal
27{
34 namespace GridGenerator
35 {
39 template <int dim_x, int dim_v>
40 void
42 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
43 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
44 const unsigned int & n_refinements_x,
45 const std::vector<unsigned int> &repetitions_x,
46 const dealii::Point<dim_x> & left_x,
47 const dealii::Point<dim_x> & right_x,
48 const bool do_periodic_x,
49 const unsigned int & n_refinements_v,
50 const std::vector<unsigned int> &repetitions_v,
51 const dealii::Point<dim_v> & left_v,
52 const dealii::Point<dim_v> & right_v,
53 const bool do_periodic_v,
54 const bool with_internal_deformation = false);
55
56
60 template <int dim_x, int dim_v>
61 void
63 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
64 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
65 const unsigned int &n_refinements_x,
66 const double left_x,
67 const double right_x,
68 const bool do_periodic_x,
69 const unsigned int &n_refinements_v,
70 const double left_v,
71 const double right_v,
72 const bool do_periodic_v);
73
78 template <int dim_x, int dim_v>
79 void
81 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
82 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
83 const bool do_periodic,
84 const unsigned int &n_refinements,
85 const double left = 0.0,
86 const double right = 1.0);
87
98 template <int dim_x, int dim_v>
99 void
101 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
102 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
103 const unsigned int & n_refinements_x,
104 const dealii::Point<dim_x> &left_x,
105 const dealii::Point<dim_x> &right_x,
106 const bool do_periodic_x,
107 const unsigned int & orientation_x,
108 const unsigned int & n_refinements_v,
109 const dealii::Point<dim_v> &left_v,
110 const dealii::Point<dim_v> &right_v,
111 const bool do_periodic_v,
112 const unsigned int & orientation_v);
113
121 template <int dim_x, int dim_v>
122 void
124 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
125 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
126 const unsigned int & n_refinements_x,
127 const dealii::Point<dim_x> &left_x,
128 const dealii::Point<dim_x> &right_x,
129 const bool do_periodic_x,
130 const unsigned int & n_refinements_v,
131 const dealii::Point<dim_v> &left_v,
132 const dealii::Point<dim_v> &right_v,
133 const bool do_periodic_v);
134
135 template <int dim_x, int dim_v>
136 void
137 construct_tensor_product(
138 std::shared_ptr<dealii::parallel::TriangulationBase<dim_x>> &tria_x,
139 std::shared_ptr<dealii::parallel::TriangulationBase<dim_v>> &tria_v,
140 const std::function<void(dealii::Triangulation<dim_x> &)> fu_x,
141 const std::function<void(dealii::Triangulation<dim_v> &)> fu_v);
142
143 } // namespace GridGenerator
144
145} // namespace hyperdeal
146
147#endif
void hyper_cube(std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const double left_x, const double right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const double left_v, const double right_v, const bool do_periodic_v)
void subdivided_hyper_ball(std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v)
void subdivided_hyper_rectangle(std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const std::vector< unsigned int > &repetitions_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const std::vector< unsigned int > &repetitions_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v, const bool with_internal_deformation=false)
void orientated_hyper_cube(std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &orientation_x, const unsigned int &n_refinements_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v, const unsigned int &orientation_v)