22 #ifndef _aspect_geometry_model_spherical_shell_h
23 #define _aspect_geometry_model_spherical_shell_h
30 namespace GeometryModel
46 const double inner_radius,
47 const double outer_radius);
57 virtual std::unique_ptr<Manifold<dim, dim>>
84 const double w)
const override;
160 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
topo;
265 std::set<types::boundary_id>
273 std::map<std::string,types::boundary_id>
280 std::set<std::pair<std::pair<types::boundary_id, types::boundary_id>,
unsigned int>>
443 std::unique_ptr<const internal::SphericalManifoldWithTopography<dim>>
manifold;
int n_cells_along_circumference
bool has_curved_elements() const override
std::vector< double > R_values_list
std::set< types::boundary_id > get_used_boundary_indicators() const override
static void declare_parameters(ParameterHandler &prm)
double outer_radius() const
std::unique_ptr< const internal::SphericalManifoldWithTopography< dim > > manifold
CustomMeshRadialSubdivision
void make_periodicity_constraints(const DoFHandler< dim > &dof_handler, AffineConstraints< double > &constraints) const override
double height_above_reference_surface(const Point< dim > &position) const override
bool point_is_in_domain(const Point< dim > &point) const override
double depth(const Point< dim > &position) const override
void set_manifold_ids(parallel::distributed::Triangulation< dim > &triangulation) const
Point< dim > natural_to_cartesian_coordinates(const std::array< double, dim > &position) const override
unsigned int initial_lateral_refinement
void parse_parameters(ParameterHandler &prm) override
Point< dim > representative_point(const double depth) const override
aspect::Utilities::Coordinates::CoordinateSystem natural_coordinate_system() const override
double maximal_depth() const override
std::array< double, dim > cartesian_to_natural_coordinates(const Point< dim > &position) const override
std::map< std::string, types::boundary_id > get_symbolic_boundary_names_map() const override
enum aspect::GeometryModel::SphericalShell::CustomMeshRadialSubdivision custom_mesh
double length_scale() const override
double opening_angle() const
void initialize() override
void create_coarse_mesh(parallel::distributed::Triangulation< dim > &coarse_grid) const override
void adjust_positions_for_periodicity(Point< dim > &position, const ArrayView< Point< dim >> &connected_positions={}, const ArrayView< Tensor< 1, dim >> &connected_velocities={}) const override
std::set< std::pair< std::pair< types::boundary_id, types::boundary_id >, unsigned int > > get_periodic_boundary_pairs() const override
double inner_radius() const
static constexpr types::manifold_id my_manifold_id
virtual void get_normals_at_vertices(const typename Triangulation< dim, dim >::face_iterator &face, typename Manifold< dim, dim >::FaceVertexNormals &face_vertex_normals) const override
double topography_for_point(const Point< dim > &x_y_z) const
SphericalManifoldWithTopography(const std::shared_ptr< const InitialTopographyModel::Interface< dim >> topography, const double inner_radius, const double outer_radius)
virtual std::unique_ptr< Manifold< dim, dim > > clone() const override
virtual Point< dim > get_intermediate_point(const Point< dim > &p1, const Point< dim > &p2, const double w) const override
Point< dim > push_forward_from_sphere(const Point< dim > &p) const
virtual Tensor< 1, dim > normal_vector(const typename Triangulation< dim, dim >::face_iterator &face, const Point< dim > &p) const override
const std::shared_ptr< const InitialTopographyModel::Interface< dim > > topo
Point< dim > pull_back_to_sphere(const Point< dim > &p) const
SphericalManifoldWithTopography(const SphericalManifoldWithTopography< dim > &)=default
virtual Tensor< 1, dim > get_tangent_vector(const Point< dim > &x1, const Point< dim > &x2) const override
virtual Point< dim > get_new_point(const ArrayView< const Point< dim >> &vertices, const ArrayView< const double > &weights) const override
virtual void get_new_points(const ArrayView< const Point< dim >> &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< dim >> new_points) const override