Mesh for a circle. More...

#include <circle.hh>

Inheritance diagram for concepts::Circle:
concepts::Mesh2withBoundary concepts::Mesh2 concepts::InnerOuterBoundary2d concepts::Mesh concepts::OutputOperator

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. More...
 
 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. More...
 
 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. More...
 
 Circle (const Array< Real > rings, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle and rings around. More...
 
 Circle (const Real innerRadius, const Array< Real > rings)
 V1 constructor for circle and rings with hole in the middle. More...
 
 Circle (const Real innerRadius, const Array< Real > rings, const Array< uint > ringAttrib)
 V1 constructor for circle and rings with hole in the middle. More...
 
 Circle (const Real r=1.0, const Real ratio=0.5, const Real innerRadius=0.0)
 V1 constructor for circle with 5 cells. More...
 
 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. More...
 
 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. More...
 
virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 
const Sequence< Sequence< Edge2d * > > & innerBoundary () const
 
uint ncell () const
 Returns the number of cells in the mesh. More...
 
const Sequence< Edge2d * > & outerBoundary () const
 
Scan2scan ()
 Returns a scanner over the cells of the mesh. More...
 
virtual ~Circle ()
 

Protected Attributes

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

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

Private Attributes

Array< Quad2d * > cell_
 Cells. More...
 
Array< Edge * > edg_
 
Array< CircleMappingEdge2d * > edges_
 Edge parametrisation. More...
 
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 47 of file circle.hh.

Constructor & Destructor Documentation

◆ Circle() [1/8]

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.

◆ Circle() [2/8]

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

◆ Circle() [3/8]

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

◆ Circle() [4/8]

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

◆ Circle() [5/8]

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

◆ Circle() [6/8]

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.

◆ Circle() [7/8]

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

◆ Circle() [8/8]

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

◆ ~Circle()

virtual concepts::Circle::~Circle ( )
virtual

Member Function Documentation

◆ addInnerBoundary()

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

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

◆ construct_()

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

◆ info()

virtual std::ostream& concepts::Circle::info ( std::ostream &  os) const
virtual

Returns information in an output stream.

Reimplemented from concepts::Mesh.

◆ innerBoundary()

const Sequence<Sequence<Edge2d*> >& concepts::InnerOuterBoundary2d::innerBoundary ( ) const
inlineinherited

Definition at line 131 of file mesh.hh.

◆ ncell()

uint concepts::Circle::ncell ( ) const
inlinevirtual

Returns the number of cells in the mesh.

Implements concepts::Mesh.

Definition at line 154 of file circle.hh.

◆ outerBoundary()

const Sequence<Edge2d*>& concepts::InnerOuterBoundary2d::outerBoundary ( ) const
inlineinherited

Definition at line 128 of file mesh.hh.

◆ point_()

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.

◆ scan()

Scan2* concepts::Circle::scan ( )
inlinevirtual

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 155 of file circle.hh.

Member Data Documentation

◆ cell_

Array<Quad2d*> concepts::Circle::cell_
private

Cells.

Definition at line 184 of file circle.hh.

◆ edg_

Array<Edge*> concepts::Circle::edg_
private

Definition at line 177 of file circle.hh.

◆ edges_

Array<CircleMappingEdge2d*> concepts::Circle::edges_
private

Edge parametrisation.

Definition at line 181 of file circle.hh.

◆ innerBoundary_

Sequence<Sequence<Edge2d*> > concepts::InnerOuterBoundary2d::innerBoundary_
protectedinherited

Several internal boundaries given by edges in 2D.

Definition at line 141 of file mesh.hh.

◆ ncell_

uint concepts::Circle::ncell_
private

Definition at line 174 of file circle.hh.

◆ outerBoundary_

Sequence<Edge2d*> concepts::InnerOuterBoundary2d::outerBoundary_
protectedinherited

Outer boundary given by edges in 2D.

Definition at line 139 of file mesh.hh.

◆ quad_

Array<Quad*> concepts::Circle::quad_
private

Definition at line 178 of file circle.hh.

◆ vtx_

Array<Vertex*> concepts::Circle::vtx_
private

Definition at line 176 of file circle.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich