Reference documentation for deal.II version 8.5.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TorusBoundary< dim, spacedim > Class Template Reference

#include <deal.II/grid/tria_boundary_lib.h>

Inheritance diagram for TorusBoundary< dim, spacedim >:
[legend]

Public Member Functions

 TorusBoundary (const double R, const double r)
 
virtual Point< spacedim > get_new_point_on_line (const typename Triangulation< dim, spacedim >::line_iterator &line) const
 
virtual Point< spacedim > get_new_point_on_quad (const typename Triangulation< dim, spacedim >::quad_iterator &quad) const
 
virtual void get_intermediate_points_on_line (const typename Triangulation< dim, spacedim >::line_iterator &line, std::vector< Point< spacedim > > &points) const
 
virtual void get_intermediate_points_on_quad (const typename Triangulation< dim, spacedim >::quad_iterator &quad, std::vector< Point< spacedim > > &points) const
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, spacedim >::face_iterator &face, typename Boundary< dim, spacedim >::FaceVertexNormals &face_vertex_normals) const
 
- Public Member Functions inherited from Boundary< dim, spacedim >
virtual ~Boundary ()
 
void get_intermediate_points_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face, std::vector< Point< spacedim > > &points) const
 
virtual Point< spacedim > project_to_surface (const typename Triangulation< dim, spacedim >::line_iterator &line, const Point< spacedim > &candidate) const
 
virtual Point< spacedim > project_to_surface (const typename Triangulation< dim, spacedim >::quad_iterator &quad, const Point< spacedim > &candidate) const
 
virtual Point< spacedim > project_to_surface (const typename Triangulation< dim, spacedim >::hex_iterator &hex, const Point< spacedim > &candidate) const
 
- Public Member Functions inherited from FlatManifold< dim, spacedim >
 FlatManifold (const Tensor< 1, spacedim > &periodicity=Tensor< 1, spacedim >(), const double tolerance=1e-10)
 
virtual Point< spacedim > get_new_point (const Quadrature< spacedim > &quad) const 1
 
virtual Point< spacedim > get_new_point (const std::vector< Point< spacedim > > &surrounding_points, const std::vector< double > &weights) const
 
virtual void add_new_points (const std::vector< Point< spacedim > > &surrounding_points, const Table< 2, double > &weights, std::vector< Point< spacedim > > &new_points) const
 
virtual Point< spacedim > project_to_manifold (const std::vector< Point< spacedim > > &points, const Point< spacedim > &candidate) const
 
virtual Tensor< 1, spacedim > get_tangent_vector (const Point< spacedim > &x1, const Point< spacedim > &x2) const
 
const Tensor< 1, spacedim > & get_periodicity () const
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold ()
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const
 
virtual Point< spacedim > get_new_point_on_hex (const typename Triangulation< dim, spacedim >::hex_iterator &hex) const
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
virtual Tensor< 1, spacedim > normal_vector (const typename Triangulation< dim, spacedim >::face_iterator &face, const Point< spacedim > &p) const
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, spacedim >::face_iterator &face, FaceVertexNormals &face_vertex_normals) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

double get_correct_angle (const double angle, const double x, const double y) const
 
Point< spacedim > get_real_coord (const Point< dim > &surfP) const
 
Point< dim > get_surf_coord (const Point< spacedim > &p) const
 
Point< spacedim > get_surf_norm_from_sp (const Point< dim > &surfP) const
 
Point< spacedim > get_surf_norm (const Point< spacedim > &p) const
 

Private Attributes

const double R
 

Additional Inherited Members

- Public Types inherited from Manifold< dim, spacedim >
typedef Tensor< 1, spacedim > FaceVertexNormals[GeometryInfo< dim >::vertices_per_face]
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 
- Protected Member Functions inherited from Boundary< dim, spacedim >
const std::vector< Point< 1 > > & get_line_support_points (const unsigned int n_intermediate_points) const
 

Detailed Description

template<int dim, int spacedim>
class TorusBoundary< dim, spacedim >

Class describing the boundary of the torus. The axis of the torus is the \(y\)-axis while the plane of the torus is the \(x\)- \(z\) plane. A torus of this kind can be generated by GridGenerator::torus.

This class is only implemented for dim=2,spacedim=3, that is, just the surface.

Definition at line 623 of file tria_boundary_lib.h.

Constructor & Destructor Documentation

◆ TorusBoundary()

template<int dim, int spacedim>
TorusBoundary< dim, spacedim >::TorusBoundary ( const double  R,
const double  r 
)

Constructor.R has to be greater than r.

Definition at line 1195 of file tria_boundary_lib.cc.

Member Function Documentation

◆ get_new_point_on_line()

template<int dim, int spacedim>
virtual Point<spacedim> TorusBoundary< dim, spacedim >::get_new_point_on_line ( const typename Triangulation< dim, spacedim >::line_iterator &  line) const
virtual

Construct a new point on a line.

Reimplemented from Manifold< dim, spacedim >.

◆ get_new_point_on_quad()

template<int dim, int spacedim>
virtual Point<spacedim> TorusBoundary< dim, spacedim >::get_new_point_on_quad ( const typename Triangulation< dim, spacedim >::quad_iterator &  quad) const
virtual

Construct a new point on a quad.

Reimplemented from Manifold< dim, spacedim >.

◆ get_intermediate_points_on_line()

template<int dim, int spacedim>
virtual void TorusBoundary< dim, spacedim >::get_intermediate_points_on_line ( const typename Triangulation< dim, spacedim >::line_iterator &  line,
std::vector< Point< spacedim > > &  points 
) const
virtual

Construct a new points on a line.

Reimplemented from Boundary< dim, spacedim >.

◆ get_intermediate_points_on_quad()

template<int dim, int spacedim>
virtual void TorusBoundary< dim, spacedim >::get_intermediate_points_on_quad ( const typename Triangulation< dim, spacedim >::quad_iterator &  quad,
std::vector< Point< spacedim > > &  points 
) const
virtual

Construct a new points on a quad.

Reimplemented from Boundary< dim, spacedim >.

◆ get_normals_at_vertices()

template<int dim, int spacedim>
virtual void TorusBoundary< dim, spacedim >::get_normals_at_vertices ( const typename Triangulation< dim, spacedim >::face_iterator &  face,
typename Boundary< dim, spacedim >::FaceVertexNormals face_vertex_normals 
) const
virtual

Get the normal from cartesian coordinates. This normal does not have unit length.

◆ get_correct_angle()

template<int dim, int spacedim>
double TorusBoundary< dim, spacedim >::get_correct_angle ( const double  angle,
const double  x,
const double  y 
) const
private

Function that corrects the value and sign of angle, that is, given angle=tan(abs(y/x)); if (y > 0) && (x < 0) then correct_angle = Pi - angle, etc.

Definition at line 1220 of file tria_boundary_lib.cc.

◆ get_real_coord()

template<int dim, int spacedim>
Point<spacedim> TorusBoundary< dim, spacedim >::get_real_coord ( const Point< dim > &  surfP) const
private

Get the cartesian coordinates of the Torus, i.e., from (theta,phi) to (x,y,z).

◆ get_surf_coord()

template<int dim, int spacedim>
Point<dim> TorusBoundary< dim, spacedim >::get_surf_coord ( const Point< spacedim > &  p) const
private

Get the surface coordinates of the Torus, i.e., from (x,y,z) to (theta,phi).

◆ get_surf_norm_from_sp()

template<int dim, int spacedim>
Point<spacedim> TorusBoundary< dim, spacedim >::get_surf_norm_from_sp ( const Point< dim > &  surfP) const
private

Get the normal from surface coordinates. This normal does not have unit length.

◆ get_surf_norm()

template<int dim, int spacedim>
Point<spacedim> TorusBoundary< dim, spacedim >::get_surf_norm ( const Point< spacedim > &  p) const
private

Get the normal from cartesian coordinates. This normal does not have unit length.

Member Data Documentation

◆ R

template<int dim, int spacedim>
const double TorusBoundary< dim, spacedim >::R
private

Inner and outer radii of the shell.

Definition at line 703 of file tria_boundary_lib.h.


The documentation for this class was generated from the following files: