When Laziness Is A Virtue
In
analyzing simulation results, scientists are often interested in
values derived from the fundamental state variables. For example,
they might be interested in velocity or vorticity values derived
from the density and momentum fields output by a simulator. The
approach used by older analysis tools -- to compute and then save
the derived value over the whole field -- can be very wasteful.
In many cases, the derived values are only needed on a surface or
along the path of a streamline. A
more effective approach is to compute the derived values only as
needed, avoiding unused computations and saving on memory requirements.
This approach is known as "demand-driven" or "lazy"
evaluation. Field Model includes classes that provide lazy derived
field capability. The virtual function interface of FM enables scientists
to use lazy fields interchangeably with other types of fields, transparent
to the routines accessing the data. The
lazy evaluation aspects of FM are also key to working in concert
with out-of-core paging techniques. The memory requirements of eager
derived fields -- the opposite of lazy -- would defeat the memory-saving
advantages of paging. With large time-series data sets in particular,
it is essential that the data model have a consistent, effective
strategy for memory management. FM features classes that provide
out-of-core paging capabilities, integrated seamlessly within the
data model.
| ||||||
|