- Nov 08, 2021
-
-
Andrew Heather authored
-
Andrew Heather authored
ENH: new RANS model for geophysical applications See merge request !493
-
BUG: atmFlatTerrain: fix input settings in the plot script
-
STYLE: atmosphericModels: regroup atmospheric turbulence models ENH: kEpsilonLopesdaCosta: enable this RANS model for compressible applications
-
Andrew Heather authored
- updated safeLog10 - returns -GREAT instead of zero - enabled reference for dB calc to be user defined Cross reference exchange platform 1689
-
- Nov 05, 2021
-
-
Andrew Heather authored
parallel construct finiteArea with arbitrary connections See merge request !490
-
- added -dry-run, -write-vtk options. Additional mesh information after creation. - add parallel reductions and more information for checkFaMesh ENH: minor cleanup of faPatch internals - align pointLabels and pointEdges creation more closely with coding patterns used in PrimitivePatch - use fileHandler when loading "S0" field.
-
- previous handling did not correctly account for off-processor connections (SEGFAULT). - revised the point/area normal calculations to use the dual of the faces. This simplifies the logic and reduces the depth of loops. Point corrections from the neighbouring patches is handled centrally by the new halo face information, which properly handles on-processor or off-processor faces irrespective of any explicit processor patches. STYLE: local function and add comments for finiteArea area weighting - following the original Tukovic code, the area-weighted normal for a vector pair (defining a triangle) is weighted by (1) area : larger weight for larger areas (2) sin : lower weight for narrow angles (eg, shards) (3) invDist squared : lower weights for distant points Refactored to eliminate intermediate operations, some additional divide-by-zero protection - similar to vector normalise()
-
- the finiteArea is typically restricteed to one or more patches on a polyMesh but will have an external connectivity to other parts of the polyMesh. For proper determination of the point normals (for example), the neighbouring information is needed. These outside 'halo' faces can be located on different processors, but not correspond to an internal processor-processor interface. Add a dedicated form of mapDistribute for swapping this type of information. Since this is a collective operation, locate corresponding methods directly on the faMesh level instead of the faPatch level.
-
- the case of 'fan-like' processor was previously assumed to be rare (see merge-request !490 and issue #2084). However, Vaggelis Papoutsis noticed that even fairly normal geometries can trigger problems. - replaced the old patch/patch matching style with a more general edge-based synchronisation and matching that appears to handle the corner cases inherently. The internal communication overhead is essentially unchanged, and the logic is simpler. ENH: additional framework for managing patch connectivity
-
- the patch remapping in faFieldDecomposer calls weights internalField() which can trigger parallel communication on the complete mesh for some processors only (ie, blocks). Force a priori creation of weights instead. - ensure that the complete mesh (reconstruction helper) is serial when adding patches.
-
- when creating a finite-area mesh in parallel, need to determine the equivalent ProcAddressing for the faMesh. In the faceProcAddressing the collected and sorted order was being scattered directly back to the individual processors instead of only the sections relevant to each particular processor. This caused the observed jumbled order for reconstructed fields.
-
Andrew Heather authored
long-term maintenance improvement for runTime selection tables See merge request !481
-
Mark OLESEN authored
STYLE: use alias to mark partialFaceAreaWeightAMI deprecation after v2012
-
Mark OLESEN authored
- this makes the lookup and use of tables slightly cleaner and provides a hook for update (compat) messages The singleton-style method returns the function pointer directly, or nullptr on not-found. NEW access method (mnemonic: 'ctor' prefix for constructors) ``` auto* ctorPtr = dictionaryConstructorTable(modelType); if (!ctorPtr) { ... } return autoPtr<myModel>(ctorPtr(dict, ...)); ``` OLD method, which also still works, but without any compat handling: ``` auto ctorIter = dictionaryConstructorTablePtr_->cfind(modelType); if (!ctorIter.found()) { ... } return autoPtr<myModel>(ctorIter()(dict, ...)); ```
-
Mark OLESEN authored
- a Pstream::master with a Pstream::parRun guard in case Pstream has not yet been initialised, as will be the case for low-level messages during startup. - propagate relativeName handling into IOstreams
-
Mark OLESEN authored
- improves future maintenance, avoids code/macro duplication
-
Mark OLESEN authored
- better distinction between content and storage type by appending 'Type' to the typedef. old: 'Class::abcConstructorTable* tablePtr' new: 'Class::abcConstructorTableType* tablePtr' Was rarely used in any exposed code. BREAKING: LESdelta::New with additional table - parameter change to dictionaryConstructorTableType (was dictionaryConstructorTable)
-
Mark OLESEN authored
- getThermoOrDie: returns constructor pointer, or FatalError. Better isolation and avoids additional template/typename previously needed with ambiguous method name (lookupThermo). - makeThermoName: centralize dictionary -> stringified name - splitThermoName: use stringOps functionality
-
Mark OLESEN authored
ENH: proudmanAcousticPower - extended to operate on mean turbulence fields See merge request !485
-
Example using mean turbulence fields (mean fields should be available e.g. from a fieldAverage function object) proudmanAcousticPower1 { // Mandatory entries (unmodifiable) type proudmanAcousticPower; libs (fieldFunctionObjects); ... // Turbulence field names (if not retrieved from the turb model) k kMean; epsilon epsilonMean; omega none; // omegaMean }
-
- Nov 04, 2021
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- was taking from the current head instead from specified commit-ish ENH: add -debian=NUM convenience option to foamPackRelease STYLE: relocate compile begin/end messages COMP: suppress more clang warnings (needed for boost)
-
Mark OLESEN authored
- simplify handling of warnings for surfaceBooleanFeatures
-
- Nov 03, 2021
-
-
Mark OLESEN authored
- provide a plain stream() method on messageStream to reduce reliance on casting operators and slightly opaque operator()() calls etc - support alternative stream for messageStream serial output. This can be used to support local redirection of output. For example, refPtr<OFstream> logging; // or autoPtr, unique_ptr etc // Later... Info.stream(logging.get()) << "Detailed output ..." << endl; This will use the stdout semantics in the normal case, or allow redirection to an output file if a target output stream is defined, but still effectively use /dev/null on non-master processes. This is mostly the same as this ternary (logging ? *logging : Info()) except that the ternary could be incorrect on sub-processes, requires more typing etc. ENH: use case-relative names of dictionary, IOstream for FatalIOError - normally yields more easily understandable information
-
Mark OLESEN authored
STYLE: more consistent noexcept for dictionary and entry
-
Mark OLESEN authored
- argList::envExecutable() static method. This is identical to getEnv("FOAM_EXECUTABLE"), where the name of the executable has typically been set from the argList construction. Provides a singleton access to this value from locations that do not have knowledge of the originating command args (argList). This is a similar rationale as for the argList::envGlobalPath() static. - additional argList::envRelativePath() static method. - make -dry-run handling more central and easier to use by adding into argList itself. STYLE: drop handling of -srcDoc (v1706 option) - replaced with -doc-source for 1712 and never used much anyhow
-
Mark OLESEN authored
- prune unneeded demandDrivenData.H includes
-
- Nov 02, 2021
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
- for compilers such as gcc and clang, may have several different variants installed on the computer. Use WM_COMPILER_CONTROL to specify the preferred variant. Eg, WM_COMPILER=Gcc WM_COMPILER_CONTROL="version=8" will compile with "gcc-8" and "g++-8" Good practice would be to tag output directory names with the version too. Eg WM_COMPILER=Clang110 WM_COMPILER_CONTROL="version=11.0" STYLE: modify message for change of gcc -> clang (darwin)
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
BUG: collated: threaded writing accesses out-of-scope. Fixes #2257. See merge request !494
-
-
- Oct 29, 2021
-
-
Mark OLESEN authored
- reflects updates for List, globalIndex handling etc
-
Mark OLESEN authored
-
Mark OLESEN authored
- using the proximityRegions filter when there is no enclosing surface to segregate domains causes a surface of zero-faces to be created. In most cases, this means that a simpler proximityFaces filter would have been more appropriate. To increase overall robustness, revert to the simpler proximityFaces filter logic when the proximityRegions would otherwise result in zero faces (globally seen).
-
Mark OLESEN authored
- reuse single component buffer within an Ensight output method. Use direct UPstream read/write to avoid Pstream char buffers - replace blocking transfer with scheduled for Ensight cloud output
-
Mark OLESEN authored
- use the new updates to globalIndex to manage the bookkeeping
-