VariationalFdxGVExpression Class Reference

$ b(v) = \int f\partial_{x_i} g v $ More...

#include <VariationalOperatorExpression.hpp>

Inheritance diagram for VariationalFdxGVExpression:

Inheritance graph
[legend]
Collaboration diagram for VariationalFdxGVExpression:

Collaboration graph
[legend]

List of all members.

Public Types

enum  OperatorType { FV, FdxGV, FdxV, FgradGgradV }
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

const size_t & number () const
ReferenceCounting
< FunctionExpression
f ()
ReferenceCounting
< FunctionExpression
g ()
 VariationalFdxGVExpression (ReferenceCounting< FunctionExpression > f, ReferenceCounting< FunctionExpression > g, const std::string &testFunctionName, const VariationalOperator::Property &testFunctionProperty, const size_t &n, ReferenceCounting< BoundaryExpression > border=0)
 VariationalFdxGVExpression (const VariationalFdxGVExpression &V)
 ~VariationalFdxGVExpression ()
ReferenceCounting
< BoundaryExpression
border () const
void execute ()
OperatorType operatorType ()
const std::string & testFunctionName () const
const Expression::Typetype () const
 return the type.

Protected Member Functions

std::string __propertyBeginWrite (const VariationalOperator::Property &property) const
std::string __propertyEndWrite (const VariationalOperator::Property &property) const
std::string __testTypeBeginWrite () const
std::string __testTypeEndWrite () const
char __directionName (const size_t &i) const
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

const std::string __testFunctionName
const VariationalOperator::Property __testFunctionProperty

Private Member Functions

bool __hasBoundaryExpression () const
void __executeRemaining ()
std::ostream & put (std::ostream &os) const

Private Attributes

ReferenceCounting
< FunctionExpression
__f
ReferenceCounting
< FunctionExpression
__g
const size_t __number

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

$ b(v) = \int f\partial_{x_i} g v $

$ b(v) = \int f\partial_{x_i} v $

Author:
Stephane Del Pino
Date:
Sun Jun 23 19:51:48 2002
Author:
Stephane Del Pino
Date:
Sun Jun 23 19:51:48 2007

Definition at line 1253 of file VariationalOperatorExpression.hpp.


Member Enumeration Documentation

Enumerator:
FV  $\int fv$
FdxGV  $ \int f\partial_{x_i} g v $
FdxV  $ \int f\partial_{x_i} v $
FgradGgradV  $ \int f\\nabla g\cdot\nabla v $

Definition at line 312 of file VariationalOperatorExpression.hpp.

00312                     {
00313     FV,                         
00314     FdxGV,                      
00315     FdxV,                       
00316     FgradGgradV                 
00317   };

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

VariationalFdxGVExpression::VariationalFdxGVExpression ( ReferenceCounting< FunctionExpression f,
ReferenceCounting< FunctionExpression g,
const std::string &  testFunctionName,
const VariationalOperator::Property testFunctionProperty,
const size_t &  n,
ReferenceCounting< BoundaryExpression border = 0 
) [inline]

Constructor

Parameters:
f the function $ f$
g the function $ g $
testFunctionName a test function
testFunctionProperty a test function property
n the number of the derivative variable ($ i$)
border the border where it is computed

Definition at line 1338 of file VariationalOperatorExpression.hpp.

01344     : VariationalLinearOperatorExpression(VariationalLinearOperatorExpression::FdxGV,
01345                                           border, testFunctionName, testFunctionProperty),
01346       __f(f),
01347       __g(g),
01348       __number(n)
01349   {
01350     ;
01351   }

VariationalFdxGVExpression::VariationalFdxGVExpression ( const VariationalFdxGVExpression V  )  [inline]

Copy Constructor

Parameters:
V 

Definition at line 1359 of file VariationalOperatorExpression.hpp.

01360     : VariationalLinearOperatorExpression(V),
01361       __f(V.__f),
01362       __g(V.__g),
01363       __number(V.__number)
01364   {
01365     ;
01366   }

VariationalFdxGVExpression::~VariationalFdxGVExpression (  )  [inline]

Destructor

Definition at line 1374 of file VariationalOperatorExpression.hpp.

01375   {
01376     ;
01377   }


Member Function Documentation

bool VariationalFdxGVExpression::__hasBoundaryExpression (  )  const [inline, private, virtual]

Implements VariationalLinearOperatorExpression.

Definition at line 1261 of file VariationalOperatorExpression.hpp.

01262   {
01263     return ((*__f).hasBoundaryExpression() or
01264             (*__g).hasBoundaryExpression());
01265   }

void VariationalFdxGVExpression::__executeRemaining (  )  [inline, private, virtual]

VariationalLinearOperatorExpression::__executeRemaining() overloading

Implements VariationalLinearOperatorExpression.

Definition at line 1271 of file VariationalOperatorExpression.hpp.

01272   {
01273     (*__f).execute();
01274     (*__g).execute();
01275   }

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

put function overloading

Parameters:
os the input (modified) stream
Returns:
os

Implements Expression.

Definition at line 1284 of file VariationalOperatorExpression.hpp.

References VariationalLinearOperatorExpression::__directionName(), __f, __g, __number, VariationalLinearOperatorExpression::__testFunctionName, VariationalLinearOperatorExpression::__testTypeBeginWrite(), and VariationalLinearOperatorExpression::__testTypeEndWrite().

01285   {
01286     os << *__f << '*'
01287        << 'd'<< __directionName(__number) << '(' << *__g << ')'
01288        << this->__testTypeBeginWrite()
01289        << '*' << __testFunctionName
01290        << this->__testTypeEndWrite();
01291     return os;
01292   }

