|
OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class representing user defined functions as Python expressions. More...
#include <pythonexpression.h>
Inheritance diagram for oofem::PythonExpression:
Collaboration diagram for oofem::PythonExpression:Public Member Functions | |
| PythonExpression (int n, Domain *d) | |
| Constructor. More... | |
| virtual | ~PythonExpression () |
| Destructor. More... | |
| virtual IRResultType | initializeFrom (InputRecord *ir) |
| Reads the fields. More... | |
| virtual void | giveInputRecord (DynamicInputRecord &ir) |
| Setups the input record string of receiver. More... | |
| virtual void | evaluate (FloatArray &answer, std::map< std::string, FunctionArgument > &valDict) |
| virtual void | evaluateVelocity (FloatArray &answer, std::map< std::string, FunctionArgument > &valDict) |
| virtual void | evaluateAcceleration (FloatArray &answer, std::map< std::string, FunctionArgument > &valDict) |
| virtual double | evaluateAtTime (double t) |
| Returns the value of the function at given time. More... | |
| virtual double | evaluateVelocityAtTime (double t) |
| Returns the first time derivative of the function at given time. More... | |
| virtual double | evaluateAccelerationAtTime (double t) |
| Returns the second time derivative of the function at given time. More... | |
| virtual const char * | giveClassName () const |
| virtual const char * | giveInputRecordName () const |
Public Member Functions inherited from oofem::Function | |
| Function (int n, Domain *d) | |
| Constructor. More... | |
| virtual | ~Function () |
| Destructor. More... | |
| double | evaluate (TimeStep *tStep, ValueModeType mode) |
| Returns the value of load time function at given time. More... | |
| virtual void | evaluate (FloatArray &answer, const std::map< std::string, FunctionArgument > &valDict, GaussPoint *gp=NULL, double param=0.) |
| Returns the value of the function for given input. More... | |
| virtual double | evaluate (const std::map< std::string, FunctionArgument > &valDict) |
| Returns the (scalar) value of the function for given input. More... | |
| double | giveFunctionParameter (int paramID) |
Public Member Functions inherited from oofem::FEMComponent | |
| FEMComponent (int n, Domain *d) | |
| Regular constructor, creates component with given number and belonging to given domain. More... | |
| virtual | ~FEMComponent () |
| Virtual destructor. More... | |
| Domain * | giveDomain () const |
| virtual void | setDomain (Domain *d) |
| Sets associated Domain. More... | |
| int | giveNumber () const |
| void | setNumber (int num) |
| Sets number of receiver. More... | |
| virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
| Local renumbering support. More... | |
| virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
| Stores receiver state to output stream. More... | |
| virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
| Restores the receiver state previously written in stream. More... | |
| virtual int | checkConsistency () |
| Allows programmer to test some internal data, before computation begins. More... | |
| virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
| Prints output of receiver to stream, for given time step. More... | |
| virtual void | printYourself () |
| Prints receiver state on stdout. Useful for debugging. More... | |
| virtual Interface * | giveInterface (InterfaceType t) |
| Interface requesting service. More... | |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). More... | |
Private Member Functions | |
| PyObject * | getDict (std::map< std::string, FunctionArgument > &valDict) |
| Helper function to convert the std::map to a Python dictionary. More... | |
| void | getArray (FloatArray &answer, PyObject *func, std::map< std::string, FunctionArgument > &valDict) |
| Helper function to run given function for given value dictionary. More... | |
| double | getScalar (PyObject *func, double time) |
| Helper function to run given function for given time. More... | |
Private Attributes | |
| std::string | fExpression |
| Expression for the function value. More... | |
| std::string | dfdtExpression |
| Expression for first time derivative. More... | |
| std::string | d2fdt2Expression |
| Expression for second time derivative. More... | |
| PyObject * | f |
| PyObject * | dfdt |
| PyObject * | d2fdt2 |
| PyObject * | main_dict |
Additional Inherited Members | |
Public Attributes inherited from oofem::Function | |
| Domain * | funcDomain |
| int | parameterType |
Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. More... | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. More... | |
Class representing user defined functions as Python expressions.
Definition at line 58 of file pythonexpression.h.
| oofem::PythonExpression::PythonExpression | ( | int | n, |
| Domain * | d | ||
| ) |
Constructor.
Creates load time function with given number, belonging to given domain.
Definition at line 50 of file pythonexpression.C.
|
virtual |
Destructor.
Definition at line 52 of file pythonexpression.C.
References main_dict.
|
virtual |
Definition at line 144 of file pythonexpression.C.
References f, and getArray().
|
virtual |
Definition at line 158 of file pythonexpression.C.
References d2fdt2, and getArray().
|
virtual |
Returns the second time derivative of the function at given time.
| t | Time. |
. Implements oofem::Function.
Definition at line 202 of file pythonexpression.C.
References d2fdt2, and getScalar().
|
virtual |
Returns the value of the function at given time.
| t | Time. |
. Reimplemented from oofem::Function.
Definition at line 191 of file pythonexpression.C.
References f, and getScalar().
|
virtual |
Definition at line 151 of file pythonexpression.C.
References dfdt, and getArray().
|
virtual |
Returns the first time derivative of the function at given time.
| t | Time. |
. Implements oofem::Function.
Definition at line 196 of file pythonexpression.C.
References dfdt, and getScalar().
|
private |
Helper function to run given function for given value dictionary.
Definition at line 123 of file pythonexpression.C.
References getDict(), main_dict, oofem::FloatArray::resize(), and RETURN_VARIABLE.
Referenced by evaluate(), evaluateAcceleration(), and evaluateVelocity().
|
private |
Helper function to convert the std::map to a Python dictionary.
Definition at line 92 of file pythonexpression.C.
References oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FunctionArgument::FAT_double, oofem::FunctionArgument::FAT_FloatArray, oofem::FunctionArgument::FAT_int, oofem::FunctionArgument::FAT_IntArray, oofem::IntArray::giveSize(), oofem::FloatArray::giveSize(), OOFEM_ERROR, oofem::FunctionArgument::type, oofem::FunctionArgument::val0, oofem::FunctionArgument::val1, oofem::FunctionArgument::val2, and oofem::FunctionArgument::val3.
Referenced by getArray().
|
private |
Helper function to run given function for given time.
Definition at line 165 of file pythonexpression.C.
References main_dict, OOFEM_ERROR, and RETURN_VARIABLE.
Referenced by evaluateAccelerationAtTime(), evaluateAtTime(), and evaluateVelocityAtTime().
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 107 of file pythonexpression.h.
|
virtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::FEMComponent.
Definition at line 82 of file pythonexpression.C.
References _IFT_PythonExpression_d2fdt2, _IFT_PythonExpression_dfdt, _IFT_PythonExpression_f, d2fdt2Expression, dfdtExpression, fExpression, oofem::FEMComponent::giveInputRecord(), and oofem::DynamicInputRecord::setField().
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 108 of file pythonexpression.h.
References _IFT_PythonExpression_Name.
|
virtual |
Reads the fields.
Reimplemented from oofem::FEMComponent.
Definition at line 59 of file pythonexpression.C.
References _IFT_PythonExpression_d2fdt2, _IFT_PythonExpression_dfdt, _IFT_PythonExpression_f, d2fdt2, d2fdt2Expression, dfdt, dfdtExpression, f, fExpression, oofem::FEMComponent::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, and main_dict.
|
private |
Definition at line 70 of file pythonexpression.h.
Referenced by evaluateAcceleration(), evaluateAccelerationAtTime(), and initializeFrom().
|
private |
Expression for second time derivative.
Definition at line 66 of file pythonexpression.h.
Referenced by giveInputRecord(), and initializeFrom().
|
private |
Definition at line 69 of file pythonexpression.h.
Referenced by evaluateVelocity(), evaluateVelocityAtTime(), and initializeFrom().
|
private |
Expression for first time derivative.
Definition at line 64 of file pythonexpression.h.
Referenced by giveInputRecord(), and initializeFrom().
|
private |
Definition at line 68 of file pythonexpression.h.
Referenced by evaluate(), evaluateAtTime(), and initializeFrom().
|
private |
Expression for the function value.
Definition at line 62 of file pythonexpression.h.
Referenced by giveInputRecord(), and initializeFrom().
|
private |
Definition at line 72 of file pythonexpression.h.
Referenced by getArray(), getScalar(), initializeFrom(), and ~PythonExpression().