05 June 2014

Sub- through Supersonic Coleman-like Channels

I finally cleaned up my compressible, turbulent channel results computed with my thesis code, Suzerain. The dataset includes instantaneous planar averages of 180+ quantities collected in situ during the production runs along with rigorous sampling error estimates for the final ensemble results.

If you want to quickly visualize something, a little wrapper utility makes it a snap. So, without further ado, gratuitous eye candy generated with summary_surf.py -C 256 -f coleman3k15.h5 bar_u_v bar_u bar_v:

10 April 2014

Installing Chromium under $HOME on RHEL 6-ish x86_64 systems

Based upon Install Chromium (with Pepper Flash) on CentOS/Red Hat (RHEL) 6.5 with modifications to permit non-root usage...

mkdir ~/workaround && cd ~/workaround
wget http://people.centos.org/hughesjr/chromium/6/x86_64/RPMS/chromium-31.0.1650.63-2.el6.x86_64.rpm # 32-bit seemingly in repo too
rpm2cpio chromium-31.0.1650.63-2.el6.x86_64.rpm | cpio -idmv
./opt/chromium-browser/chromium-browser # Bombs on sandboxing complaints
./opt/chromium-browser/chromium-browser --no-sandbox # Confirm behaves for you
mv ./opt/chromium-browser ~ # Moving the whole directory into a permanent location
echo '#/bin/sh' > ~/bin/chromium-browser # Assuming you have ~/bin in your path
echo 'exec $HOME/chromium-browser/chromium-browser --no-sandbox "$@"' >> ~/bin/chromium-browser
chmod a+x ~/bin/chromium-browser
chromium-browser http://www.google.com & # Rejoice
cd && rm -rf ~/workaround # Hygiene

The are glaring drawbacks to running Chromium with --no-sandbox so don't do it without considering its implications.

29 March 2014


A fun holdover from the days when I was last gainfully employed-- the 12th patent on which I'm part inventor was issued earlier this month: Converged call flow modeling and converged web service interface design.

28 March 2014

I {hate,heart} NaN

For two week's I've intermittently been tracking down an issue where suddenly a flow profile goes from turbulent/sane to a uniform flow profile in a single time step.

For awhile now I've been running with a custom banded solver that permits

  • mixed precision factorization
  • use of approximate factorizations, and
  • iterative refinement.
Relative to ZGBSVX this has been a net win. I get firm control over the quality of my linear system solutions and save a factor of 10 (yes, 10) over LAPACK's Cadillac banded solve.

It turns out that I didn't harden my one-off solver against NaNs. Ah, NaNs. Those lovely things that can make puzzling things like the following happen to a simulation:

The problem wasn't the NaN showing up in a computation, as I'd notice that. The problem was NaN showing up in a residual computation. Necessarily, that NaN failed a residual tolerance check. Because the tolerance check was false, I'd kick back a linear solution consisting of all zeros from an initial solution residual calculation that I'd performed.

What happened next was a comedy of my best intentions. I had a forcing constraint set so that if my solution failed to match my freestream, the state profile was forced to match. As my solution was all zeros, that NaN residual combined with the forcing caused my solution to become the freestream in a single time step. And suddenly my simulations went from sane to uniform instantaneously.

This came to me on the motorcycle while riding home after a rough day.

I simultaneously love and hate the beauty that is floating point.

Subscribe Subscribe to The Return of Agent Zlerich