- Feb 18, 2020
-
-
Mark OLESEN authored
* Support default values for format/compress enum lookups. - Avoids situations where the preferred default format is not ASCII. For example, with dictionary input: format binar; The typing mistake would previously have caused formatEnum to default to ASCII. We can now properly control its behaviour. IOstream::formatEnum ( dict.get<word>("format"), IOstream::BINARY ); Allowing us to switch ascii/binary, using BINARY by default even in the case of spelling mistakes. The mistakes are flagged, but the return value can be non-ASCII. * The format/compression lookup behave as pass-through if the lookup string is empty. - Allows the following to work without complaint IOstream::formatEnum ( dict.getOrDefault("format", word::null), IOstream::BINARY ); - Or use constructor-like failsafe method IOstream::formatEnum("format", dict, IOstream::BINARY); - Apply the same behaviour with setting stream format/compression from a word. is.format("binar"); will emit a warning, but leave the stream format UNCHANGED * Rationalize versionNumber construction - constexpr constructors where possible. Default construct is the "currentVersion" - Construct from token to shift the burden to versionNumber. Support token as argument to version(). Now: is.version(headerDict.get<token>("version")); or failsafe constructor method is.version ( IOstreamOption::versionNumber("version", headerDict) ); Before (controlled input): is.version ( IOstreamOption::versionNumber ( headerDict.get<float>("version") ) ); Old, uncontrolled input - has been removed: is.version(headerDict.lookup("version")); * improve consistency, default behaviour for IOstreamOption construct - constexpr constructors where possible - add copy construct with change of format. - construct IOstreamOption from streamFormat is now non-explicit. This is a commonly expected result with no ill-effects
-
Mark OLESEN authored
- align Switch more with Enum. Now have find(), found() static methods. Constructors with failsafe option. The find() method makes for clearer coding: OLD Switch sw(some_string, true); // NB: true = allowBad if (sw.valid()) ... NOW Switch sw = Switch::find(some_string); if (sw.good()) ... or if (Switch::found(some_string)) ... - improve construct from dictionary to handle all valid token types. Previously just read in a word. - Remove asText() method - replaced by c_str() and str() several versions ago.
-
Mark OLESEN authored
-
Mark OLESEN authored
- renamed 'core/' -> 'base/' to avoid gitignore masking when re-adding files - rename 'nas/' to 'nastran/' for more clarity - relocated OBJstream from surfMesh to fileFormats STYLE: remove unused parseNASCoord. Was deprecated 2017-09
-
- `tensor` and `tensor2D` returns complex eigenvalues/vectors - `symmTensor` and `symmTensor2D` returns real eigenvalues/vectors - adds new test routines for eigendecompositions - improves numerical stability by: - using new robust algorithms, - reordering the conditional branches in root-type selection
-
- ensures each Tensor-container operates for the following base types: - floatScalar - doubleScalar - complex - adds/improves test applications for each container and base type: - constructors - member functions - global functions - global operators - misc: - silently removes `invariantIII()` for `tensor2D` and `symmTensor2D` since the 3rd invariant does not exist for 2x2 matrices - fixes `invariantII()` algorithm for `tensor2D` and `symmTensor2D` - adds `Cmpt` multiplication to `Vector2D` and `Vector` - adds missing access funcs for symmetric containers - improves func/header documentations
-
- replaces floating-point equal comparisons in `linearEqn`, `quadraticEqn`, and `cubicEqn`, - ensures `quadraticEqn` and `cubicEqn` can return `complex` roots, - reorders if-branches in `quadraticEqn` and `cubicEqn` to avoid zero-equal comparison, - adds Kahan's cancellation-avoiding algorithm into `quadraticEqn` and `cubicEqn` for the numerically-sensitive discriminant computation, - adds/improves `polynomialEqns` tests: * adds Test-linearEqn.C * adds Test-quadraticEqn.C * improves Test-cubicEqn.C
-
- includes restructuring and simplification of low-level ensight part handling and refactor of backends to improve code reuse. foamToEnsight ------------- * new cellZone support. This was previously only possible via a separate foamToEnsightParts utility that was not parallelized. * support for point fields. * `-nearCellValue` option (as per foamToVTK) * data indexing now uses values from the time index. This is consistent with the ensightWrite function object and can help with restarts. * existing ensight directories are removed, unless the -no-overwrite option is supplied foamToEnsightParts ------------------ * now redundant and removed. ensightOutputSurface (new class) -------------------------------- * a lightweight wrapper for point/face references that is tailored for the ensightSurfaceWriter. It uses compact face/point information and is serial only, since this is the format requirements from the surfaceWriter class. ensightMesh (revised class) --------------------------- * now only holds a polyMesh reference, which removes its dependency on finiteVolume and allows it to be relocated under fileFormats instead of conversion. Removed classes: ensightParts, ensighPartFaces, ensightPartCells - these were used by foamToEnsightParts, but not needed anymore.
-
- Feb 12, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- simplifies code, covers most cases. Can use wmake -show-api or wmakeBuildInfo to query the make rules. STYLE: Allwmake script adjustments - use bin/foamEtcFile instead of relying on PATH. The make environment may not have the OpenFOAM bin/ in it. - simpler shell syntax
-
mattijs authored
-
- Feb 06, 2020
-
-
mattijs authored
-
Mark OLESEN authored
-
- Jan 31, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- provides an indirect access to a sub-section of a list that is somewhat less efficient than a Foam::SubList, but supports the following: * adjustment of its addressing range after construction * recovery of the original, underlying list at any time This can be more convenient for some coding cases. For example, template<class Addr> void renumberFaces(IndirectListBase<face, Addr>& faces, ...); which can be called for * Specific faces: UIndirectList<face>(mesh.faces(), facesToChange) * A sub-range of faces: IndirectSubList<face>(mesh.faces(), pp.range()) * All faces: IndirectSubList<face>(mesh.faces()) CONFIG: added IndirectListsFwd.H with some common forwarding
-
- Jan 29, 2020
-
-
Kutalmış Berçin authored
- refactors the corresponding tutorial by removing redundant files and items: compressible/rhoCentralFoam/biconic25-55Run35
-
- Jan 28, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Jan 23, 2020
-
-
Mark OLESEN authored
-
- Jan 21, 2020
-
-
Mark OLESEN authored
COMP: use generated methods in a few more places
-
- Jan 16, 2020
-
-
Mark OLESEN authored
- consistent way of writing "patch" + Foam::name(id) etc.
-
Mark OLESEN authored
- remove (unused) Istream constructors, prune some unused methods, rationalize write() vs writeDict(). Deprecate inconsistent construction order. - handle empty names for ".ftr" surface patches (for plain triSurface format) with double-quoted strings for more reliable streaming. Written on a single line. This is _backward_ compatible, but if users have been parsing these files manually, they will need to adjust their code. Previously: ``` ( frt-fairing:001%1 empty windshield:002%2 empty ... ) ``` Updated (with example handling of empty name): ``` ( frt-fairing:001%1 empty windshield:002%2 "" ... ) ```
-
- Jan 22, 2020
-
-
OpenFOAM bot authored
-
- Jan 16, 2020
-
-
- Jan 06, 2020
- Jan 03, 2020
-
-
The controlBoxes wordList was removed from NURBS3DVolume in the pre-release phase but writeMorpherCPs was not updated accordingly. TUT: added the invocation of writeMorpherCPs in one of the tutotials to help identify future regression
-
- Dec 23, 2019
-
-
Andrew Heather authored
-
- Dec 19, 2019
-
-
Mark OLESEN authored
Many possibilities: - use as a simple calculator with vectors, tensors etc. - test validity of expression syntax As a calculator: foamCalc '(vector(1,2,3) ^ vector(4,5,6)) * sqrt(34)' The same, but with debugging: foamCalc -debug-switch fieldExpr=6 \ 'mag((vector(1,2,3) ^ vector(4,5,6))) * sqrt(34)'
-
-
1) New skewCorrectedSnGrad for non-orthogonal and skewness corrector 2) New freeSurfacePressure and freeSurfacePressure working with interfaceTrackingFvMesh 3) New interfaceTrackingFvMesh
-
Mark OLESEN authored
- now use debug 2 for scanner and debug 4 for parser. Provided better feedback about what is being parsed (debug mode) - relocate debug application to applications/tools/foamExprParserInfo
-
- Dec 18, 2019
-
-
mattijs authored
-
- Dec 17, 2019
-
-
1) rPolynomial Eq of State 2) externalForce and softWall in rigidBodyDynamics INT: Several minor bug fixes plus
-
Mark OLESEN authored
- follows the principle of least surprise if the expansion behaviour for #eval and expressions (eg, exprFixedValue) are the same. This is possible now that we harness the regular stringOps::expand() within exprString::expand()
-
- Dec 16, 2019
-
-
Mark OLESEN authored
- the PDRsetFields utility processes a set of geometrical obstructions to determine the equivalent blockage effects. These fields are necessary inputs for PDRFoam calculations. After setting up the geometries, the -dry-run option can be used to generate a VTK file for diagnosis and post-processing purposes. - this is an initial release, with improvements slated for the future. NOTE - the field results may be less than fully reliable when run in single-precision. This howver does not represent a realistic restriction since the prepared fields target a combustion application which will invariably be double-precision.
-
Mark OLESEN authored
- remove unused local functions from volumeExprDriver
-
- Dec 14, 2019
-
-
Mark OLESEN authored
-
- Dec 13, 2019
-
-
Mark OLESEN authored
- reuse more of stringOps expansions to reduce code and improve the syntax flexiblity. We can now embed "pre-calculated" values into an expression. For example, angle 35; valueExpr "vector(${{cos(degToRad($angle))}}, 2, 3)"; and the ${{..}} will be evaluated with the regular string evaluation and used to build the entire expression for boundary condition evaluation. Could also use for fairly wild indirect referencing: axis1 (1 0 0); axis2 (0 1 0); axis3 (0 0 1); index 100; expr "$[(vector) axis${{ ($index % 3) +1 }}] / ${{max(1,$index)}}";
-
Mark OLESEN authored
-