- May 13, 2025
-
-
Mark OLESEN authored
- can be used to pre-allocate space for internal+boundary field for flat addressing (issue #3364). For example: DynamicField<Type> fld ( std::pair<label,label> ( GeoMesh::size(mesh), GeoMesh::size(mesh) + (extra ? GeoMesh::boundary_size(mesh) : label(0)) ) ); ENH: extend polyBoundaryMesh patch selectors - indices_if() method with a predicate, or with a patch-type behaves similarly to findPatchIDs(), but returns a sorted labelList instead of a labelHashSet - nFaces_if() method with a predicate return the number of boundary faces for patches matching the given predicate.
-
- May 12, 2025
-
-
Mark OLESEN authored
-
- May 09, 2025
-
-
Kutalmış Berçin authored
-
Co-authored-by:
Kutalmis Bercin <kutalmis.bercin@esi-group.com>
-
- May 08, 2025
-
-
Kutalmış Berçin authored
-
- May 06, 2025
-
-
Kutalmış Berçin authored
The solverPerformanceDict gets larger due to the addition of a SolverPerformance data per field at every outer iteration within the same main iteration/time step. However, the subsequent functionalities seem to use only the first and last element of this dictionary per field; therefore, storing the interim values was revealed to be redundant. The change removes the interim values by transforming the `List` container into the `Pair` container, and modifying the relevant algorithms.
-
- Apr 30, 2025
-
-
Mattijs Janssens authored
add -mpi-split-by-appnum option (issue #3127) See merge request !735
-
Mark OLESEN authored
- this can be used as an alternative to the (-world) multi-world option. For example, for calling OpenFOAM applications with MUI (https://github.com/MxUI/MUI)
-
Mark OLESEN authored
- can use -mpi-no-comm-dup to suppress the initial communicator duplication (to avoid potential deadlock with coupled processes). This is partly related to comments in merge-request !735 ENH: simplify parsing/removal of local -world option - can extract the world name in a single pass and also makes the parsing robuster. ENH: support regular MPI_Comm_split() - the two-step method of Allgather + Comm_create_group may not be expected by other applications (issue #3127) and that can lead to deadlock, so also add in code for the regular MPI_Comm_split. Does not support re-sorting keys! FIX: faulty logic for splitting communicators - only affected more recent develop branch
-
Andrew Heather authored
ENH: refine handling of DynamicList/DynamicField resizing See merge request !737
-
- Apr 29, 2025
-
-
Mark OLESEN authored
- similar to polyBoundaryMesh
-
Mark OLESEN authored
- useful to have std::reduce(), std::transform_reduce() available in more places, so treat like <algorithm> and include in "stdFoam.H" STYLE: add 'stricter' detection markers for cast of SubList to List etc. STYLE: remove 'const' qualifier from Foam:one/Foam::zero (in Field)
-
Mark OLESEN authored
- previously had special resizing treatment for the corner case when the addressable size and the new capacity are identical. However, that particular approach (to minimize copying) meant that the exact deallocation size would likely be incorrect. Having the correct deallocation size becomes more important with alternative allocators. Introduce resize_copy() protected function to limit the number of elements copied during the resize. ENH: provide DynamicList/DynamicField constructor with sizing - allows fine-grained creation of a DynamicList/DynamicField with a given size/capacity without an initial value. COMP: typo in code for DynamicList::push_back() with IndirectList
-
- Apr 25, 2025
-
-
Mark OLESEN authored
-
- Apr 24, 2025
-
-
mattijs authored
-
- Apr 23, 2025
-
-
Mattijs Janssens authored
-
- Apr 10, 2025
-
-
Kutalmış Berçin authored
Improve namespace qualification of min/max, other minor code improvements See merge request !736
-
- Apr 09, 2025
-
-
Mark OLESEN authored
-
Mark OLESEN authored
FIX: missing patch face index writeFields (#3347)
-
Mark OLESEN authored
- for reciprocal values, gMinMax() first and then calculate the reciprocal, which avoids creating temporaries STYLE: prefer MinMax to separate min/max accounting COMP: namespace qualify min/max for deltaT, CourantNo, etc (#3348)
-
Mark OLESEN authored
TUT: simplify example of coded motion solver
-
Mark OLESEN authored
- encapsulates IOListRef etc into a simpler syntax ENH: use UList instead of refPtr for IOListRef (avoids List cast etc)
-
Mark OLESEN authored
- these already existed for a single value, but now handle the full field. This is more memory-friendly. fld.clamp_min(lower); OLD: fld = max(fld, lower); fld.clamp_max(upper); OLD: fld = min(fld, upper);
-
Mark OLESEN authored
- central way to calculate reverse sizes for dynamic containers. For example; reserve_size<16, 2>(len, cap); // min-size=16, ratio=2 reserve_size<16, 3, 2>(len, cap); // min-size=16, ratio=1.5 replaces this type of code that was used in several places: max(SizeMin, max(len, label(2*capacity_))); The caller will have already checked (len < cap) before deciding to make this call. ENH: updates for DynamicList/DynamicField handling - add reserve_exact() method, which is like reserve() but without any extra sizing heuristics - add DynamicField 'reuse' constructors, consistent with Field constructors - sync allocated size before list destruction. This may help when using aligned allocation strategies.
-
- Apr 08, 2025
-
-
Mark OLESEN authored
Using 'return List<T>(std::move(dynList))' for transfer of content (with implicit shrinking) into a plain List, and leave copy elision to do the rest. The implicit transfer (move construct List from DynamicList) will normally invoke resize (new/delete and moving elements). With 'return dynList.shrink()', it will first invoke an internal resize (new/delete and moving elements), followed by a copy construct as a plain list. STYLE: avoid implicit cast to 'const List&' in constructors
-
- Apr 07, 2025
-
-
Mark OLESEN authored
- previously under Foam::Detail::ListPolicy, now as Foam::ListPolicy
-
Mark OLESEN authored
- avoids min(a,b), max(a,b) free functions (#3348)
-
Mark OLESEN authored
- provides an additional hook when linking OSspecific CONFIG: apply quiet flag to wmkdepend - suppresses "could not open FileName" warnings in quiet mode FIX: reinstate selection of strict/non-strict deprecation - accidentally removed in cf2b305b. - extend with a _STRICTER version as well.
-
- Apr 01, 2025
-
-
Kutalmış Berçin authored
avoid heap allocations for pseudo-inverse of tensor/symmTensor (#3313) See merge request !734
-
Mark OLESEN authored
-
- Mar 31, 2025
-
-
Mark OLESEN authored
- Pstream changes (one-sided), local AMI communicators, other adjustments
-
Mark OLESEN authored
- provide separate float/double UList interfaces, which improves flexibility (eg, with SPDP) - sigFpe::fillNan_if() interface, for filling in when using alternative memory allocators
-
Mark OLESEN authored
- previous code used derived string iterators, but these would be largely ignored anyhow since the underlying std::sub_match str() method would just yields a std::string anyhow. The SubStrings::str(size_t) method wasn't used in any code, so now just use std::string iterators only. This change simplfies overall handling, since it removes an unneeded template dependency.
-
Mark OLESEN authored
- /usr/bin/{gcc,g++} normally just symlinks to clang/clang++ and may have unknown default flags. For a gcc toolchain, it would be better to use a homebrew installation. For these cases, the compiler will need to be specified with version=.. in WM_COMPILE_CONTROL. For example, with "version=14", to select gcc-14, g++-14 from the homebrew installation. - needs a slight hack for locating the FlexLexer.h header. Added into src/OSspecific/POSIX similar to how it is handled in src/OSspecific/MSwindows CONFIG: add simple config/detection support for libumpire (Linux)
-
Mark OLESEN authored
- new options to set components specified by homebrew. Sets version as system, path from brew --prefix -adios-brew, -adios2-brew, -boost-brew, -cgal-brew, -fftw-brew, -kahip-brew, -metis-brew, -scotch-brew, -gmp-brew, -mpfr-brew -with-homebrew Shortcut for selecting all the above (except gmp, mpfr) * additional special treatment for GMP and MPFR. If using non-system locations and not part of the ThirdParty compiler, they can additionally be set in the CGAL config file: -gmp-brew, -gmp-path -mpfr-brew, -mpfr-path
-
Mark OLESEN authored
- easier to create type-specific looping in templated code STYLE: pass 'direction' and 'label' by value instead of reference COMP: qualify Foam::min() in dense matrix classes
-
- Mar 25, 2025
-
-
Mark OLESEN authored
-
- Mar 24, 2025
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mattijs Janssens authored
DEFEATURE: remove POSIX regex interface (#3343) See merge request !733
-