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

Classes | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
concepts::Circle Class Reference

Mesh for a circle. More...

#include <circle.hh>

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

List of all members.

Classes

class  S
 scanner over the cells More...

Public Member Functions

void addInnerBoundary (const Sequence< Edge2d * > &innerBoundary)
 Adds clones of the edges in innerBoundary as new inner boundary.
 Circle (const Real2d center, const Real r, const uint n, const Attribute attrib=0, const Real phi0=0, const Attribute edgAttr=0)
 V2 constructor for circle with uniform subdivision.
 Circle (const Array< Real > rings, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle and rings around.
 Circle (const Array< Real > rings, const Array< uint > ringAttrib, const Array< uint > ringEdgeAttrib, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle and rings around.
 Circle (const Real2d center, const Real innerRadius, const Real outerRadius, const uint n, const Attribute attrib=0, const Real phi0=0)
 V3 constructor for circular sheet with uniform subdivision.
 Circle (const Real innerRadius, const Array< Real > rings)
 V1 constructor for circle and rings with hole in the middle.
 Circle (const Real r=1.0, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle with 5 cells.
 Circle (const Real innerRadius, const Array< Real > rings, const Array< uint > ringAttrib)
 V1 constructor for circle and rings with hole in the middle.
 Circle (const Array< Real > rings, const Array< uint > ringAttrib, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle and rings around.
virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
const Sequence< Sequence
< Edge2d * > > & 
innerBoundary () const
uint ncell () const
 Returns the number of cells in the mesh.
const Sequence< Edge2d * > & outerBoundary () const
Scan2scan ()
 Returns a scanner over the cells of the mesh.
virtual ~Circle ()

Protected Attributes

Sequence< Sequence< Edge2d * > > innerBoundary_
 Several internal boundaries given by edges in 2D.
Sequence< Edge2d * > outerBoundary_
 Outer boundary given by edges in 2D.

Private Member Functions

void construct_ (const Array< Real > rings, const Real ratio, const Real innerRadius, const std::map< uint, uint > *const attrib=0, const std::map< uint, uint > *const edgeAttrib=0, const bool hole=false)
 For variant V1: Constructs the rings.
Real2d point_ (const uint n, const Real r) const
 For variant V1: Coordinates of a point in direction x, y, -x or y with distance r from 0.

Private Attributes

Array< Quad2d * > cell_
 Cells.
Array< Edge * > edg_
Array< CircleMappingEdge2d * > edges_
 Edge parametrisation.
uint ncell_
Array< Quad * > quad_
Array< Vertex * > vtx_

Detailed Description

Mesh for a circle.

Variant V1: Four sectors with possible shells, centered at (0,0). Variant V2: Even number of sectors, no shells, centered somewhere. Variant V3: Circular strip with hole, somehow subdivided, centered somewhere. Variant V4: Only circular edges, somehow subdivided.

Variant V1: In the middle is one quadrilateral with possible curved edges. Around are shells of four quads. In minimum there are 5 cells. In the shells the local x-direction is in radial direction, In the inner quadrilateral in 45°-direction (to top right).

The edges at the boundary have attribute 1 to 4.

Variant V2: In the middle there is a structured grid with number of surface nodes equal to the number of nodes on the circle.

Variant V3: Circular strip with hole in the middle with prescribed number of surface modes.

All edges are oriented counter-clockwise, i.e. the normal vector points to the outer domain.

Author:
Kersten Schmidt, 2005
Examples:

BGT_0.cc, and exactDtN.cc.

Definition at line 45 of file circle.hh.


Constructor & Destructor Documentation

concepts::Circle::Circle ( const Real  r = 1.0,
const Real  ratio = 0.5,
const Real  innerRadius = 0.0 
)

V1 constructor for circle with 5 cells.

Parameters:
rradius of the circle
ratiodistance of innermost quad from (0,0), relative to first radius
innerRadiusradius of the edges of the innermost quad, the quad hasn't to be a circle itself, 0.0 means straigt line

The edges on the outer boundaries have attribute 1, the cells have no attributes.

concepts::Circle::Circle ( const Array< Real rings,
const Real  ratio = 0.5,
const Real  innerRadius = 0.0 
)

V1 constructor for circle and rings around.

Parameters:
ringsradia of the circles
ratiodistance of innermost quad from (0,0), relative to first radius
innerRadiusradius of the edges of the innermost quad, the quad hasn't to be a circle itself, 0.0 means straigt line
concepts::Circle::Circle ( const Array< Real rings,
const Array< uint >  ringAttrib,
const Real  ratio = 0.5,
const Real  innerRadius = 0.0 
)

V1 constructor for circle and rings around.

Parameters:
ringsradia of the circles
ringAttribdefinition of attributes for the cells of one ring beginning from 0 for the first circle
ratiodistance of innermost quad from (0,0), relative to first radius
innerRadiusradius of the edges of the innermost quad, the quad hasn't to be a circle itself, 0.0 means straigt line
concepts::Circle::Circle ( const Array< Real rings,
const Array< uint >  ringAttrib,
const Array< uint >  ringEdgeAttrib,
const Real  ratio = 0.5,
const Real  innerRadius = 0.0 
)

V1 constructor for circle and rings around.

Parameters:
ringsradia of the circles
ratiodistance of innermost quad from (0,0), relative to first radius
ringAttribdefinition of attributes for the cells of one ring beginning from 0 for the first circle
ringEdgeAttribdefinition of attributes for the edges around one ring beginning from 0 for the first circle
innerRadiusradius of the edges of the innermost quad, the quad hasn't to be a circle itself, 0.0 means straigt line
concepts::Circle::Circle ( const Real  innerRadius,
const Array< Real rings 
)

V1 constructor for circle and rings with hole in the middle.

Parameters:
innerRadiusradius of the inner most circle
ringsradia of the circles
concepts::Circle::Circle ( const Real  innerRadius,
const Array< Real rings,
const Array< uint >  ringAttrib 
)

V1 constructor for circle and rings with hole in the middle.

Parameters:
innerRadiusradius of the inner most circle
ringsradia of the circles
ringAttribdefinition of attributes for the cells of one ring beginning from 0 for the first circle

The edges of the outer boundary get attribute 1, those of the inner boundary attribute 2.

concepts::Circle::Circle ( const Real2d  center,
const Real  r,
const uint  n,
const Attribute  attrib = 0,
const Real  phi0 = 0,
const Attribute  edgAttr = 0 
)

V2 constructor for circle with uniform subdivision.

Parameters:
centercenter of the circle
rradius
nnumber of nodes on the circle (even number)
attribattribute of the quadrilaterals
phi0angle of first node
edgAttrattribute of the boundary edges
concepts::Circle::Circle ( const Real2d  center,
const Real  innerRadius,
const Real  outerRadius,
const uint  n,
const Attribute  attrib = 0,
const Real  phi0 = 0 
)

V3 constructor for circular sheet with uniform subdivision.

If inner and outer radious are equal only the edges are constructed and can be accessed via innerBoundary() or outerBoundary().

Parameters:
centercenter of the circle
innerRadiusinner Radius
outerRadiusouter Radius
nnumber of nodes on the circle
attribattribute of the quadrilaterals
phi0angle of first node
virtual concepts::Circle::~Circle ( ) [virtual]

Member Function Documentation

void concepts::InnerOuterBoundary2d::addInnerBoundary ( const Sequence< Edge2d * > &  innerBoundary) [inherited]

Adds clones of the edges in innerBoundary as new inner boundary.

void concepts::Circle::construct_ ( const Array< Real rings,
const Real  ratio,
const Real  innerRadius,
const std::map< uint, uint > *const  attrib = 0,
const std::map< uint, uint > *const  edgeAttrib = 0,
const bool  hole = false 
) [private]

For variant V1: Constructs the rings.

Parameters:
attribattributes of some cells
edgeAttribattributes of some edges
holeif there is a hole in the geometry, innermost 5 quads are not constructed
virtual std::ostream& concepts::Circle::info ( std::ostream &  os) const [virtual]

Returns information in an output stream.

Reimplemented from concepts::Mesh.

const Sequence<Sequence<Edge2d*> >& concepts::InnerOuterBoundary2d::innerBoundary ( ) const [inline, inherited]

Definition at line 129 of file mesh.hh.

uint concepts::Circle::ncell ( ) const [inline, virtual]

Returns the number of cells in the mesh.

Implements concepts::Mesh.

Definition at line 152 of file circle.hh.

const Sequence<Edge2d*>& concepts::InnerOuterBoundary2d::outerBoundary ( ) const [inline, inherited]

Definition at line 126 of file mesh.hh.

Real2d concepts::Circle::point_ ( const uint  n,
const Real  r 
) const [private]

For variant V1: Coordinates of a point in direction x, y, -x or y with distance r from 0.

Scan2* concepts::Circle::scan ( ) [inline, virtual]

Returns a scanner over the cells of the mesh.

Postcondition:
The scanner must be deleted after usage. This has to be done by the user.

Implements concepts::Mesh2.

Definition at line 153 of file circle.hh.


Member Data Documentation

Cells.

Definition at line 182 of file circle.hh.

Definition at line 175 of file circle.hh.

Edge parametrisation.

Definition at line 179 of file circle.hh.

Several internal boundaries given by edges in 2D.

Definition at line 139 of file mesh.hh.

uint concepts::Circle::ncell_ [private]

Definition at line 172 of file circle.hh.

Outer boundary given by edges in 2D.

Definition at line 137 of file mesh.hh.

Definition at line 176 of file circle.hh.

Definition at line 174 of file circle.hh.


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

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