Difference between revisions of "Contrib/equationReader"

From OpenFOAMWiki
(Migrated to github)
Line 1: Line 1:
''Latest version 0.5.0, released September 25, 2011.'' Known to work with:<BR>
+
This project has migrated over to '''github'''.
{{VersionInfo}}{{Version1.6-ext}}{{Version1.7.0}}{{Version1.7.1}}{{Version1.7.x}}{{Version2.0}}{{Version2.0.0}}{{Version2.0.1}}{{Version2.0.x}}
+
 
<BR>
+
'''''[http://github.com/Marupio/equationReader/wiki Click here for the new website.]'''''
'''The repo is currently down.  See [[User:Marupio|my user page]] for details and access to the code.'''
+
 
 +
 
 +
http://github.com/Marupio/equationReader/wiki
 +
 
 
<br>
 
<br>
 
<small>Subpage contents (alphabetical)<BR>
 
<small>Subpage contents (alphabetical)<BR>
Line 12: Line 15:
 
> [[Contrib_equationReader/Using_equationReader|Using equationReader]]<BR></small>
 
> [[Contrib_equationReader/Using_equationReader|Using equationReader]]<BR></small>
 
<BR>
 
<BR>
 
== What is it? ==
 
'''equationReader''' is an extension to [[OpenFOAM]] that allows you to work with user-entered equations.  For example:
 
 
U.x        "sin(pi_ * t / 4)";
 
U.y        "rho * nut / L";
 
U.z        0;
 
nu        nu [0 2 -1 0 0 0 0] "1.2 + 3 * alpha^sin(pi_/6)";
 
aScalar    "nu / max(5, alpha)";
 
alpha      1.3;
 
 
== Features ==
 
* '''Works with most fields''' - Now works with ''single elements'', ''fields'', ''DimensionedFields'' and ''GeometricFields'';
 
* '''Works with most Types''' - Now works with ''scalars'', ''vectors'', and all kinds of ''tensors'';
 
* '''Flexible data sources''' - In addition to these types, equations can also lookup values from ''dictionaries'', and you can create an ''activeVariable'' that derives its value on-the-fly.
 
* '''Order of operations''' - it is fully compliant with the conventional order of operations to an arbitrary parenthesis depth;
 
* '''Equation dependency tracking''' - equations can depend on one another to an arbitrary hierarchy depth;
 
* '''Circular-reference detection''' - it will halt computations when a circular reference is detected;
 
* '''On-the-fly equation mapping''' - it will automatically perform substitution on other equations when they are needed, even if they aren't specifically called for in the solver; and
 
* '''Dimension-checking''' - fully utilizes [[OpenFOAM]]'s built-in dimension-checking, or you can force the outcome to a specific dimension-set to quickly disable it (if you are lazy).
 
 
'''Limitations:''' Although '''equationReader''' works with all Types, at its core, it is just a ''scalar'' calculator with ''dimensions''.  Therefore, you can't use vector operators, let alone tensor operators.  Each equation must be expressed in scalar components.
 
 
== Why would you need this? ==
 
Let the user define their own equations - this makes your application '''more user-friendly''', and '''more flexible'''.  But don't reinvent the wheel - if you are only working with ''boundary conditions'' or ''initial conditions'', Bernhard's [[Contrib/swak4Foam|swak4Foam]] would probably be more suitable.
 
 
== Learn more ==
 
 
* ''Wait... before I install it, how fast is it, really?'' - It's getting faster.  Check out the [[Contrib_equationReader/Efficiency|efficiency sub-page]].
 
* ''I'm sold, let me install it!'' - Check out the [[Contrib_equationReader/Installation|installation sub-page]].
 
* ''I'm a user, how do I work with my equations?'' - Check out the [[Contrib_equationReader/Using_equationReader|user's guide sub-page]].
 
* ''I'm a developer, how do I use '''equationReader'''?'' - Check out the [[Contrib_equationReader/Programming|programmer's guide sub-page]].
 
* ''I've had enough, how do I uninstall it?'' - Check out the [[Contrib_equationReader/Uninstallation|Uninstallation sub-page]].
 
 
== Update info ==
 
* ''2010-07-21'': Initial release
 
* ''2010-08-05'': Bug-fix - differentiated versions for OpenFOAM-1.5.x/1.5-dev and OpenFOAM-1.6.x+
 
* ''2010-08-12'': Major upgrade
 
** Introducing <tt>IOEquationReader</tt> - EquationReader is now an <tt>IOobject<tt>.  This enables automatic output
 
** Added support for <tt>scalarList</tt> data sources - including <tt>scalarField<tt>, <tt>volScalarField</tt>, etc.
 
** Removed the need for pointers for data sources
 
** Cleaned up available functions
 
* ''2010-10-16'': Bug fixes and added full support for fields
 
* ''2011-04-06'': Major upgrade
 
** Efficiency improvement - pointer functions have been implemented to increase computation speed by an order of magnitude (at least).
 
** Improved dimension-checking on all functions.
 
** Added a fieldEvaluate function for active equations whose output is to a scalar field.
 
** Bug fix to get it working with 1.6-ext and higher.
 
*''2011-09-13:'' Major upgrade
 
** '''''Now a stand-alone library'''''.
 
** Now works with '''''vectors and tensors''''':
 
*** scalar;
 
*** vector;
 
*** tensor;
 
*** diagTensor;
 
*** symmTensor; and
 
*** sphericalTensor.
 
** '''''Now works with GeometricFields'''''
 
** Dimension checking is now performed separately, improving efficiency of field and GeometricField calculations.
 
* Interface changes:
 
** Add data functions reorganized / changed.
 
** Evaluate functions reorganized / changed.
 
** Update functions removed.
 
*''2011-09-25: '''Version 0.5.0'''''
 
** Improved treatment of fields - '''''now approximately 10x faster'''''.
 
** Introduced version numbers to keep track of changes.
 
 
--[[User:Marupio|Marupio]] 22:15, 14 September 2011 (CEST)
 

Revision as of 21:33, 6 September 2013

This project has migrated over to github.

Click here for the new website.


http://github.com/Marupio/equationReader/wiki


Subpage contents (alphabetical)
> Efficiency
> Functions
> Installation
> Programming
> Uninstallation
> Using equationReader