The folks at Stanford's Aerospace Design Lab have an open source solver called Stanford University Unstructured (SU2) (AIAA ASM 2013 paper). The nice thing about this code is that it does not have very many third-party dependencies, so you can just download the source and compile with a pretty plain vanilla system that is probably already installed on your Linux workstation of whatever flavor. There are lots of example input decks in the TestCases tarball so be sure to download that as well.
NACA0012, Mach=0.5, AoA=1.0 degrees, hybrid mesh
Few exotic dependencies and easy portability across systems is a definite plus, but one of the things I don't like so much about their development model is that you have to register to get the links to the source. The license may be GPL, but it's not really an open development model yet. I understand that this is a bit of an experiment with open source for the folks at Stanford, and they want to track how many visits and registrations they get, but I'd encourage them to go open all the way: let everyone have read access to the repo without registration; put it up on git and let a bunch of forks bloom!
This post demonstrate a work-flow for topology optimization using open source tools (with mixed success). The approach uses an unpenalized method (see wiki) that maps the material density output from the optimizer to unit-cells based on the octet truss (inspired by this white paper, see pp10). As some further motivation for this approach, the students working on the record-setting human powered helicopter demonstrated that multi-scale trusses (trusses with elements made of smaller trusses) were a very efficient structural concept (see the comments for further references on multi-scale structures). One of the benefits of not penalizing (using variable density solutions rather than trying to achieve predominantly solid-void solutions) is that we don't need to spend time doing parameter continuation on the penalization exponent.
Rough Hex Output & Smooth Surface Reconstruction for Dogleg
This post describes a set of open source tools for simple topology optimization for parts destined for 3D printing. The two Matlab codes (both are plain vanilla Matlab, so they work successfully in Octave too) are good introductions to topology optimization. The papers that go along with the codes provide great documentation and examples of tweaking and changing the scripts to treat various problems. The python implementation is more capable (and a few more lines of code).
I have not had good luck with the Boolean operations in FreeCAD as I had hoped (seems to be a problem with the underlying OpenCascade libraries) so I am compiling BRL-CAD.
I signed up for the free preview of Google Compute Engine. The project I described in their questionaire was basically just some hobby-level CFD stuff, so I am surprised they sent me an invite. This post provides links to the initial setup documentation and getting started tutorials, and describes getting OpenFoam up and running on an instance.
I've been an SVN user for a while, but it seems like more and more projects are going distributed version control systems like Git so I wanted to learn how to use Git. I found this crash course on Git for SVN users which provides a useful Rosetta stone, and this warning:
SVN is based on an older version control system called CVS, and its designers followed a simple rule: when in doubt, do like CVS. Git also takes a form of inspiration from CVS, and its designer also followed a simple rule: when in doubt, do exactly the opposite of CVS. This approach lead to many technical innovations, but also lead to a lot of extra headscratching among migrators. You have been warned.
This sounds a lot link Linus Torvalds' talk, WWCVSND: What Would CVS Not Do?
Github has a set of steps for setting up on linux. Git comes in the Fedora repos (and probably every other repo), so install is easy. A nice bit of documentation that comes with the install is Everyday GIT With 20 Commands Or So.
Since I already use password-less ssh to hop between the boxes in my little network, I didn't move my old public key as in the instructions. I created a config file in the .ssh directory containing these lines:
Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa_git
TCPKeepAlive yes
IdentitiesOnly yes
Where id_rsa_git.pub is the key I uploaded to github. Authenticating to github is then just: ssh -T git@github.com
Then you accept their RSA key like you would for doing any other ssh login.
The next thing is to create a repo. Clicking through the instructions brings you to a page with several "next steps". Which for my example are:
mkdir FalknerSkan
cd FalknerSkan
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:jstults/FalknerSkan.git
git push -u origin master
Which gives some output ending in something like: Branch master set up to track remote branch master from origin.
If you'd like, you can read up on the Falkner-Skan ODE at the viscous aero course on MIT's OCW:
One of the things I had to manually fix after reboot was the TexLive development repo (only 60% complete, estimated for Fedora 17). I had this activated to get the IJ4UQ styles to work. yum remove texlive-release rpm -i http://jnovy.fedorapeople.org/texlive/packages.f16/texlive-release.noarch.rpm
Manually remove some old conflicting packages (some from Fedora 12, yikes! I'm a lazy sys-admin).
List the repositories to make sure everything is pointing at the correct release version. yum repolist
Sync things up. yum distro-sync
I got this error: grubby fatal error: unable to find a suitable template. According to the forum I did, mv /boot/grub/grub.conf /boot/grub/grub.conf.old
and then, yum reinstall kernel yum clean all && yum install texlive
The other problem I ran in to was with the hwloc package. I had to downgrade it to the 1.2.1 version, the 1.3 version seems to be missing the shared library needed by mpich and scotch.
OpenFoam is probably the most mature open source CFD tool available. There are plenty of niche CFD projects on SourceForge, but none that have really been able to generate the user/developer community that OpenFoam has.
OpenFoam recently made the news because SGI "purchased" it for an undisclosed amount.
"Computational fluid dynamics (CFD) is one of the most important application areas for technical computing," said SGI CEO Mark J. Barrenechea. "With the acquisition of OpenCFD Ltd., SGI will be able to provide our customers the market's first fully integrated CFD solution, where all the hardware and software work together."
Basically, they hired all of the developers:
The entire OpenCFD team, led by Henry Weller, has joined SGI as full-time employees and will be based out of SGI's EMEA Headquarters located in the UK.
SGI Acquires Maker of Open Source CFD Software
They also created the OpenFoam Foundation to ensure the continued development of OpenFoam under a GPL license.
This is a very good thing for the development of OpenFoam to really take off. The foundation means that a true commons can develop around the software. SGI is clearly using OpenFoam as widget frosting, and they are selling support. This means their incentives line up with making the open version as good as it can be rather than crippling it in deference to a paid "pro" version. Good news for open source computational fluid dynamics.