JavaProp is a new implementation of my former SimProp program. SimProp was written purely for my web pages using the "C" language. It was running on my UNIX workstation which had a high speed permanent connection to the internet. The program was driven by a cgi script which read the input from temporary files being posted from the web browser of the user. Output went back to the user via temporary HTML pages and some embedded graphics were created using the gnuplot program and pbm tools for conversion to GIF. |
This approach worked well for any browser and operating platform. It also had the advantage, that I could initially spy on the data to improve the program and to correct errors, but it had several disadvantages:
I was thinking about either dropping the aerodynamics calculation services completely or about finding a new solution. One solution would have been to buy a Linux computer, install my existing software and move this server to a local provider, who would connect it to the net. As I don't earn any money from my web pages, I did not want to spend my money for the hardware of this solution. Also, the monthly costs for the provider would be too high to run the pages this way. As all known and affordable providers for web space did not support the execution of programs on their server, the UNIX solution obviously was dead. Another solution would have been to drop support for non Wintel systems and to rewrite the programs using one of the fancy Microsoft techniques, like ActiveX, or .NET. While this would have been the easiest way for me, and the results would have been surely nice, I did not want to close out the users of UNIX, Macintosh and all other systems and I also did not want to enforce the use of Microsofts Internet Explorer as the only supported browser.
I still believe, that the internet lives from this variety of systems and needs open standards - despite the fact, that I love many of the great things on the Wintel platform like COM and Automation, which I am missing on any UNIX box.
So, after thinking in all directions, I finally decided to dig out my Java book, which I had used to play with this language in 1997 while developing the Tuned Pipe applet, working happily on one of my web pages since then. After reading more about the recent development of the Java language, I found out, that I still had to use the initial Abstract Windowing Toolkit (AWT), as the more sophisticated Swing interface was still not supported by the major browsers without downloading substantial Add-Ins, which were not available for all platforms.
As my code was already written in "C", porting the core routines was quite straightforward. In "C", I had used a quasi-object orientated programming style, using structures to hold all the object specific data, which made porting easy. The only drawback was the conversion of pointer access to arrays into indexed access, which had to be done as Java does not support pointers (which are often a source of trouble, so having no pointers is not necessarily bad). As I am doing most of my programming in C++ and Visual Basic, working with Java was fun most of the time. Most of the problems resulted from my fight with the layout managers of the AWT, which were not always acting as I thought they should. Also, I could not use any COM objects for graphs and tables, as I would have in Visual Basic or C++ on the Windows platform. So it took me about a week to port the design and analysis code and to develop the graphical user interface and the associated components for the display of graphs and tables. Not too bad, and I can hope to reuse these components for any upcoming Java applications.
JavaProp is a relatively simple program, which is based on the blade element theory. The propeller blade is divided into small sections, which are handled independently from each other. Each segment has a chord and a blade angle and associated airfoil characteristics. The theory makes no provision for three dimensional effects, like sweep angle or cross flow. But it is able to find the additional axial and circumferential velocity added to the incoming flow by each blade segment. This additional velocity results in an acceleration of the flow and thus thrust. Usually this simplified model works very well, when the power and thrust loading of the propeller (power per disk area) are relatively small, as it is the case for most aircraft propellers.
The analysis results of JavaProp will be slightly different from SimProp, as I have corrected a minor error in the analysis part.
Last modification of this page: 21.05.18
[Back to Home Page] Suggestions? Corrections? Remarks? e-mail: Martin Hepperle.
Due to the increasing amount of SPAM mail, I have to change this e-Mail address regularly. You will always find the latest version in the footer of all my pages.
It might take some time until you receive an answer
and in some cases you may even receive no answer at all. I apologize for this, but
my spare time is limited. If you have not lost patience, you might want to send
me a copy of your e-mail after a month or so.
This is a privately owned, non-profit page of purely educational purpose.
Any statements may be incorrect and unsuitable for practical usage. I cannot take
any responsibility for actions you perform based on data, assumptions, calculations
etc. taken from this web page.
© 1996-2018 Martin Hepperle
You may use the data given in this document for your personal use. If you use this
document for a publication, you have to cite the source. A publication of a recompilation
of the given material is not allowed, if the resulting product is sold for more
than the production costs.
This document may accidentally refer to trade names and trademarks, which are owned by national or international companies, but which are unknown by me. Their rights are fully recognized and these companies are kindly asked to inform me if they do not wish their names to be used at all or to be used in a different way.
This document is part of a frame set and can be found by navigating from the entry point at the Web site http://www.MH-AeroTools.de/.