Inlet spacing on road grades

A method, system, apparatus, and computer program products provides the ability to dynamically define and generate inlet spacing along a road in a building information model (BIM) computer aided design (CAD) three dimensional (3D) model. A representation of a road is acquired in the BIM CAD 3D model, wherein the representation includes a geometry. An inlet spacing is defined for the road. Inlet locations for inlets are determined based on the inlet spacing. A determination is made regarding whether the inlet spacing and inlets satisfy design rules for the road. When the inlet spacing and/or inlets fail to satisfy the design rules, a different inlet spacing is selected from a group of preset integers, and the process repeats until the design rules are satisfied.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to building information models, and in particular, to a method, apparatus, and article of manufacture for automatically spacing inlets along a road grade in a building information model (BIM) computer aided design (CAD) three-dimensional (3D) model (and designing/constructing a road with inlets based thereon).

2. Description of the Related Art

Inlets collect storm water from streets and other land surfaces, transition the flow into storm drains, and provide maintenance access to a storm drain system. When adding inlets for a road, significant work is required to configure proper inlet spacing on a road grade (e.g., from the highest point to the lowest), because there are various factors/considerations that must be taken into account. In particular, inlet spacing calculation results differ depending on whether cost is a priority or construction is a priority (e.g., whether cost is a priority compared to construction efficiency as a priority). Further, even if construction is the only priority, prior art systems require users to manually compute spacing for each inlet on an individual basis and if the final inlet computation fails, the user is required to repeat the entire inlet spacing computation process again starting with the first inlet spacing computation. Such prior art systems are time consuming, prone to error, and are infeasible on a large scale basis. Accordingly, what is needed is a system that automatically computes inlet spacing on a road grade based on a variety of factors. To better understand the invention, some background information on inlets and inlet spacing computations may be useful.

FIG. 1illustrates a bird's eye view of inlet spacing in a drainage network design. The road100has two inlets102A and102B (collectively referred to herein as inlets102). The spacing between the two inlets102is referred to as the inlet spacing104. As used herein, the spread106refers to a measure of the transverse lateral distance from the curb/curb face108to the limit110of the water flowing on the roadway. The depth112refers to the depth of the flow (i.e., “flow depth”) at the curb108. The spread106on the pavement and depth112at the curb108are often used as criteria for spacing pavement drainage inlets102.

There are four major types of inlets102: grate (a drainage inlet composed of a grate in the roadway section or at the roadside in a low point, swale, or channel), curb opening (a drainage inlet consisting of an opening in the roadway curb), slotted (a drainage inlet composed of a continuous slot built into the top of a pipe that serves to intercept, collect, and transport the flow), and combination (an inlet composed of a combination of other inlet types, e.g., curb-opening+grate, grate+slotted, etc.).

As described above, when adding inlets102to a road/road design, results vary depending on whether cost is a priority or construction is a priority. For cost savings, an engineer desires to minimize the number of inlets102used on a road. Accordingly, the inlet spacing104(i.e., the spacing between two inlets102) should be as large as possible and will not be fixed. However, if construction and maintenance is a priority, the engineer desires fixed inlet spacing104(e.g., to minimize the calculations necessary).

For example, with fixed inlet spacing, the engineer desires to keep spacing as integers (e.g., 120 m, 115 m, 110 m, etc.). In this regard, fixed inlet spacing is preferable for construction and maintenance. Since a downstream inlet is influenced by all upstream inlets, if the downstream inlet spacing104is exceeded, it is necessary to adjust all inlets102with the same road geometry. However, the inlet spacing calculation changes with a change in the road geometry.FIG. 2illustrates a profile view of a section change on a road grade. As illustrated, the road geometry changes from a first configuration202to a second configuration204. One would not want to fix inlet spacing104if the road geometry changes. In addition to the above, for drainage safety, inlet spacing104should be small enough to make the spread106meet the “spread rule” (described below). As used herein, an exemplary spread rule is set forth in Publication No. FWHA-NH1-10-009 (September 2009, Revised August 2013) entitled Hydraulic Engineering Circular No. 22, Third Edition, Urban Drainage Design Manual (referred to as HEC22), which is incorporated by reference herein. In particular, Table 4-1 from HEC22 illustrates such an exemplary spread rule where larger inlet spacing will cause a larger spread, and the spread rule is used to check if a proposed inlet spacing is reasonable:

In view of the above, what is needed is a system that enables the automated design and configuration of a drainage system/network that considers all relevant factors upon which the drainage system is dependent.

SUMMARY OF THE INVENTION

Today's fast paced environment requires quick results and decision making. Embodiments of the present invention are directed to automating the designing of a drainage system along a road network in a BIM 3D model, based on the geometry of the road network and its surrounding conditions in a dynamic manner.

Accordingly, embodiments of present invention may provide one of more of the following attributes:

1. Complete automation of an otherwise mundane and daunting design process of a holistic drainage system for a road network;

2. User configurable rules for controlling placement of the drainage components relative to each other and to the road geometry;

3. Provides suggestions for design elements such as the outfall locations of the drainage system; and

4. Calculates and suggests a pond location and approximate sizing.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Overview of Logical Flow

FIG. 3illustrates an overview of the logical flow for determining inlet spacing in accordance with one or more embodiments of the invention. As described above, one of the problems is that inlet spacing calculations for cost priority and construction priority are different. For construction and maintenance, an engineer wants to fix inlet spacing (i.e., fixed integer based inlet spacing). However, for cost savings, the engineer wants to minimize the number of inlets in some cases. Accordingly, for cost savings, inlet spacing should be as large as possible and will not be fixed.

At step302, an engineer may choose to fix inlet spacing or not. If the engineer elects to fix inlet spacing, the process proceeds with method304. If the engineer elects not to fix inlet spacing, the process proceeds with method306. In method304(construction priority), inlet spacing will be fixed if the road geometry is not changed. In method306(cost priority), inlet spacing will not be fixed and the largest inlet spacing will be used to meet the cost savings.

In method304, for construction priority, inlet spacing is fixed. The engineer desires to keep inlet spacing as integers, such as 120 m, 115 m, and 110 m. In this regard, fixed inlet spacing is better for construction and maintenance. However, several problems arise with fixed inlet spacing. For example, since the downstream inlet will be influenced by all upstream inlets, if a downstream inlet spread is exceeded, it is necessary to adjust all inlets with the same road geometry. Further, if the road geometry changes, the inlet spread calculation will be different. Accordingly, with a change in road geometry, it is not proper to keep the inlet spacing the same. Further, the inlet spacing should be small enough to meet/comply with the spread rule.

To resolve the problems with fixed inlet spacing, one or more embodiments of the invention determine inlet spacing results automatically (e.g., without additional user input). At step308, the inlet spacing (e.g., base fixed inlet spacing) is acquired/determined/defined. The road geometry310is then input/received. At step312a check is conducted. The check312determines whether the current inlet spacing satisfies all (or one or more) of the necessary conditions/design rules (e.g., complies with the spread rule [e.g., if the downstream inlet spacing is exceeded], keeps inlet spacing as integers, etc.). For example, if the road geometry310has changed, the check will fail. Similarly, if the spacing is larger than a minimum, the check will fail. If all of the conditions pass, the results are provided/output at step314. However, if the check fails, a smaller/different inlet spacing from the list316is selected and the process continues at308with the newly selected smaller inlet spacing. In step314, the results may be provided in the form of a blueprint, a physical printed document, an electronic document, etc. Further, step314may also include constructing the inlets in accordance with the inlet spacing and configuration along the road (i.e., at the inlet locations) as determined in the prior steps.

Referring to method306, the spread rule is provided at318. Based on the road geometry310and the spread rule318, a maximum flow (Q) is determined at step320. The tributary width322is received/input. Based on the max Q and tributary width, the inlet spacing324is determined. The check326determines whether the road geometry has changed. The road geometry at an inlet location will influence spread calculations. Accordingly, if the road geometry has changed, the max flow (Q) determined at step320will be meaningless. Accordingly, if the road geometry has changed, the process returns to step320to recalculate max Q. Such a process ensures that the max inlet spacing is acquired.

