Sundance::SymbolicFuncElement Class Reference

SymbolicFuncElement represents a scalar-valued element of a (possibly) list-valued SymbolicFunction. More...

Inheritance diagram for Sundance::SymbolicFuncElement:

Sundance::FuncElementBase Sundance::SymbolicFuncDescriptor Sundance::EvaluatableExpr Sundance::GenericEvaluatorFactory< SymbolicFuncElement, SymbolicFuncElementEvaluator > Sundance::ScalarExpr Sundance::FunctionWithID Sundance::ScalarExpr Sundance::EvaluatorFactory Sundance::FuncSetAccumulator Sundance::ObjectWithClassVerbosity< EvaluatableExpr > Sundance::EvaluatorFactory Sundance::ExprBase Sundance::FuncSetAccumulator Sundance::ExprBase Playa::ObjectWithVerbosity Playa::Handleable< ExprBase > Playa::Handleable< ExprBase > Sundance::TestFuncElement Sundance::UnknownFuncElement Sundance::UnknownParameterElement

List of all members.

Public Member Functions

 SymbolicFuncElement (const std::string &name, const std::string &suffix, const FunctionIdentifier &fid, const RCP< const CommonFuncDataStub > &data)
virtual ~SymbolicFuncElement ()
 virtual destructor
void accumulateFuncSet (Set< int > &funcDofIDs, const Set< int > &activeSet) const
 Append to the set of func IDs present in this expression.
virtual bool hasTestFunctions () const
 Indicate whether the expression contains test functions.
void substituteZero () const
 Specify that expressions involving this function are to be evaluated with this function set to zero.
void substituteFunction (const RCP< DiscreteFuncElement > &u0) const
 Specify that expressions involving this function are to be evaluated with this function set to the discrete function (or constant parameter) $u_0$.
const EvaluatableExprevalPt () const
 Return the point in function space at which this symbolic function is to be evaluated.
EvaluatableExprevalPt ()
 Return the point in function space at which this symbolic function is to be evaluated.
bool evalPtIsZero () const
const RCP< const
CommonFuncDataStub > & 
commonData () const
virtual bool isIndependentOf (const Expr &u) const
 Indicate whether the expression is independent of the given functions.
virtual bool isLinearForm (const Expr &u) const
 Indicate whether the expression is linear in the given functions.
virtual RCP< ExprBasegetRcp ()
 Return a safely-created RefCountPtr to the base type.
Preprocessing
virtual Set< MultipleDerivinternalFindW (int order, const EvalContext &context) const
virtual Set< MultipleDerivinternalFindV (int order, const EvalContext &context) const
 Find spatially-variable functional derivatives.
virtual Set< MultipleDerivinternalFindC (int order, const EvalContext &context) const
 Find spatially-constant functional derivatives.
virtual RCP< Array< Set
< MultipleDeriv > > > 
internalDetermineR (const EvalContext &context, const Array< Set< MultipleDeriv > > &RInput) const
virtual void registerSpatialDerivs (const EvalContext &context, const Set< MultiIndex > &miSet) const

Private Attributes

RCP< const CommonFuncDataStubcommonData_
RCP< EvaluatableExprevalPt_
Array< int > evalPtDerivSetIndices_


Detailed Description

SymbolicFuncElement represents a scalar-valued element of a (possibly) list-valued SymbolicFunction.

Definition at line 57 of file SundanceSymbolicFuncElement.hpp.


Constructor & Destructor Documentation

SymbolicFuncElement::SymbolicFuncElement ( const std::string &  name,
const std::string &  suffix,
const FunctionIdentifier fid,
const RCP< const CommonFuncDataStub > &  data 
)

Definition at line 49 of file SundanceSymbolicFuncElement.cpp.

virtual Sundance::SymbolicFuncElement::~SymbolicFuncElement (  )  [inline, virtual]

virtual destructor

Definition at line 70 of file SundanceSymbolicFuncElement.hpp.


Member Function Documentation

void SymbolicFuncElement::accumulateFuncSet ( Set< int > &  funcDofIDs,
const Set< int > &  activeSet 
) const [virtual]

Append to the set of func IDs present in this expression.

Reimplemented from Sundance::FuncSetAccumulator.

Definition at line 66 of file SundanceSymbolicFuncElement.cpp.

