22 #ifndef _aspect_geometry_model_chunk_h 23 #define _aspect_geometry_model_chunk_h 28 #include <deal.II/grid/manifold.h> 29 #include <deal.II/base/function_lib.h> 30 #include <deal.II/grid/grid_out.h> 34 namespace GeometryModel
58 const double min_longitude,
59 const double min_radius,
73 pull_back(
const Point<dim> &space_point)
const override;
82 push_forward(
const Point<dim> &chart_point)
const override;
89 DerivativeForm<1, dim, dim>
110 virtual Tensor<1, dim>
112 const typename Triangulation<dim>::face_iterator &face,
113 const Point<dim> &p)
const override;
118 std::unique_ptr<Manifold<dim,dim>>
119 clone()
const override;
130 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
topo;
203 void create_coarse_mesh (parallel::distributed::Triangulation<dim> &coarse_grid)
const override;
216 std::set<types::boundary_id>
217 get_used_boundary_indicators ()
const override;
231 std::map<std::string,types::boundary_id>
232 get_symbolic_boundary_names_map ()
const override;
245 double length_scale ()
const override;
260 double depth(
const Point<dim> &position)
const override;
266 double height_above_reference_surface(
const Point<dim> &position)
const override;
271 Point<dim> representative_point(
const double depth)
const override;
278 double west_longitude()
const;
285 double east_longitude()
const;
291 double longitude_range()
const;
298 double south_latitude()
const;
305 double north_latitude()
const;
311 double latitude_range()
const;
317 double maximal_depth()
const override;
329 double outer_radius()
const;
338 has_curved_elements()
const override;
346 point_is_in_domain(
const Point<dim> &point)
const override;
359 std::array<double,dim> cartesian_to_natural_coordinates(
const Point<dim> &position)
const override;
366 Point<dim> natural_to_cartesian_coordinates(
const std::array<double,dim> &position)
const override;
379 parse_parameters (ParameterHandler &prm)
override;
410 std::unique_ptr<const internal::ChunkGeometry<dim>>
manifold;
415 static constexpr types::manifold_id my_manifold_id = 15;
DerivativeForm< 1, dim, dim > push_forward_gradient(const Point< dim > &chart_point) const override
std::array< unsigned int, dim > repetitions
virtual Point< dim > pull_back_topo(const Point< dim > &space_point) const
const std::shared_ptr< const InitialTopographyModel::Interface< dim > > topo
std::unique_ptr< const internal::ChunkGeometry< dim > > manifold
double topography_for_point(const Point< dim > &x_y_z) const
void declare_parameters(ParameterHandler &prm)
ChunkGeometry(const std::shared_ptr< const InitialTopographyModel::Interface< dim >> &topography, const double min_longitude, const double min_radius, const double max_depth)
Point< dim > pull_back_sphere(const Point< dim > &space_point) const
Point< dim > pull_back(const Point< dim > &space_point) const override
virtual Point< dim > push_forward_topo(const Point< dim > &chart_point) const
virtual Tensor< 1, dim > normal_vector(const typename Triangulation< dim >::face_iterator &face, const Point< dim > &p) const override
Point< dim > push_forward_sphere(const Point< dim > &chart_point) const
std::unique_ptr< Manifold< dim, dim > > clone() const override
Point< dim > push_forward(const Point< dim > &chart_point) const override