Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
concepts::MapQuad2d Class Reference

A 2D element map for a quadrilateral given by a formula. More...

#include <elementMaps.hh>

Inheritance diagram for concepts::MapQuad2d:
Inheritance graph
[legend]
Collaboration diagram for concepts::MapQuad2d:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual MapQuad2dclone () const
 Returns a copy of the map.
virtual MappingEdge2dedge (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 MappingQuad2dpart (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

ucharmap_
 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.

Detailed Description

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 $[0,a] \times [0,b]$ can be given as the parameter domain.

If the map gives curved boundaries, they are approxmated better with more refined elements.

Examples:

meshes.cc.

Definition at line 736 of file elementMaps.hh.


Constructor & Destructor Documentation

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.

Parameters:
mapThe 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.
scXThe range of x is [0, scX]
scYThe range of y is [0, scY]
orgThe origin of the element
stretchScaling factor of the element
concepts::MapQuad2d::MapQuad2d ( const char *  map,
Real  scX,
Real  scY,
Real2d  org,
Real2d  scaling 
)
concepts::MapQuad2d::MapQuad2d ( const MapQuad2d map)

Copy constructor.

virtual concepts::MapQuad2d::~MapQuad2d ( ) [virtual]

Member Function Documentation

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.

Here is the call graph for this function:

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.

Parameters:
edgenumber 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.

Parameters:
icoordinate (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.

virtual MapReal2d concepts::MapQuad2d::jacobian ( const Real  x,
const Real  y 
) const [virtual]

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 $\sqrt{J_{11}^2+J_{21}^2}$ or $\sqrt{J_{12}^2+J_{22}^2}$.

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.

Parameters:
xlocal variable on edge (in [0,1]), stands for $\xi_1$ or $\xi_2$
edgenumber of edge, i.e. 0: $\xi_2 = 0$, 1: $\xi_1 = 1$, 2: $\xi_2 = 1$, 3: $\xi_1 = 0$

Reimplemented in concepts::BlendingQuad2d.

virtual Real2d concepts::MapQuad2d::operator() ( Real  x,
Real  y 
) const [inline, virtual]

Returns a point in 2D mapped from the unit square [0,1]2 onto the element in the original mesh.

Returns:
$F_K(x,y)$

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.


Member Data Documentation

Parsed formula for the map.

Definition at line 773 of file elementMaps.hh.

Definition at line 784 of file elementMaps.hh.

Definition at line 785 of file elementMaps.hh.

Right border of the x parameter domain.

Definition at line 779 of file elementMaps.hh.

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.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)