WhileFIG. 3provides an overview of the logical flow,FIGS. 4A and 4Bprovide the details for method304and method306respectively.

Detailed Logical Flow

FIG. 4Aillustrates the detailed logical flow for method304for fixed inlet spacing (construction priority) in accordance with one or more embodiments of the invention. As an overview, embodiments of the invention keep inlet spacing as integers.

The process starts/begins from the crest (highest point) of a road segment at step402. At step404, the location of the first inlet (e.g., as a distance from the crest), is determined/calculated based on the allowable spread. To determine the location of the first inlet, Manning's number may be integrated for an increment of width across a section. The resulting equation that may be used is:
T=[(Qn)/(KuSx1.67SL0.5)]0.375
where Ku=0.376, n=Manning's coefficient, Q=Flow rate (m3/s or ft3/s), T=width of flow (spread), Sx=cross slope, and SL=longitudinal slope.

In addition, an analysis of the first inlet is conducted at step406. The analysis analyzes the inlet performance including acquiring/determining the depth of the flow (at the first inlet) as well as bypass flow (i.e., previously bypass flow408and bypass flow410). To determine the first inlet flow, the equation Q=(CIA)/Kumay be used, where Q is the flow, C is the dimensionless runoff coefficient (a value that is a function of the ground cover and a host of other hydrologic abstractions that relates the estimated peak discharge to a theoretical maximum of 100% runoff), I is the rainfall intensity (mm/hr or in/hr), A is the drainage area (e.g., in hectares or acres), and Kuis the units conversion factor equal to 360. When performing such a computation, the following assumptions may be made: peak flow occurs when the entire watershed is contributing to the flow; rainfall intensity if the same over the entire drainage area; rainfall intensity is uniform over a time duration equal to the time of concentration, wherein the time of concentration is the time required for water to travel from the hydraulically most remote point of the basin to the point of interest; the frequency of the computer peak flow is the same as that of the rainfall intensity (i.e., the 10-year rainfall intensity is assumed to produce the 10-year peak flow); and the coefficient of the runoff is the same for all storms of all recurrence probabilities.

At step412, the maximum structure spacing is assumed as the next inlet spacing (as the first trial from the first inlet location).

At step414, the catchment area is computed/determined based on the inlet spacing and the corresponding catchment length is calculated. As used herein, catchment is the action of collecting water and the catchment area is the area from which rainfall flows into the drainage system.

At step416, the catchment flow (the flow from the catchment area) a catchment area) is calculated/computed/determined. Such a determination may be based on a rational method (e.g., Q=CIA418, where Q is the flow, C is a dimensionless runoff coefficient, I is the rainfall intensity, and A is the drainage area).

At step420, the total gutter flow is determined/calculated:
Total Gutter Flow=Catchment Flow+Previous Inlet Bypass Flow 408
In other words, the total gutter flow is the flow that is intercepted/caught by the inlet/gutter and consists of the catchment flow (i.e., the flow intercepted by the inlet/catchment)+the carryover/previous bypass flow408. Similarly, the flow that is not intercepted by an inlet is termed carryover or bypass and is defined as: Qb=Q−Qi, where Qbis the bypass flow, Q is the total gutter flow, and Qiis the intercepted flow.

At step422, the spread T and depth at the curb d are determined/computed based on the assumed inlet location. To compute the spread T and depth d, the Longitude Slope Si424, Cross Slope Sx426, and the Manning's number n428may be utilized. Similar to step404, the spread T may be computed as T=[(Qn)/(KuSx1.67SL0.5)]0.375and the depth d may be computed as d=T Sx.

At step430, the spread T and depth d are checked to determine whether they meet the design rule. For example, the design rule may require that the spread T is smaller than the allowable spread and the depth d is less than the curb height. Table A below provides the suggested minimum design frequency and spread that may be utilized in accordance with one or more embodiments of the invention:

