PartSim: simulador 2D muy sencillo de interacciones entre partículas.
(c) 2004 Miguel Colom, under the GNU GPL license.
Email: miguelco at arrakis dot es.
PartSim es un simulador de partículas muy sencillo escrito en C++ que utiliza la
librería gráfica SDL para mostrar los gráficos y
configurable mediante ficheros XML.
El Universo dentro del cual se simulan las interacciones es el área bidimensional y
rectangular que define la ventana del programa, dentro de la cual se colocan las partículas
y se las dejan interactuar en base a unas leyes deterministas que tienen en cuenta ciertas
características de las partículas, que básicamente son:
Además de las características propias de las partículas, las leyes que determinan su comportamiento
están parametrizadas por:
- La distancia entre partículas.
- Orden del exponente de la distancia dentre partículas.
- Constante de fuerza según la carga.
- Constante de pérdida energética. (Similar a rozamiento).
En el fondo, es muy simular a la ley de Coulomb, que afirma que la fuerza de atracción o repulsión
entre dos cargas puntuales (cuerpos cargados cuyas dimensiones son despreciables comparadas
con la distancia r que las separa) es inversamente proporcional al cuadrado de la distancia entre ellas.
Sólo que se pueden cambiar algunos de los parámetros, como por ejemplo el exponente "2" de la distancia,
entre otros.
El programa acepta como parámetro en línea de comandos el nombre de un fichero XML del que lee
la configuración, que tiene estos campos:
- C: Valor máximo de carga de las partículas.
- Kf: Constante de fuerza (multiplicativa). Cuanto mayor sea, mayor será la fuera atractiva
o repulsiva. Va multiplicada por la carga de las partículas.
- Kr: Constante de pérdida de energía. Similar a rozamiento.
- NPartIniciales: Número inicial de partículas al iniciar el programa.
- ExpDist: Orden del exponente de la distancia para calcular la fuerza.
- FPS: Frames Por Segundo.
- ANCHO_VENTANA: ancho físico de la ventana.
- ALTO_VENTANA: alto físico de la ventana.
Modo de uso
partsim [ficherovXML]
--help para ver la ayuda.
--license para información sobre la licencia GPL.
Si no se especifica ningún parámetro en línea de comandos, se utilizará el fichero
de configuración por defecto default.xml.
Capturas
La verdad es que las capturas de este programa no son nada espectaculares, pero bueno...
ahí van dos:
Descarga
Puedes el código fuente aquí: partsim.tar.gz
Antes de usar este programa, deberías haber leído la licencia GPL y
estar de acuerdo con las condiciones.
El programa se puede mejorar en muchos aspectos aún, como por ejemplo añadiendo detección de colisiones o haciendo
más realistas las fórmulas que determinan el movimiento.
Por suerto, la licencia GPL permite que cualquiera pueda tomar como base mi programa y mejorarlo de
cualquier forma, siempre y cuando el programa siga siendo libre.
Si haces algún cambio, me gustaría que me avisaras: