The present disclosure relates, in general, to simulation analysis, and, more particularly, to incorporating uncertainty into simulation analysis.
Simulation analysis is used in a wide variety of applications, such as the simulation of technology for performance optimization, safety engineering, testing, training, education, and the like. It is also used for scientific modeling of natural or human systems in order to gain insight into their functioning or used to estimate the eventual real effects of alternative conditions and courses of action on such systems. It may also often be used when operations of the real system cannot be engaged, either because it is not accessible or may be dangerous or unacceptable to engage. Such simulation analyses are generally performed using software or firmware executed on one or more general purpose computers or on special purpose computers or devices as the complexity of these systems, and the calculations used to simulate these systems, make human calculation essentially useless for any meaningful results.
In setting up any given simulation, mathematical formulas are developed that attempt to provide highly accurate models of the operation of the system to be simulated. Most systems of interest have a complex combination of parameters that the modeling formulas will use for simulating the results of system operation. Systems may be modeled in the time domain or frequency domain depending on what the intended analysis may be. In the time domain, one example of a modeling method is the finite-difference time-domain (FDTD) method. The FDTD method is often used to model wave-related phenomena, such as electromagnetic wave interactions. Another time domain method, computation fluid dynamics (CFD), uses numerical methods and algorithms to solve and analyze problems that involve fluid flows. Time domain methods generally simulate the test system over a period of time. Finite element simulations are also sometimes run in the time domain to simulate movement of machines or structures. Therefore, the modeling equations will be run using the various parameters for each point in space of the defined test system where each iteration of the test system simulation is performed at each instant of time within the tested period of time. Thus, the simulation of the underlying test system will not only generally include multiple iterations, where each iteration corresponds to the specific tested point in time, but will also include multiple sub-iterations, where the modeling equations are solved for each point in space of the defined test system. The resulting time domain simulation will illustrate the conditions of the tested system at each point in space of that tested system and will present those conditions for every point in time of the tested time period, much like the frames of a film presenting a motion picture.
One example of a frequency domain modeling method is the finite-difference frequency domain (FDFD) method. The FDFD is similar to the FDTD method except for simulating the underlying test system at each frequency in a tested band of frequencies. The FDFD is also used in modeling electromagnetic wave interactions. The basic process for simulating the test system using the FDFD is similar to the basic process of simulation with the FDTD method except that the simulation is performed over a band of different frequencies, as opposed to a window of time. There are many other different types of computational modeling methods and techniques that may be used in simulating various different systems for analysis.
In performing the simulation, most modeling techniques will arrive at a particular determinative result based on the particular set of parameters used in the model. This determinative result may be an expected average value or possibly a more exact value. However, most real world systems include an element of uncertainty that may cause the actual, real world result to differ, whether slightly or substantially, from the simulated result. For example, in a CFD analysis of fluid flowing through a porous geological formation, variations in the size or shape of the pores may have a substantial influence on the resulting flow dynamics of the fluid. Therefore, a simulation result that does not account for this variation may be substantially different from the real world result. In another type of simulation analysis, FDTD methods are used to simulate radio wave absorption by the human body caused by use of a particular cell phone design. For health and safety reasons, regulatory agencies set maximum allowable electromagnetic energy absorption rates for cell phones. Therefore, cell phone designers generally simulate various test designs to determine whether the designs will meet these regulations. In simulating this biological system, the electromagnetic waves propagate at a known, determinative rate. However, the amount of electromagnetic energy absorbed by a user's head will vary widely based on the size and shape of the user's head, the thickness of the ear, the variability in tissue properties, and the like. Using average values for these parameters in a typical FDTD simulation will yield a relatively accurate average result. However, in real world usage, it is possible that there may be users who absorb more or less electromagnetic energy than the standards allow because of the added uncertainty in the real world systems. Determining if such cases exist could be important for some applications.
Accounting for these uncertainties during simulation analysis often leads to even more complicated modeling and calculations. For example, one common solution used to account for the uncertainty and variability present in various systems is by adding a Monte Carlo analysis to the underlying simulation. The Monte Carlo method or analysis is a computational algorithm that may be used in statistical analysis to analyze uncertainty. These elements of uncertainty may be characterized as statistical variations of some of the particular properties making up the underlying test system. The Monte Carlo method generally uses randomly generated inputs to simulate the process of sampling the operations of the underlying test system from an actual random population. The Monte Carlo method will often define one or more sets of possible inputs for all or a selected number of parameters defining the system model to be simulated. The method will then run the simulation using inputs randomly selected from the particular domains for the parameters of the system model. In order to obtain an adequate sampling, the method will be run repeatedly, often running in the thousands and tens of thousands of repetitions, each testing a randomly sampled input. The data from all of these simulations are then tabulated and post-processed to determine the mean or first moment and the variance or first central moment. While each single simulation may take several hours to complete, the entire Monte Carlo process, running thousands of repetitions, could take days or even weeks to complete. Adding this amount of time and processing cost to a simulation analysis greatly increases the overall cost of the simulation analysis and is actually a deterrent to accounting for uncertainty in the simulation analysis of many systems.
Additional types of simulations in use for models with statistically varying properties include the Stochastic Finite Element Method (SFEM), perturbation methods, and the like. SFEM is a combination of deterministic FEM using uncertainties in the input parameters. SFEM uses various methods for simulating the statistical variations of the underlying test environment including Monte Carlo methods, perturbation, Neumann expansion, polynomial chaos expansion, and the like. Perturbation methods are generally based on Taylor series approximations and are usually low in computational costs. However, accuracy of such perturbation methods is generally acceptable only for small perturbations.
Various aspects of the present disclosure are directed to accounting for uncertainty in simulations of test systems. The simulations include iterative computations that calculate for various subjects of interest in the underlying test systems. The iterations are made over the domain of the simulation. Time domain or frequency domain simulations would provide for time-based or frequency-based iterative calculations. For each iteration, parameter values are defined for the different statistical variables of the modeling formulas. Those values are often selected or defined for the particular iteration point from a set of statistical values. For example, for the particular instant in time being tested, for time domain simulations, or the particular frequency in frequency domain simulations. The modeling formulas are solved for the subject of interest at each part of the test model space for that particular iteration point. In addition to solving for the value of the subject of interest, the variance of the subject of interest is also calculated at each part of the test model space for that particular iteration point. The variance is calculated using, at least in part, a correlation coefficient that reflects the conditions of the test space model. The correlation coefficient may be determined either before the simulation begins or also determined iteratively throughout the simulation process. The correlation coefficient may be based on the various conditions of the test space model or may also simply be an estimate entered by a user running the simulation. The simulation will continue iterating through each point of the simulation domain calculating a value and variance of the subject of interest.
Additional representative aspects of the present disclosure are directed to a method of simulating a test system in a computing device. The method includes executing, by a processor, a simulation application stored on a memory coupled to the processor. The executing simulation application establishes a simulation environment in the computing device. The method also includes receiving input defining one or more parameter values for populating one or more modeling formulas defining the test system, the defined parameter values corresponding to one of the points defining a domain in which the test system is to be simulated. The method further includes obtaining a correlation coefficient for one or more subjects of interest in the test system, calculating a result for the subjects of interest using the populated modeling formulas, calculating a variance of the subjects of interest using at least the correlation coefficient, and repeating the receiving, the calculation of the result, and the calculation of the variance for each subsequent point of the domain.
Still further representative aspects of the present disclosure are directed to a computer program product to simulate a test system in a computing device. The computer program product includes a computer-readable medium having program code recorded thereon. The program code includes code to establish a simulation environment in the computing device and code to receive input defining one or more parameter values for populating one or more modeling formulas defining the test system. The defined parameter values correspond to one of the points defining a domain in which the test system is to be simulated. The program code also includes code to obtain a correlation coefficient for one or more subjects of interest in the test system, code to calculate a result for the subjects of interest using the populated modeling formulas, code to calculate a variance of the subjects of interest using at least the correlation coefficient, and code to repeat execution of the program code to receive input, the program code to calculate the result, and the program code to calculate the variance for each subsequent point of the domain.
Still further representative aspects of the present disclosure are directed to a computing device configured to simulate a test system. The computing device includes at least one processor and a memory coupled to the processor. The processor is configured to receive input defining one or more parameter values for populating one or more modeling formulas defining the test system. The defined parameter values correspond to one of the points defining a domain in which the test system is to be simulated. The processor is further configured to obtain a correlation coefficient for one or more subjects of interest in the test system, to calculate a result for the subjects of interest using the populated modeling formulas, to calculate a variance of the subjects of interest using at least the correlation coefficient, and to repeat the receiving, the calculating the result, and the calculating the variance for each subsequent point of the domain.
The foregoing has outlined rather broadly the features and technical advantages of the present disclosure in order that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter which form the subject of the claims of this disclosure. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the disclosure as set forth in the appended claims. The novel features which are believed to be characteristic of the present disclosure, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
For a more complete understanding of the present disclosure, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
In the preceding detailed description, numerous specific details were set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter. Some portions of the detailed description were presented in terms of algorithms or symbolic representations of operations on data bits or binary digital signals stored within a computing system memory, such as a computer memory. These algorithmic descriptions or representations are examples of techniques used by those of ordinary skill in the art to convey the substance of their work to others skilled in the art.
An algorithm is here, and generally, considered to be a self-consistent sequence of operations or similar processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such physical quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these and similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like, refer to actions or processes of a computing platform, such as a computer or a similar electronic computing device, that manipulates or transforms data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.
Turning now to
Simulation application module 104 contains several different modules and elements that provide the information and means to simulate the underlying test system. Simulation application module 104 contains modeling formulas 105, which provide the mathematical formulas or algorithms used to calculate the value of the subjects of interest in the test system. It also includes test system model 107, which provides a mathematical representation of the test system. For example, referring again to the cell phone testing example, the test system is a physical area encompassing a cell phone positioned in close proximity to one of the ears on a human head. One of the methods for simulating this test system is using a time domain, grid-based model, such as the FDTD method. In this particular example test system, test system model 107 may include the mathematical representation of the physical area of the cell phone-head combination including the different attributes of each of the materials within the area and the division of the overall area into the individual small grid cells that will be used in the simulation with the FDTD method. In the earthquake simulation example, test system model 107 may include the mathematical representation of the area being simulated along with the representative attributes of the various soil layers, rock formation, and the like.
Domain window 110 includes the boundary points or test window for the simulation. In time domain simulations, domain window 110 may include the period of time and the incremental step value over which the simulation is to be run. In frequency domain simulations, domain window 110 may include the band of frequencies and the incremental frequency step value over which the simulation is to be run. For each such incremental step in the simulation process, the variance and mean are calculated for the subjects of interest. Variance module 108 and mean module 109 include the formulas to calculate the mean or average value of the subject of interest and the variance of the subject of interest for that particular simulation. Variance module 108 will use a correlation coefficient from correlation coefficient module 106 in order to calculate the variance. Each correlation coefficient corresponds to a particular subject of interest being tested. Correlation coefficient module 106 determines the correlation coefficient through any number of different ways. For example, correlation coefficient module 106 may analyze test system model 107 to determine the properties of the various features of the test system. For instance, in the cell phone-head simulation, the variability of tissue, head shape or size, ear size, and the like would indicate wave reflection coefficients that could be used to determine the correlation coefficient. In other implementations, a user may simply enter an estimated value through input device 103 or otherwise.
It should be noted that in some embodiments of the present disclosure, the correlation coefficients may be determined by correlation coefficient module 106 once, prior to the start of the simulation, with the same determined correlation coefficient being used for each simulation of the points in domain window 110. In additional or alternative embodiments of the present disclosure, correlation coefficient module 106 may re-determine the correlation coefficient for every incremental test point after each simulation. By re-determining the correlation coefficients for each incremental simulation, correlation coefficient 106 will account for any changes occurring throughout the test system as the simulation incrementally progresses through domain window 110.
As the simulation is begun, the simulation environment defined by execution of simulation application module 104 will populate the variables of modeling formulas 105 using parameter values 111. Parameter values 111 include the sets of statistical values for each of the variables in modeling formulas 105. The particular values selected by the simulation environment from parameter values 111 correspond to the conditions at the particular point within domain window 110. Using the defined parameter values, modeling formulas 105 are then used to calculate the value of the subjects of interest for that incremental point in domain window 110. Variance module 108 and mean module 109 then calculate the variance and mean of the subjects of interest for that incremental point. Once all calculations for that simulation are completed, the simulation environment stores the results in memory 101 and continues the next simulation for the next incremental point in domain window 110, again, selecting the appropriate new values from parameter values 111 for modeling formulas 105. The simulation environment continues this process until the simulation has run over all of domain window 110.
In one specific implementation of the present disclosure, the simulation of the cell phone-head analysis may be conducted.
The example implementation described with respect to
I. Background of Simulations Using FDTD
A. Finite-Difference Time-Domain (FDTD)
The finite-difference time-domain (FDTD) method generally replaces Maxwell's differential equations with difference equations. FDTD does not require the use of linear algebra for its solution as does the Finite Element Method (FEM). FDTD models have been run with as many as 109 field unknowns compared to the largest FEM simulation of about 106 unknowns. The number of unknowns that can be simulated continually increases as the memory and computational capability of computers increases.
The FDTD method has many properties that give it advantages over other methods. It is useful for complex heterogeneous models, such as cell phone studies and has been used to model cell phones, as well as radar cross-section of entire aircraft, missiles, circuit boards, waveguides, as well as device packaging, and passive and active circuit components. It does not use linear algebra to solve a matrix equation (as FEM does), thus expanding the size of problems it can evaluate. The sources of numerical error are well understood for FDTD simulations. There are three sources of error with FDTD simulation: modeling errors, truncation errors, and round-off errors. The modeling errors are those that would be caused by the assumptions used in coming up with a mathematical model. Truncation errors have to do with Taylor series being truncated and the model space being divided up in increments of distance. One can use longer Taylor series expansions and divided the space into finer and finer increments but this would lead to more round-off errors. Round-off errors are due to the way numbers are represented in computers, these numbers have finite precision. But knowing about these types of errors, one can modify the size of steps, increase the precision of the computer simulation to use double precision, and use more terms of the Taylor series expansion of the original difference equations.
FDTD is considered a space grid time domain technique which is a direct solution method for Maxwell's differential curl equations. The region of the simulation is defined, and sources are modeled in the time domain. Antennas and other sources can be simulated close to or far from different objects, and both near and far field reactions can be analyzed. The interest here is the development of approximations to derive the mean and the variance without performing a Monte Carlo analysis, which takes a lot of simulation time. In the present disclosed detailed example, human tissue is modeled, in a very simplified three layer model (skin, fat, and muscle), as illustrated in
B. Perturbation Theory
Perturbation theory is used to find an approximate solution to a problem that is very difficult to derive an exact solution. In the classical sense, it assumes that the solution has a Taylor series expansion that is truncated using only the first few terms. This truncated series is substituted into the equation that is being approximated, and the equation is expanded. The coefficients of the Taylor Series are then determined mathematically This method has been used in a number of problems before. This is one of the methods that is used in finding the stochastic properties of mechanical systems using FEM simulations.
In the sense that it is being used here, the stochastic function g(∈R,σ) is expanded in a Taylor Series (truncated) about the mean of the two random variables ∈R (permittivity) and σ (conductance) the tissue properties, i.e., μ∈
C. Detail—FDTD Equations
Beginning with Faraday's law (with Maxwell's correction) and Ampere's law:
For one dimensional TEM propagation in the z direction this simplifies to:
They are then converted to their difference form yielding the following equations:
D. Monte Carlo Analysis
The Monte Carlo Analysis repeatedly runs the same simulation over and over again changing the physical (stochastic variables) parameters of the human tissue at the beginning of each simulation. These parameters (i.e., ∈R,σ) are chosen randomly based upon their Gaussian statistics. Each simulation determines a sample of the stochastic model space. The simulations are accumulated (stored) to be post-processed to determine statistical averages of the E and H fields. Monte Carlo analysis uses thousands of runs to be made to get good statistical data. These simulations can take hours to perform (>5 hours for 10,000 simulations for the simple one-dimensional model given above).
II. DETERMINE STOCHASTIC FDTD EQUATIONS
A. Delta Method
1) Mean Approximation
In the approximations that will be disclosed with regard to this detailed example, Stochastic equations are used that contain six random variables. These namely are the E (electric) fields terms, H (magnetic) fields terms, relative permittivity (∈r), and the conductivity (σ). The symbol for the conductivity is sigma σ, and it has been changed to (σ) for clarity sake to allow the standard symbol for the variance terms.
The underlying process begins with the Taylor's Series expansion of a generic function which is referred to here as g(x1, x2, x3, . . . , xn)=shown next.
Taking the expectation of equation (6):
Because the expectation is a linear operator, the brackets of the equation can be opened and the expectation operator applied to each term yielding the following equation:
There are a number of terms in equation (8) that go to zero, such as the terms containing E{xi, μx
neglecting high order terms reduces equation (10) even further to
E{g(x1,x2,x3, . . . ,xn)}≈g(μx
which is the desired approximation that will be used for the mean of the Stochastic equation.
2) Variance Approximation
Using the same procedure as previously presented and the following identity for the Variance,
σ2{g(x1,x2,x3, . . . ,xn)}=E{g(x1,x2,x3, . . . ,xn)2}−E{g(x1,x2,x3, . . . ,xn)}2 (12)
Equation (12) is then expanded in a Taylor's Series about the mean of each of the stochastic variables which yields:
Removing higher order terms from equation (13) results in the variance of g(x1, x2, x3, . . . , xn) expanded about the mean of the random variables being approximately equal to:
B. Mean Approximation
Using the expectation operator on the FDTD equations, the mean of both Byn+1/2(k) and Eyn+1(k) are analytically determined. Taking the mean of both sides of Faraday's and Ampere's difference equations (4) and (5) yields the following:
Because the expectation is a linear operator (E{aX+bY} is equal to aE{X}+bE{Y} with a and b being constant), the brackets on the left side of each equation can be opened and the expectation operator applied to each term. The first equation, Byn+1/2(k), is very easy to expand with the expectation operator. Leaving each term in a form well suited for FDTD simulation yields:
Equation (17) is Faraday's mean equation.
Ampere's equation is not as easily separated, as can be seen from the following equation:
This function is difficult to separate Exn(k) from (∈r) or (σ), because these two random variables randomize Exn(k).
The above equation shows that Exn(k) (stochastic function of the form g (X,Y)) is a multi-variable function. An approximation to this function, E{Exn+1(k)[∈rσ]}, using the previously derived equation (11) yields Exn+1(k)[E{∈r},E{σ}]. Substituting the expectations of both E{∈r} and E{σ} results in the following:
Equation (19) is Ampere's mean equation. This is the original FDTD equation using the mean of each physical parameter of each layer. This seems reasonable given that one would assume that the mean E field would occur using the mean of the random parameters for each layer that is used in the simulation.
C. Variance Approximation
The variance of each of the two FDTD equations is determined next. In deriving these equations, the time and spatial coordinates are maintained and a number of identities are used, namely the variance of the sum of random variables and the multiplication of the random variable by a constant:
σ2[X±Y]=σX2+σY2±2Cov(X,Y) (20)
σ2{aX}=a2σ2{X} (21)
where a is constant, and the Covariance identity is:
Cov(X,Y)=ρXYσ{X}σ{Y} (22)
To maintain the time and spatial coordinates, the finite difference equations are used in the following form prior to taking the variance of both sides of each equation, i.e., Faraday's and Ampere's equations:
1) Faraday's Equation
Taking the variance of the first of these equations yields:
After some manipulation, equation (25) becomes:
From Monte Carlo Analysis the correlation coefficients in the preceding equation, i.e., ρB
Using this approximation for the correlation coefficients (equal to one) the following equation is achieved, with some rearranging of terms.
Equation (27) shows that the proper timing and spatial coordinates have been maintained with the covariance term yielding a geometric mean of the terms involved. Equation (27) also illustrates that the terms on both sides of the equation are perfect squares. Placing these equations into their proper squared form yields:
Taking the square-root of each side, of equation (29), allows the variance-wave to build and self-limit. It also allows the use of standard boundary conditions to be used at model space boundaries.
Solving for σ{Byn+1/2(k+1/2)} yields:
Equation (30) is Faraday's variance equation
2) Ampere's Equation
Following the same procedure for Ampere's equation yields:
Again, the compound terms cannot be separated except by the Delta approximation found in equation (14) repeated here
After much manipulation, and solving for σ{Exn+1(k)} yields:
Equation (32) is Ampere's variance equation.
Equation (32) is an approximation of the variance-wave for Ampere's Law. This equation includes standard deviation terms and the fields terms of both the E and H fields. The field terms supply the source for the stochastic FDTD equation which come from the simultaneous simulation of mean FDTD approximations. It should be noted that the field terms in equation (32), E and H, are mean valued (because each of these terms are evaluated at the mean of each of the random variables). With the two equations, equation (30) and equation (32), a variance wave can be generated yielding an approximation to the variance of the E-fields propagating through test system model space 40 (
It should be noted that the multiple examples described herein with regard to the biological simulation analysis of electromagnetic energy absorption by a human head from a cell phone are not intended to limit the present disclosure to only a single application. The various aspects and embodiments of the present disclosure have multiple applications and potential implementation beyond such simulations.
It should be noted that various post-processing may be applied to any of the disclosed implementations and examples in order to graphically present the simulation results for analysis or for further investigation. These post-processing elements do not affect the intended scope of the various embodiments of the present disclosure.
Embodiments, or portions thereof, may be embodied in program or code segments operable upon a processor-based system (e.g., computer system or computing platform) for performing functions and operations as described herein. The program or code segments making up the various embodiments may be stored in a computer-readable medium, which may comprise any suitable medium for temporarily or permanently storing such code. Examples of the computer-readable medium include such tangible computer-readable media as an electronic memory circuit, a semiconductor memory device, random access memory (RAM), read only memory (ROM), erasable ROM (EROM), flash memory, a magnetic storage device (e.g., floppy diskette), optical storage device (e.g., compact disk (CD), digital versatile disk (DVD), etc.), a hard disk, and the like.
Embodiments, or portions thereof, may be embodied in a computer data signal, which may be in any suitable form for communication over a transmission medium such that it is readable for execution by a functional device (e.g., processor) for performing the operations described herein. The computer data signal may include any binary digital electronic signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic media, radio frequency (RF) links, and the like, and thus the data signal may be in the form of an electrical signal, optical signal, radio frequency or other wireless communication signal, etc. The code segments may, in certain embodiments, be downloaded via computer networks such as the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), the public switched telephone network (PSTN), a satellite communication system, a cable transmission system, and/or the like.
Computer system 700 also includes random access memory (RAM) 703, which may be SRAM, DRAM, SDRAM, or the like. Computer system 700 includes read-only memory (ROM) 704 which may be PROM, EPROM, EEPROM, or the like. RAM 703 and ROM 704 hold user and system data and programs, as is well known in the art.
Computer system 700 also includes input/output (I/O) adapter 705, communications adapter 711, user interface adapter 708, and display adapter 709. I/O adapter 705, user interface adapter 708, and/or communications adapter 711 may, in certain embodiments, enable a user to interact with computer system 700 in order to input information.
I/O adapter 705 connects to storage device(s) 706, such as one or more of hard drive, compact disc (CD) drive, floppy disk drive, tape drive, etc., to computer system 700. The storage devices are utilized in addition to RAM 703 for the memory requirements of the various embodiments of the present disclosure. Communications adapter 711 is adapted to couple computer system 700 to network 712, which may enable information to be input to and/or output from system 700 via such network 712 (e.g., the Internet or other wide-area network, a local-area network, a public or private switched telephony network, a wireless network, any combination of the foregoing). User interface adapter 708 couples user input devices, such as keyboard 713, pointing device 707, and microphone 714 and/or output devices, such as speaker(s) 715 to computer system 700. Display adapter 709 is driven by CPU 701 and/or by graphical processing unit (GPU) 716 to control the display on display device 710 to, for example, present the results of the simulation. GPU 716 may be any various number of processors dedicated to graphics processing and, as illustrated, may be made up of one or more individual graphical processors. GPU 716 processes the graphical instructions and transmits those instructions to display adapter 709. Display adapter 709 further transmits those instructions for transforming or manipulating the state of the various numbers of pixels used by display device 710 to visually present the desired information to a user. Such instructions include instructions for changing state from on to off, setting a particular color, intensity, duration, or the like. Each such instruction makes up the rendering instructions that control how and what is displayed on display device 710.
It shall be appreciated that the present disclosure is not limited to the architecture of system 700. For example, any suitable processor-based device may be utilized for implementing the various embodiments of the present disclosure, including without limitation personal computers, laptop computers, computer workstations, multi-processor servers, and even mobile telephones. Moreover, certain embodiments may be implemented on application specific integrated circuits (ASICs) or very large scale integrated (VLSI) circuits. In fact, persons of ordinary skill in the art may utilize any number of suitable structures capable of executing logical operations according to the embodiments.
Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the present disclosure, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.