16 #ifndef _aspect_geometry_model_ellipsoidal_chunk_h 17 #define _aspect_geometry_model_ellipsoidal_chunk_h 27 namespace GeometryModel
42 const double para_semi_major_axis_a,
43 const double para_eccentricity,
44 const double para_semi_minor_axis_b,
45 const double para_bottom_depth,
46 const std::vector<
Point<2>> ¶_corners);
94 std::unique_ptr<Manifold<dim,3>>
95 clone()
const override;
100 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
topography;
153 length_scale()
const override;
176 height_above_reference_surface(
const Point<dim> &position)
const override;
182 representative_point(
const double depth)
const override;
190 point_is_in_domain(
const Point<dim> &point)
const override;
197 maximal_depth()
const override;
208 std::set<types::boundary_id>
209 get_used_boundary_indicators()
const override;
214 std::map<std::string,types::boundary_id>
215 get_symbolic_boundary_names_map()
const override;
230 std::array<double,dim> cartesian_to_natural_coordinates(
const Point<dim> &position)
const override;
237 Point<dim> natural_to_cartesian_coordinates(
const std::array<double,dim> &position)
const override;
257 get_semi_minor_axis_b()
const;
263 get_semi_major_axis_a()
const;
270 get_eccentricity()
const;
280 const std::vector<Point<2>> &
288 get_manifold()
const;
323 std::unique_ptr<const internal::EllipsoidalChunkGeometry<dim>>
manifold;
Point< 3 > push_forward(const Point< 3 > &chart_point) const override
Point< 3 > push_forward_topography(const Point< 3 > &phi_theta_d_hat) const
double para_to_rect_angle
const std::shared_ptr< const InitialTopographyModel::Interface< dim > > topography
EllipsoidalChunkGeometry(const std::shared_ptr< const InitialTopographyModel::Interface< dim >> &topography, const double para_semi_major_axis_a, const double para_eccentricity, const double para_semi_minor_axis_b, const double para_bottom_depth, const std::vector< Point< 2 >> ¶_corners)
Point< 3 > pull_back(const Point< 3 > &space_point) const override
void declare_parameters(ParameterHandler &prm)
const double semi_major_axis_a
const double bottom_depth
Point< 3 > pull_back_ellipsoid(const Point< 3 > &x, const double semi_major_axis_a, const double eccentricity) const
unsigned int depth_subdiv
const std::vector< Point< 2 > > corners
double rotation_longitude
std::unique_ptr< const internal::EllipsoidalChunkGeometry< dim > > manifold
const double eccentricity
std::unique_ptr< Manifold< dim, 3 > > clone() const override
const double semi_minor_axis_b
std::vector< Point< 2 > > corners
Point< 3 > push_forward_ellipsoid(const Point< 3 > &phi_theta_d, const double semi_major_axis_a, const double eccentricity) const
double rot_para_to_para_angle
Point< 3 > pull_back_topography(const Point< 3 > &phi_theta_d) const