Tired of that “TeX” look?

TeX has been using computer modern (CM) font since its inception. But that “TeX” look may become a bit tiring. Of course, TeX is a typesetting engine, it is not limited to CM fonts. On the other hand, there aren’t so many fonts around for both the text and the math. (If you have no math,  xeTex makes it easy to use most fonts you can imagine, including the Microsoft and google families).

I found a very clear review of existing alternatives at the Font usage post, by Ryosuke Iritani (入谷 亮介). I have taken his suggestions and created a gallery, with a simple sample of text and equations.

More elegant Palatino

\usepackage[sc]{mathpazo}
\linespread{1.05} % Palladio needs more leading (space between lines)
\usepackage[T1]{fontenc}

mathpazo.png

Kpfonts (Palatino-like)

\usepackage{kpfonts}

mathpazo

Libertine

Used e.g. in Wikipedia on each sectioning

\usepackage{libertine}
\usepackage{libertinust1math}
\usepackage[T1]{fontenc}

libertine.png

STIX

Scientific and Technical Information Exchange; Times-based but much more elegant than txfonts package.

\usepackage[T1]{fontenc}
\usepackage{stix}

styx

Garamond

It’s a bit thin and less friendly

\usepackage[urw-garamond]{mathdesign}
\usepackage[T1]{fontenc}

garamond.png

Utopia (Adobe)

\usepackage[adobe-utopia]{mathdesign}
\usepackage[T1]{fontenc}

utopia.png

Charter

\usepackage[charter]{mathdesign}

charter.png

Crimson (with math support)

\usepackage[T1]{fontenc}
\usepackage{cochineal}
\usepackage[cochineal,varg]{newtxmath}

crimson.png

Baskervald

Baskerville-based, thicker font

