A 2D cell: quadrilateral in thin sheet of constant thickness. More...
#include <thinSheetGeom.hh>


Public Member Functions | |
| Real3d | center () const |
| Returns the center of the cell. | |
| Real2d | chi (Real xi, Real eta) const |
| Evaluates the element map. | |
| virtual Quad2d * | child (uint i) |
| Returns a child. | |
| virtual const Quad2d * | child (uint i) const |
| Returns a child. | |
| const Quad2d * | child (uint i, Real xi, Real eta, Real &xiC, Real &etaC) const |
| Returns a child. | |
| Quad2d * | clone (Quad &cntr, MappingQuad2d *map) const |
| Returns a copy of itself. | |
| Quad & | connector () const |
| Returns the quadrilateral connector (topology) | |
| virtual const bool | constThickness () const |
| Returns true, if the thickness is constant in the cell. | |
| const Real | curvature (const Real xi, uint n=0) const |
| virtual const Real | d (const Real &xi) const |
| Returns a child. | |
| const MappingEdge2d * | edge (uint i) const |
| Returns the mapping of the i-th edge, where i in {0,2}. | |
| const MappingEdge2d * | edgeMap (uint edge) const |
| Returns the mapping of an edge. | |
| Real3d | elemMap (const Real2d &coord_local) const |
| Element map from point local coordinates in 2D. | |
| virtual Real3d | elemMap (const Real3d &coord_local) const |
| Element map from point local coordinates in 3D. | |
| virtual Real3d | elemMap (const Real coord_local) const |
| Element map from point local coordinates in 1D. | |
| const ThinSheetQuad2d * | father () const |
| Returns the father cell. | |
| const Quad2dSubdivision * | getStrategy () const |
| Returns the subdivision strategy of this quad. | |
| bool | hasChildren () const |
| Returns true if there is a least one child. | |
| MapReal2d | jacobian (const Real xi, const Real eta) const |
Computes the Jacobian for xi, eta . | |
| Real | jacobianDeterminant (const Real xi, const Real eta) const |
Returns the determinant of the Jacobian for xi, eta . | |
| MapReal2d | jacobianInverse (const Real xi, const Real eta) const |
Returns the inverse of the Jacobian for xi, eta . | |
| Level< 2 > | level () const |
| Returns the level of the cell. | |
| Real | lineElement (const Real xi, const uint edge) const |
| Computes the differential element on an edge. | |
| const MappingQuad2d * | map () const |
| Returns the stored element map (same for all family related to one ancestor). | |
| const MappingEdge2d * | midline () const |
| void | neighbour (uint i, const ThinSheetQuad2d *neigbour) |
| const ThinSheetQuad2d * | neighbour (uint i) const |
| Returns one of the neighbouring cells. | |
| virtual void | setStrategy (const Quad2dSubdivision *strategy=0) throw (StrategyChange) |
| Sets the subdivision strategy of this quad. | |
| ThinSheetQuad2d (Quad &cntr, const MappingEdge2d &midline, const Real d) | |
| Constructor. | |
| Real3d | vertex (uint i) const |
| Returns the coordinates of the ith vertex. | |
| virtual | ~ThinSheetQuad2d () |
Protected Member Functions | |
| Quad2d * | createChild_ (Quad &cntr, const Index &idx, bool flag) const |
| Non-virtual form of the private createChild_() method. | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Protected Attributes | |
| Index | idx_ |
| Index of this element. | |
| MappingQuad2d * | map_ |
| Pointer to the element map. | |
Private Member Functions | |
| virtual Quad2d * | createChild_ (Quad &cntr, const Index &idx) const |
| Creates and returns a child. | |
| ThinSheetQuad2d (Quad &cntr, const ThinSheetQuad2d &father, const Index &idx) | |
| Pointer to the first child. | |
Private Attributes | |
| const Real | d_ |
| Thickness. | |
| const MappingEdge2d * | edges_ [2] |
| Edge parametrisation of lower and upper edge (0 and 2), parallel to midline. | |
| const ThinSheetQuad2d * | father_ |
| Pointer to ancestor. | |
| const MappingEdge2d * | midline_ |
| Parametrisation of mid line. | |
| const ThinSheetQuad2d * | neighbour_ [2] |
| Pointer to a sibling. | |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const Quad2d::Index &i) |
A 2D cell: quadrilateral in thin sheet of constant thickness.
Only subdivision along the sheet is alowed. Then the quad is subdivided, two new quads are created. This happens automatically, if a child is requested.
Definition at line 294 of file thinSheetGeom.hh.
| concepts::ThinSheetQuad2d::ThinSheetQuad2d | ( | Quad & | cntr, |
| const MappingEdge2d & | midline, | ||
| const Real | d | ||
| ) |
Constructor.
Takes the connector cntr and the element map map and creates a cell.
| cntr | Topological information of the quadrilateral |
| midline | mapping to the mid line |
| d | thickness |
| virtual concepts::ThinSheetQuad2d::~ThinSheetQuad2d | ( | ) | [virtual] |
| concepts::ThinSheetQuad2d::ThinSheetQuad2d | ( | Quad & | cntr, |
| const ThinSheetQuad2d & | father, | ||
| const Index & | idx | ||
| ) | [private] |
| Real3d concepts::Quad2d::center | ( | ) | const [inline, virtual, inherited] |
Returns the center of the cell.
Implements concepts::Cell2.
Definition at line 432 of file cell2D.hh.

Evaluates the element map.
Maps a point from the the reference coordinates in [0,1]2 onto the physical coordinates.
| xi | |
| eta | |
| virtual Quad2d* concepts::Quad2d::child | ( | uint | i | ) | [virtual, inherited] |
Returns a child.
If no children exist, four new children are created. The quadrilateral is cut into four new quadrilaterals by joining the midpoints of its edges.
| i | Index of the child to be returned. |
Implements concepts::Cell2.
| virtual const Quad2d* concepts::Quad2d::child | ( | uint | i | ) | const [virtual, inherited] |
Returns a child.
If no children exist, none are created and 0 is returned.
| i | Index of the child to be returned. |
Implements concepts::Cell2.
| const Quad2d* concepts::Quad2d::child | ( | uint | i, |
| Real | xi, | ||
| Real | eta, | ||
| Real & | xiC, | ||
| Real & | etaC | ||
| ) | const [inline, inherited] |
Returns a child.
If not a valid children exist, none are created and 0 is returned.
| i | Index of the child to be returned. |
| xi,eta | local coordinates, where the child is located |
| xiC,etaC | local coordinates in the child |
Definition at line 345 of file cell2D.hh.

| Quad2d* concepts::Quad2d::clone | ( | Quad & | cntr, |
| MappingQuad2d * | map | ||
| ) | const [inline, inherited] |
| Quad & concepts::Quad2d::connector | ( | ) | const [inline, virtual, inherited] |
Returns the quadrilateral connector (topology)
Implements concepts::Cell2.
| virtual const bool concepts::ThinSheetQuad2d::constThickness | ( | ) | const [inline, virtual] |
Returns true, if the thickness is constant in the cell.
Implements concepts::ThinSheetCell< 2 >.
Definition at line 318 of file thinSheetGeom.hh.
| Quad2d* concepts::Quad2d::createChild_ | ( | Quad & | cntr, |
| const Index & | idx, | ||
| bool | flag | ||
| ) | const [protected, inherited] |
Non-virtual form of the private createChild_() method.
Can be called by inheritated classes.
| virtual Quad2d* concepts::ThinSheetQuad2d::createChild_ | ( | Quad & | cntr, |
| const Index & | idx | ||
| ) | const [private, virtual] |
Creates and returns a child.
Reimplemented from concepts::Quad2d.
Returns a child.
If no children exist, four new children are created. The quadrilateral is cut into four new quadrilaterals by joining the midpoints of its edges.
| i | Index of the child to be returned. Returns a child. If no children exist, none are created and 0 is returned. |
| i | Index of the child to be returned. |
Implements concepts::ThinSheetCell< 2 >.
Definition at line 317 of file thinSheetGeom.hh.
| const MappingEdge2d* concepts::ThinSheetQuad2d::edge | ( | uint | i | ) | const |
Returns the mapping of the i-th edge, where i in {0,2}.
i = 0, lower edge i = 2, upper edge
| const MappingEdge2d* concepts::Quad2d::edgeMap | ( | uint | edge | ) | const [inherited] |
Returns the mapping of an edge.
Construct an cell for an edge of quad with
Edge2d edge(quad.connector(), quad.edgeMap(0));
The edgeMap can be useful for egde integrals in a 2D quadrilateral mesh.
Element map from point local coordinates in 2D.
Implements concepts::Cell2.
Definition at line 375 of file cell2D.hh.

