BoundaryExpressionSurfaceMesh Class Reference

#include <BoundaryExpressionSurfaceMesh.hpp>

Inheritance diagram for BoundaryExpressionSurfaceMesh:

Inheritance graph
[legend]
Collaboration diagram for BoundaryExpressionSurfaceMesh:

Collaboration graph
[legend]

List of all members.

Public Types

enum  BoundaryType {
  undefined, surfaceMesh, povray, references,
  list, variable
}
enum  Type {
  boolean, boundary, boundaryCondition, boundaryConditionList,
  domain, field, fieldlist, function,
  ifstreamexpression, integrated, integratedOperator, insideExpression,
  insideListExpression, istreamexpression, istreamExpressionList, linearExp,
  mesh, multiLinearExp, multiLinearExpSum, multiLinearForm,
  multiLinearFormSum, ofstreamexpression, option, ostreamexpression,
  ostreamExpressionList, pdeEquation, pdeOperator, pdeOperatorSum,
  pdeProblem, problem, real, scene,
  solver, solverOptions, string, subOption,
  subOptionList, testFunctionList, unknown, unknownList,
  variationalFormula, variationalBilinearOperator, variationalLinearOperator, variationalDirichlet,
  vector3
}

Public Member Functions

bool hasPOVBoundary () const
bool hasPredefinedBoundary () const
void execute ()
 BoundaryExpressionSurfaceMesh (ReferenceCounting< MeshExpression > m)
 BoundaryExpressionSurfaceMesh (const BoundaryExpressionSurfaceMesh &b)
 ~BoundaryExpressionSurfaceMesh ()
const
BoundaryExpression::BoundaryType
boundaryType () const
ReferenceCounting< Boundaryboundary ()
const Expression::Typetype () const
 return the type.

Protected Member Functions

virtual std::istream & _get (std::istream &is)
 Read *this to the input is.

Static Protected Member Functions

static Expression::Type getType (ReferenceCounting< Expression > e1, ReferenceCounting< Expression > e2)

Protected Attributes

ReferenceCounting< Boundary__boundary

Private Member Functions

std::ostream & put (std::ostream &os) const

Private Attributes

ReferenceCounting< MeshExpression__surfaceMeshExpression
bool __isPredefinedSurfaceMesh

Friends

std::ostream & operator<< (std::ostream &os, const Expression &e)
 this function allows to output expressions.
std::istream & operator>> (std::istream &is, Expression &e)
 this function allows to read expressions from streams


Detailed Description

Definition at line 32 of file BoundaryExpressionSurfaceMesh.hpp.


Member Enumeration Documentation

Enumerator:
undefined 
surfaceMesh 
povray 
references 
list 
variable 

Definition at line 43 of file BoundaryExpression.hpp.

00043                     {
00044     undefined,
00045     surfaceMesh,
00046     povray,
00047     references,
00048     list,
00049     variable
00050   };

enum Expression::Type [inherited]

Enumerator:
boolean 
boundary 
boundaryCondition 
boundaryConditionList 
domain 
field 
fieldlist 
function 
ifstreamexpression 
integrated 
integratedOperator 
insideExpression 
insideListExpression 
istreamexpression 
istreamExpressionList 
linearExp 
mesh 
multiLinearExp 
multiLinearExpSum 
multiLinearForm 
multiLinearFormSum 
ofstreamexpression 
option 
ostreamexpression 
ostreamExpressionList 
pdeEquation 
pdeOperator 
pdeOperatorSum 
pdeProblem 
problem 
real 
scene 
solver 
solverOptions 
string 
subOption 
subOptionList 
testFunctionList 
unknown 
unknownList 
variationalFormula 
variationalBilinearOperator 
variationalLinearOperator 
variationalDirichlet 
vector3 

Reimplemented in IFStreamExpression, OFStreamExpression, and UnknownExpression.

Definition at line 42 of file Expression.hpp.

00042              {
00043     boolean,
00044     boundary,
00045     boundaryCondition,
00046     boundaryConditionList,
00047 
00048     domain,
00049 
00050     field,
00051     fieldlist,
00052     function,
00053 
00054     ifstreamexpression,
00055     integrated,
00056     integratedOperator,
00057     insideExpression,
00058     insideListExpression,
00059     istreamexpression,
00060     istreamExpressionList,
00061 
00062     linearExp,
00063 
00064     mesh,
00065     multiLinearExp,
00066     multiLinearExpSum,
00067     multiLinearForm,
00068     multiLinearFormSum,
00069 
00070     ofstreamexpression,
00071     option,
00072     ostreamexpression,
00073     ostreamExpressionList,
00074 
00075     pdeEquation,
00076     pdeOperator,
00077     pdeOperatorSum,
00078     pdeProblem,
00079     problem,
00080 
00081     real,
00082 
00083     scene,
00084     solver,
00085     solverOptions,
00086     string,
00087     subOption,
00088     subOptionList,
00089 
00090     testFunctionList,
00091 
00092     unknown,
00093     unknownList,
00094 
00095     variationalFormula,
00096     variationalBilinearOperator,
00097     variationalLinearOperator,
00098     variationalDirichlet,
00099     vector3
00100   };


Constructor & Destructor Documentation

BoundaryExpressionSurfaceMesh::BoundaryExpressionSurfaceMesh ( ReferenceCounting< MeshExpression m  ) 

Constructor

Parameters:
m the mesh

Definition at line 94 of file BoundaryExpressionSurfaceMesh.cpp.

BoundaryExpressionSurfaceMesh::BoundaryExpressionSurfaceMesh ( const BoundaryExpressionSurfaceMesh b  ) 

Copy constructor

Parameters:
b given boundary expression

Definition at line 103 of file BoundaryExpressionSurfaceMesh.cpp.

00104   : BoundaryExpression(m),
00105     __surfaceMeshExpression(m.__surfaceMeshExpression),
00106     __isPredefinedSurfaceMesh(false)
00107 {
00108   ;
00109 }

BoundaryExpressionSurfaceMesh::~BoundaryExpressionSurfaceMesh (  ) 

Destuctor

Definition at line 112 of file BoundaryExpressionSurfaceMesh.cpp.

00113 {
00114   ;
00115 }


Member Function Documentation

std::ostream & BoundaryExpressionSurfaceMesh::put ( std::ostream &  os  )  const [private, virtual]

Writes the expression to a stream

Parameters:
os given stream
Returns:
os

Implements Expression.

Definition at line 32 of file BoundaryExpressionSurfaceMesh.cpp.

00033 {
00034   os << "Surface Mesh";
00035   return os;
00036 }

bool BoundaryExpressionSurfaceMesh::hasPOVBoundary (  )  const [inline, virtual]

Checks if the boundary is a POVRay boundary

Returns:
false

Implements BoundaryExpression.

Definition at line 57 of file BoundaryExpressionSurfaceMesh.hpp.

00058   {
00059     return false;
00060   }

bool BoundaryExpressionSurfaceMesh::hasPredefinedBoundary (  )  const [inline, virtual]

Checks that the boundary is a predefined mesh boundary

Returns:
true

Implements BoundaryExpression.

Definition at line 67 of file BoundaryExpressionSurfaceMesh.hpp.

References __isPredefinedSurfaceMesh.

00068   {
00069     return __isPredefinedSurfaceMesh;
00070   }

void BoundaryExpressionSurfaceMesh::execute (  )  [virtual]

Executes the expression

Implements Expression.

Definition at line 40 of file BoundaryExpressionSurfaceMesh.cpp.

References BoundaryExpression::__boundary, __isPredefinedSurfaceMesh, __surfaceMeshExpression, ASSERT, MeshOfHexahedra::borderMesh(), MeshOfTetrahedra::borderMesh(), Structured3DMesh::borderMesh(), Mesh::cartesianHexahedraMesh, Mesh::family(), Mesh::hexahedraMesh, Expression::mesh, Mesh::surface, Mesh::surfaceMeshTriangles, Mesh::tetrahedraMesh, Mesh::type(), ErrorHandler::unexpected, and Mesh::volume.

