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

#include <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 ()
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
void get_intermediate_points_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face, std::vector< Point< spacedim > > &points) 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
 
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 Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
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
 
const double r
 

Additional Inherited Members

- Public Types inherited from Boundary< dim, spacedim >
typedef Tensor< 1, spacedim > FaceVertexNormals[GeometryInfo< dim >::vertices_per_face]
 
- 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 748 of file tria_boundary_lib.h.

Constructor & Destructor Documentation

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

Constructor.R has to be greater than r.

Member Function Documentation

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.

Implements Boundary< dim, spacedim >.

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 Boundary< dim, spacedim >.

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 >.

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 >.

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.

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.

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).

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).

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.

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

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

Inner and outer radii of the shell.

Definition at line 837 of file tria_boundary_lib.h.


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