xtalgrowth: Simulaciones de crecimiento de cristales de esferas duras en dos dimensiones

xtalgrowth es una aplicación X que simula el crecimiento de cristales de esferas duras en dos dimensiones (discos duros en dos dimensiones). Si ejecutamos xtalgrowth, una ventana se abre, esferas duras se caen de azar posiciones, y ellas pillan en el fondo de la ventana. Finalmente, xtalgrowth va a escribir un resultado en un archivo de PostScript en STDOUT (salida estándar) en una certificación (Fig.1). Podemos ajustar las condiciones de crecimiento con las opciones de línea de comandos. xtalgrowth es adecuado para una demostración de simulación de la ciencia de materiales en museos o en campus abiertos. xtalgrowth es un software libre.

Uso de xtalgrowth:

$ xtalgrowth --help
$ xtalgrowth -d 0.033 -c 3
$ xtalgrowth -d 0.033 -c 2
$ xtalgrowth -d 0.015 -c 1
$ xtalgrowth -g 'Mr. Takeshi Nishimatsu' | lpr

Ponga certification.eps en el directorio actual para obtener una carta de certificación. certification.eps será utilizado como título de la carta de certificación. El nombre dado con la opción -g y la fecha de hoy también estará en la carta de certificación.

Si su impresora no puede imprimir correctamente la carta de certificación, canalizarla a través de gs comando:

$ xtalgrowth [OPTIONS...] | gs -q -sDEVICE=pswrite -sOutputFile=- -dNOPAUSE -dBATCH - | lpr

Si su Max OS X no puede imprimir correctamente la carta de certificación, Utilice lpr con la opción -l:

$ xtalgrowth [OPTIONS...] | lpr -l
figures/example.jpg
Fig. 1 Carta de certificación del resultado de la simulación de xtalgrowth. El nombre y la fecha de hoy también estará en la carta.

Contenidos:

Sitio web y descargar xtalgrowth

Sitio web de xtalgrowth es http://loto.sourceforge.net/xtalgrowth/ . El paquete (xtalgrowth-X.Y.Z.tar.gz) puede ser descargado desde http://sourceforge.net/projects/loto/files/xtalgrowth/ .

Compilación y instalación

Los requisitos son

Si tiene todos ellos, puede generar src/xtalgrowth con

$ tar xf xtalgrowth-X.Y.Z.tar.gz
$ cd xtalgrowth-X.Y.Z
$ ./configure
$ make

Pruebe el ejecutable

$ cd src
$ ./xtalgrowth --help
$ ./xtalgrowth

Si desea instalar xtalgrowth en /usr/local/bin/xtalgrowth,

$ sudo make install
$ make installcheck

En algunos sistemas de 64 bit, puede recibir un mensaje de error como

/usr/bin/ld: skipping incompatible /usr/X11R6/lib/libX11.so when searching for -lX11

En este caso, dar algunos LDFLAGS en el paso de configuración

$ ./configure LDFLAGS="-L/usr/local/lib -L/usr/X11R6/lib64"

Para macOS en el que se instala XQuartz y/o popt via MacPorsts, utilizar

$ ./configure CPPFLAGS=-I/opt/X11/include LDFLAGS=-L/opt/X11/lib
$ ./configure CPPFLAGS='-I/opt/X11/include -I/opt/local/include' LDFLAGS='-L/opt/X11/lib -L/opt/local/lib'

para configurar CPPFLAGS y LDFLAGS.

Condiciones de cálculo y resultados

La condición de frontera periódica se utiliza para la dirección horizontal (la x-dirección). La detección de colisiones de esferas duras es rugosa. Esta rugosidad numerigal resulta de defectos de los cristales.

Se parte de un sustrato de periódico. Si el diámetro es apretado, no obtendrá un apilado perfecto:

$ xtalgrowth -d 0.033333

Puede dar el diámetro de las esferas duras con ración para el ancho del cuadro. Diámetro suelto y velocidad lenta en la caída resultado perfecto apilamiento:

$ xtalgrowth -d 0.033 -v 0.0001

Puede cambiar criterio de apilamiento con opción -c 3 a 1. Si -c 3, esferas duras deja de caer cuando toca 3 otros duras.

$ xtalgrowth -d 0.033 -c 3

Si -c 2, esferas duras deja de caer cuando toca 2 otros duras. Los defectos se incluirán en el cristal.