00041 {
00042   __surfaceMeshExpression->execute();
00043 
00044   const Mesh* m = __surfaceMeshExpression->mesh();
00045 
00046   switch (m->family()) {
00047   case Mesh::volume: {
00048     // If mesh is a volume it is not a predefined surface mesh
00049     __isPredefinedSurfaceMesh = false;
00050 
00051     switch (m->type()) {
00052     case Mesh::cartesianHexahedraMesh: {
00053       const Structured3DMesh& mesh = dynamic_cast<const Structured3DMesh&>(*m);
00054       const SurfaceMesh* surface = mesh.borderMesh();
00055       __boundary = new BoundarySurfaceMesh(surface);
00056       break;
00057     }
00058     case Mesh::tetrahedraMesh: {
00059       const MeshOfTetrahedra& mesh = dynamic_cast<const MeshOfTetrahedra&>(*m);
00060       const SurfaceMesh* surface = mesh.borderMesh();
00061       __boundary = new BoundarySurfaceMesh(surface);
00062       break;
00063     }
00064     case Mesh::hexahedraMesh: {
00065       const MeshOfHexahedra& mesh = dynamic_cast<const MeshOfHexahedra&>(*m);
00066       const SurfaceMesh* surface = mesh.borderMesh();
00067       __boundary = new BoundarySurfaceMesh(surface);
00068       break;
00069     }
00070     default: {
00071       throw ErrorHandler(__BASE_FILE__,__LINE__,
00072                          "Unexpected volume mesh type",
00073                          ErrorHandler::unexpected);
00074     }
00075     }
00076     break;
00077   }
00078   case Mesh::surface: {
00079     ASSERT(m->type() == Mesh::surfaceMeshTriangles);
00080     __isPredefinedSurfaceMesh = true;
00081     __boundary
00082       = new BoundarySurfaceMesh(dynamic_cast<const SurfaceMeshOfTriangles*>(m));
00083     break;
00084   }
00085   default: {
00086     throw ErrorHandler(__BASE_FILE__,__LINE__,
00087                        "Unexpected mesh family",
00088                        ErrorHandler::unexpected);
00089   }
00090   }
00091 }

Here is the call graph for this function:

const BoundaryExpression::BoundaryType& BoundaryExpression::boundaryType (  )  const [inline, inherited]

Read only access to the type of the boundary

Returns:
__boundaryType

Definition at line 80 of file BoundaryExpression.hpp.

References BoundaryExpression::__boundaryType.

00081   {
00082     return __boundaryType;
00083   }

ReferenceCounting< Boundary > BoundaryExpression::boundary (  )  [inherited]

Access to the boundary

Returns:
__boundary

Definition at line 25 of file BoundaryExpression.cpp.

References BoundaryExpression::__boundary.

Referenced by BoundaryExpressionList::add().

00026 {
00027   return __boundary;
00028 }

static Expression::Type Expression::getType ( ReferenceCounting< Expression e1,
ReferenceCounting< Expression e2 
) [inline, static, protected, inherited]

Traits conversion of types.

Todo:
IMPLEMENT IT.

Definition at line 112 of file Expression.hpp.

References Expression::real.

00114   {
00115     return Expression::real;
00116   }

virtual std::istream& Expression::_get ( std::istream &  is  )  [inline, protected, virtual, inherited]

Read *this to the input is.

Reimplemented in IStreamExpressionList, and RealExpressionVariable.

Definition at line 122 of file Expression.hpp.

References ErrorHandler::normal.

00123   {
00124     throw ErrorHandler(__FILE__,__LINE__,
00125                        "operator >> is not supported for this expression",
00126                        ErrorHandler::normal);
00127     return is;
00128   }

const Expression::Type& Expression::type (  )  const [inline, inherited]

return the type.

Reimplemented in FunctionExpression.

Definition at line 132 of file Expression.hpp.

References Expression::__type.

Referenced by MeshExpressionExtract::execute().

00133   {
00134     return __type;
00135   }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Expression e 
) [friend, inherited]

this function allows to output expressions.

Definition at line 143 of file Expression.hpp.

00144   {
00145     return e.put(os);
00146   }

std::istream& operator>> ( std::istream &  is,
Expression e 
) [friend, inherited]

this function allows to read expressions from streams

Definition at line 149 of file Expression.hpp.

00150   {
00151     return e._get(is);
00152   }


Member Data Documentation

surface mesh expression

Definition at line 37 of file BoundaryExpressionSurfaceMesh.hpp.

Referenced by execute().

tells if the mesh is a predefined surface mesh

Definition at line 39 of file BoundaryExpressionSurfaceMesh.hpp.

Referenced by execute(), and hasPredefinedBoundary().


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

Generated on Wed Nov 19 00:04:56 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6