- Aug 11, 2016
-
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
Now the specie reaction rates may be averaged over the entire domain or a specified cellZone.
-
- Aug 10, 2016
-
-
Henry Weller authored
functionObjects::specieReactionRates: New functionObject to write the domain averaged reaction rates for each specie for each reaction
-
- Aug 05, 2016
-
-
Henry Weller authored
Requires gcc version 4.7 or higher
-
- Aug 02, 2016
-
-
Henry Weller authored
Until C++ supports 'concepts' the only way to support construction from two iterators is to provide a constructor of the form: template<class InputIterator> List(InputIterator first, InputIterator last); which for some types conflicts with //- Construct with given size and value for all elements List(const label, const T&); e.g. to construct a list of 5 scalars initialized to 0: List<scalar> sl(5, 0); causes a conflict because the initialization type is 'int' rather than 'scalar'. This conflict may be resolved by specifying the type of the initialization value: List<scalar> sl(5, scalar(0)); The new initializer list contructor provides a convenient and efficient alternative to using 'IStringStream' to provide an initial list of values: List<vector> list4(IStringStream("((0 1 2) (3 4 5) (6 7 8))")()); or List<vector> list4 { vector(0, 1, 2), vector(3, 4, 5), vector(6, 7, 8) };
-
- Aug 01, 2016
-
-
Henry Weller authored
Thanks to Bruno Santos for providing the script to check the files Resolves bug-report http://bugs.openfoam.org/view.php?id=2169
-
Henry Weller authored
DimensionedField<vector, volMesh> -> volVectorField::Internal
-
- Jul 18, 2016
-
-
Henry Weller authored
-
- Jul 17, 2016
-
-
Henry Weller authored
-
Henry Weller authored
Provides efficient integration of complex laminar reaction chemistry, combining the advantages of automatic dynamic specie and reaction reduction with ISAT (in situ adaptive tabulation). The advantages grow as the complexity of the chemistry increases. References: Contino, F., Jeanmart, H., Lucchini, T., & D’Errico, G. (2011). Coupling of in situ adaptive tabulation and dynamic adaptive chemistry: An effective method for solving combustion in engine simulations. Proceedings of the Combustion Institute, 33(2), 3057-3064. Contino, F., Lucchini, T., D'Errico, G., Duynslaegher, C., Dias, V., & Jeanmart, H. (2012). Simulations of advanced combustion modes using detailed chemistry combined with tabulation and mechanism reduction techniques. SAE International Journal of Engines, 5(2012-01-0145), 185-196. Contino, F., Foucher, F., Dagaut, P., Lucchini, T., D’Errico, G., & Mounaïm-Rousselle, C. (2013). Experimental and numerical analysis of nitric oxide effect on the ignition of iso-octane in a single cylinder HCCI engine. Combustion and Flame, 160(8), 1476-1483. Contino, F., Masurier, J. B., Foucher, F., Lucchini, T., D’Errico, G., & Dagaut, P. (2014). CFD simulations using the TDAC method to model iso-octane combustion for a large range of ozone seeding and temperature conditions in a single cylinder HCCI engine. Fuel, 137, 179-184. Two tutorial cases are currently provided: + tutorials/combustion/chemFoam/ic8h18_TDAC + tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC the first of which clearly demonstrates the advantage of dynamic adaptive chemistry providing ~10x speedup, the second demonstrates ISAT on the modest complex GRI mechanisms for methane combustion, providing a speedup of ~4x. More tutorials demonstrating TDAC on more complex mechanisms and cases will be provided soon in addition to documentation for the operation and settings of TDAC. Also further updates to the TDAC code to improve consistency and integration with the rest of OpenFOAM and further optimize operation can be expected. Original code providing all algorithms for chemistry reduction and tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert. Implementation updated, optimized and integrated into OpenFOAM-dev by Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.
-
- Jul 12, 2016
-
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
Based on a patch contributed by Francesco Contino, Tommaso Lucchini, Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.
-
- Jul 11, 2016
-
-
Henry Weller authored
Note: this reuses the existing storage rather than costly reallocation which requires the initial allocation to be sufficient for the largest size the ODE system might have. Attempt to set a size larger than the initial size is a fatal error.
-
- Jun 24, 2016
-
-
Henry Weller authored
Patch contributed by Mattijs Janssens
-
- Jun 19, 2016
-
-
Henry Weller authored
-
- Jun 17, 2016
-
-
Henry Weller authored
-
Henry Weller authored
-
- Jun 13, 2016
-
-
Henry Weller authored
Replaced the 'postProcess' argument to the 'write' and 'execute' functions with the single static member 'postProcess' in the functionObject base-class.
-
- May 30, 2016
-
-
Henry Weller authored
-
- May 21, 2016
-
-
Henry Weller authored
In most boundary conditions, fvOptions etc. required and optional fields to be looked-up from the objectRegistry are selected by setting the keyword corresponding to the standard field name in the BC etc. to the appropriate name in the objectRegistry. Usually a default is provided with sets the field name to the keyword name, e.g. in the totalPressureFvPatchScalarField the velocity is selected by setting the keyword 'U' to the appropriate name which defaults to 'U': Property | Description | Required | Default value U | velocity field name | no | U phi | flux field name | no | phi . . . However, in some BCs and functionObjects and many fvOptions another convention is used in which the field name keyword is appended by 'Name' e.g. Property | Description | Required | Default value pName | pressure field name | no | p UName | velocity field name | no | U This difference in convention is unnecessary and confusing, hinders code and dictionary reuse and complicates code maintenance. In this commit the appended 'Name' is removed from the field selection keywords standardizing OpenFOAM on the first convention above.
-
- May 18, 2016
-
-
Henry Weller authored
-
- May 16, 2016
-
-
Henry Weller authored
-
- May 15, 2016
-
-
Henry Weller authored
- Avoids the need for the 'OutputFilterFunctionObject' wrapper - Time-control for execution and writing is now provided by the 'timeControlFunctionObject' which instantiates the processing 'functionObject' and controls its operation. - Alternative time-control functionObjects can now be written and selected at run-time without the need to compile wrapped version of EVERY existing functionObject which would have been required in the old structure. - The separation of 'execute' and 'write' functions is now formalized in the 'functionObject' base-class and all derived classes implement the two functions. - Unnecessary implementations of functions with appropriate defaults in the 'functionObject' base-class have been removed reducing clutter and simplifying implementation of new functionObjects. - The 'coded' 'functionObject' has also been updated, simplified and tested. - Further simplification is now possible by creating some general intermediate classes derived from 'functionObject'.
-
- May 11, 2016
-
-
Henry Weller authored
Construction failure and recovery is not handled with exceptions in functionObjectList
-
- May 02, 2016
-
-
Henry Weller authored
-
Henry Weller authored
functionObjects: Moved into the functionObjects namespace and rationalized and simplified failable construction Rather than requiring each functionObject to handle failed construction internally (using the active_ flag) the static member function "viable" is provided which returns true if construction of the functionObject is likely to be successful. Failed construction is then handled by the wrapper-class which constructs the functionObject, e.g. "OutputFilterFunctionObject".
-
- Apr 30, 2016
-
-
Henry Weller authored
-
Henry Weller authored
GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField() These new names are more consistent and logical because: primitiveField(): primitiveFieldRef(): Provides low-level access to the Field<Type> (primitive field) without dimension or mesh-consistency checking. This should only be used in the low-level functions where dimensional consistency is ensured by careful programming and computational efficiency is paramount. internalField(): internalFieldRef(): Provides access to the DimensionedField<Type, GeoMesh> of values on the internal mesh-type for which the GeometricField is defined and supports dimension and checking and mesh-consistency checking.
-
Henry Weller authored
In order to simplify expressions involving dimensioned internal field it is preferable to use a simpler access convention. Given that GeometricField is derived from DimensionedField it is simply a matter of de-referencing this underlying type unlike the boundary field which is peripheral information. For consistency with the new convention in "tmp" "dimensionedInteralFieldRef()" has been renamed "ref()".
-
Henry Weller authored
Non-const access to the internal field now obtained from a specifically named access function consistent with the new names for non-canst access to the boundary field boundaryFieldRef() and dimensioned internal field dimensionedInternalFieldRef(). See also commit 22f4ad32
-
Henry Weller authored
functionObjectFile provides basic directory, file and formatting functions functionObjectFiles provides multi-file cache
-
- Apr 28, 2016
-
-
Henry Weller authored
-
Henry Weller authored
When the GeometricBoundaryField template class was originally written it was a separate class in the Foam namespace rather than a sub-class of GeometricField as it is now. Without loss of clarity and simplifying code which access the boundary field of GeometricFields it is better that GeometricBoundaryField be renamed Boundary for consistency with the new naming convention for the type of the dimensioned internal field: Internal, see commit 4a57b9be This is a very simple text substitution change which can be applied to any code which compiles with the OpenFOAM-dev libraries.
-
- Apr 27, 2016
-
-
Henry Weller authored
Given that the type of the dimensioned internal field is encapsulated in the GeometricField class the name need not include "Field"; the type name is "Internal" so volScalarField::DimensionedInternalField -> volScalarField::Internal In addition to the ".dimensionedInternalField()" access function the simpler "()" de-reference operator is also provided to greatly simplify FV equation source term expressions which need not evaluate boundary conditions. To demonstrate this kEpsilon.C has been updated to use dimensioned internal field expressions in the k and epsilon equation source terms.
-
- Apr 26, 2016
-
-
Henry Weller authored
See also commit 22f4ad32
-
Henry Weller authored
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2068
-
- Apr 25, 2016
-
-
Henry Weller authored
-