Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
TorusManifold< dim > Class Template Reference

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

Inheritance diagram for TorusManifold< dim >:
[legend]

Public Member Functions

 TorusManifold (const double R, const double r)
 
virtual std::unique_ptr< Manifold< dim, 3 > > clone () const override
 
virtual Point< 3 > pull_back (const Point< 3 > &p) const override
 
virtual Point< 3 > push_forward (const Point< 3 > &chart_point) const override
 
virtual DerivativeForm< 1, 3, 3 > push_forward_gradient (const Point< 3 > &chart_point) const override
 
- Public Member Functions inherited from ChartManifold< dim, 3, 3 >
 ChartManifold (const Tensor< 1, chartdim > &periodicity=Tensor< 1, chartdim >())
 
virtual ~ChartManifold () override=default
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const override
 
virtual Point< spacedim > get_new_point (const ArrayView< const Point< spacedim >> &surrounding_points, const ArrayView< const double > &weights) const override
 
virtual void get_new_points (const ArrayView< const Point< spacedim >> &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< spacedim >> new_points) const override
 
virtual Point< chartdim > pull_back (const Point< spacedim > &space_point) const=0
 
virtual Point< spacedim > push_forward (const Point< chartdim > &chart_point) const=0
 
virtual DerivativeForm< 1, chartdim, spacedim > push_forward_gradient (const Point< chartdim > &chart_point) const
 
virtual Tensor< 1, spacedim > get_tangent_vector (const Point< spacedim > &x1, const Point< spacedim > &x2) const override
 
const Tensor< 1, chartdim > & get_periodicity () const
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold () override=default
 
Tensor< 1, 2 > normal_vector (const Triangulation< 2, 2 >::face_iterator &face, const Point< 2 > &p) const
 
Tensor< 1, 3 > normal_vector (const Triangulation< 3, 3 >::face_iterator &face, const Point< 3 > &p) const
 
void get_normals_at_vertices (const Triangulation< 2, 2 >::face_iterator &face, FaceVertexNormals &n) const
 
void get_normals_at_vertices (const Triangulation< 3, 3 >::face_iterator &face, FaceVertexNormals &n) const
 
Point< 1 > get_new_point_on_face (const Triangulation< 1, 1 >::face_iterator &) const
 
Point< 2 > get_new_point_on_face (const Triangulation< 1, 2 >::face_iterator &) const
 
Point< 3 > get_new_point_on_face (const Triangulation< 1, 3 >::face_iterator &) const
 
Point< 1 > get_new_point_on_quad (const Triangulation< 1, 1 >::quad_iterator &) const
 
Point< 2 > get_new_point_on_quad (const Triangulation< 1, 2 >::quad_iterator &) const
 
Point< 3 > get_new_point_on_quad (const Triangulation< 1, 3 >::quad_iterator &) const
 
Point< 3 > get_new_point_on_hex (const Triangulation< 3, 3 >::hex_iterator &hex) const
 
virtual Point< spacedim > project_to_manifold (const ArrayView< const Point< spacedim >> &surrounding_points, const Point< spacedim > &candidate) const
 
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 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 &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Static Public Attributes

static const int chartdim = 3
 
static const int spacedim = 3
 

Private Attributes

double r
 
double R
 

Additional Inherited Members

- Public Types inherited from Manifold< dim, spacedim >
using FaceVertexNormals = std::array< Tensor< 1, spacedim >, GeometryInfo< dim >::vertices_per_face >
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim>
class TorusManifold< dim >

Manifold description for the surface of a Torus in three dimensions. The Torus is assumed to be in the x-z plane. The reference coordinate system is given by the angle \(phi\) around the y axis, the angle \(theta\) around the centerline of the torus, and the distance to the centerline \(w\) (between 0 and 1).

This class was developed to be used in conjunction with GridGenerator::torus.

Author
Timo Heister, 2016

Definition at line 788 of file manifold_lib.h.

Constructor & Destructor Documentation

◆ TorusManifold()

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

Constructor. Specify the radius of the centerline R and the radius of the torus itself (r). The variables have the same meaning as the parameters in GridGenerator::torus().

Definition at line 1582 of file manifold_lib.cc.

Member Function Documentation

◆ clone()

template<int dim>
std::unique_ptr< Manifold< dim, 3 > > TorusManifold< dim >::clone
overridevirtual

Make a clone of this Manifold object.

Implements Manifold< dim, spacedim >.

Definition at line 1597 of file manifold_lib.cc.

◆ pull_back()

template<int dim>
Point< 3 > TorusManifold< dim >::pull_back ( const Point< 3 > &  p) const
overridevirtual

Pull back operation.

Definition at line 1551 of file manifold_lib.cc.

◆ push_forward()

template<int dim>
Point< 3 > TorusManifold< dim >::push_forward ( const Point< 3 > &  chart_point) const
overridevirtual

Push forward operation.

Definition at line 1568 of file manifold_lib.cc.

◆ push_forward_gradient()

template<int dim>
DerivativeForm< 1, 3, 3 > TorusManifold< dim >::push_forward_gradient ( const Point< 3 > &  chart_point) const
overridevirtual

Gradient.

Definition at line 1606 of file manifold_lib.cc.

Member Data Documentation

◆ chartdim

template<int dim>
const int TorusManifold< dim >::chartdim = 3
static

Definition at line 791 of file manifold_lib.h.

◆ spacedim

template<int dim>
const int TorusManifold< dim >::spacedim = 3
static

Definition at line 792 of file manifold_lib.h.

◆ r

template<int dim>
double TorusManifold< dim >::r
private

Definition at line 826 of file manifold_lib.h.

◆ R

template<int dim>
double TorusManifold< dim >::R
private

Definition at line 826 of file manifold_lib.h.


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