Microscale and macroscale models
Microscale models form a broad class of computational models that simulate fine-scale details, in contrast with macroscale models, which amalgamate details into select categories. Microscale and macroscale models can be used together to understand different aspects of the same problem. Applications. Macroscale models can include ordinary, partial, and integro-differential equations, where categories and flows between the categories determine the dynamics, or may involve only algebraic equations. An abstract macroscale model may be combined with more detailed microscale models. Connections between the two scales are related to multiscale modeling. One mathematical technique for multiscale modeling  of nanomaterials is based upon the use of multiscale Green's function. In contrast, microscale models can simulate a variety of details, such as individual bacteria in biofilms, individual pedestrians in simulated neighborhoods, individual light beams in ray-tracing imagery, individual houses in cities, fine-scale pores and fluid flow in batteries, fine-scale compartments in meteorology, fine-scale structures in particulate systems, and other models where interactions among individuals and background conditions determine the dynamics. Discrete-event models, individual-based models, and agent-based models are special cases of microscale models. However, microscale models do not require discrete individuals  or discrete events. Fine details on topography, buildings, and trees can add microscale detail to meteorological simulations and can connect to what is called mesoscale models in that discipline. Square-meter-sized landscape resolution available from images allow water flow across land surfaces to be modeled, for example, rivulets and water pockets, using gigabyte-sized arrays of detail. Models of neural networks may include individual neurons but may run in continuous time and thereby lack precise discrete events. History. Ideas for computational microscale models arose in the earliest days of computing and were applied to complex systems that could not  accurately be described by standard mathematical forms. Two themes emerged in the work of two founders of modern computation around the middle of the 20th century. First, pioneer Alan Turing used simplified macroscale models to understand the chemical basis of morphogenesis, but then proposed and used computational microscale models to understand the nonlinearities and other conditions that would arise in actual biological systems. Second, pioneer John von Neumann created a cellular automaton to understand the possibilities for self-replication of arbitrarily complex entities, which had a microscale representation in the cellular automaton but no simplified macroscale form. This second theme  is taken to be part of agent-based models, where the entities ultimately can be artificially intelligent agents operating autonomously. By the last quarter of the 20th century, computational capacity had grown so far that up to tens of thousands of individuals or more could be included in microscale models, and that sparse arrays could be applied to also achieve high performance. Continued increases in computing capacity allowed hundreds of millions of individuals to be simulated on ordinary computers with microscale models by the early 21st century. The term "microscale model" arose later in the 20th century and now appears  in the literature of many branches of physical and biological science. Example. Figure 1 represents a fundamental macroscale model: population growth in an unlimited environment. Its equation is relevant elsewhere, such as compounding growth of capital in economics or exponential decay in physics. It has one amalgamated variable, formula_1, the number of individuals in the population at some time formula_2. It has an amalgamated parameter formula_3, the annual growth rate of the population, calculated as the difference between the annual birth rate formula_4 and the annual death rate formula_5. Time formula_2 can measured in years, as shown here for illustration , or in any other suitable unit. The macroscale model of Figure 1 amalgamates parameters and incorporates a number of simplifying approximations: These approximations of the macroscale model can all be refined in analogous microscale models. On the first approximation listed above—that birth and death rates are constant—the macroscale model of Figure 1 is exactly the mean of a large number of stochastic trials with the growth rate fluctuating randomly in each instance of time. Microscale stochastic details are subsumed into a partial differential diffusion equation and that equation is used to establish the equivalence. To relax other assumptions , researchers have applied computational methods. Figure 2 is a sample computational microscale algorithm that corresponds to the macroscale model of Figure 1. When all individuals are identical and mutations in birth and death rates are disabled, the microscale dynamics closely parallel the macroscale dynamics (Figures 3A and 3B). The slight differences between the two models arise from stochastic variations in the microscale version not present in the deterministic macroscale model. These variations will be different each time the algorithm is carried out, arising from intentional variations in random number sequences. When not all individuals are identical, the microscale dynamics can  differ significantly from the macroscale dynamics, simulating more realistic situations than can be modeled at the macroscale (Figures 3C and 3D). The microscale model does not explicitly incorporate the differential equation, though for large populations it simulates it closely. When individuals differ from one another, the system has a well-defined behavior but the differential equations governing that behavior are difficult to codify. The algorithm of Figure 2 is a basic example of what is called an equation-free model. When mutations are enabled in the microscale model (formula_7), the population grows more rapidly than in the macroscale model (Figures  3C and 3D). Mutations in parameters allow some individuals to have higher birth rates and others to have lower death rates, and those individuals contribute proportionally more to the population. All else being equal, the average birth rate drifts to higher values and the average death rate drifts to lower values as the simulation progresses. This drift is tracked in the data structures named "beta" and "delta" of the microscale algorithm of Figure 2. The algorithm of Figure 2 is a simplified microscale model using the Euler method. Other algorithms such as the Gillespie method and the discrete event method  are also used in practice. Versions of the algorithm in practical use include efficiencies such as removing individuals from consideration once they die (to reduce memory requirements and increase speed) and scheduling stochastic events into the future (to provide a continuous time scale and to further improve speed). Such approaches can be orders of magnitude faster. Complexity. The complexity of systems addressed by microscale models leads to complexity in the models themselves, and the specification of a microscale model can be tens or hundreds of times larger than its corresponding macroscale model. (The simplified example of Figure 2 has 25  times as many lines in its specification as does Figure 1.) Since bugs occur in computer software and cannot completely be removed by standard methods such as testing, and since complex models often are neither published in detail nor peer-reviewed, their validity has been called into question. Guidelines on best practices for microscale models exist but no papers on the topic claim a full resolution of the problem of validating complex models. Future. Computing capacity is reaching levels where populations of entire countries or even the entire world are within the reach of microscale models, and improvements in  the census and travel data allow further improvements in parameterizing such models. Remote sensors from Earth-observing satellites and from ground-based observatories such as the National Ecological Observatory Network (NEON) provide large amounts of data for calibration. Potential applications range from predicting and reducing the spread of disease to helping understand the dynamics of the earth. Figures. Figure 1. "One of the simplest of macroscale models: an ordinary differential equation describing continuous exponential growth. formula_1 is the size of the population at time formula_2, formula_10 is the rate of change through time in the single dimension formula_11. formula_12 is  the initial population at formula_13, formula_4 is a birth rate per time unit, and formula_5 is a death rate per time unit. At the left is the differential form; at the right is the explicit solution in terms of standard mathematical functions, which follows in this case from the differential form. Almost all macroscale models are more complex than this example, in that they have multiple dimensions, lack explicit solutions in terms of standard mathematical functions, and must be understood from their differential forms." Figure 2. "A basic algorithm applying the Euler method to an individual-based model. See text  for discussion. The algorithm, represented in pseudocode, begins with invocation of procedure formula_16, which uses the data structures to carry out the simulation according to the numbered steps described at the right. It repeatedly invokes function formula_17, which returns its parameter perturbed by a random number drawn from a uniform distribution with standard deviation defined by the variable formula_18. (The square root of 12 appears because the standard deviation of a uniform distribution includes that factor.) Function formula_19 in the algorithm is assumed to return a uniformly distributed random number formula_20. The data are assumed to be reset to their  initial values on each invocation of formula_16." Figure 3. "Graphical comparison of the dynamics of macroscale and microscale simulations of Figures 1 and 2, respectively."