BoundaryConditionListExpressionSet Class Reference

#include <BoundaryConditionListExpression.hpp>

Inheritance diagram for BoundaryConditionListExpressionSet:

Inheritance graph
[legend]
Collaboration diagram for BoundaryConditionListExpressionSet:

Collaboration graph
[legend]

List of all members.

Public Types

enum  BoundaryConditionListType { set, variable, undefined }
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 ()
void add (ReferenceCounting< BoundaryConditionExpression > b)
 BoundaryConditionListExpressionSet (const BoundaryConditionListExpressionSet &e)
 BoundaryConditionListExpressionSet ()
 ~BoundaryConditionListExpressionSet ()
ReferenceCounting
< BoundaryConditionSet
boundaryConditionSet ()
const
BoundaryConditionListExpression::BoundaryConditionListType
boundaryConditionListType () const
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
< BoundaryConditionSet
__boundaryConditionSet

Private Types

typedef std::list
< ReferenceCounting
< BoundaryConditionExpression > > 
BoundaryConditionExpressionList

Private Member Functions

std::ostream & put (std::ostream &os) const
 Writes *this to the output os.
void __splitBoundaryList (BoundaryConditionSet &bcSet, ConstReferenceCounting< PDECondition > pde, ConstReferenceCounting< Boundary > b)

Private Attributes

BoundaryConditionExpressionList __boundaryConditionExpressionList

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

This class defines the base class of BoundaryConditionList expressions

Author:
Stephane Del Pino

Definition at line 83 of file BoundaryConditionListExpression.hpp.


Member Typedef Documentation

Definition at line 87 of file BoundaryConditionListExpression.hpp.


Member Enumeration Documentation

Enumerator:
set 
variable 
undefined 

Definition at line 41 of file BoundaryConditionListExpression.hpp.

00041                                  {
00042     set,
00043     variable,
00044     undefined
00045   };

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

BoundaryConditionListExpressionSet::BoundaryConditionListExpressionSet ( const BoundaryConditionListExpressionSet e  ) 

BoundaryConditionListExpressionSet::BoundaryConditionListExpressionSet (  ) 

BoundaryConditionListExpressionSet::~BoundaryConditionListExpressionSet (  ) 

Definition at line 135 of file BoundaryConditionListExpression.cpp.

00136 {
00137   ;
00138 }


Member Function Documentation

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

Writes *this to the output os.

Implements Expression.

Definition at line 90 of file BoundaryConditionListExpression.hpp.

References __boundaryConditionExpressionList.

00091   {
00092     for (BoundaryConditionExpressionList::const_iterator
00093            i = __boundaryConditionExpressionList.begin();
00094          i != __boundaryConditionExpressionList.end(); ++i)
00095       os  << (**i) << '\n';
00096     return os;
00097   }

void BoundaryConditionListExpressionSet::__splitBoundaryList ( BoundaryConditionSet bcSet,
ConstReferenceCounting< PDECondition pde,
ConstReferenceCounting< Boundary b 
) [private]

Definition at line 57 of file BoundaryConditionListExpression.cpp.

References BoundaryConditionSet::addBoundaryCondition(), Expression::boundary, Boundary::list, and BoundaryList::list().

Referenced by execute().

00060 {
00061   const BoundaryList& boundaryList = dynamic_cast<const BoundaryList&>(*b);
00062 
00063   for (BoundaryList::List::const_iterator i = boundaryList.list().begin();
00064        i != boundaryList.list().end(); ++i) {
00065     ConstReferenceCounting<Boundary> boundary = *i;
00066     if (boundary->type() == Boundary::list) {
00067       this->__splitBoundaryList(bcSet, pde, boundary);
00068     } else {
00069       bcSet.addBoundaryCondition(new BoundaryCondition(pde, boundary));
00070     }
00071   }
00072 }

Here is the call graph for this function:

bool BoundaryConditionListExpressionSet::hasPOVBoundary (  )  const [virtual]

Implements BoundaryConditionListExpression.

Definition at line 75 of file BoundaryConditionListExpression.cpp.

References __boundaryConditionExpressionList.

00076 {
00077   for (BoundaryConditionExpressionList::const_iterator
00078          i = __boundaryConditionExpressionList.begin();
00079        i != __boundaryConditionExpressionList.end(); ++i) {
00080     if ((*i)->hasPOVBoundary()) {
00081       return true;
00082     }
00083   }
00084   return false;
00085 }

bool BoundaryConditionListExpressionSet::hasPredefinedBoundary (  )  const [virtual]

Implements BoundaryConditionListExpression.

Definition at line 88 of file BoundaryConditionListExpression.cpp.

References __boundaryConditionExpressionList.

00089 {
00090   for (BoundaryConditionExpressionList::const_iterator
00091          i = __boundaryConditionExpressionList.begin();
00092        i != __boundaryConditionExpressionList.end(); ++i) {
00093     if ((*i)->hasPredefinedBoundary()) {
00094       return true;
00095     }
00096   }
00097   return false;
00098 }

void BoundaryConditionListExpressionSet::execute (  )  [virtual]

Executes the expression.

Implements Expression.

Definition at line 100 of file BoundaryConditionListExpression.cpp.

References __boundaryConditionExpressionList, BoundaryConditionListExpression::__boundaryConditionSet, __splitBoundaryList(), BoundaryConditionSet::addBoundaryCondition(), and Boundary::list.

00101 {
00102   __boundaryConditionSet = new BoundaryConditionSet();
00103   BoundaryConditionSet& bcSet = (*__boundaryConditionSet);
00104 
00105   for (BoundaryConditionExpressionList::iterator
00106          i = __boundaryConditionExpressionList.begin();
00107        i != __boundaryConditionExpressionList.end(); ++i) {
00108     (*i)->execute();
00109     ConstReferenceCounting<BoundaryCondition> b = (*i)->boundaryCondition();
00110     if (b->boundary()->type() == Boundary::list) {
00111       ConstReferenceCounting<Boundary> bc = b->boundary();
00112       ConstReferenceCounting<PDECondition> pde = b->condition();
00113 
00114       this->__splitBoundaryList(bcSet, pde, bc);
00115     } else {
00116       bcSet.addBoundaryCondition((*i)->boundaryCondition());
00117     }
00118   }
00119 }

Here is the call graph for this function:

void BoundaryConditionListExpressionSet::add ( ReferenceCounting< BoundaryConditionExpression b  )  [inline, virtual]

Implements BoundaryConditionListExpression.

Definition at line 109 of file BoundaryConditionListExpression.hpp.

References __boundaryConditionExpressionList.

00110   {
00111     __boundaryConditionExpressionList.push_back(b);
00112   }

ReferenceCounting< BoundaryConditionSet > BoundaryConditionListExpression::boundaryConditionSet (  )  [inherited]

const BoundaryConditionListExpression::BoundaryConditionListType& BoundaryConditionListExpression::boundaryConditionListType (  )  const [inline, inherited]

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


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

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