CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   own Code vs. commercial code (

Bernhard Mueck February 9, 2000 09:57

own Code vs. commercial code
Is there any web-page, where advantages and disadvantages of an own code development for any given problem in CFD versus the usage of an commercial code with user defined subroutines are discussed ? I am interested in arguments for both sides.

I developed an own CFD-Code for the computation of Magnetohydrodynamic channel-flows, since until now (to my knowledge) there is no modeling for it in a commercial code. Four years ago people discouraged me from using a commercial package und writing a subroutine since the code would be very slow in 3d and transient calculations.

Thanks in advance for your comments

Jim Park February 9, 2000 10:25

Re: own Code vs. commercial code
For one opinion, read

VOLVOF: An Update of the CFD Code, SOLA-VOF. This is an Oak Ridge National Laboratory (Tennessee, USA) Report, ORNL/TM-1999/292, December, 1999, by J. E. Park. Try .

John C. Chien February 9, 2000 11:14

Re: own Code vs. commercial code
(1). A commercial code is a computer program which is being traded in the market place. So, if you put your computer program of MHD channel flow on market for sale, it will become a commercial code. (2). You can sell your computer program in different forms, as a .exe compiled code, as a source code, with/ without document, with/ without support, with/ without user defined subroutines, with/ without pre- and post- processors,......(3). If you are not interested in selling your code, you can still try to publish the results in technical journals. (using a black box type commercial code at graduate school to do CFD research is a very poor choice.)

Bernhard Mueck February 9, 2000 11:46

Re: own Code vs. commercial code
When i speak about commercial codes i always have in mind the 'can do everything codes' like FIDAP, FLUENT, CFX, STAR-CD .... where it is possible to plug in another model for MHD e.g. and you usually dont have the source. Of course it is possible to sell your own special-purpose code but it may not be worthwhile.

People in industry often ask: Is it worthwhile to develop your own code in your institute? It is a better choice to plug in a own written model in the 'can do everything code' from their point of view, since they save time and costs to do the validation of the basic code.

On the other hand i often observe that these models cause trouble in the basic code which are not easy to solve (convergence problems, stability problems and other things). Then you have to wait for the next release or you find a 'work-around' which may be time consuming. This is an argument for writing your own code. Also for education it is useful to see the full source of a CFD-Code.

I think there should be more arguments in this direction. How do i justify my own code development ?

John C. Chien February 9, 2000 12:39

Re: own Code vs. commercial code, the world is fuzzy and non-linear
(1). Let's say that you use these commercial codes, with your user defined subroutines, and each code produces different answers, then what are you going to do? (it is not uncommon in a large company, where there are always more than one commercial code available.)(2). I am currently checking out a commercial code, with different turbulence models, with different numerical method options, and different fine meshes over 400,000 to 600,000 cells. The results are all different, and also very different from the test data. What are you going to do in this case. (3). There is no other options left, if you don't get good results from commercial codes. (4). On the other hand, if you are satisfied with the results from a commercial code, you probably would continue using the code. (5). So, it is the risk involved which will determine whether you should write your own code or use a commercial code. In either case, no one can guarantee that there will be good solutions. But if you are writing your code, then you probably know why you are not getting good answers. In that case, there is still hope that somehow you will get the good results in the future. (6). The fundamental problem is: the world is "fuzzy" and highly "non-linear". The high speed automation and mass production work only for very limited products. In most cases, this kind of simple mechanical system do not exist. (7). I always say that if you know how to solve a problem, then the problem is nearly solved, there is no particular reason to actually do it. (8). By the way, if everyone uses commercial codes, then the vendors will go out of business, because they can't find anyone who knows how to write a good CFD code. So, in principle, when more people start using commercial codes, the potential of getting high quality commercial CFD codes also drops. From my point of view, commercial CFD codes are just backup tools, and the user really need to know what he is doing before using the commercial CFD codes.

clifford bradford February 9, 2000 12:43

Re: own Code vs. commercial code
also you can take the route of obtaining an open source code from other research institutes whose work (and performance) you're familiar with and modifying those. the unfortunate situation with most commercial codes is that they are based on old technology (pressure based solvers etc) which explains their often poor performance. for you application it is probably better to write your own code or gain access to another open source MHD code and then modify it to your own purposes

Bert Laney February 9, 2000 15:37

Re: own Code vs. commercial code
There are so many codes available today, I cannot imagine writing your own code from scratch. If you want custom code and access to source, save yourself a few man years and start with someone else's research code. It is not always easy to find the right code to start with, one you both trust and can get permission to modify. For MHD applications, I've put together a short list of codes at Since you've already done the work of devising your own MHD code, I hope you'll considering listing it at this site, assuming it includes compressibility effects like the other codes (I had to draw the line somewhere to keep this list within reasonable limits).

As far the comparison between custom research code and commercial software, you are unlikely to find many to give you insight here. For most people, there simply is no choice involved. People who write or custom modify research CFD source code are a completely different breed from those who apply commerical user-friendly codes. The first involves people who have a large amount of time to devote to code development, have a high degree of expertise in CFD code development, have unusual needs not addressed in standard codes, need capabilities they can trumpet as superior or unique to their customers, and do not have the large budget needed to justify leasing commerical products. The second involves people who "just need to know the answer," who do not necessarily have any special expertise in CFD algorithms, do not have unusual applications, do not need to claim that their tool is unique or superior to others, and have business that easily justifies the annual investment in commercial products.

Bernhard Mueck February 10, 2000 04:33

Re: own Code vs. commercial code
Indeed i got a fundamental code from somebody i could trust. Nevertheless it is a god choice to believe nothing and recompute with this initial code some testcases. Lately we had a guest scientist who tried to compute similar MHD test-cases with a commercial code and own written user subroutines. He got a result very quickly but amazingly only with equidistant (and a excessive number of grid points) grids he could achieve the results of the experiment and our custom codes for specific test cases to check the user subroutine. I guess my decision to modify an existing code was ok since i now know why some specific things do not work, which was a good argument of John C. Chien. On the other hand i realized that it is possible to solve the problem with a commerial code. All the arguments which were adressed in this discussion lead to the situation that commercial codes coexist with custom made codes like in many institutes and companies.

John C. Chien February 10, 2000 10:52

Re: own Code vs. commercial code
(1). There are good CFD codes, and there are better CFD codes. (2). These could be either the in-house developed codes, or the outside commercial codes. (3). The commercial codes always come with nice ads and some beautiful, colorful pictures. (4). It is then up to the user to make his own decision , whether to use a commercial code or a in-house code. (5). Then this important decision can only come from the user's knowledge and experience about CFD. (6). So, the purpose of this forum is to share with the readers the experience in CFD, so that the reader can make his own decision, perhaps a smarter one. Otherwise, the reader is free to pay his tuition and find his way through, until he has the right answer. (7). Because of the limitations from both sides about the exact problem in discussion, most of the answers are some sort of guessing. Even in that case, it should give the reader additional time to think, which may be the most important reward.

Mohammad Kermani February 16, 2000 02:24

Re: own Code vs. commercial code

It is totally true that a commerical code is a black box, that we don't know what is in it. but if we systematically benchmark it I think then we can trust in its result. As an example consider a commercial code, say code XYZ, which predicts well, Blasius flow, plane pois. flow, cavity flow, say also shock boundary layer interaction, hypersonic compression corner, and also a few more cases, why not to trust on that code when applied to a similar case in which no experiment is done on that yet?

In this point of view, a commerical code is seen like a report in the litrature, We usually trust the claims given in the papers, so why not trust on the product of the codes. Say for example, robert maccormack is claming something in one of well reputtaed journals, if he produces a commercial code, why not to trust on that specially after benchmarking. I am not here advertising to Prof. Maccormack, becuase as far as i know he has no commerical code, this is just an example to make clear what I want to say. Same idea to jameson or p. roe, or etc.

Or better to say in another way, "suppose for my phd I am supposed to solve the problem XXYYZZ." Two scenarios: (1) I have written a code from scratch and succesfully tested the cases I wanted. then I go to my phd defence, and I am being asked why you have spent 5 years to develope your 2-d code starting form grid-generation then benchmarking the code for many cases and then applying your own code on the XXYYZZ just 6 monthes." Alternatively you could get a 3-d commercial code, sometimes for free with the source code, and benchmark it for some critizing cases, that is 6 months to 1 year, then spent 3 years to solve XXYYZZ and a few more advanced cases as well." "You have wasted most of your time although you have learned a lot. "

What do you think?

John C. Chien February 16, 2000 11:07

Re: own Code vs. commercial code
(1). I think, PhD is not about the "time", although in some cases, there are time limits on a PhD program. (2). I think, PhD is a program which provides a person to show his ability to do original work within a reasonable period of time. (3). Actually, the content of the PhD dissertation does not have to be like a handbook. It can be rather short. So, there is no need to write a complete, general purpose program in order to get his PhD degree. A short program should be adequate, if it contains the original contribution. (4). So, the degree is awarded based on the ability to do something original. If you get a group of engineers with MS degree to write a large general purpose program, they are not going to get PhD degrees. (5).There is no need to write a long program in order to get a PhD degree. But the ability to write a program is essential in CFD field, the same is true to have the ability to read in foreign languages. These are only "basic skill". (6). So, if one hates to write computer programs, he should not be in the CFD field. (7). A good CFD candidate would be the one who is always interested in different ways to improve his code, methods, solution accuracy, speed, etc... In this way, he can work "independently" to solve CFD problems, and provide services to others, through his commercial codes if he decides to do so. (8). A commercial code is not designed to produce a PhD in a shortest time. The same is true for a freeware, or a shareware.

All times are GMT -4. The time now is 10:48.