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

Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends
concepts::ThinSheetQuad2d Class Reference

A 2D cell: quadrilateral in thin sheet of constant thickness. More...

#include <thinSheetGeom.hh>

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

List of all members.

Public Member Functions

Real3d center () const
 Returns the center of the cell.
Real2d chi (Real xi, Real eta) const
 Evaluates the element map.
virtual Quad2dchild (uint i)
 Returns a child.
virtual const Quad2dchild (uint i) const
 Returns a child.
const Quad2dchild (uint i, Real xi, Real eta, Real &xiC, Real &etaC) const
 Returns a child.
Quad2dclone (Quad &cntr, MappingQuad2d *map) const
 Returns a copy of itself.
Quadconnector () 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 MappingEdge2dedge (uint i) const
 Returns the mapping of the i-th edge, where i in {0,2}.
const MappingEdge2dedgeMap (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 ThinSheetQuad2dfather () const
 Returns the father cell.
const Quad2dSubdivisiongetStrategy () 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 $\in [0,1]$.
Real jacobianDeterminant (const Real xi, const Real eta) const
 Returns the determinant of the Jacobian for xi, eta $\in [0,1]$.
MapReal2d jacobianInverse (const Real xi, const Real eta) const
 Returns the inverse of the Jacobian for xi, eta $\in [0,1]$.
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 MappingQuad2dmap () const
 Returns the stored element map (same for all family related to one ancestor).
const MappingEdge2dmidline () const
void neighbour (uint i, const ThinSheetQuad2d *neigbour)
const ThinSheetQuad2dneighbour (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

Quad2dcreateChild_ (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.
MappingQuad2dmap_
 Pointer to the element map.

Private Member Functions

virtual Quad2dcreateChild_ (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 MappingEdge2dedges_ [2]
 Edge parametrisation of lower and upper edge (0 and 2), parallel to midline.
const ThinSheetQuad2dfather_
 Pointer to ancestor.
const MappingEdge2dmidline_
 Parametrisation of mid line.
const ThinSheetQuad2dneighbour_ [2]
 Pointer to a sibling.

Friends

std::ostream & operator<< (std::ostream &os, const Quad2d::Index &i)

Detailed Description

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.

Author:
Kersten Schmidt, 2006

Definition at line 294 of file thinSheetGeom.hh.


Constructor & Destructor Documentation

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.

Parameters:
cntrTopological information of the quadrilateral
midlinemapping to the mid line
dthickness
virtual concepts::ThinSheetQuad2d::~ThinSheetQuad2d ( ) [virtual]
concepts::ThinSheetQuad2d::ThinSheetQuad2d ( Quad cntr,
const ThinSheetQuad2d father,
const Index idx 
) [private]

Pointer to the first child.

The children are stored in a linked list. Private copy constructor.

Parameters:
cntrThe edge which should be represented
mapElement map of the edge
lLevel
iIndex (0 or 1), ie. the left or right child

Member Function Documentation

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.

Here is the call graph for this function:

Real2d concepts::Quad2d::chi ( Real  xi,
Real  eta 
) const [inherited]

Evaluates the element map.

Maps a point from the the reference coordinates in [0,1]2 onto the physical coordinates.

Returns:
Point in 2D in physical coordinates.
Parameters:
xi$\in [0,1]$
eta$\in [0,1]$
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.

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

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

Parameters:
iIndex of the child to be returned.
xi,etalocal coordinates, where the child is located
xiC,etaClocal coordinates in the child

Definition at line 345 of file cell2D.hh.

Here is the call graph for this function:

Quad2d* concepts::Quad2d::clone ( Quad cntr,
MappingQuad2d map 
) const [inline, inherited]

Returns a copy of itself.

Definition at line 451 of file cell2D.hh.

Here is the call graph for this function:

Quad & concepts::Quad2d::connector ( ) const [inline, virtual, inherited]

Returns the quadrilateral connector (topology)

Implements concepts::Cell2.

Definition at line 518 of file cell2D.hh.

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.

const Real concepts::ThinSheetQuad2d::curvature ( const Real  xi,
uint  n = 0 
) const
virtual const Real concepts::ThinSheetQuad2d::d ( const Real xi) const [inline, virtual]

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.

Parameters:
iIndex of the child to be returned. Returns a child. If no children exist, none are created and 0 is returned.
iIndex 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.

Real3d concepts::Quad2d::elemMap ( const Real2d coord_local) const [inline, virtual, inherited]

Element map from point local coordinates in 2D.

Implements concepts::Cell2.

Definition at line 375 of file cell2D.hh.

Here is the call graph for this function:

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.

Here is the call graph for this function:

virtual Real3d concepts::Cell::elemMap ( const Real  coord_local) const [virtual, inherited]

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()

Definition at line 474 of file cell2D.hh.

bool concepts::Quad2d::hasChildren ( ) const [inline, inherited]

Returns true if there is a least one child.

Reimplemented from concepts::Cell.

Definition at line 335 of file cell2D.hh.

virtual std::ostream& concepts::ThinSheetQuad2d::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::Quad2d.

MapReal2d concepts::Quad2d::jacobian ( const Real  xi,
const Real  eta 
) const [inherited]

Computes the Jacobian for xi, eta $\in [0,1]$.

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 $H : \hat K \rightarrow \hat K'$ be the subdivision map in the reference coordinates (0,1)2 and $F_K : \hat K \rightarrow K$, $F_{K'} : \hat K \rightarrow K'$ the element maps of K and K' respectively. Then,

\[F_K : \hat K' \rightarrow K' \quad \text{and} \quad F_K \circ H = F_{K'}. \]

The subdivision map H in reference coordinates is

\[H : \vec\xi \mapsto \begin{pmatrix} a & 0 \\ 0 & b \end{pmatrix} \vec \xi \]

where $a = 2^{-l_0}$, $b = 2^{-l_1}$. $\vec l = (l_0, l_1)$ is the level of the cell with respect to the cell in the initial mesh. The derivative of H is $dH = \begin{pmatrix} a & 0 \\ 0 & b \end{pmatrix}$.

Then, the Jacobian of $F_{K'}$ is

\[dF_{K'} = dF_K \circ H \cdot dH. \]

The part $dF_K \circ H$ (without H) is computed by the element map and the part $\cdot dH$ is computed in jacobian().

Real concepts::Quad2d::jacobianDeterminant ( const Real  xi,
const Real  eta 
) const [inline, inherited]

Returns the determinant of the Jacobian for xi, eta $\in [0,1]$.

Definition at line 413 of file cell2D.hh.

Here is the call graph for this function:

MapReal2d concepts::Quad2d::jacobianInverse ( const Real  xi,
const Real  eta 
) const [inline, inherited]

Returns the inverse of the Jacobian for xi, eta $\in [0,1]$.

Definition at line 406 of file cell2D.hh.

Here is the call graph for this function:

Level<2> concepts::Quad2d::level ( ) const [inline, inherited]

Returns the level of the cell.

The level describes the refinements in both directions with respect to the parent cell in the initial mesh. This level information is taken into account when evaluating the element map or the Jacobian.

Definition at line 429 of file cell2D.hh.

Real concepts::Quad2d::lineElement ( const Real  xi,
const uint  edge 
) const [inherited]

Computes the differential element on an edge.

xi stand for one of the variables

\[\xi\]

,

\[\eta\]

depending on the edge.

const MappingQuad2d* concepts::Quad2d::map ( ) const [inline, inherited]

Returns the stored element map (same for all family related to one ancestor).

Definition at line 437 of file cell2D.hh.

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.

Parameters:
strategyPointer to an instance of a subdivision strategy.
Exceptions:
StrategyChangeif 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.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Quad2d::Index i 
) [friend, inherited]

Member Data Documentation

Thickness.

Definition at line 341 of file thinSheetGeom.hh.

Edge parametrisation of lower and upper edge (0 and 2), parallel to midline.

Definition at line 347 of file thinSheetGeom.hh.

Pointer to ancestor.

Definition at line 355 of file thinSheetGeom.hh.

Index concepts::Quad2d::idx_ [protected, inherited]

Index of this element.

Definition at line 481 of file cell2D.hh.

MappingQuad2d* concepts::Quad2d::map_ [protected, inherited]

Pointer to the element map.

Definition at line 479 of file cell2D.hh.

Parametrisation of mid line.

Definition at line 343 of file thinSheetGeom.hh.

Pointer to a sibling.

Definition at line 353 of file thinSheetGeom.hh.


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

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