At step432, the intercepted flow and efficiency is determined/calculated (e.g., based on inlet type and size436). More specifically, for different inlet types, the intercepted flow calculation equations may not be the same. Further, different equations may be used to compute frontal flow, side flow, efficiencies, etc. As an example, the following equations are used to calculate flow and efficiency for a grate inlet. The ratio of frontal flow to total gutter flow, E0, for a uniform cross slope may expressed as:

Eo=QwQ=1-(1-WT)2.67
where Q is the total gutter flow, Qwis the flow in width W, W is the width of the depressed gutter or grate, and T is the total spread of water. The ratio of slide flow, Qsto total gutter flow is:
Qs/Q=1−(Qw/Q)=1−Eo
The ratio of frontal flow intercepted to total frontal flow, Rf, is:
Rf=1−Ku(V−Vo)
where Kuis 0.295, V is the velocity of flow in the gutter, and Vois the gutter velocity where splash-over first occurs. The ratio of side flow intercepted to total side flow, Rs, or side flow interception efficiency, is:

RS=1⁢/⁢(1+Ku⁢V1.8SX⁢L2.3)
where Kuis 0.0828. The efficiency, Eo, of a grate may be computed as:
E−RfEo+Rs(1−Eo)
The frontal flow to total gutter flow ratio, Eo, for composite gutter sections assumes a frontal flow width equal to the depressed gutter section width. The use of this ratio when determining a grate's efficiency requires that the grate width be equal to the width of the depressed gutter section, W. If a grate having a width less than W is specified, the gutter flow ratio, Eo, must be modified to accurately evaluate the grate's efficiency. Because an average velocity has been assumed for the entire width of gutter flow, the grate's frontal flow ratio, E′o, can be calculated by multiplying Eoby a flow area ratio. The area ratio is defined as the gutter flow area in a width equal to the grate width divided by the total flow area in the depressed gutter section. This adjustment is represented as:
Eo′=Eo(Aw′/Aw)
where E′ois the adjusted frontal area ratio for grates in composite cross sections, A′wis the gutter flow area in a width equal to the grate width, and Awis the flow area in depressed gutter width. Further, the interception capacity of a grate inlet on a grade is equal to the efficiency of the grate multiplied by the total gutter flow:
Qi=E Q=Q[RfEo+Rs(1−Eo)]

At step438, the efficiency of the inlet is checked and a warning is shown if the efficiency is too low (e.g., below a threshold value). In this regard, inlet interception capacity, Qi, is the flow intercepted by an inlet under a given set of conditions. The efficiency of an inlet, E, is the percent of total flow that the inlet will intercept for those conditions. The efficiency of an inlet changes with changes in cross slope, longitudinal slope, total gutter flow, and, to a lesser extent, pavement roughness. For example, inlet efficiency E, may be computed as Q1/Q where Q is the total gutter flow, and Qiis the intercepted flow.

At step440, a determination is made regarding whether the inlet is at a low point (sag point). When the inlet is at a low point, the process is complete and the bypass flow is provided to the downstream inlet. When the inlet is not at a low point, the process continues with step442. At the same time, the value of bypass flow (410) will go to step408. This bypass flow, Qb, will be considered as “Previous Bypass Flow” in next inlet calculation.

At step442, a check is made regarding whether the road profile or section has changed. When the road profile/section has changed, the process continues with step412where a new group (also referred to as a new group segment) is started and the maximum structure spacing is used as the inlet spacing in the new road area/group/segment. When the road profile/section has not changed, the next inlet location is calculated using the last inlet spacing and the process continues at step414.

At step434(i.e., when the spread and depth do not meet the design rule), a check is made regarding whether the spacing is larger than the minimum (i.e., minimum spacing will provide a minimum spread and depth). In this regard, at this stage, the inlet spacing is smaller than maximum value (since in step412the calculation starts from maximum value as first trial). If the inlet spacing is still greater than the minimum spacing (i.e., the inlet spacing can be further reduced), the inlet spacing is decreased after step434. In other words, if the spacing is larger than the minimum, the inlet spacing is decreased, the first inlet location is determined based on the decreased inlet spacing, and the process begins again from the first inlet in the group with the new spacing at step414. In this regard, the alternative inlet spacing may be a group of definite/predefined numbers (e.g., 120 m, 115 m, 110 m, etc.). The group can also be a distance in which the inlet spacing should be the same. If the spacing is less than or equal to the minimum, the process is complete at step446such that there is no available result and a suggestion is provided to the user to change the road design. Alternatively, as described herein, if the minimum spread and depth fail to comply with the design rule, the calculation will be completed at step484(i.e., no reasonable inlet spacing is possible).

FIG. 4Billustrates the detailed logical flow for method306where cost is a priority in accordance with one or more embodiments of the invention. At step450, the calculation starts from a crest (i.e., the highest point) of a road segment.

At step452, the first inlet location (based on the distance from the crest) is calculated using an allowable spread. In addition, at step452, an analysis454of the first inlet performance is conducted. The analysis454analyzes the inlet performance including acquiring/determining the depth of the flow (at the first inlet) as well as bypass flow408and410. In particular, the methods/computations described above with respect to steps404and406may be similarly used in method306.

At step458, the maximum total gutter flow is calculated/determined using the road geometry (including the longitude slope SL460, cross slope Sx462, and Mannings Number n464), the maximum spread466and maximum depth at the curb468. Similar computations to that described above with respect to step422may be used in step458. Further, the catchment area is output at step458. Thus, the maximum total gutter flow is a result of the max total gutter flow calculation at step458.

At step470, the maximum catchment flow is calculated/determined:Catchment Flow=Total Gutter Flow−Previous Inlet bypass flow In the calculations, the bypass flow457of the last inlet is used as the previous bypass flow456. In this regard, flow that is not intercepted by an inlet is termed carryover or bypass and is defined as Qb=Q−Qi, where Qbis the bypass flow, Q is the total gutter flow, and Qiis the intercepted flow.

At step472, the maximum catchment area is calculated based on A=Q/CI474, wherein A is the maximum catchment area, Q is the maximum catchment flow calculated in step470, C is a coefficient, and I is the rainfall intensity.

At step476, the catchment length is determined based on the catchment width478:
Length=Area/Width
where Length is the catchment length, Area is the maximum catchment area calculated at step472, and width is the catchment width478(that may be determined based on a road cross section calculation). The computations described above with respect to step416, may be used to determine the maximum catchment area at step472.

At step480, the system checks whether the catchment length is larger than or equal to the minimum length. When the catchment length is larger than or equal to the minimum length, the process continues at step482. However, when the catchment length is less than the minimum, then there is no available result, the process is complete at484, and the system may provide a suggestion that the user change the road design.

At step482, the inlet spacing is set/defined as equal to the catchment length. Further, this step may also include placing a current inlet location from a current inlet based on the inlet spacing from a prior inlet location.

At step486, a check is conducted regarding whether the road geometry changes at the end of the inlet spacing station (i.e., after the current inlet location). When the road geometry changes, the road geometry is updated (Sx, SL, and Manning's n), and the process returns to step458(i.e., a new group is created for the new road geometry/group segment). When the road geometry does not change, the process continues with step488.

At step488, the intercepted flow (Qi) is calculated/determined by the inlet type and size490. As described above, intercepted flow calculation equations may be different for different inlet types. Example computations for grate inlets described above with respect to step432may be used here as well.

At step492, the efficiency is checked/determined and a warning is shown if the efficiency is too low (e.g., below a threshold value). Similar computations s those described above with respect to step438may be used in step492as well.

At step494, a check is conducted to determine whether the inlet is at a low point (sag point) in the road/road geometry. When at a sag point, the process is complete and the inlet spacing and inlet locations for the road are output. When the inlet is not at a sag point, a different inlet spacing is selected and the above steps are repeated. Further, the bypass flow Qbis computed at458. The process then returns to step470. As described above, flow that is not intercepted by an inlet is termed carryover or bypass and is defined as Qb=Q−Qi, which is the total gutter flow Q minus the intercepted flow Qi.

In view of the above, an engineer/user is able to automatically (i.e., without additional user input) acquire inlet spacing results by keeping inlet spacing as integers. At step434, if the spacing is larger than the minimum spacing, inlet spacing is decreased. Such a decrease is from a group of preset integers, such as 120 m, 115 m, and 110 m. Accordingly, if the spacing is less than the minimum spacing, the method recalculates all upstream inlets with the same road geometry, in order to keep spacing the same. In step442, if the road profile and section are not changed, the process returns to step414. In such a case, the downstream inlet is calculated and the upstream inlet spacing is used as the starting spacing. Such a process ensures that inlet spacing is fixed. Similarly, if the road geometry changes, the inlet spacing also changes. In this regard, in step442, there is a check for the road geometry (including profile and section). If the road geometry changes, the maximum structure spacing is used as the first trial for the downstream inlet.

Further to the above, for drainage safety, inlet spacing should be small enough to make the spread meet the spread rule. In step430, there is a design rule check. If the inlet spacing fails to the design rule check, inlet spacing is repeatedly decreased until the rule is met.

Advantages

The logical flows ofFIGS. 4A and 4Bprovide many advantages over the prior art.

Automation of Inlet Spacing Calculations

Embodiments of the invention automate inlet spacing calculations. In the prior art, spacing is an analysis that requires input parameters with users often performing numerous calculations and iterations. Embodiments of the invention do not require the user to perform such calculations and iterations.

Balance Drainage Safety and Cost Saving in the Construction Priority Method

In step412, the maximum structure spacing is used as the first assumption. If the rule check fails in step430, the spacing is decreased and the process repeats until the rule check430is successful. This iteration ensures that the biggest proper spacing is used as the last/actual spacing, which means drainage safety is assured for the least cost.

Inlet Spacing Directly Used for Projects

An engineer/user can use the method ofFIG. 4Afor the convenience of construction and maintenance. In such a method, inlet spacing is a group of integers such as 120 m, 115 m, and 110 m. Inlet spacing values are kept the same if there is no change for the road slope and section. However, if the engineer/user wants to use less inlets to save on costs, the method ofFIG. 4Bmay be used.

Exemplary Uses

FIG. 5illustrates a road profile from crest to sag in accordance with one or more embodiments of the invention. As illustrated, the road500begins at the crest502and has various segments504A-504C (collectively referred to as road segments504), and ends at sag506. Each road segment504has a corresponding road slope (i.e., segment504A—Road Slope 1, segment504B—Road Slope 2, and segment504C—Road Slope 3). Once embodiments of the invention have been applied to the road500to determine inlet spacing, different methods will produce different results.

FIG. 6illustrates inlet spacing results based on application of a method that fixes spacing where construction is a priority in accordance with one or more embodiments of the invention. In contrast,FIG. 7illustrates inlet spacing results based on application of a method that does not fix spacing where cost is a priority in accordance with one or more embodiments of the invention. In both figures, the black dots indicate the inlet locations. As can be seen in bothFIG. 6andFIG. 7, the spacing is on a per road segment504basis. In other words, when the road slope of the road changes (thereby defining a road segment504), the inlet spacing changes.

InFIG. 6, the inlet spacing is fixed (i.e., is the same) if the road slope is not changed. Fixed inlet spacing is preferable for inlet construction and maintenance. As illustrated, for segment504A, the inlet spacing is “Spacing 1”, for segment504B, the inlet spacing is “Spacing 2”, and for segment504C, the inlet spacing is “Spacing 3”.

In contrast toFIG. 6, the inlet spacing inFIG. 7is larger than that inFIG. 6, which implies that less inlets are used. The use of less inlets is a cost savings. As illustrated inFIG. 7, “Spacing 1” is used as the inlet spacing in segment504A, while “Spacing 2” and “Spacing 3” are used in segment504B, and “Spacing 4” is used in segment504C. As can be seen, there are eight (8) inlets inFIG. 6compared to five (5) inlets inFIG. 7.

Hardware Environment

FIG. 8is an exemplary hardware and software environment800used to implement one or more embodiments of the invention. The hardware and software environment includes a computer802and may include peripherals. Computer802may be a user/client computer, server computer, or may be a database computer. The computer802comprises a general purpose hardware processor804A and/or a special purpose hardware processor804B (hereinafter alternatively collectively referred to as processor804) and a memory806, such as random access memory (RAM). The computer802may be coupled to, and/or integrated with, other devices, including input/output (I/O) devices such as a keyboard814, a cursor control device816(e.g., a mouse, a pointing device, pen and tablet, touch screen, multi-touch device, etc.) and a printer828. In one or more embodiments, computer802may be coupled to, or may comprise, a portable or media viewing/listening device832(e.g., an MP3 player, IPOD, NOOK, portable digital video player, cellular device, personal digital assistant, etc.). In yet another embodiment, the computer802may comprise a multi-touch device, mobile phone, gaming system, internet enabled television, television set top box, or other internet enabled device executing on various platforms and operating systems.

In one embodiment, the computer802operates by the general purpose processor804A performing instructions defined by the computer program810under control of an operating system808. The computer program810and/or the operating system808may be stored in the memory806and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program810and operating system808, to provide output and results.

Output/results may be presented on the display822or provided to another device for presentation or further processing or action. In one embodiment, the display822comprises a liquid crystal display (LCD) having a plurality of separately addressable liquid crystals. Alternatively, the display822may comprise a light emitting diode (LED) display having clusters of red, green and blue diodes driven together to form full-color pixels. Each liquid crystal or pixel of the display822changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor804from the application of the instructions of the computer program810and/or operating system808to the input and commands. The image may be provided through a graphical user interface (GUI) module818. Although the GUI module818is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system808, the computer program810, or implemented with special purpose memory and processors.

In one or more embodiments, the display822is integrated with/into the computer802and comprises a multi-touch device having a touch sensing surface (e.g., track pod or touch screen) with the ability to recognize the presence of two or more points of contact with the surface. Examples of multi-touch devices include mobile devices (e.g., IPHONE, NEXUS S, DROID devices, etc.), tablet computers (e.g., IPAD, HP TOUCHPAD), portable/handheld game/music/video player/console devices (e.g., IPOD TOUCH, MP3 players, NINTENDO 3DS, PLAYSTATION PORTABLE, etc.), touch tables, and walls (e.g., where an image is projected through acrylic and/or glass, and the image is then backlit with LEDs).

Some or all of the operations performed by the computer802according to the computer program810instructions may be implemented in a special purpose processor804B. In this embodiment, some or all of the computer program810instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor804B or in memory806. The special purpose processor804B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor804B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program810instructions. In one embodiment, the special purpose processor804B is an application specific integrated circuit (ASIC).

The computer802may also implement a compiler812that allows an application or computer program810written in a programming language such as C, C++, Assembly, SQL, PYTHON, PROLOG, MATLAB, RUBY, RAILS, HASKELL, or other language to be translated into processor804readable code. Alternatively, the compiler812may be an interpreter that executes instructions/source code directly, translates source code into an intermediate representation that is executed, or that executes stored precompiled code. Such source code may be written in a variety of programming languages such as JAVA, JAVASCRIPT, PERL, BASIC, etc. After completion, the application or computer program810accesses and manipulates data accepted from I/O devices and stored in the memory806of the computer802using the relationships and logic that were generated using the compiler812.

The computer802also optionally comprises an external communication device such as a modem, satellite link, Ethernet card, or other device for accepting input from, and providing output to, other computers802.

In one embodiment, instructions implementing the operating system808, the computer program810, and the compiler812are tangibly embodied in a non-transitory computer-readable medium, e.g., data storage device820, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive824, hard drive, CD-ROM drive, tape drive, etc. Further, the operating system808and the computer program810are comprised of computer program810instructions which, when accessed, read and executed by the computer802, cause the computer802to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory806, thus creating a special purpose data structure causing the computer802to operate as a specially programmed computer executing the method steps described herein. Computer program810and/or operating instructions may also be tangibly embodied in memory806and/or data communications devices830, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device,” and “computer program product,” as used herein, are intended to encompass a computer program accessible from any computer readable device or media.

FIG. 9schematically illustrates a typical distributed/cloud-based computer system900using a network904to connect client computers902to server computers906. A typical combination of resources may include a network904comprising the Internet, LANs (local area networks), WANs (wide area networks), SNA (systems network architecture) networks, or the like, clients902that are personal computers or workstations (as set forth inFIG. 8), and servers906that are personal computers, workstations, minicomputers, or mainframes (as set forth inFIG. 8). However, it may be noted that different networks such as a cellular network (e.g., GSM [global system for mobile communications] or otherwise), a satellite based network, or any other type of network may be used to connect clients902and servers906in accordance with embodiments of the invention.

A network904such as the Internet connects clients902to server computers906. Network904may utilize ethernet, coaxial cable, wireless communications, radio frequency (RF), etc. to connect and provide the communication between clients902and servers906. Further, in a cloud-based computing system, resources (e.g., storage, processors, applications, memory, infrastructure, etc.) in clients902and server computers906may be shared by clients902, server computers906, and users across one or more networks. Resources may be shared by multiple users and can be dynamically reallocated per demand. In this regard, cloud computing may be referred to as a model for enabling access to a shared pool of configurable computing resources.

Clients902may execute a client application or web browser and communicate with server computers906executing web servers910. Such a web browser is typically a program such as MICROSOFT INTERNET EXPLORER, MOZILLA FIREFOX, OPERA, APPLE SAFARI, GOOGLE CHROME, etc. Further, the software executing on clients902may be downloaded from server computer906to client computers902and installed as a plug-in or ACTIVEX control of a web browser. Accordingly, clients902may utilize ACTIVEX components/component object model (COM) or distributed COM (DCOM) components to provide a user interface on a display of client902. The web server910is typically a program such as MICROSOFT'S INTERNET INFORMATION SERVER.

Web server910may host an Active Server Page (ASP) or Internet Server Application Programming Interface (ISAPI) application912, which may be executing scripts. The scripts invoke objects that execute business logic (referred to as business objects). The business objects then manipulate data in database916through a database management system (DBMS)914. Alternatively, database916may be part of, or connected directly to, client902instead of communicating/obtaining the information from database916across network904. When a developer encapsulates the business functionality into objects, the system may be referred to as a component object model (COM) system. Accordingly, the scripts executing on web server910(and/or application912) invoke COM objects that implement the business logic. Further, server906may utilize MICROSOFT'S TRANSACTION SERVER (MTS) to access required data stored in database916via an interface such as ADO (Active Data Objects), OLE DB (Object Linking and Embedding DataBase), or ODBC (Open DataBase Connectivity).

Although the terms “user computer”, “client computer”, and/or “server computer” are referred to herein, it is understood that such computers902and906may be interchangeable and may further include thin client devices with limited or full processing capabilities, portable devices such as cell phones, notebook computers, pocket computers, multi-touch devices, and/or any other devices with suitable processing, communication, and input/output capability.

Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with computers902and906. Embodiments of the invention are implemented as a software application (e.g., an inlet spacing generation application) on a client902or server computer906. Further, as described above, the client902or server computer906may comprise a thin client device or a portable device that has a multi-touch-based display.

Conclusion

This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accomplishing the present invention. For example, any type of computer, such as a mainframe, minicomputer, or personal computer, or computer configuration, such as a timesharing mainframe, local area network, or standalone personal computer, could be used with the present invention.