\usepackage[lf]{Baskervaldx} % lining figures
\usepackage[bigdelims,vvarbb]{newtxmath} % math italic letters from Nimbus Roman
\usepackage[cal=boondoxo]{mathalfa} % mathcal from STIX, unslanted a bit
\renewcommand*\oldstylenums[1]{\textosf{#1}}

baskervald

Helvetica

So far, the only font not included the Iritani’s Font usage post!

\usepackage{helvet}
\usepackage{sansmath}

\usepackage{titlesec}  % this enforces helvetica in section and chapter titles
\titleformat{\chapter}[display]
  {\normalfont\sffamily\huge\bfseries}
  {\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titleformat{\section}
  {\normalfont\sffamily\Large\bfseries}
  {\thesection}{1em}{}

% In main text, at the beginning:
\fontfamily{phv}\selectfont

% before the first equation:
\sansmath

helvetica

The code

All the above was produced with variations of this file. I just run latex on it, then dvips to get a ps file, which I then crop and export as PNG using the GIMP. Of course, depending on the system, some LaTeX packages may be needed, as well as fonts (I had to install urw-garamond on my arch linux system, for example.)

 

\documentclass{article}

\newcommand{\bfr}{\mathbf{r}}
\newcommand{\bfu}{\mathbf{u}}
\newcommand{\bfq}{\mathbf{q}}

\usepackage{amsmath}

\usepackage{libertine}
\usepackage{libertinust1math}
\usepackage[T1]{fontenc}

\usepackage{lipsum}% for filler text

\begin{document}

\section{A section}

\lipsum[10]

Equations:

\begin{equation}
\frac{d \mathbf{u}}{d t} = - \nabla p + \nu \nabla^2 \mathbf{u},
\end{equation}

\begin{equation}
\begin{split}
E &= m c^{2},\\
T &= 2\pi \sqrt{\frac{m}{k}}
\end{split}
\end{equation}

\begin{equation}
\iint \phi = - \oint p
\end{equation}
\end{document}

Advertisements

Plotting 2D column-shaped results with python

Ok, so you have your computational output of a set of 2D points. You have been lazy and done the obvious stuff: arrange them in columns, with the first one being the x coordinates, second one the y coordinate, then come the fields, which may be scalar (one column each), or vector (two columns each, one for each coordinate). How to visualize them?

With python, start with

ipython --pylab

Then, read the data

In [4]: dt = loadtxt( ‘1/mesh.dat’ )

In [5]: shape( dt )
Out[5]: (1024, 27)

Notice the last command tells us we have 1024 data points, and 27 fields (well, 25 + positions). For convinience, assign columns to arrays:

In [6]: x=dt[:,0]; y=dt[:,1]; al=dt[:,4]

Now x and y are positions, and “al” is the scalar field for the fifth column (number 4, since counters start at 0 in python).

To visualize the positions,

In [7]: scatter( x , y )

A scalar field may be visualized with a color map:

In [9]: scatter( x , y , c = al )

The “c=” means the color is taken from field al. One may fiddle with colormaps and symbol sizes:

In [9]: scatter( x , y , c = al , cmap= plt.cm.Blues, s=8 )

To know the range we are plotting, produce a color bar:

In [19]: colorbar()

Remember each plotting is overlaid on the previous one, so it is necessary to blank the plot from time to time:

In [11]: clf()

For vector fields, assign coordinates to two separate arrays:

In [20]: vx=dt[:,8]; vy=dt[:,9]

Then, use “quiver” to get a vector plot:

In [22]: quiver( x, y, vx , vy )

 

 

Grabaciones al aire libre

El otro día tuvimos que grabar una película al aire libre con los niños. Un sitio público, gente pasando, lluvia cayendo en todas partes (en particular, en los paraguas que protegían cámara y presentadores). En resumen: buena calidad de vídeo (cámara Canon de fotos, con posibilidad de hacer películas), audio horroroso. Por suerte, uno de nosotros tuvo la idea de grabar el audio con un teléfono móvil, a modo de micrófono. Esto permite mejorar mucho la calidad de audio en producción, como sigue:

  • Se monta la película del modo habitual (seleccionando escenas, transiciones, cortando, etc). (Seguimos usando el windows movie maker, aunque hay opciones interesantes como openshot.) Es mejor no añadir música en este momento, aunque si se hace tampoco pasa nada.
  • Una vez terminado el montaje, se extrae la banda sonora entera y se graba (en ogg preferiblemente, o en mp3 de buena calidad). Este paso es sencillo, el mismo VLC player lo hace)
  • Se importa la banda sonora en un programa de edición de audio tipo DAW (yo uso Cubase 5). Esta es la pista 1. (En principio, un DAW puede importar directamente el audio de un vídeo, pero el Cubase 5 está algo atrasado en cuanto a codecs.) Sobre DAWs, por cierto: están apareciendo varios gratuitos (al menos, para pocos proyectos) que son online (bandlab, soundtrap) ; pueden ser una buena alternativa a DAWs tradicionales.
  • En otras pistas, se importan los ficheros del móvil. (De nuevo, fue necesario VLC para transferir el formato de audio moderno, mp4, a ogg que pudiera leer el Cubase 5; hay que hacerlo uno por uno, lo cual es bastante tedioso, habría que investigar si p.e. audacity lo puede hacer mejor.)
  • Bajo la pista 1 creamos la pista 2, de mejoras. Pasamos el audio de la pista 1 al canal izquierdo estéreo, y el de la pista 2 al derecho.
  • Se va escuchando sólo la pista 1 para encontrar los fragmentos de audio; luego, los localizamos en las pistas de teléfono. Una vez que hemos encontrado el fragmento con audio bueno, lo subimos a la pista 2.
  • Sincronización: gracias a la separación estéreo de canales, es bastante sencillo desplazar con cuidado los fragmentos de la pista 2 hasta que están en sincronía con la 1. Cuando lo conseguimos, cortamos el fragmento de la pista 1 que hemos sustituido y lo mandamos a – infinito para que no suene (se puede borrar también, pero así no se pierde información).
  • Así con todos los fragmentos. Al terminar, se aplican inserciones estándar a la pista 1 y a la 2 (compresión, gate de ruido, ecualización, etc), se colocan las dos en posición estéreo neutra, y se exporta la mezcla de estos dos canales.
  • Finalmente, con el programa de edición de vídeo se sustituye totalmente el audio con la nueva banda sonora. Puede añadirse ahora música si no se ha hecho antes.

 

A markdown test

This is a test of markdown blog writing. The writing comes straight from my website on CFD methods. These were written in markdown under reveal.js, for quick and nice lecture slides. Some changes had to be made:

  • LaTeX must start as “dollar sign latex” … “dollar”
  • Links to local files (such as pictures) don’t work
  • Lists (such as this one) do not seem to work well

 

 

 

 

Muy a menudo, se parte de las EDPs, conocidas, por ejempo:

\frac{\partial u}{\partial t} + c \frac{\partial u}{\partial x} = 0

Estas se discretizan: sustituyendo las derivadas por diferencias.

Sin embargo, este es un proceso de ida y vuelta, porque
las EDPs se deducen a nivel discreto.

Deducción

 

 

Se suponen cambios de un campo u sólo
en la dirección x

Esquema de convección en 1D

 

Esquema de convección en 1D

conveccion_1d

parts_bw_values_250

 

El cambio en la cantidad total A \Delta x \, u_i será:

\frac{d }{d t} (A \Delta x \, u_i ) = \Phi_{i-1/2} - \Phi_{i+1/2}

Flujos, convección

Antes los flujos por las caras venían dados por:

\Phi_{i-1/2} = A c \, u_{i-1/2}

\Phi_{i+1/2} = A c \, u_{i+1/2}

\frac{d }{d t} (A \Delta x \, u_i ) = A c \, u_{i-1/2} - A c \, u_{i+1/2}

Quick von Neumann stability analysis

von Neumann stability analysis is a great tool to assess the stabilty of discretizing schemes for PDEs. But too often, imho, the discussion is too convoluted. Here, I try to provide a shortcut.

In a nutshell:

  • The standard approach involves Fourier techniques, involving (of course) complex numbers
  • The real part of these numbers is analysed, with some trigonometric expression resulting, identifying the troublesome modes
  • I claim this mode can be identified in advance, which makes the whole Fourier procedure unnecessary

BTW: it’s pronounced “fon no ee man”

parts_bw_values_250

Continue reading

Discrete Fourier transform and Fourier series

This is quite silly, but the relationship between the discrete Fourier transform (DFT) and the Fourier series (FS) is clouded by annoying factors. I will try to connect both in this article. The motivation is to employ DFT techniques in a computer simulation. In the latter, one usually has a finite simulation box, which makes Fourier series the most interesting (a connection to the Fourier transform may also be made, see below).

Continue reading

Van der Waals’ square gradient theory

OK, I have encountered this theory again, after many years. The idea is to describe separation between two phases as the minimum of a free energy with respect to an order parameter \phi:

g(\phi) = \frac a2 \phi^2 + \frac b4 \phi^2

When becomes negative, the minimum of g changes from 0 to other values, \pm \phi_0. The function then has the celebrated double minimum feature, which features prominently in many symmetry-breaking theories, including of course the appearance of particle mass mass and, you know, the Big Bang and the Universe.

But here we are just considering phase separation in materials. The interface between two coexisting phases must have some associated cost, and the simplest (lowest order) way to include it is by introducing a total free energy functional

F = \int dr \,  f(\phi, \nabla\phi)

f(\phi) = g(\phi) + \frac c2 (\nabla\phi)^2 .

This is also called a London-Linzburg-Landau free energy, also appearing in their theory of superconductors.

Now, parameters ab, and c are not easy to measure (or, at least, estimate) experimentally, but they are related to: the surface tension, the width of the interface, and the magnitude of the bulk equilibrium order parameter (i.e. \phi_0 ). Here I show how to obtain it in a slightly more general setting, since I was not able to find it on the internet (it can be found e.g, in the book by Rowlinson & Widom).

Continue reading