References Sundance::Set< Key, Compare >::contains(), Sundance::FunctionWithID::fid(), and Sundance::Set< Key, Compare >::put().

const RCP<const CommonFuncDataStub>& Sundance::SymbolicFuncElement::commonData (  )  const [inline]

EvaluatableExpr* Sundance::SymbolicFuncElement::evalPt (  )  [inline]

Return the point in function space at which this symbolic function is to be evaluated.

Definition at line 102 of file SundanceSymbolicFuncElement.hpp.

References evalPt_.

const EvaluatableExpr* Sundance::SymbolicFuncElement::evalPt (  )  const [inline]

bool SymbolicFuncElement::evalPtIsZero (  )  const

virtual RCP<ExprBase> Sundance::SymbolicFuncElement::getRcp (  )  [inline, virtual]

Return a safely-created RefCountPtr to the base type.

Implements Playa::Handleable< ExprBase >.

Reimplemented in Sundance::TestFuncElement, Sundance::UnknownFuncElement, and Sundance::UnknownParameterElement.

Definition at line 146 of file SundanceSymbolicFuncElement.hpp.

virtual bool Sundance::SymbolicFuncElement::hasTestFunctions (  )  const [inline, virtual]

Indicate whether the expression contains test functions.

Reimplemented from Sundance::ScalarExpr.

Reimplemented in Sundance::TestFuncElement.

Definition at line 77 of file SundanceSymbolicFuncElement.hpp.

RCP< Array< Set< MultipleDeriv > > > SymbolicFuncElement::internalDetermineR ( const EvalContext context,
const Array< Set< MultipleDeriv > > &  RInput 
) const [virtual]

Set< MultipleDeriv > SymbolicFuncElement::internalFindC ( int  order,
const EvalContext context 
) const [virtual]

Set< MultipleDeriv > SymbolicFuncElement::internalFindV ( int  order,
const EvalContext context 
) const [virtual]

Set< MultipleDeriv > SymbolicFuncElement::internalFindW ( int  order,
const EvalContext context 
) const [virtual]

bool SymbolicFuncElement::isIndependentOf ( const Expr u  )  const [virtual]

Indicate whether the expression is independent of the given functions.

Reimplemented from Sundance::ScalarExpr.

Definition at line 219 of file SundanceSymbolicFuncElement.cpp.

References Sundance::FunctionIdentifier::dofID(), Sundance::FunctionWithID::fid(), Sundance::Expr::flatten(), Playa::Handle< PointerType >::ptr(), and Sundance::Expr::size().

bool SymbolicFuncElement::isLinearForm ( const Expr u  )  const [virtual]

Indicate whether the expression is linear in the given functions.

Reimplemented from Sundance::ScalarExpr.

Definition at line 234 of file SundanceSymbolicFuncElement.cpp.

References Sundance::FunctionIdentifier::dofID(), Sundance::FunctionWithID::fid(), Sundance::Expr::flatten(), Playa::Handle< PointerType >::ptr(), and Sundance::Expr::size().

void SymbolicFuncElement::registerSpatialDerivs ( const EvalContext context,
const Set< MultiIndex > &  miSet 
) const [virtual]

void SymbolicFuncElement::substituteFunction ( const RCP< DiscreteFuncElement > &  u0  )  const

Specify that expressions involving this function are to be evaluated with this function set to the discrete function (or constant parameter) $u_0$.

This is appropriate for computing the functional derivatives that arise in a nonlinear expression being linearized about $u_0$.

Definition at line 212 of file SundanceSymbolicFuncElement.cpp.

Referenced by Sundance::SymbolicFunc::substituteFunction().

void SymbolicFuncElement::substituteZero (  )  const

Specify that expressions involving this function are to be evaluated with this function set to zero.

Test functions should always be evaluated at zero. For unknown functions, substituting zero is appropriate for computing the functional derivatives that arise in a linear problem.

Definition at line 206 of file SundanceSymbolicFuncElement.cpp.

References evalPt_.

Referenced by Sundance::SymbolicFunc::substituteZero().


Member Data Documentation

Definition at line 149 of file SundanceSymbolicFuncElement.hpp.

Referenced by commonData().

Definition at line 151 of file SundanceSymbolicFuncElement.hpp.

Referenced by evalPt(), evalPtIsZero(), and substituteZero().

Definition at line 153 of file SundanceSymbolicFuncElement.hpp.

Site Contact