10#include <compile_time_options.h>
12#include <deal.II/base/config.h>
13#include <deal.II/grid/manifold.h>
14#include <deal.II/grid/tria.h>
18 using namespace dealii;
28 template <
int dim,
int spacedim = dim>
36 std::unique_ptr<Manifold<dim, spacedim>>
clone()
const override;
39 const Triangulation<dim, spacedim> &triangulation,
40 const Manifold<dim, spacedim> &chart_manifold = FlatManifold<dim>());
43 get_new_point(
const ArrayView<
const Point<spacedim>> &surrounding_points,
44 const ArrayView<const double> &weights)
const override;
47 get_new_points(
const ArrayView<
const Point<spacedim>> &surrounding_points,
48 const Table<2, double> &weights,
49 ArrayView<Point<spacedim>> new_points)
const override;
52 std::array<unsigned int, 20> get_possible_cells_around_points(
53 const ArrayView<
const Point<spacedim>> &surrounding_points)
const;
55 typename Triangulation<dim, spacedim>::cell_iterator compute_chart_points(
56 const ArrayView<
const Point<spacedim>> &surrounding_points,
57 ArrayView<Point<dim>> chart_points)
const;
60 pull_back(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
61 const Point<spacedim> &p,
62 const Point<dim> &initial_guess)
const;
64 Point<spacedim> push_forward(
65 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
66 const Point<dim> &chart_point)
const;
68 DerivativeForm<1, dim, spacedim> push_forward_gradient(
69 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
70 const Point<dim> &chart_point,
71 const Point<spacedim> &pushed_forward_chart_point)
const;
73 Triangulation<dim, spacedim> triangulation;
77 std::vector<bool> coarse_cell_is_flat;
79 std::unique_ptr<Manifold<dim, spacedim>> chart_manifold;
Point< spacedim > get_new_point(const ArrayView< const Point< spacedim > > &surrounding_points, const ArrayView< const double > &weights) const override
~TransfiniteInterpolationManifold() override=default
std::unique_ptr< Manifold< dim, spacedim > > clone() const override
TransfiniteInterpolationManifold()
void get_new_points(const ArrayView< const Point< spacedim > > &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< spacedim > > new_points) const override
void initialize(const Triangulation< dim, spacedim > &triangulation, const Manifold< dim, spacedim > &chart_manifold=FlatManifold< dim >())