https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
ExpressionBuilder::EBFunction Class Reference

User facing host object for a function. This combines a term with an argument list. More...

#include <ExpressionBuilder.h>

Public Member Functions

 EBFunction ()
 
 operator EBTerm () const
 cast an EBFunction into an EBTerm
 
 operator std::string () const
 cast into a string (via the cast into a term above)
 
std::string args ()
 get the list of arguments and check if they are all symbols
 
unsigned int substitute (const EBSubstitutionRule &rule)
 
unsigned int substitute (const EBSubstitutionRuleList &rules)
 
EBFunctionoperator() (const EBTerm &arg)
 
EBFunctionoperator() (const EBTermList &args)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7, const EBTerm &a8)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7, const EBTerm &a8, const EBTerm &a9)
 
EBFunctionoperator= (const EBTerm &)
 
EBFunctionoperator= (const EBFunction &)
 
EBTerm operator- ()
 
EBTerm operator! ()
 

Protected Attributes

EBTermList _arguments
 argument list the function is declared with
 
EBTermList _eval_arguments
 argument list passed in when evaluating the function
 
EBTerm _term
 

Detailed Description

User facing host object for a function. This combines a term with an argument list.

Definition at line 537 of file ExpressionBuilder.h.

Constructor & Destructor Documentation

◆ EBFunction()

ExpressionBuilder::EBFunction::EBFunction ( )
inline

Definition at line 540 of file ExpressionBuilder.h.

540{}

Member Function Documentation

◆ args()

std::string ExpressionBuilder::EBFunction::args ( )

get the list of arguments and check if they are all symbols

Definition at line 217 of file ExpressionBuilder.C.

218{
219 unsigned int narg = _arguments.size();
220 if (narg < 1)
221 return "";
222
223 std::ostringstream s;
224 s << _arguments[0];
225 for (unsigned int i = 1; i < narg; ++i)
226 s << ',' << _arguments[i];
227
228 return s.str();
229}
EBTermList _arguments
argument list the function is declared with

◆ operator EBTerm()

ExpressionBuilder::EBFunction::operator EBTerm ( ) const

cast an EBFunction into an EBTerm

◆ operator std::string()

ExpressionBuilder::EBFunction::operator std::string ( ) const

cast into a string (via the cast into a term above)

Definition at line 207 of file ExpressionBuilder.C.

208{
209 EBTerm eval;
210 eval = *this; // typecast EBFunction -> EBTerm performs a parameter substitution
211 std::ostringstream s;
212 s << eval;
213 return s.str();
214}

◆ operator!()

EBTerm ExpressionBuilder::EBFunction::operator! ( )
inline

Definition at line 631 of file ExpressionBuilder.h.

631{ return !EBTerm(*this); }

◆ operator()() [1/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2 
)
inline

convenience operators to allow single bracket syntax

Definition at line 551 of file ExpressionBuilder.h.

551{ return (*this)((a1, a2)); }

◆ operator()() [2/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3 
)
inline

Definition at line 552 of file ExpressionBuilder.h.

553 {
554 return (*this)((a1, a2, a3));
555 }

◆ operator()() [3/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4 
)
inline

Definition at line 557 of file ExpressionBuilder.h.

558 {
559 return (*this)((a1, a2, a3, a4));
560 }

◆ operator()() [4/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4,
const EBTerm a5 
)
inline

Definition at line 561 of file ExpressionBuilder.h.

566 {
567 return (*this)((a1, a2, a3, a4, a5));
568 }

◆ operator()() [5/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4,
const EBTerm a5,
const EBTerm a6 
)
inline

Definition at line 569 of file ExpressionBuilder.h.

575 {
576 return (*this)((a1, a2, a3, a4, a5, a6));
577 }

◆ operator()() [6/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4,
const EBTerm a5,
const EBTerm a6,
const EBTerm a7 
)
inline

Definition at line 578 of file ExpressionBuilder.h.

585 {
586 return (*this)((a1, a2, a3, a4, a5, a6, a7));
587 }

◆ operator()() [7/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4,
const EBTerm a5,
const EBTerm a6,
const EBTerm a7,
const EBTerm a8 
)
inline

Definition at line 588 of file ExpressionBuilder.h.

596 {
597 return (*this)((a1, a2, a3, a4, a5, a6, a7, a8));
598 }

◆ operator()() [8/10]

EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm a1,
const EBTerm a2,
const EBTerm a3,
const EBTerm a4,
const EBTerm a5,
const EBTerm a6,
const EBTerm a7,
const EBTerm a8,
const EBTerm a9 
)
inline

Definition at line 599 of file ExpressionBuilder.h.

608 {
609 return (*this)((a1, a2, a3, a4, a5, a6, a7, a8, a9));
610 }

◆ operator()() [9/10]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm arg)

set the temporary argument list which is either used for evaluation or committed to the argument list upon function definition (assignment)

Definition at line 154 of file ExpressionBuilder.C.

155{
156 this->_eval_arguments = {arg};
157 return *this;
158}
EBTermList _eval_arguments
argument list passed in when evaluating the function

◆ operator()() [10/10]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTermList args)

Definition at line 161 of file ExpressionBuilder.C.

162{
164 return *this;
165}
std::string args()
get the list of arguments and check if they are all symbols
std::vector< EBTerm > EBTermList

◆ operator-()

EBTerm ExpressionBuilder::EBFunction::operator- ( )
inline

Unary operators on functions

Definition at line 630 of file ExpressionBuilder.h.

630{ return -EBTerm(*this); }

◆ operator=() [1/2]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator= ( const EBFunction func)

Definition at line 176 of file ExpressionBuilder.C.

177{
178 this->_arguments = this->_eval_arguments;
179 this->_term = EBTerm(func);
180 return *this;
181}

◆ operator=() [2/2]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator= ( const EBTerm term)

function definition (assignment)

Definition at line 168 of file ExpressionBuilder.C.

169{
170 this->_arguments = this->_eval_arguments;
171 this->_term = term;
172 return *this;
173}

◆ substitute() [1/2]

unsigned int ExpressionBuilder::EBFunction::substitute ( const EBSubstitutionRule rule)

Definition at line 232 of file ExpressionBuilder.C.

233{
234 return _term.substitute(rule);
235}
unsigned int substitute(const EBSubstitutionRule &rule)

Referenced by RegularSolutionFreeEnergy::RegularSolutionFreeEnergy().

◆ substitute() [2/2]

unsigned int ExpressionBuilder::EBFunction::substitute ( const EBSubstitutionRuleList rules)

Definition at line 238 of file ExpressionBuilder.C.

239{
240 return _term.substitute(rules);
241}

Member Data Documentation

◆ _arguments

EBTermList ExpressionBuilder::EBFunction::_arguments
protected

argument list the function is declared with

Definition at line 640 of file ExpressionBuilder.h.

◆ _eval_arguments

EBTermList ExpressionBuilder::EBFunction::_eval_arguments
protected

argument list passed in when evaluating the function

Definition at line 642 of file ExpressionBuilder.h.

◆ _term

EBTerm ExpressionBuilder::EBFunction::_term
protected

Definition at line 645 of file ExpressionBuilder.h.


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