A 3D circular edge element map. More...

#include <mappingEdge3D.hh>

Inheritance diagram for concepts::CircleMappingEdge3d:
concepts::MappingEdge3d concepts::Map1d concepts::OutputOperator

Public Member Functions

 CircleMappingEdge3d (const CircleMappingEdge3d &other)
 Copy Constructor. More...
 
 CircleMappingEdge3d (const Real3d &vtx0, const Real3d &vtx1, const Real radius, const Real3d &center, const Real tol=1e6 *std::numeric_limits< double >::epsilon())
 Constructor. More...
 
CircleMappingEdge3dclone () const override
 Virtual constructor. More...
 
Real3d derivative (const Real t, const uint n=1) const override
 Evaluates the n-th derivative of the edge mapping at the coordinate t. More...
 
Real3d getCenter () const
 
Real getRadius () const
 
CircleMappingEdge3dinverse () const override
 Create a heap-allocated copy of this edge with reversed parametrization. More...
 
Real3d operator() (const Real t) const override
 Evaluates the edge mapping at the coordinate t. More...
 
const Real3dvtx (uint i) const
 Returns i-th physical vertex of the edge. More...
 
 ~CircleMappingEdge3d () override
 Destructor. More...
 

Protected Member Functions

std::ostream & info (std::ostream &os) const override
 Returns information in an output stream. More...
 

Protected Attributes

std::array< Real3d, 2 > vtx_
 Physical vertices $ \{ F_K(0), F_K(1) \} $. More...
 

Private Attributes

Real3d center_
 Center of the circle. More...
 
Real radius_
 Radius of the circle. More...
 

Detailed Description

A 3D circular edge element map.

Element parametrization:

\[ F_K (t) = c + r \frac{ F^{\text{lin}}_K (t) - c }{ \| F^{\text{lin}}_K (t) - c \|_2 }, \]

where $ F^{\text{lin}}_K $ is the $ \mathbb{Q}_1 $ linear edge element interpolating between $ F_K(0) $ and $ F_K(1) $, $ c \in \mathbb{R}^3 $ is the center of this edge and $ r \in \mathbb{R} $ the radius. This corresponds to the shortest edge connecting $ F_K(0) $ to $ F_K(1) $ on the sphere $ B_r(c)$.

Todo:
Use SphereData type instead of bare radius and center
Author
Lukas Drescher, 2014

Definition at line 115 of file mappingEdge3D.hh.

Constructor & Destructor Documentation

◆ CircleMappingEdge3d() [1/2]

concepts::CircleMappingEdge3d::CircleMappingEdge3d ( const Real3d vtx0,
const Real3d vtx1,
const Real  radius,
const Real3d center,
const Real  tol = 1e6 *std::numeric_limits< double >::epsilon() 
)

Constructor.

Parameters
vtx0physical coordinate $ F_K(0) $ of first vertex of the edge
vtx1physical coordinate $ F_K(1) $ of second vertex of the edge
rradius of the sphere on which the edge lies
centercenter of the sphere on which the edge lies

◆ CircleMappingEdge3d() [2/2]

concepts::CircleMappingEdge3d::CircleMappingEdge3d ( const CircleMappingEdge3d other)

Copy Constructor.

◆ ~CircleMappingEdge3d()

concepts::CircleMappingEdge3d::~CircleMappingEdge3d ( )
override

Destructor.

Member Function Documentation

◆ clone()

CircleMappingEdge3d* concepts::CircleMappingEdge3d::clone ( ) const
overridevirtual

Virtual constructor.

Create a heap-allocated copy of this edge.

Returns
Pointer to heap-allocated edge copy. To be deleted by the user.

Implements concepts::MappingEdge3d.

◆ derivative()

Real3d concepts::CircleMappingEdge3d::derivative ( const Real  t,
const uint  n = 1 
) const
overridevirtual

Evaluates the n-th derivative of the edge mapping at the coordinate t.

Parameters
norder of the derivative (<= 1 for most concrete types)
Returns
$ F^{(n)}_K(t)$

Implements concepts::MappingEdge3d.

◆ getCenter()

Real3d concepts::CircleMappingEdge3d::getCenter ( ) const
inline

Definition at line 136 of file mappingEdge3D.hh.

◆ getRadius()

Real concepts::CircleMappingEdge3d::getRadius ( ) const
inline

Definition at line 135 of file mappingEdge3D.hh.

◆ info()

std::ostream& concepts::CircleMappingEdge3d::info ( std::ostream &  os) const
overrideprotectedvirtual

Returns information in an output stream.

Reimplemented from concepts::MappingEdge3d.

◆ inverse()

CircleMappingEdge3d* concepts::CircleMappingEdge3d::inverse ( ) const
overridevirtual

Create a heap-allocated copy of this edge with reversed parametrization.

Returns
Pointer to heap-allocated edge copy. Has to be deleted by the user.

Implements concepts::MappingEdge3d.

◆ operator()()

Real3d concepts::CircleMappingEdge3d::operator() ( const Real  t) const
overridevirtual

Evaluates the edge mapping at the coordinate t.

Returns
$ F_K(t) $

Implements concepts::MappingEdge3d.

◆ vtx()

const Real3d& concepts::MappingEdge3d::vtx ( uint  i) const
inlineinherited

Returns i-th physical vertex of the edge.

Returns
$ F_K( i ) $

Definition at line 64 of file mappingEdge3D.hh.

Member Data Documentation

◆ center_

Real3d concepts::CircleMappingEdge3d::center_
private

Center of the circle.

Definition at line 143 of file mappingEdge3D.hh.

◆ radius_

Real concepts::CircleMappingEdge3d::radius_
private

Radius of the circle.

Definition at line 141 of file mappingEdge3D.hh.

◆ vtx_

std::array<Real3d,2> concepts::MappingEdge3d::vtx_
protectedinherited

Physical vertices $ \{ F_K(0), F_K(1) \} $.

Definition at line 68 of file mappingEdge3D.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich