MIMIC

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

MIMIC, known in capitalized form only, is a former simulation computer language developed 1964 by H. E. Petersen, F. J. Sansom and L. M. Warshawsky of Systems Engineering Group within the Air Force Materiel Command at the Wright-Patterson AFB in Dayton, Ohio, USA.[1] It is an expression-oriented continuous block simulation language, but capable of incorporating blocks of FORTRAN-like algebra.

MIMIC is a further development from MIDAS (Modified Integration Digital Analog Simulator), which represented analog computer design. Written completely in FORTRAN but one routine in COMPASS, and ran on Control Data supercomputers, MIMIC is capable of solving much larger simulation models.

With MIMIC, ordinary differential equations describing mathematical models in several scientific disciplines as in engineering, physics, chemistry, biology, economics and as well as in social sciences can easily be solved by numerical integration and the results of the analysis are listed or drawn in diagrams. It also enables the analysis of nonlinear dynamic conditions.

The MIMIC software package, written as FORTRAN overlay programs, executes input statements of the mathematical model in six consecutive passes. Simulation programs written in MIMIC are compiled rather than interpreted. The core of the simulation package is a variable step numerical integrator of fourth-order Runge-Kutta method. Many useful functions related to electrical circuit elements exist besides some mathematical functions found in most scientific programming languages. There is no need to sort the statements in order of dependencies of the variables, since MIMIC does it internally.

Parts of the software organized in overlays are:

  • MIMIN (input)– reads in user simulation program and data,
  • MIMCO (compiler) – compiles the user program and creates an in-core array of instructions,
  • MIMSO (sort)– sorts the instructions array after dependencies of variables,
  • MIMAS (assembler) – converts the BCD instructions into machine-oriented code,
  • MIMEX (execute)– executes the user program by integrating,
  • MIMOUT (output)– puts out the data as a list or diagram of data.

Example

Problem

Consider a predator-prey model from the field of marine biology to determine the dynamics of fish and shark populations. As a simple model, we choose the Lotka–Volterra equation and the constants given in a tutorial.[2]

If

f(t): Fish population over time (fish)
s(t): Shark population over time (sharks)
df / dt or \dot f: growth rate of fish population (fish/year)
ds / dt or \dot s: growth rate of shark population (sharks/year)
\alpha: growth rate of fish in the absence of sharks (1/year)
\beta: death rate per encounter of fish with sharks (1/sharks and year).
\gamma: death rate of sharks in the absence of their prey, fish (1/year)
\epsilon: efficiency of turning predated fish into sharks (sharks/fish)

then

 \dot f = \alpha f - \beta f s
 \dot s = \epsilon \beta f s - \gamma s

wlth initial conditions

 f(0) = f_o
 s(0) = s_o

The problem's constants are given as:

  • f_o = 600 fish
  • s_o = 50 sharks
  • \alpha = 0.7 fish/year
  • \beta = 0.007 fish/shark and year
  • \gamma = 0.5 shark/year
  • \epsilon = 0.1 shark/fish
  • tmax = 50 year
Code sample
Card columns
0        1         2         3         4         5         6         7
12345678901234567890123456789012345678901234567890123456789012345678901
-----------------------------------------------------------------------
* A SIMPLE PREDATOR-PREY MODEL FROM MARINE BIOLOGY
/ (TUTORIAL 2: NUMERICAL SOLUTION OF ODE'S - 19/08/02)
/ ENVIRONMENTAL FLUID MECHANICS LAB
/ DEPT OF CIVIL AND ENVIRONMENTAL ENGINEERİNG
/ STANFORD UNIVERSITY
*
* LOTKA–VOLTERRA EQUATION
                  CON(F0,S0,TMAX)
                  CON(ALPHA,BETA,GAMMA,EPS)
          1DF   = ALPHA*F-BETA*F*S
          F     = INT(1DF,F0)
          1DS   = EPS*BETA*F*S-GAMMA*S
          S     = INT(1DS,S0)
                  HDR(TIME,FISH,SHARK)
                  OUT(T,F,S)
                  PLO(F,S)
                  FIN(T,TMAX)
                  END
<EOR>
600.       50.          50.
0.7        0.007        0.5         0.1
<EOF>

References

  1. Defense Technical Information Center
  2. Lua error in package.lua at line 80: module 'strict' not found.
Notes
  • Control Data MIMIC; A Digital Simulation Language, Reference Manual, Publication Number 4461n400, Control Data Corporation, Special Systems Publications, St. Paul, Minnesota (April 1968)
  • MIMIC, An Alternative Programming Language for Industrial Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon 1972
  • MIMIC Manual (1969), Computer Center Oregon State University