10#include <deal.II/base/config.h>
11#include <deal.II/grid/manifold.h>
12#include <deal.II/grid/tria.h>
16 using namespace dealii;
26 template <
int dim,
int spacedim = dim>
34 std::unique_ptr<Manifold<dim, spacedim>>
clone()
const override;
37 const Triangulation<dim, spacedim> &triangulation,
38 const Manifold<dim, spacedim> &chart_manifold = FlatManifold<dim>());
41 get_new_point(
const ArrayView<
const Point<spacedim>> &surrounding_points,
42 const ArrayView<const double> &weights)
const override;
45 get_new_points(
const ArrayView<
const Point<spacedim>> &surrounding_points,
46 const Table<2, double> &weights,
47 ArrayView<Point<spacedim>> new_points)
const override;
50 std::array<unsigned int, 20> get_possible_cells_around_points(
51 const ArrayView<
const Point<spacedim>> &surrounding_points)
const;
53 typename Triangulation<dim, spacedim>::cell_iterator compute_chart_points(
54 const ArrayView<
const Point<spacedim>> &surrounding_points,
55 ArrayView<Point<dim>> chart_points)
const;
58 pull_back(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
59 const Point<spacedim> &p,
60 const Point<dim> &initial_guess)
const;
62 Point<spacedim> push_forward(
63 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
64 const Point<dim> &chart_point)
const;
66 DerivativeForm<1, dim, spacedim> push_forward_gradient(
67 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
68 const Point<dim> &chart_point,
69 const Point<spacedim> &pushed_forward_chart_point)
const;
71 Triangulation<dim, spacedim> triangulation;
75 std::vector<bool> coarse_cell_is_flat;
77 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 >())