#include <PDEOperatorExpression.hpp>


Definition at line 217 of file PDEOperatorExpression.hpp.
enum PDEScalarOperatorExpression::PDEScalarOperatorType [inherited] |
Definition at line 74 of file PDEOperatorExpression.hpp.
00074 { 00075 divMuGrad, 00076 secondOrder, 00077 firstOrder, 00078 zerothOrder 00079 };
enum PDEOperatorExpression::PDEOperatorType [inherited] |
enum Expression::Type [inherited] |
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 };
| PDEScalarOperatorExpressionOrderOne::PDEScalarOperatorExpressionOrderOne | ( | const std::string & | operatorName, | |
| const std::string & | unknownName, | |||
| ReferenceCounting< FunctionExpression > | alpha | |||
| ) | [inline] |
Definition at line 269 of file PDEOperatorExpression.hpp.
References __nu.
00272 : PDEScalarOperatorExpression(unknownName, PDEScalarOperatorExpression::firstOrder) 00273 { 00274 __nu[0] = 0; __nu[1] = 0; __nu[2] = 0; 00275 00276 if (operatorName == "dx") { 00277 __nu[0] = alpha; 00278 return; 00279 } 00280 if (operatorName == "dy") { 00281 __nu[1] = alpha; 00282 return; 00283 } 00284 00285 if (operatorName == "dz") { 00286 __nu[2] = alpha; 00287 return; 00288 } 00289 }
| PDEScalarOperatorExpressionOrderOne::PDEScalarOperatorExpressionOrderOne | ( | const std::string & | unknownName | ) | [inline] |
Definition at line 291 of file PDEOperatorExpression.hpp.
References __nu.
00292 : PDEScalarOperatorExpression(unknownName, PDEScalarOperatorExpression::firstOrder) 00293 { 00294 for (size_t i=0; i<3; ++i) 00295 __nu[i] = 0; 00296 }
| PDEScalarOperatorExpressionOrderOne::PDEScalarOperatorExpressionOrderOne | ( | const PDEScalarOperatorExpressionOrderOne & | re | ) | [inline] |
Definition at line 298 of file PDEOperatorExpression.hpp.
References __nu.
00299 : PDEScalarOperatorExpression(re) 00300 { 00301 for (size_t i=0; i<3; ++i) 00302 __nu[i] = re.__nu[i]; 00303 }
| PDEScalarOperatorExpressionOrderOne::~PDEScalarOperatorExpressionOrderOne | ( | ) | [inline] |
| std::ostream& PDEScalarOperatorExpressionOrderOne::put | ( | std::ostream & | os | ) | const [inline, protected, virtual] |
Writes *this to the output os.
Implements Expression.
Definition at line 223 of file PDEOperatorExpression.hpp.
References __nu, and PDEScalarOperatorExpression::__unknownName.
00224 { 00225 const char d[3] = { 'x', 'y', 'z'}; 00226 bool plus = false; 00227 for (size_t i=0; i<3; ++i) 00228 if (__nu[i] != 0) { 00229 if (plus) 00230 os << '+'; 00231 os << *(__nu[i]) << "*d" << d[i] << '(' << __unknownName << ')'; 00232 plus = true; 00233 } 00234 return os; 00235 }
| void PDEScalarOperatorExpressionOrderOne::__execute | ( | ) | [protected, virtual] |
Implements PDEOperatorExpression.
Definition at line 135 of file PDEOperatorExpression.cpp.
References __nu, PDEScalarOperatorExpression::__pdeOperator, nu(), and preexec().
00136 { 00137 this->preexec(); 00138 00139 ReferenceCounting<TinyVector<3, ConstReferenceCounting<ScalarFunctionBase> > > nu 00140 = new TinyVector<3, ConstReferenceCounting<ScalarFunctionBase> >; 00141 00142 for (size_t i=0; i<3; ++i) { 00143 if(__nu[i] != 0) { 00144 (*nu)[i] = __nu[i]->function(); 00145 } else { 00146 (*nu)[i] = 0; 00147 } 00148 } 00149 00150 __pdeOperator = new FirstOrderOperator(nu); 00151 }