Here is the call graph for this function:

const size_t& VariationalFdxGVExpression::number (  )  const [inline]

Access to __number

Returns:
__number

Definition at line 1300 of file VariationalOperatorExpression.hpp.

References __number.

Referenced by VariationalProblemExpression::__internalSetLinear().

01301   {
01302     return __number;
01303   }

ReferenceCounting<FunctionExpression> VariationalFdxGVExpression::f (  )  [inline]

Returns the $ f$ function

Returns:
__f

Definition at line 1311 of file VariationalOperatorExpression.hpp.

References __f.

Referenced by VariationalProblemExpression::__internalSetLinear().

01312   {
01313     return __f;
01314   }

ReferenceCounting<FunctionExpression> VariationalFdxGVExpression::g (  )  [inline]

Returns the $ g$ function

Returns:
__g

Definition at line 1322 of file VariationalOperatorExpression.hpp.

References __g.

Referenced by VariationalProblemExpression::__internalSetLinear().

01323   {
01324     return __g;
01325   }

std::string VariationalLinearOperatorExpression::__propertyBeginWrite ( const VariationalOperator::Property property  )  const [inline, protected, inherited]

Definition at line 338 of file VariationalOperatorExpression.hpp.

References VariationalOperator::jump, and VariationalOperator::mean.

Referenced by VariationalLinearOperatorExpression::__testTypeBeginWrite().

00339   {
00340     switch(property) {
00341     case VariationalOperator::mean: {
00342       return "{";
00343       break;
00344     }
00345     case VariationalOperator::jump: {
00346       return "[";
00347       break;
00348     }
00349     default: {
00350       return "";
00351     }
00352     }
00353   }

std::string VariationalLinearOperatorExpression::__propertyEndWrite ( const VariationalOperator::Property property  )  const [inline, protected, inherited]

Definition at line 355 of file VariationalOperatorExpression.hpp.

References VariationalOperator::jump, and VariationalOperator::mean.

Referenced by VariationalLinearOperatorExpression::__testTypeEndWrite().

00356   {
00357     switch(property) {
00358     case VariationalOperator::mean: {
00359       return "}";
00360       break;
00361     }
00362     case VariationalOperator::jump: {
00363       return "]";
00364       break;
00365     }
00366     default: {
00367       return "";
00368     }
00369     }
00370   }

std::string VariationalLinearOperatorExpression::__testTypeBeginWrite (  )  const [inline, protected, inherited]

std::string VariationalLinearOperatorExpression::__testTypeEndWrite (  )  const [inline, protected, inherited]

char VariationalLinearOperatorExpression::__directionName ( const size_t &  i  )  const [inline, protected, inherited]

Definition at line 384 of file VariationalOperatorExpression.hpp.

References ErrorHandler::unexpected.

Referenced by VariationalFdxVExpression::put(), and put().

00385   {
00386     switch(i) {
00387     case 0: return 'x';
00388     case 1: return 'y';
00389     case 2: return 'z';
00390     default: {
00391       throw ErrorHandler(__FILE__,__LINE__,": unknown direction",
00392                          ErrorHandler::unexpected);
00393       return '0';
00394     }
00395     }
00396   }

ReferenceCounting<BoundaryExpression> VariationalLinearOperatorExpression::border (  )  const [inline, inherited]

Returns the border Expression

Returns:
__border

Definition at line 410 of file VariationalOperatorExpression.hpp.

References VariationalLinearOperatorExpression::__border.

Referenced by VariationalProblemExpression::__internalSetLinearBC().

00411   {
00412     return __border;
00413   }

void VariationalLinearOperatorExpression::execute (  )  [inline, virtual, inherited]

Expression::execute() overloading

Implements Expression.

Definition at line 419 of file VariationalOperatorExpression.hpp.

References VariationalLinearOperatorExpression::__border, VariationalLinearOperatorExpression::__checkNoBoundaryExpression(), and VariationalLinearOperatorExpression::__executeRemaining().

Referenced by VariationalProblemExpression::__internalSetLinear().

00420   {
00421     if(__border != 0) {
00422       (*__border).execute();
00423     }
00424     __executeRemaining();
00425     if(__border == 0) {
00426       __checkNoBoundaryExpression();
00427     }
00428 
00429   }

Here is the call graph for this function:

OperatorType VariationalLinearOperatorExpression::operatorType (  )  [inline, inherited]

Access to the operator type

Returns:
__operatorType

Definition at line 437 of file VariationalOperatorExpression.hpp.

References VariationalLinearOperatorExpression::__operatorType.

00438   {
00439     return __operatorType;
00440   }

const std::string& VariationalLinearOperatorExpression::testFunctionName (  )  const [inline, inherited]

Access to the test function

Returns:
__testFunctionName

Definition at line 448 of file VariationalOperatorExpression.hpp.

References VariationalLinearOperatorExpression::__testFunctionName.

Referenced by VariationalProblemExpression::__internalSetLinear(), and VariationalProblemExpression::__internalSetLinearBC().

00449   {
00450     return __testFunctionName;
00451   }

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

$ f$

Definition at line 1257 of file VariationalOperatorExpression.hpp.

Referenced by f(), and put().

$ g$

Definition at line 1258 of file VariationalOperatorExpression.hpp.

Referenced by g(), and put().

const size_t VariationalFdxGVExpression::__number [private]

$ i $ in $\partial_{x_i}$

Definition at line 1259 of file VariationalOperatorExpression.hpp.

Referenced by number(), and put().

const std::string VariationalLinearOperatorExpression::__testFunctionName [protected, inherited]


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

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