- Apr 08, 2023
-
-
Mark OLESEN authored
- mechanism has been unused for at least a decade or more (or was never used). Message tags are assigned on an ad hoc basis locally when collision avoidance is necessary.
-
Mark OLESEN authored
- not currently used, but it is possible that communicator allocation modifies the list of sub-ranks. Ensure that the correct size is used when (re)initialising the linear/tree structures. STYLE: adjust MPI test applications - remove some clutter and unneeded grouping. Some ideas for host-only communicators
-
- Apr 06, 2023
-
-
mattijs authored
- feature angle compared to real angle - stop agglomerating if number of marked edges does not change
-
- Apr 05, 2023
-
-
Mark OLESEN authored
- allow reporting even when profiling is suspended - consolidate reporting into profilingPstream itself (avoids code scatter). Example of possible advanced use for timing only one section of code: ==== // Profile local operations profilingPstream::enable(); ... do something // Don't profile elsewhere profilingPstream::suspend(); ====
-
Mark OLESEN authored
- separate broadcast times from reduce/gather/scatter time - separate wait times from all-to-all time - support invocation counts, split off requests time/count from others to avoid flooding the counts - support 'detail' switch to increase the output information. Format may change in the future
-
- Apr 04, 2023
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Apr 03, 2023
-
-
Mark OLESEN authored
STYLE: prefer GeometricField::New factory methods
-
Mark OLESEN authored
- attributes such as assignable(), coupled() etc - common patchField types: calculatedType(), zeroGradientType() etc. This simplifies reference to these types without actually needing a typed patchField version. ENH: add some basic patchField types to fieldTypes namespace - allows more general use of the names ENH: set extrapolated/calculated from patchInternalField directly - avoids intermediate tmp
-
- Mar 31, 2023
-
-
Kutalmış Berçin authored
-
- Mar 29, 2023
- Mar 23, 2023
-
-
Mark OLESEN authored
- avoid dependency on etc/openfoam (location may change)
-
Mark OLESEN authored
- with the current handling of small edges (finite-area), the LSQ vectors can result in singular/2D tensors. However, the regular 2D handling in field inv() only detects based on the first element. Provide a 'failsafe' inv() method for symmTensor and tensor that follows a similar logic for avoiding zero determinates, but it is applied on a per element basis, instead of deciding based on the first field element. The symmTensor::inv(bool) and tensor::inv(bool) methods have a fairly modest additional overhead. - unroll the field inv() function to avoid creating an intermediate field. Reduce the number of operations when adjusting/re-adjusting the diagonal.
-
Mark OLESEN authored
- for cases where a 3D tensor is being used to represent 2D content, the determinant is zero. Can use inv2D(excludeDirection) to compensate and invert as if it were only 2D. ENH: consistent definitions for magSqr of symmTensors, diagSqr() norm COMP: return scalar not component type for magSqr - had inconsistent definitions with SymmTensor returning the component type and Tensor returning scalar. Only evident with complex.
-
Mark OLESEN authored
- had an optimisation to skip attempted reading for zero-sized patches. But this leads to inconsistency in the code branching, thus removing it.
-
Mark OLESEN authored
- when only a partial stacktrace is desirable. ENH: add stack trace decorators - the 0-th frame is always printStack(), so skip that and emit some headers/footers instead. Eg, [stack trace] ============= #1 Foam::SymmTensor<double> Foam::inv<double>(...) #2 Foam::inv(Foam::UList<Foam::SymmTensor<double>> const&) ... ... =============
-
Mark OLESEN authored
- data_bytes(), size_bytes() methods to support broadcasting or gather/scatter content. Additional construct from raw bytes to support transmitting content.
-
Mark OLESEN authored
- can be easier to specify than copying into a dimensioned type. Eg, volSymmTensorField(io, mesh, Zero, dimLength); fluxFieldType ( io mesh, Zero, Uf.dimensions()*dimArea/dimTime ); vs volSymmTensorField ( io, mesh, dimensionedSymmTensor("0", dimLength, Zero) ); fluxFieldType ( io mesh, dimensioned<typename flux<Type>::type> ( Uf.dimensions()*dimArea/dimTime, Zero ) );
-
Mark OLESEN authored
- missed consistency in a few places. - return nullptr (with automatic conversion to tmp) on failures instead of tmp<....>(nullptr), for cleaner coding. INT: add support for an 'immovable' tmp pointer - this idea is from openfoam.org, to allow creation of a tmp that is protected from having its memory reclaimed in field operations ENH: tmp NewImmovable factory method, forwards as immovable/movable
-
- Mar 22, 2023
-
-
- Mar 16, 2023
-
-
- no-op implementations, but makes the call to GeometricBoundaryField::evaluate() less dependent on PatchField type - add updated()/manipulatedMatrix() methods to faePatchField, fvsPatchField etc. These are mostly no-ops, but provide name compatible with fvPatchField etc.
-
- Mar 10, 2023
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- self-documenting
-
- Mar 09, 2023
-
-
Mark OLESEN authored
- similar to UPstream::parRun(), the setter returns the previous value. The accessors are prefixed with 'comm': Eg, commGlobal(), commWarn(), commWorld(), commSelf(). This distinguishes them from any existing variables (eg, worldComm) and arguably more similar to MPI_COMM_WORLD etc... If demand-driven communicators are added in the future, the function call syntax can help encapsulate that. Previously: const label oldWarnComm = UPstream::warnComm; const label oldWorldComm = UPstream::worldComm; UPstream::warnComm = myComm; UPstream::worldComm = myComm; ... UPstream::warnComm = oldWarnComm; UPstream::worldComm = oldWorldComm; Now: const label oldWarnComm = UPstream::commWarn(myComm); const label oldWorldComm = UPstream::commWorld(myComm); ... UPstream::commWarn(oldWarnComm); UPstream::commWorld(oldWorldComm); STYLE: check (warnComm >= 0) instead of (...
-
Mark OLESEN authored
-
- Mar 08, 2023
-
-
Mark OLESEN authored
- deprecate timeVaryingUniformFixed (now redundant)
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
- base level now explicity equivalent to LAZY_READ with overriding as required - clearer documentation for reading of "value" for faPatchField
-
- Mar 07, 2023
-
-
Mark OLESEN authored
- constructing with valueRequired as a bool is still supported, but now also support more refined requirements (eg, NO_READ, MUST_READ, LAZY_READ) - continue with LAZY_READ for finite-area fields
-
- Mar 03, 2023
-
-
Mark OLESEN authored
-
Mark OLESEN authored
STYLE: use readValueEntry and Field assign to simplify code
-
Mark OLESEN authored
ENH: improved point-cell and cell-point topology methods (#2715) See merge request Development/openfoam!597
-
Mark OLESEN authored
-
Mark OLESEN authored
ENH: construct or reset boundBox from zero_one for a 0-1 unit cube ENH: add some testing timings (for !596 and #2715)
-
Mark OLESEN authored
-
- Mar 02, 2023
-
-
Mark OLESEN authored
ENH: support VTK output of procIDs for point data for some writers TUT: areaWrite for drippingChair
-
Mark OLESEN authored
- interpret as '-decomposeParDict xyz' for simpler scripting: A empty value ("") as well as "none" or "false" values are ignored. Eg, unset decompDict if some_condition; then decompDict=decomposeParDict-12; fi runParallel -decompose-dict=$decompDict ... ENH: more generous when scanning decomposeParDict for numberOfSubdomains - assume file is in system/ directory if not otherwise found
-
Mark OLESEN authored
- this helps isolate selection of PEX vs NBX, for potential migration to a hybrid PEX
-