A 2D element map for a quadrilateral given by a formula. More...
#include <elementMaps.hh>


Public Member Functions | |
| virtual MapQuad2d * | clone () const |
| Returns a copy of the map. | |
| virtual MappingEdge2d * | edge (const uint edge) const |
| Returns a copy of the edge mapping of one edge. | |
| virtual MapReal2d | hessian (uint i, const Real x, const Real y) const |
| Returns the Hessian in a 2D linear map. | |
| virtual MapReal2d | jacobian (const Real x, const Real y) const |
| Returns the Jacobian in a 2D linear map. | |
| virtual Real | jacobianDeterminant (const Real x, const Real y) const |
| Returns determinant of the Jacobian. | |
| virtual MapReal2d | jacobianInverse (const Real x, const Real y) const |
| Returns the inverse of the Jacobian in a 2D linear map. | |
| virtual Real | lineElement (const Real x, const uint edge) const |
| Returns factor of differential element integrating over an edge. | |
| MapQuad2d (const char *map, Real scX, Real scY, Real2d org, Real2d scaling) | |
| MapQuad2d (const char *map, Real scX, Real scY, Real2d org=Real2d(0.0, 0.0), Real stretch=1.0) | |
| Constructor. | |
| MapQuad2d (const MapQuad2d &map) | |
| Copy constructor. | |
| virtual Real2d | operator() (Real x, Real y) const |
| Returns a point in 2D mapped from the unit square [0,1]2 onto the element in the original mesh. | |
| virtual MappingQuad2d * | part (const Real2d x0, const Real2d y0) const |
| Returns a new object of an element map for a rectangular part of the reference cell defined by the two points. | |
| virtual bool | straight () const |
| virtual | ~MapQuad2d () |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Private Member Functions | |
| void | operator= (const MapQuad2d &) |
| Private assignement operator. | |
Private Attributes | |
| uchar * | map_ |
| Parsed formula for the map. | |
| Real2d | org_ |
| Real2d | scaling_ |
| Real | scx_ |
| Right border of the x parameter domain. | |
| Real | scy_ |
| Right border of the y parameter domain. | |
| uint | sz_ |
| Length of the parsed formula. | |
A 2D element map for a quadrilateral given by a formula.
The reference element is the unit square. For easier construction of the element map, a rectangle square
can be given as the parameter domain.
If the map gives curved boundaries, they are approxmated better with more refined elements.
Definition at line 736 of file elementMaps.hh.
| concepts::MapQuad2d::MapQuad2d | ( | const char * | map, |
| Real | scX, | ||
| Real | scY, | ||
| Real2d | org = Real2d(0.0, 0.0), |
||
| Real | stretch = 1.0 |
||
| ) |
Constructor.
The values of scX and scY are only for the map, they are not needed by the user for mapping a point from the reference element onto the Real element.
| map | The element map for this quadrilateral as a string, x and y are the variables, the first and the second component are separated by a comma. |
| scX | The range of x is [0, scX] |
| scY | The range of y is [0, scY] |
| org | The origin of the element |
| stretch | Scaling factor of the element |
| concepts::MapQuad2d::MapQuad2d | ( | const MapQuad2d & | map | ) |
Copy constructor.
| virtual concepts::MapQuad2d::~MapQuad2d | ( | ) | [virtual] |
| virtual MapQuad2d* concepts::MapQuad2d::clone | ( | ) | const [inline, virtual] |
Returns a copy of the map.
Implements concepts::MappingQuad2d.
Definition at line 768 of file elementMaps.hh.

| virtual MappingEdge2d* concepts::MappingQuad2d::edge | ( | const uint | edge | ) | const [inline, virtual, inherited] |
Returns a copy of the edge mapping of one edge.
The edge mappings are directed counter-clockwise, i.e. for the lower edge from the left lower vertex to the right lower one.
| edge | number of edge, i.e. 0 - lower, 1 - right, 2 - upper, 3 - left |
Reimplemented in concepts::VertexQuad2d, concepts::BlendingQuad2d, and concepts::PartMappingQuad2d.
Definition at line 711 of file elementMaps.hh.
| virtual MapReal2d concepts::MapQuad2d::hessian | ( | uint | i, |
| const Real | x, | ||
| const Real | y | ||
| ) | const [virtual] |
Returns the Hessian in a 2D linear map.
| i | coordinate (0 = x, 1 = y) |
Implements concepts::MappingQuad2d.
| virtual std::ostream& concepts::MapQuad2d::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::MappingQuad2d.
Returns the Jacobian in a 2D linear map.
Implements concepts::MappingQuad2d.
| virtual Real concepts::MappingQuad2d::jacobianDeterminant | ( | const Real | x, |
| const Real | y | ||
| ) | const [virtual, inherited] |
Returns determinant of the Jacobian.
| virtual MapReal2d concepts::MappingQuad2d::jacobianInverse | ( | const Real | x, |
| const Real | y | ||
| ) | const [virtual, inherited] |
Returns the inverse of the Jacobian in a 2D linear map.
| virtual Real concepts::MappingQuad2d::lineElement | ( | const Real | x, |
| const uint | edge | ||
| ) | const [virtual, inherited] |
Returns factor of differential element integrating over an edge.
The factor is either
or
.
The routine exists explicitly because it is more efficient to implement it than to use jacobian itself, i.e. for affine elements the line element is constant.
| x | local variable on edge (in [0,1]), stands for or |
| edge | number of edge, i.e. 0: , 1: , 2: , 3: |
Reimplemented in concepts::BlendingQuad2d.
Returns a point in 2D mapped from the unit square [0,1]2 onto the element in the original mesh.
Implements concepts::MappingQuad2d.
Definition at line 759 of file elementMaps.hh.
| void concepts::MapQuad2d::operator= | ( | const MapQuad2d & | ) | [private] |
Private assignement operator.
| virtual MappingQuad2d* concepts::MappingQuad2d::part | ( | const Real2d | x0, |
| const Real2d | y0 | ||
| ) | const [virtual, inherited] |
Returns a new object of an element map for a rectangular part of the reference cell defined by the two points.
Reimplemented in concepts::VertexQuad2d.
| virtual bool concepts::Map2d::straight | ( | ) | const [inline, virtual, inherited] |
Reimplemented in concepts::VertexTriangle2d, and concepts::VertexQuad2d.
Definition at line 35 of file elementMaps.hh.
uchar* concepts::MapQuad2d::map_ [private] |
Parsed formula for the map.
Definition at line 773 of file elementMaps.hh.
Real2d concepts::MapQuad2d::org_ [private] |
Definition at line 784 of file elementMaps.hh.
Real2d concepts::MapQuad2d::scaling_ [private] |
Definition at line 785 of file elementMaps.hh.
Real concepts::MapQuad2d::scx_ [private] |
Right border of the x parameter domain.
Definition at line 779 of file elementMaps.hh.
Real concepts::MapQuad2d::scy_ [private] |
Right border of the y parameter domain.
Definition at line 782 of file elementMaps.hh.
uint concepts::MapQuad2d::sz_ [private] |
Length of the parsed formula.
Definition at line 776 of file elementMaps.hh.