22 #ifndef _aspect_geometry_model_spherical_shell_h 23 #define _aspect_geometry_model_spherical_shell_h 30 namespace GeometryModel
48 const double inner_radius,
49 const double outer_radius);
59 virtual std::unique_ptr<Manifold<dim, dim>>
60 clone()
const override;
67 push_forward_from_sphere (
const Point<dim> &p)
const;
74 pull_back_to_sphere (
const Point<dim> &p)
const;
84 get_intermediate_point(
const Point<dim> &p1,
86 const double w)
const override;
92 virtual Tensor<1, dim>
93 get_tangent_vector(
const Point<dim> &x1,
94 const Point<dim> &x2)
const override;
111 virtual Tensor<1, dim>
113 const typename Triangulation<dim, dim>::face_iterator &face,
114 const Point<dim> &p)
const override;
120 get_normals_at_vertices(
121 const typename Triangulation<dim, dim>::face_iterator &face,
122 typename Manifold<dim, dim>::FaceVertexNormals &face_vertex_normals)
141 get_new_points(
const ArrayView<
const Point<dim>> &surrounding_points,
142 const Table<2, double> &weights,
143 ArrayView<Point<dim>> new_points)
const override;
150 get_new_point(
const ArrayView<
const Point<dim>> &vertices,
151 const ArrayView<const double> &weights)
const override;
168 double topography_for_point (
const Point<dim> &x_y_z)
const;
205 void create_coarse_mesh (parallel::distributed::Triangulation<dim> &coarse_grid)
const override;
214 double length_scale ()
const override;
229 double depth(
const Point<dim> &position)
const override;
235 double height_above_reference_surface(
const Point<dim> &position)
const override;
240 Point<dim> representative_point(
const double depth)
const override;
245 double maximal_depth()
const override;
268 std::set<types::boundary_id>
269 get_used_boundary_indicators ()
const override;
276 std::map<std::string,types::boundary_id>
277 get_symbolic_boundary_names_map ()
const override;
283 std::set<std::pair<std::pair<types::boundary_id, types::boundary_id>,
unsigned int>>
284 get_periodic_boundary_pairs ()
const override;
293 adjust_positions_for_periodicity (Point<dim> &position,
294 const ArrayView<Point<dim>> &connected_positions = {},
295 const ArrayView<Tensor<1, dim>> &connected_velocities = {})
const override;
303 has_curved_elements()
const override;
311 point_is_in_domain(
const Point<dim> &point)
const override;
324 std::array<double,dim> cartesian_to_natural_coordinates(
const Point<dim> &position)
const override;
331 Point<dim> natural_to_cartesian_coordinates(
const std::array<double,dim> &position)
const override;
351 parse_parameters (ParameterHandler &prm)
override;
357 inner_radius ()
const;
363 outer_radius ()
const;
369 opening_angle ()
const;
376 make_periodicity_constraints(
const DoFHandler<dim> &dof_handler,
377 AffineConstraints<double> &constraints)
const override;
425 void set_manifold_ids (parallel::distributed::Triangulation<dim> &triangulation)
const;
443 std::unique_ptr<const internal::SphericalManifoldWithTopography<dim>>
manifold;
448 static constexpr types::manifold_id my_manifold_id = 99;
std::unique_ptr< const internal::SphericalManifoldWithTopography< dim > > manifold
const InitialTopographyModel::Interface< dim > * topo
std::vector< double > R_values_list
void declare_parameters(ParameterHandler &prm)
int n_cells_along_circumference
CustomMeshRadialSubdivision
unsigned int initial_lateral_refinement