2D element map for an circular arc. More...
#include <elementMaps.hh>


Public Member Functions | |
| CircleMappingEdge2d (const Real r, const Real2d vtx0, const Real2d vtx1) | |
| Constructor. | |
| CircleMappingEdge2d (const Real2d center, const Real r, const Real angle0, const Real angle1) | |
| Constructor. | |
| CircleMappingEdge2d (const CircleMappingEdge2d &edgemap) | |
| Copy Constructor. | |
| CircleMappingEdge2d (const Real2d vtx0, const Real2d vtxm, const Real2d vtx1) | |
| Constructor. | |
| virtual CircleMappingEdge2d * | clone () const |
| Virtual copy constructor. | |
| virtual Real | curvature (const Real t, const uint n=0) const |
| Returns the n-th derivative of the curvature. | |
| virtual Real2d | derivative (const Real t, const uint n=1) const |
| Returns the n-th derivative. | |
| virtual MappingEdge2d * | inverse () const |
| Returns the mapping of the edge in inverse direction. | |
| Real2d | n0 (const Real t) const |
| Returns the normalised right normal vector. | |
| virtual Real2d | normal (const Real t) const |
| Returns the right normal vector, length is that of the derivative. | |
| virtual Real2d | operator() (const Real t) const |
| Application operator. | |
| MappingEdge2d * | part (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. | |
| const Real2d & | vtx (uint i) const |
| Spit out one vertex of the edge. | |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Protected Attributes | |
| Real2d | vtx_ [2] |
| Coordinates of the vertices at either end of the edge. | |
Private Member Functions | |
| Real | phi_ (const Real t) const |
Private Attributes | |
| Real | angle0_ |
| Angles between one vertex and the circle center. | |
| Real | angle1_ |
| Real2d | m_ |
| Mid point of the circle. | |
| Real | r_ |
| Radius of the circle, zero if straight line (no sign) | |
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.
Definition at line 257 of file elementMaps.hh.
| 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 (
and
. The smaller angle is taken. So the maximal angle is
.
| r | radius |
| vtx0,vtx1 | coordinates of the vertices |
| concepts::CircleMappingEdge2d::CircleMappingEdge2d | ( | const Real2d | center, |
| const Real | r, | ||
| const Real | angle0, | ||
| const Real | angle1 | ||
| ) |
Constructor.
| center | center of the circle |
| r | radius |
| angle0 | beginning angle |
| angle1 | ending angle |
| 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
| vtx0 | beginning point |
| vtxm | middle point |
| vtx1 | ending point |
| concepts::CircleMappingEdge2d::CircleMappingEdge2d | ( | const CircleMappingEdge2d & | edgemap | ) |
Copy Constructor.
| virtual CircleMappingEdge2d* concepts::CircleMappingEdge2d::clone | ( | ) | const [virtual] |
Virtual copy constructor.
Implements concepts::MappingEdge2d.
| 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.
| virtual Real2d concepts::CircleMappingEdge2d::derivative | ( | const Real | t, |
| const uint | n = 1 |
||
| ) | const [virtual] |
Returns the n-th derivative.
Implements concepts::MappingEdge2d.
| virtual std::ostream& concepts::CircleMappingEdge2d::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::MappingEdge2d.
| virtual MappingEdge2d* concepts::CircleMappingEdge2d::inverse | ( | ) | const [virtual] |
Returns the mapping of the edge in inverse direction.
Reimplemented from concepts::MappingEdge2d.
Returns the normalised right normal vector.
Reimplemented in concepts::MappingParallelEdge2d.
Definition at line 105 of file elementMaps.hh.

Returns the right normal vector, length is that of the derivative.
Application operator.
Maps the point from the parameter domain onto the physical space.
Implements concepts::MappingEdge2d.
| 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.
Definition at line 316 of file elementMaps.hh.
| const Real2d& concepts::MappingEdge2d::vtx | ( | uint | i | ) | const [inline, inherited] |
Spit out one vertex of the edge.
Definition at line 122 of file elementMaps.hh.
Real concepts::CircleMappingEdge2d::angle0_ [private] |
Angles between one vertex and the circle center.
Definition at line 314 of file elementMaps.hh.
Real concepts::CircleMappingEdge2d::angle1_ [private] |
Definition at line 314 of file elementMaps.hh.
Real2d concepts::CircleMappingEdge2d::m_ [private] |
Mid point of the circle.
Definition at line 312 of file elementMaps.hh.
Real concepts::CircleMappingEdge2d::r_ [private] |
Radius of the circle, zero if straight line (no sign)
Definition at line 310 of file elementMaps.hh.
Real2d concepts::MappingEdge2d::vtx_[2] [protected, inherited] |
Coordinates of the vertices at either end of the edge.
Definition at line 126 of file elementMaps.hh.