mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
The standardRecModel class reads all fields of the data base at once. This might create a problem in cases with a large number of snapshots and/or a large mesh, as the machine's memory (RAM) would become a bottleneck. Thus, the class gerhardsRecModel implements an incomplete data base, with a user-defined number of slots M. In cases with a larger number of snapshots on disk N, with N > M, the class will manage its data base in a fashion similar to an operating system managing memory pages. The class gerhardsRecModel implements a least-recently used (LRU) algorithm, which vacates the least-used of the dataBase's M slots. An integer list is used to track the slots' usage, each access to a slot is logged, thus the least-used slot can be easily determined. In order to fully utilize the LRU algorithm, the computation of the recurrence matrix in sqrDiffNorm.C had to modified such, that three nested for-loops are used, instead of two nested loops. Thus, a certain number of additional, essentially no-op, loop iterations are expended in order to accomodate the LRU algorithm. Keeping the two nested loops would have reaped only part of LRU's potential gains. In order to accomodate data base management in the classes derived from the class recModel, some const specifiers had to be removed. For informational purposes, a method has been added to the class. The class gerhardsRecModel first checks the existence of all N to-be-read fields, and then fills the data base with the first M fields. Further features included in this commit: All elements of the recurrence model are initialized with the value of -1.0 Thus, some form of error checking is introduced, as negative values should not remain within the matrix after computation has finished. Skipping the 0 directory of the data base. This, might be useful when using rStatAnalysis as post-processing tool. The class multiIntervalPath was adapted to use OpenFOAM's methods for parallel communication. Reference: Modern Operating Systems Andrew S. Tannenbaum, Prentice Hall, 1992
10 lines
44 B
Plaintext
10 lines
44 B
Plaintext
*.o
|
|
*.d
|
|
*.a
|
|
*.dep
|
|
log_*
|
|
log.*
|
|
*~
|
|
|
|
lnInclude
|