| virtual Real3d concepts::Cell2::elemMap | ( | const Real3d & | coord_local | ) | const [inline, virtual, inherited] |
Element map from point local coordinates in 3D.
Reference element is 2D, third component is omitted.
Reimplemented from concepts::Cell.
Definition at line 100 of file cell.hh.

Element map from point local coordinates in 1D.
Reimplemented in concepts::Edge1d, and concepts::Edge2d.
| const ThinSheetQuad2d* concepts::ThinSheetQuad2d::father | ( | ) | const [inline] |
Returns the father cell.
Definition at line 330 of file thinSheetGeom.hh.
| const Quad2dSubdivision* concepts::Quad2d::getStrategy | ( | ) | const [inline, inherited] |
Returns the subdivision strategy of this quad.
If you want to find check against another strategy use
quad.getStrategy() == QuadSubdiv2V::instance()
| bool concepts::Quad2d::hasChildren | ( | ) | const [inline, inherited] |
Returns true if there is a least one child.
Reimplemented from concepts::Cell.
| virtual std::ostream& concepts::ThinSheetQuad2d::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::Quad2d.
Computes the Jacobian for xi, eta
.
The Jacobian of a cell in the initial mesh is computed by the element map. The Jacobian of a subdivided cell is computed as follows. Let
be the subdivision map in the reference coordinates (0,1)2 and
,
the element maps of K and K' respectively. Then,
The subdivision map H in reference coordinates is
where
,
.
is the level of the cell with respect to the cell in the initial mesh. The derivative of H is
.
Then, the Jacobian of
is
The part
(without H) is computed by the element map and the part
is computed in jacobian().
| Level<2> concepts::Quad2d::level | ( | ) | const [inline, inherited] |
Computes the differential element on an edge.
xi stand for one of the variables
,
depending on the edge.
| const MappingQuad2d* concepts::Quad2d::map | ( | ) | const [inline, inherited] |
| const MappingEdge2d* concepts::ThinSheetQuad2d::midline | ( | ) | const |
| const ThinSheetQuad2d* concepts::ThinSheetQuad2d::neighbour | ( | uint | i | ) | const |
Returns one of the neighbouring cells.
For i = 0 the cell which is adjacent to edge 3 (xi = 0). For i = 1 the cell which is adjacent to edge 1 (xi = 1).
| void concepts::ThinSheetQuad2d::neighbour | ( | uint | i, |
| const ThinSheetQuad2d * | neigbour | ||
| ) |
| virtual void concepts::Quad2d::setStrategy | ( | const Quad2dSubdivision * | strategy = 0 | ) | throw (StrategyChange) [virtual, inherited] |
Sets the subdivision strategy of this quad.
If the parameter is set to 0 (or if the method is called without parameter) the strategy is set to the default (if not already set). The default subdivision strategy is subdivision into 4 children.
| strategy | Pointer to an instance of a subdivision strategy. |
| StrategyChange | if the change is not allowed (the change is not allowed if there are children present or the topological strategy is set). |
| Real3d concepts::Quad2d::vertex | ( | uint | i | ) | const [virtual, inherited] |
Returns the coordinates of the ith vertex.
Implements concepts::Cell2.
| std::ostream& operator<< | ( | std::ostream & | os, |
| const Quad2d::Index & | i | ||
| ) | [friend, inherited] |
const Real concepts::ThinSheetQuad2d::d_ [private] |
Thickness.
Definition at line 341 of file thinSheetGeom.hh.
const MappingEdge2d* concepts::ThinSheetQuad2d::edges_[2] [private] |
Edge parametrisation of lower and upper edge (0 and 2), parallel to midline.
Definition at line 347 of file thinSheetGeom.hh.
const ThinSheetQuad2d* concepts::ThinSheetQuad2d::father_ [private] |
Pointer to ancestor.
Definition at line 355 of file thinSheetGeom.hh.
Index concepts::Quad2d::idx_ [protected, inherited] |
MappingQuad2d* concepts::Quad2d::map_ [protected, inherited] |
const MappingEdge2d* concepts::ThinSheetQuad2d::midline_ [private] |
Parametrisation of mid line.
Definition at line 343 of file thinSheetGeom.hh.
const ThinSheetQuad2d* concepts::ThinSheetQuad2d::neighbour_[2] [private] |
Pointer to a sibling.
Definition at line 353 of file thinSheetGeom.hh.