$ xtalgrowth -d 0.033 -c 2

Si -c 1, obtendrá estructuras fractales (Véase la referencia [1]):

$ xtalgrowth -d 0.01 -c 1

Nombre del huésped dado con la opción -g se utiliza en el archivo PostScript de certificación carta de STDOUT. La cadena dada con la opción -g es también utiliza para generar dos números enteros positivos por hashpjw.c. Usando los dos enteros como las semillas, uni64.c generate números pseudoaleatorios (Véase la referencia [4,5]):

$ xtalgrowth -g 'Mr. Takeshi Nishimatsu' > takeshi.ps

Obtendrá un mensaje de ayuda con un "--help" opción

$ xtalgrowth --help

si ha compilado xtalgrowth con las librerías popt.

figures/xtals.jpg
Fig. 2. xtalgrowth se ejecuta con 3 tipos de conjunto de opciones. (a) -c 3 -d 0.033 -v 0.0004, (b) -c 2 -d 0.033 -v 0.0001, and (c) -c 1 -d 0.020 -v 0.0004.

Exhibición

Muestra este programa con los modelos reales como Fig.3 y Fig.4.

figures/large.jpg
Fig. 3. Modelo de 2-dimensiones de cristal balístico. BB proyectiles (diámetro: 6 mm) en un par de gafas de acrílicas.
figures/cd.jpg
Fig. 4. BB proyectiles en un funda de CD música con una moneda de 10 yenes japonesa.

Referencias

[1] Jean-François Gouyet, Michel Rosso and Bernard Sapoval: "Fractal surfaces and interfaces" in the book of "Fractals and disordered systems" edited by Armin Bunde and Shlomo Havlin, pp. 229-261 (1991), ISBN:0-387-54070-9, Springer-Verlag New York.

[2] Lawrence Bragg and J. F. Nye: "A Dynamical Model of a Crystal Structure", Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 190, No. 1023, pp. 474-481 (Sep. 9, 1947). You can get a free PDF of this article from doi:10.1098/rspa.1947.0089.

[3] Lawrence Bragg and W. M. Lomer: "A Dynamical Model of a Crystal Structure. II", Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 196, No. 1045, pp. 171-181 (Mar. 22, 1949). You can get a free PDF of this article from doi:10.1098/rspa.1949.0022.

[4] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman: "Compilers: Principles, Techniques, and Tools" (1986), ISBN:0-201-10088-6, Addison Wesley, a.k.a. the Dragon Book.

[5] George Marsaglia and Wai Wan Tsang: "The 64-bit universal RNG", Statistics & Probability Letters, Vol. 66, pp. 183-187 (15 January 2004), doi:10.1016/j.spl.2003.11.001. Note that a part of code in the bottom of p.186, "y=(8888*x)%65579;" should be replaced by "y=(8888*y)%65579;". Consequently, 5 values of "The correct output" in p.187 are incorrect. See http://sci4um.com/about16220-asc.html .

Repositorio de source code, autor y COPIA

https://github.com/t-nissie/xtalgrowth es el repositorio de source code de xtalgrowth. Por ejemplo, puede editar este documento y crear una "pull request" vía https://github.com/t-nissie/xtalgrowth/blob/master/index.es.html .

Autor: Takeshi Nishimatsu (t_nissie{at}yahoo.co.jp)

Copyright © 2009-2024 by Takeshi Nishimatsu

xtalgrowth se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA. Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU (the GNU General Public License, "GPL") según es publicada por la Free Software Foundation. Véase COPYING.

Desarrollo de software

Las desarrolladoras necesitan Autotools.

Las desarrolladoras pueden:

$ git clone https://github.com/t-nissie/xtalgrowth.git
$ cd xtalgrowth
$ autoreconf -v
$ automake --add-missing
$ autoreconf -v            ###*###
$ ./configure
$ make -j9                 # Do development.
$ make check               # Do some tests.
$ make distclean           # Clean up Makefile, etc.
$ ./configure
$ make distcheck           # Check and make a distribution package, xtalgrowth-X.Y.Z.tar.gz.
                           # Give options in DISTCHECK_CONFIGURE_FLAGS.

$ make clean
$ cmake -G Ninja .         # You can also use CMake.
$ cmake -LA .
$ ninja
$ ninja test

Agradecimientos

http://loto.sourceforge.net/xtalgrowth/ es presentado por SourceForge.net Logo .