Using CUDA for Solar Thermal Plant Computation. Background Problem Solution Algorithm Polygon...

Preview:

Citation preview

Using CUDA for Solar Thermal Plant Computation.

Background Problem Solution Algorithm Polygon Clipping Why CUDA? Progress

Our Team. Claus Nilsson Sahithi Chalasani Pranav Mantini Arun Kumar

Subramanian

Instructor:Dr.Bun yueMentor:Michel Izygon

Background Structure

Central receiver A type of solar furnace. Receives the sunlight

redirected by Heliostats. Heliostat

A type of mirror. redirects sunlight towards

the central receiver.

Background. Field

Generally huge Heliostats are placed in

a radial stagger formation.

Broken into Grids containing cells.

Each cell has one representative heliostat and about 8 to 80 neighbor(hypothetical) heliostats.

Background. Shading and Blocking.

A field of heliostats suffers loss in efficiency caused by shading and blocking by neighbouring heliostats.

For our purpose we assume that shading and blocking occurs only within a cell.

Shading is the loss of illumination on a given mirror due to the interception of the incident sunlight by a neighboring mirror. [3]

Blocking is the loss of illumination on the central receiver due to the interception of reflected sunlight by another neighboring mirror. [3]

Background.

Problem. Solar thermal fields in general have considerably

large number of heliostats. A computation algorithm to calculate shading and

blocking has been designed and implemented by Tietronix Software, Inc.

This computation algorithm takes significant amount of time to calculate shading and blocking for thousands of heliostat.

The objective is to decrease the computation time.

Solution. To increase the efficiency of this computation

algorithm, Tietronix Software, Inc. has proposed to create an application that computes the shading and blocking among the heliostats simultaneously.

For this purpose, CUDA(Compute Unified Device Architecture), a parallel computing architecture was chosen.

Algorithm. An algorithm was designed by Mr. Peter

Armstrong of Tietronix Software, Inc., to calculate the shading and blocking among the heliostats.[4]

This algorithm makes use of Vector Mathematics, including vector projection and a polygon clipping algorithm.

Algorithm.

origin

TOWER

Heliostat

TS=OS -C

OT - C

NNormal

Algorithm.

Algorithm.

Shadingv

Shading

Algorithm.

Polygon Clipping. Sutherland-Hodgman Algorithm:

Most used algorithm for clipping convex polygons. Uses a divide-and-conquer strategy. Window must be a convex polygon Polygon to be clipped can be convex or not

Example The original polygon and the clip rectangle.

Example After clipped by the right clip boundary.

Example After clipped by the right, bottom, and left clip

boundaries.

Why this algorithm? It is relatively simple. Relatively straightforward and is easily implemented in C. Very efficient in two important cases. i) when the polygon is completely inside the boundaries. ii) when it's completely outside.

CUDA What is CUDA

◦ Scalable programming model and◦ Software environment for parallel computing [2]

◦ Extension to the C programming language

CUDA What CUDA does

Allows utilization of GPU Allows parallel execution of code

Kernels Manages threads automatically

Exception: __syncthreads()

CUDA Example

Source: “Parallel Processing With CUDA” by Tom R. Halfhill [1]

CUDA

Scaling

CUDA How does it work

CUDA

CUDA

CUDA

CUDA

Progress. Two Tower Demo. Full Cell. (linear) Full Cell. (Parallel) Full Grid. (linear) Full Grid. (parallel)

Progress. Two Tower Demo:

Successfully calculated the vertices of the neighbor and the representative heliostat.

Working on the projected vertices and polygon clipping algorithm.

Full Cell Demo: Created the eight neighbors and generated the unit

normal vector to the heliostats Working on the vertices and projected vertices.

Progress. Two Tower Demo.

Input: Tower height - 63.07 meters.  The coordinates of the center of each heliostat are:  2002(source) -100 0 5

2003(neighbor) -100 10 5  Heliostats - 5 meters by 5 meters square. sun azimuth - 89.9779 degrees. sun elevation - 15.0007 degrees. Date - 20 March 2008 at 07:07:27.4 UTC with the field origin located

at latitude 0, longitude 0, elevation 0.

Progress. Full Cell Demo.

Input: Tower height - 63.07 meters. Heliostats - 4.5 meters by 4.5 meters square. no. of rows , columns – 10 & 10 respectively. Row and column of the tower – 10 & -1 respectively. Date - 09/22/2009 11:40:06.7326 UTC-8 sun azimuth - 179.999984302 degrees. sun elevation - 55.1633384647 degrees. Site – elevation 670 latitude 34.863 longitude -116.887

References[1] Tom R. Halfhill. Parallel Processing With CUDA.

Microprocessor, 01/28/08-01, www.nvidia.com/docs/IO/55972/220401_Reprint.pdf

[2] Greg Ruetsch, Brent Oster. Getting Started with CUDA. http://www.nvidia.com/content/cudazone/download/Getting_Started_w_CUDA_Training_NVISION08.pdf

References

[3] Lipps, F. W.; vant-Hull, L. L., Shading and blocking geometry for a solar tower concentrator with rectangular mirrors, American Society of Mechanical Engineers, Winter Annual Meeting, New York, N.Y., Nov. 17-22, 1974, 7 p. NSF-supported research.

[4] Peter Armstrong, An Algorithm For Shading And Blocking Computation Of A Field Of Heliostats Arranged In A Grid Layout.

References [5] Polygon clipping,

http://www.cc.gatech.edu/classes/AY2003/cs4451a_fall/ClippingApplets%20Folder/Sutherland-Hodgeman/index.html

http://www.codeguru.com/cpp/misc/misc/graphics/article.php/c8965

http://www.aftermath.net/library/articles/clippoly/clippoly.pdf

http://www.cc.gatech.edu/grads/h/Hao-wei.Hsieh/Haowei.Hsieh/sec3_step.html

Thank You!Any Questions?

Recommended