CFD Online Logo CFD Online URL
Home > Wiki > What is Open Source?

What is Open Source?

From CFD-Wiki

Revision as of 19:00, 17 June 2012 by Shreyasr (Talk | contribs)
Jump to: navigation, search



If you were to ask ten different people what Open Source Software (OSS) is, you would most likely get ten different answers. The official definition can be found, from The Open Source Initiative, along with guidelines and information related to an Open Source license. From an engineer's standpoint: "Open-source software ... is computer software that is ... provided under a software license that permits users to study, change, and improve the software."

For any decision, especially those related to significant cost and safety impacts, to rely on the analysis based on the results from a software package, the engineer or decision maker needs a mechanism whereby the validity of the algorithms and their implementation can be verified easily. This aspect is all the more important in the case of CFD, where several assumptions and simplifications are made in the process of breaking down the problem, into a set of parameters that can be computed with the available resources. Other factors resulting in the increased interest in CFD, other than the boom in computing power in recent years, is the cost and feasibility of setting up the facilities to realistically experiment and study complicated physical phenomenon.

Granted, not all of us are going to go digging around in the code to determine that a particular piece of software actually cranks out viable results; however, the fact that there are a large number of other users who ARE validating and improving the code provides us with a greater sense of confidence than taking some commercial entity's word for it. There are of course technical paper's and validation studies done using the commercial codes. However, the huge leap ahead in the User Interfaces, available applications and ease of use of Linux operating systems, in the past few years, have made OSS and custom Linux distributions a realistic solution to providing increased efficiency at lower costs along with more freedom

Other than the cost savings, there is another peripheral benefit that is often overlooked : the user community can be quite diverse, not to mention vast. Through forums and mailing lists, a good deal of support and assistance can be accessed without having to navigate through a corporate "Help" desk. These communities are often comprehensive sources of answers to specific questions. The kind of unofficial support, usually found in OpenSource Software, is often purely a function of 'getting things done' and 'gaining knowledge', sans the set commercial limitations. There are also an increasing number of official support channels and training programs offered by organisations like the OpenFOAM foundation

Of course, in parallel, commercial software giants like ANSYS and Altair have made their own powerful impact on the industry and have become conventional, albeit 'reliable' solutions. They have comprehensive after-sales support and often hire well qualified professionals, including PhD's as application engineers, to solve the problems of their clients. Many of them are also active in developing new and probably more customized solutions in collaborations with Universities and the Industry as well. There are plenty of industries and users satisfied with being end users, as it serves their purpose well.

Another huge area where open source and literally 'free' applications are useful is for students with no access to commercial programs.

The objective of this wiki section is to provide a comprehensive reference and guide for harnessing the power of OpenSource and to make an informed and unbiased decision of the kind of package that will provide the most efficient/comprehensive solution to the problem being faced.

Cost and Licensing Considerations

Note that there's nothing in the definition of OpenSource software about its cost. Fortunately, many of the OpenSource solutions now available for engineering applications also happen to be free of any licensing fees (although this is not always the case). Some of the OpenSource software that is available for free is restricted to personal-use; you are not allowed to use it in your commercial engineering practice. Yet many of the best tools we have encountered are not hindered by restrictive licenses. Still, one must be aware of such restrictions to avoid ethical violations or possible legal problems. More information can be found on The Open Source Initiative website.

One's focus will naturally be upon Free and Open software. But, this particular category may not provide a viable solution for every circumstance. Therefore, as necessity dictates, the engineer should swerve off the path to explore some possibilities that are not free, or that may involve restrictive licenses. The goal is to identify the most cost-effective tools for engineering applications. And, of course, part of the cost that must be considered is the time one must invest in learning how to use the software. It lies in the engineer's purview to understand the software and make informed decisions about which kind of tool to use.

Using Open Source CFD

The advent of functional User Interfaces in Linux distributions, even with styles matching that of Windows has made it a lot more easier to experiment with Open Source applications. One of the easiest ways to kickstart your open source experience within Windows itself is to use a virtual environment. There are free applications (eg : VirtualBox , VMWare ) which allow you to experience the Linux Operating system within Windows itself. All that is required is an ISO image or CD of the Operating System. It is possible to setup the virtual system to use a particular amount of RAM and also give it permission to access the host systems data and hardware. This method is often preferred as a starting point and also where very limited usage of other distributions is required. However, this method does not allow you to efficiently utilise all the computer's resources because Windows is also running and requires a minimum amount of RAM to keep running.

Another method is by using a Live CD/ USB system. Here, the operating system utilises your CD or USB as the primary harddisk with the OS related files. The RAM of the host computer is used for it's functioning. It is also possible to install the OS onto the USB itself, but this is not recommended as it will wear out your USB stick very fast. The disadvantage here used to be that, changes made to files/ settings were not preserved on shut down. However, this can be overcome by using a Persistent File storage. Since Linux is about customisation, it is recommended to setup persistence and use a Live USB stick rather than a CD. There are several ways to make a USB stick or a CD bootable.

Dual/Multiple Booting with Windows and Linux is also another solution. Here both the operating systems work independently of each other. It is recommended to install Windows first and then install Linux.


Related Links

  • Codes section on CFD Wiki - Contains a pretty long list of Free & Commercial codes
  • Source Code Archive - CFD Wiki - Donated Source Codes and External Links
  • CAE- Linux - Official website of CAE- Linux, an x64 Ubuntu based Linux Distribution with a huge variety of pre installed engineering applications.
  • GeekoCFD - A customisable SUSE based distribution with both x64 and x32 versions. Contains a few applications pre installed, but the Live CD can be customised online via SUSE studio.
  • Learning Linux - a Collation - This is a collection of web resources for learning Linux and gaining some practical skills.

My wiki