| bool PDEScalarOperatorExpressionOrderOne::__checkBoundaryExpression | ( | ) | const [virtual] |
Implements PDEOperatorExpression.
Definition at line 123 of file PDEOperatorExpression.cpp.
References __nu.
00124 { 00125 for (size_t i=0; i<3; ++i) { 00126 if(__nu[i] != 0) { 00127 if (__nu[i]->hasBoundaryExpression()) { 00128 return true; 00129 } 00130 } 00131 } 00132 return false; 00133 }
| void PDEScalarOperatorExpressionOrderOne::operator*= | ( | ReferenceCounting< FunctionExpression > | f | ) | [inline] |
Definition at line 242 of file PDEOperatorExpression.hpp.
References __nu, and BinaryOperation::product.
00243 { 00244 for (size_t i=0; i<3; ++i) { 00245 if (__nu[i] != 0) 00246 __nu[i] = new FunctionExpressionBinaryOperation(BinaryOperation::product,f,__nu[i]); 00247 } 00248 }
| virtual void PDEScalarOperatorExpressionOrderOne::preexec | ( | ) | [inline, virtual] |
Definition at line 250 of file PDEOperatorExpression.hpp.
References __nu, and PDEOperatorExpression::execute().
Referenced by __execute().
00251 { 00252 for(size_t i=0; i<3; ++i) { 00253 if (__nu[i] != 0) 00254 (*__nu[i]).execute(); 00255 } 00256 }

| ReferenceCounting<FunctionExpression> PDEScalarOperatorExpressionOrderOne::nu | ( | const size_t | i | ) | const [inline] |
Definition at line 258 of file PDEOperatorExpression.hpp.
Referenced by PDEVectorialOperatorExpressionOrderTwo::__execute(), and __execute().
| const std::string& PDEScalarOperatorExpressionOrderOne::unknownName | ( | ) | const [inline] |
Reimplemented from PDEScalarOperatorExpression.
Definition at line 264 of file PDEOperatorExpression.hpp.
References PDEScalarOperatorExpression::__unknownName.
00265 { 00266 return __unknownName; 00267 }
| ReferenceCounting< PDEOperator > PDEScalarOperatorExpression::pdeOperator | ( | ) | [inherited] |
Definition at line 67 of file PDEOperatorExpression.cpp.
References PDEScalarOperatorExpression::__pdeOperator.
Referenced by PDEOperatorSumExpression::execute().
00068 { 00069 return __pdeOperator; 00070 }
| void PDEOperatorExpression::execute | ( | ) | [virtual, inherited] |
Executes the expression.
Implements Expression.
Definition at line 54 of file PDEOperatorExpression.cpp.
References PDEOperatorExpression::__checkBoundaryExpression(), PDEOperatorExpression::__execute(), ErrorHandler::normal, and stringify().
Referenced by PDEOperatorSumExpression::execute(), and preexec().
00055 { 00056 this->__execute(); 00057 if (this->__checkBoundaryExpression()) { 00058 throw ErrorHandler(__FILE__, __LINE__, 00059 "cannot evaluate the expression \"" 00060 +stringify(*this)+ 00061 "\" in the volume", 00062 ErrorHandler::normal); 00063 } 00064 }

| const PDEOperatorType& PDEOperatorExpression::pdeOperatorType | ( | ) | const [inline, inherited] |
Definition at line 58 of file PDEOperatorExpression.hpp.
References PDEOperatorExpression::__pdeOperatorType.
Referenced by PDEOperatorSumExpression::execute().
00059 { 00060 return __pdeOperatorType; 00061 }
| static Expression::Type Expression::getType | ( | ReferenceCounting< Expression > | e1, | |
| ReferenceCounting< Expression > | e2 | |||
| ) | [inline, static, protected, inherited] |
Traits conversion of types.
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 }
| 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 }
Definition at line 221 of file PDEOperatorExpression.hpp.
Referenced by __checkBoundaryExpression(), __execute(), nu(), operator*=(), PDEScalarOperatorExpressionOrderOne(), preexec(), and put().
const std::string PDEScalarOperatorExpression::__unknownName [protected, inherited] |
Definition at line 82 of file PDEOperatorExpression.hpp.
Referenced by put(), PDEScalarOperatorExpressionOrderZero::put(), PDEScalarOperatorExpressionDivMuGrad::put(), unknownName(), and PDEScalarOperatorExpression::unknownName().
ReferenceCounting<PDEOperator> PDEScalarOperatorExpression::__pdeOperator [protected, inherited] |
Definition at line 84 of file PDEOperatorExpression.hpp.
Referenced by __execute(), PDEScalarOperatorExpressionOrderZero::__execute(), PDEScalarOperatorExpressionDivMuGrad::__execute(), and PDEScalarOperatorExpression::pdeOperator().
PDEOperatorType PDEOperatorExpression::__pdeOperatorType [protected, inherited] |
Reimplemented in PDEVectorialOperatorExpression.
Definition at line 49 of file PDEOperatorExpression.hpp.
Referenced by PDEOperatorExpression::pdeOperatorType().
1.5.6