2D element map for an circular arc. More...

#include <elementMaps.hh>

Inheritance diagram for concepts::CircleMappingEdge2d:
concepts::MappingEdge2d concepts::Cloneable concepts::Map1d concepts::OutputOperator

Public Member Functions

 CircleMappingEdge2d (const CircleMappingEdge2d &edgemap)
 Copy Constructor. More...
 
 CircleMappingEdge2d (const Real r, const Real2d vtx0, const Real2d vtx1)
 Constructor. More...
 
 CircleMappingEdge2d (const Real2d center, const Real r, const Real angle0, const Real angle1)
 Constructor. More...
 
 CircleMappingEdge2d (const Real2d vtx0, const Real2d vtxm, const Real2d vtx1)
 Constructor. More...
 
virtual CircleMappingEdge2dclone () const
 Virtual copy constructor. More...
 
virtual Real curvature (const Real t, const uint n=0) const
 Returns the n-th derivative of the curvature. More...
 
virtual Real2d derivative (const Real t, const uint n=1) const
 Returns the n-th derivative. More...
 
virtual MappingEdge2dinverse () const
 Returns the mapping of the edge in inverse direction. More...
 
Real2d n0 (const Real t) const
 Returns the normalised right normal vector. More...
 
virtual Real2d normal (const Real t) const
 Returns the right normal vector, length is that of the derivative. More...
 
virtual Real2d operator() (const Real t) const
 Application operator. More...
 
MappingEdge2dpart (const Real t0, const Real t1) const
 Returns a new object of an element map for a rectangular part of the reference cell defined by the two points. More...
 
bool straight () const
 returns true if the mapping is straight, i.e. the radius equals zero. More...
 
const Real2dvtx (uint i) const
 Spit out one vertex of the edge. More...
 

Protected Member Functions

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

Protected Attributes

Real2d vtx_ [2]
 Coordinates of the vertices at either end of the edge. More...
 

Private Member Functions

Real phi_ (const Real t) const
 

Private Attributes

Real angle0_
 Angles between one vertex and the circle center. More...
 
Real angle1_
 
Real2d m_
 Mid point of the circle. More...
 
Real r_
 Radius of the circle, zero if straight line (no sign) More...
 

Detailed Description

2D element map for an circular arc.

The edge is given by two vertices and a radius that determines the curvature of the edge.

This class may be used in connection with BlendingQuad2d.

See also
BlendingQuad2d
Author
, Kersten Schmidt, 2004

Definition at line 259 of file elementMaps.hh.

Constructor & Destructor Documentation

◆ CircleMappingEdge2d() [1/4]

concepts::CircleMappingEdge2d::CircleMappingEdge2d ( const Real  r,
const Real2d  vtx0,
const Real2d  vtx1 
)

Constructor.

Use the sign of the radius to bend the edge. r > 0 Arc is on the right side of line from 1st to 2nd vertex r < 0 Arc is on the left side of line from 1st to 2nd vertex

Minimal radius is half of the distance between the vertices.

There are always two possibilites for the angle of the arc ( $\phi$ and $2\pi - \phi$. The smaller angle is taken. So the maximal angle is $\pi$.

Parameters
rradius
vtx0,vtx1coordinates of the vertices

◆ CircleMappingEdge2d() [2/4]

concepts::CircleMappingEdge2d::CircleMappingEdge2d ( const Real2d  center,
const Real  r,
const Real  angle0,
const Real  angle1 
)

Constructor.

Parameters
centercenter of the circle
rradius
angle0beginning angle
angle1ending angle

◆ CircleMappingEdge2d() [3/4]

concepts::CircleMappingEdge2d::CircleMappingEdge2d ( const Real2d  vtx0,
const Real2d  vtxm,
const Real2d  vtx1 
)

Constructor.

Use three points from the edge to find the radius and center. The basic formulae come from the following website, and then the full formulae derived by Mengyu Wang, 2011 http://mathforum.org/dr.math/faq/formulas/faq.analygeom_2.html#twocircles

Parameters
vtx0beginning point
vtxmmiddle point
vtx1ending point

◆ CircleMappingEdge2d() [4/4]

concepts::CircleMappingEdge2d::CircleMappingEdge2d ( const CircleMappingEdge2d edgemap)

Copy Constructor.

Member Function Documentation

◆ clone()

virtual CircleMappingEdge2d* concepts::CircleMappingEdge2d::clone ( ) const
virtual

Virtual copy constructor.

Implements concepts::MappingEdge2d.

◆ curvature()

virtual Real concepts::CircleMappingEdge2d::curvature ( const Real  t,
const uint  n = 0 
) const
virtual

Returns the n-th derivative of the curvature.

It's implemented in general for n = 0,1 and works with curved edges. Can be overwritten in derived classes for performance reasons.

Reimplemented from concepts::MappingEdge2d.

◆ derivative()

virtual Real2d concepts::CircleMappingEdge2d::derivative ( const Real  t,
const uint  n = 1 
) const
virtual

Returns the n-th derivative.

Implements concepts::MappingEdge2d.

◆ info()

virtual std::ostream& concepts::CircleMappingEdge2d::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::MappingEdge2d.

◆ inverse()

virtual MappingEdge2d* concepts::CircleMappingEdge2d::inverse ( ) const
virtual

Returns the mapping of the edge in inverse direction.

Reimplemented from concepts::MappingEdge2d.

◆ n0()

Real2d concepts::MappingEdge2d::n0 ( const Real  t) const
inlineinherited

Returns the normalised right normal vector.

Definition at line 107 of file elementMaps.hh.

◆ normal()

virtual Real2d concepts::MappingEdge2d::normal ( const Real  t) const
virtualinherited

Returns the right normal vector, length is that of the derivative.

◆ operator()()

virtual Real2d concepts::CircleMappingEdge2d::operator() ( const Real  t) const
virtual

Application operator.

Maps the point from the parameter domain onto the physical space.

Implements concepts::MappingEdge2d.

◆ part()

MappingEdge2d* concepts::CircleMappingEdge2d::part ( const Real  t0,
const Real  t1 
) const
virtual

Returns a new object of an element map for a rectangular part of the reference cell defined by the two points.

Reimplemented from concepts::MappingEdge2d.

◆ phi_()

Real concepts::CircleMappingEdge2d::phi_ ( const Real  t) const
inlineprivate

Definition at line 321 of file elementMaps.hh.

◆ straight()

bool concepts::CircleMappingEdge2d::straight ( ) const

returns true if the mapping is straight, i.e. the radius equals zero.

◆ vtx()

const Real2d& concepts::MappingEdge2d::vtx ( uint  i) const
inlineinherited

Spit out one vertex of the edge.

Definition at line 124 of file elementMaps.hh.

Member Data Documentation

◆ angle0_

Real concepts::CircleMappingEdge2d::angle0_
private

Angles between one vertex and the circle center.

Definition at line 319 of file elementMaps.hh.

◆ angle1_

Real concepts::CircleMappingEdge2d::angle1_
private

Definition at line 319 of file elementMaps.hh.

◆ m_

Real2d concepts::CircleMappingEdge2d::m_
private

Mid point of the circle.

Definition at line 317 of file elementMaps.hh.

◆ r_

Real concepts::CircleMappingEdge2d::r_
private

Radius of the circle, zero if straight line (no sign)

Definition at line 315 of file elementMaps.hh.

◆ vtx_

Real2d concepts::MappingEdge2d::vtx_[2]
protectedinherited

Coordinates of the vertices at either end of the edge.

Definition at line 128 of file elementMaps.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