10#include <deal.II/base/config.h>
11#include <deal.II/grid/manifold.h>
15 using namespace dealii;
25 template <
int dim,
int spacedim = dim>
33 std::unique_ptr<Manifold<dim, spacedim>>
clone()
const override;
36 const Triangulation<dim, spacedim> &triangulation,
37 const Manifold<dim, spacedim> &chart_manifold = FlatManifold<dim>());
40 get_new_point(
const ArrayView<
const Point<spacedim>> &surrounding_points,
41 const ArrayView<const double> &weights)
const override;
44 get_new_points(
const ArrayView<
const Point<spacedim>> &surrounding_points,
45 const Table<2, double> &weights,
46 ArrayView<Point<spacedim>> new_points)
const override;
49 std::array<unsigned int, 20> get_possible_cells_around_points(
50 const ArrayView<
const Point<spacedim>> &surrounding_points)
const;
52 typename Triangulation<dim, spacedim>::cell_iterator compute_chart_points(
53 const ArrayView<
const Point<spacedim>> &surrounding_points,
54 ArrayView<Point<dim>> chart_points)
const;
57 pull_back(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
58 const Point<spacedim> &p,
59 const Point<dim> &initial_guess)
const;
61 Point<spacedim> push_forward(
62 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
63 const Point<dim> &chart_point)
const;
65 DerivativeForm<1, dim, spacedim> push_forward_gradient(
66 const typename Triangulation<dim, spacedim>::cell_iterator &cell,
67 const Point<dim> &chart_point,
68 const Point<spacedim> &pushed_forward_chart_point)
const;
70 Triangulation<dim, spacedim> triangulation;
74 std::vector<bool> coarse_cell_is_flat;
76 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 >())