- 15 Dec, 2021 2 commits
-
-
- 19 Apr, 2021 1 commit
-
-
- additional dummy template parameter to assist with supporting derived classes. Currently just used for string types, but can be extended. - provide hash specialization for various integer types. Removes the need for any forwarding. - change default hasher for HashSet/HashTable from 'string::hash' to `Hash<Key>`. This avoids questionable hashing calls and/or avoids compiler resolution problems. For example, HashSet<label>::hasher and labelHashSet::hasher now both properly map to Hash<label> whereas previously HashSet<label> would have persistently mapped to string::hash, which was incorrect. - standardize internal hashing functors. Functor name is 'hasher', as per STL set/map and the OpenFOAM HashSet/HashTable definitions. Older code had a local templated name, which added unnecessary clutter and the template parameter was always defaulted. For example, Old: `FixedList<label, 3>::Hash<>()` ...
-
- 05 Aug, 2020 2 commits
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- prelude to code refactoring NOTE no source code change in this commit, only relocation, renaming and adjustment of Make/{files,options}
-
- 06 May, 2020 1 commit
-
-
Mark OLESEN authored
- adds into the include-quoted search list instead the general (-Idir) search list. * makes it less subject to ordering (since it will now generally be searched first) and makes it less subject to how duplicate removal is implemented. In some compilers (#1627), the last instance of a duplicate directory would be used and not the first instance. * removes clutter in some Make/options files COMP: add missing linkage libraries
-
- 04 May, 2020 1 commit
-
-
Mark OLESEN authored
-
- 13 Nov, 2019 1 commit
-
-
Mark OLESEN authored
-
- 31 Oct, 2019 1 commit
-
-
OpenFOAM bot authored
-
- 06 Nov, 2019 1 commit
-
-
Mark OLESEN authored
-
- 24 Sep, 2019 1 commit
-
-
OpenFOAM bot authored
-
- 07 Jun, 2019 1 commit
-
-
Sergio Ferraris authored
Integration of VOF MULES new interfaces. Update of VOF solvers and all instances of MULES in the code. Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models Updating reactingEuler tutorials accordingly (most of them tested) New eRefConst thermo used in tutorials. Some modifications at thermo specie level affecting mostly eThermo. hThermo mostly unaffected New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial. Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for chtMultiRegionTwoPhaseEulerFoam. Update of interCondensatingEvaporatingFoam solver.
-
- 28 Apr, 2019 1 commit
-
-
Mark OLESEN authored
- Eg, with surface writers now in surfMesh, there are fewer libraries depending on conversion and sampling. COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
-
- 06 Feb, 2019 1 commit
-
-
OpenFOAM bot authored
-
- 07 Jan, 2019 1 commit
-
-
Mark OLESEN authored
- reduced clutter when iterating over containers
-
- 09 Jan, 2019 1 commit
-
-
Mark OLESEN authored
-
- 11 Dec, 2018 1 commit
-
-
Mark OLESEN authored
-
- 13 Dec, 2018 1 commit
-
-
Mark OLESEN authored
- for some special cases we wish to mark command-line arguments as being optional, in order to do our own treatment. For example, when an arbitrary number of arguments should be allowed. Now tag this situation with argList::noMandatoryArgs(). The argList::argsMandatory() query can then be used in any further logic, including the standard default argument checking. - with the new default check, can consolidate the special-purpose "setRootCaseNonMandatoryArgs.H" into the regular "setRootCase.H" - revert to a simple "setRootCase.H" and move all the listing related bits to a "setRootCaseLists.H" file. This leaves the information available for solvers, or whoever else wishes, without being introduced everywhere. - add include guards and scoping to the listing files and rename to something less generic. listOptions.H -> setRootCaseListOptions.H listOutput.H -> setRootCaseListOutput.H
-
- 03 Nov, 2018 1 commit
-
-
Mark OLESEN authored
- this helps for trapping unguarded dictionary lookups.
-
- 19 Oct, 2018 1 commit
-
-
Mark OLESEN authored
- as part of the cleanup of dictionary access methods (c6520033) made the dictionary class single inheritance from IDLList<entry>. This eliminates any ambiguities for iterators and allows for simple use of range-for looping. Eg, for (const entry& e : topDict)) { Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl; } vs forAllConstIter(dictionary, topDict, iter)) { Info<< "entry:" << iter().keyword() << " is dict:" << iter().isDict() << nl; }
-
- 16 Oct, 2018 1 commit
-
-
Mark OLESEN authored
- clarifies the meanings of get<T> etc, avoids later ambiguities. ENH: simplify phaseProperties construction, add input checks
-
- 12 Oct, 2018 1 commit
-
-
Mark OLESEN authored
- use the dictionary 'get' methods instead of readScalar for additional checking Unchecked: readScalar(dict.lookup("key")); Checked: dict.get<scalar>("key"); - In templated classes that also inherit from a dictionary, an additional 'template' keyword will be required. Eg, this->coeffsDict().template get<scalar>("key"); For this common use case, the predefined getXXX shortcuts may be useful. Eg, this->coeffsDict().getScalar("key");
-
- 27 Apr, 2018 1 commit
-
-
Mark OLESEN authored
- controlled by the the 'printExecutionFormat' InfoSwitch in etc/controlDict // Style for "ExecutionTime = " output // - 0 = seconds (with trailing 's') // - 1 = day-hh:mm:ss ExecutionTime = 112135.2 s ClockTime = 113017 s ExecutionTime = 1-07:08:55.20 ClockTime = 1-07:23:37 - Callable via the new Time::printExecutionTime() method, which also helps to reduce clutter in the applications. Eg, runTime.printExecutionTime(Info); vs Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; -- ENH: return elapsedClockTime() and clockTimeIncrement as double - previously returned as time_t, which is less portable.
-
- 24 Apr, 2018 1 commit
-
-
Mark OLESEN authored
- generalize some of the library extensions (.so vs .dylib). Provide as wmake 'sysFunctions' - added note about unsupported/incomplete system support - centralize detection of ThirdParty packages into wmake/ subdirectory by providing a series of scripts in the spirit of GNU autoconfig. For example, have_boost, have_readline, have_scotch, ... Each of the `have_<package>` scripts will generally provide the following type of functions: have_<package> # detection no_<package> # reset echo_<package> # echoing and the following type of variables: HAVE_<package> # unset or 'true' <package>_ARCH_PATH # root for <package> <package>_INC_DIR # include directory for <package> <package>_LIB_DIR # library directory for <package> This simplifies the calling scripts: if have_metis then wmake metisDecomp fi As well as reducing clutter in the corresponding Make/options: EXE_INC = \ -I$(METIS_INC_DIR) \ -I../decompositionMethods/lnInclude LIB_LIBS = \ -L$(METIS_LIB_DIR) -lmetis Any additional modifications (platform-specific or for an external build system) can now be made centrally.
-
- 28 Mar, 2018 1 commit
-
-
Andrew Heather authored
-
- 21 Mar, 2018 1 commit
-
-
Mark OLESEN authored
- both autoPtr and tmp are defined with an implicit construct from nullptr (but with explicit construct from a pointer to null). Thus is it safe to use 'nullptr' when returning an empty autoPtr or tmp.
-
- 16 Mar, 2018 1 commit
-
-
Mark OLESEN authored
- when constructing dimensioned fields that are to be zero-initialized, it is preferrable to use a form such as dimensionedScalar(dims, Zero) dimensionedVector(dims, Zero) rather than dimensionedScalar("0", dims, 0) dimensionedVector("zero", dims, vector::zero) This reduces clutter and also avoids any suggestion that the name of the dimensioned quantity has any influence on the field's name. An even shorter version is possible. Eg, dimensionedScalar(dims) but reduces the clarity of meaning. - NB: UniformDimensionedField is an exception to these style changes since it does use the name of the dimensioned type (instead of the regIOobject).
-
- 26 Feb, 2018 2 commits
-
-
Mark OLESEN authored
-
Mark OLESEN authored
Improve alignment of its behaviour with std::unique_ptr - element_type typedef - release() method - identical to ptr() method - get() method to get the pointer without checking and without releasing it. - operator*() for dereferencing Method name changes - renamed rawPtr() to get() - renamed rawRef() to ref(), removed unused const version. Removed methods/operators - assignment from a raw pointer was deleted (was rarely used). Can be convenient, but uncontrolled and potentially unsafe. Do allow assignment from a literal nullptr though, since this can never leak (and also corresponds to the unique_ptr API). Additional methods - clone() method: forwards to the clone() method of the underlying data object with argument forwarding. - reset(autoPtr&&) as an alternative to operator=(autoPtr&&) STYLE: avoid implicit conversion from autoPtr to object type in many places - existing implementation has the following: operator const T&() const { return operator*(); } which means that the following code works: autoPtr<mapPolyMesh> map = ...; updateMesh(*map); // OK: explicit dereferencing updateMesh(map()); // OK: explicit dereferencing updateMesh(map); // OK: implicit dereferencing for clarity it may preferable to avoid the implicit dereferencing - prefer operator* to operator() when deferenced a return value so it is clearer that a pointer is involve and not a function call etc Eg, return *meshPtr_; vs. return meshPtr_();
-
- 09 Feb, 2018 1 commit
-
-
Mark OLESEN authored
- more consistent with STL practices for function classes. - string::hash function class now operates on std::string rather than Foam::string since we have now avoided inadvertent use of string conversion from int in more places.
-
- 05 Nov, 2017 1 commit
-
-
Mark OLESEN authored
- makes for clearer code ENH: make writeIfDifferent part of Ostream
-
- 02 Jul, 2018 1 commit
-
-
Mark OLESEN authored
- relocate some standard functionality to TimePaths to allow a lighter means of managing time directories without using the entire Time mechanism. - optional enableLibs for Time construction (default is on) and a corresponding argList::noLibs() and "-no-libs" option STYLE: - mark Time::outputTime() as deprecated MAY-2016 - use pre-increment for runTime, although there is no difference in behaviour or performance.
-
- 11 Jan, 2018 1 commit
-
-
Andrew Heather authored
-
- 23 Nov, 2017 1 commit
-
-
The combustion and chemistry models no longer select and own the thermodynamic model; they hold a reference instead. The construction of the combustion and chemistry models has been changed to require a reference to the thermodyanmics, rather than the mesh and a phase name. At the solver-level the thermo, turbulence and combustion models are now selected in sequence. The cyclic dependency between the three models has been resolved, and the raw-pointer based post-construction step for the combustion model has been removed. The old solver-level construction sequence (typically in createFields.H) was as follows: autoPtr<combustionModels::psiCombustionModel> combustion ( combustionModels::psiCombustionModel::New(mesh) ); psiReactionThermo& thermo = combustion->thermo(); // Create rho, U, phi, etc... autoPtr<compressible::turbulenceModel> turbulence ( compressible::turbulenceModel::New(rho, U, phi, thermo) ); combustion->setTurbulence(*turbulence); The new sequence is: autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh)); // Create rho, U, phi, etc... autoPtr<compressible::turbulenceModel> turbulence ( compressible::turbulenceModel::New(rho, U, phi, *thermo) ); autoPtr<combustionModels::psiCombustionModel> combustion ( combustionModels::psiCombustionModel::New(*thermo, *turbulence) ); ENH: combustionModel, chemistryModel: Simplified model selection The combustion and chemistry model selection has been simplified so that the user does not have to specify the form of the thermodynamics. Examples of new combustion and chemistry entries are as follows: In constant/combustionProperties: combustionModel PaSR; combustionModel FSD; In constant/chemistryProperties: chemistryType { solver ode; method TDAC; } All the angle bracket parts of the model names (e.g., <psiThermoCombustion,gasHThermoPhysics>) have been removed as well as the chemistryThermo entry. The changes are mostly backward compatible. Only support for the angle bracket form of chemistry solver names has been removed. Warnings will print if some of the old entries are used, as the parts relating to thermodynamics are now ignored. ENH: combustionModel, chemistryModel: Simplified model selection Updated all tutorials to the new format STYLE: combustionModel: Namespace changes Wrapped combustion model make macros in the Foam namespace and removed combustion model namespace from the base classes. This fixes a namespace specialisation bug in gcc 4.8. It is also somewhat less verbose in the solvers. This resolves bug report https://bugs.openfoam.org/view.php?id=2787 ENH: combustionModels: Default to the "none" model When the constant/combustionProperties dictionary is missing, the solver will now default to the "none" model. This is consistent with how radiation models are selected.
-
- 29 Aug, 2017 1 commit
-
-
Resolves bug-report https://bugs.openfoam.org/view.php?id=2677
-
- 01 Dec, 2017 1 commit
-
-
Mixture molecular weight is now evaluated in heThermo like everything else, relying on the low level specie mixing rules. Units have also been corrected. SpecieMixture: Pure virtual definition for W to prevent Clang warning
-
- 04 Jul, 2017 1 commit
-
-
Mark OLESEN authored
ENH: add degToRad() multiplier (useful for scalar fields) - use degToRad() functions throughout instead of scattered local solutions
-
- 22 Jun, 2017 1 commit
-
-
using the continuity error correction formulation developed for twoPhaseEulerFoam and reactingEulerFoam.
-
- 21 Jun, 2017 1 commit
-
-
Andrew Heather authored
-
- 24 May, 2017 1 commit
-
-
Andrew Heather authored
-