Inicializar aleatoriamente un conjunto de partículas en un modelo de computadora de "juguete"

Estoy programando un modelo de "juguete" y quiero inicializar el ( posiciones , momentos ) de un conjunto de partículas en tres espacios, usando un generador uniforme (pseudo) de números aleatorios. Pero estoy un poco perdido acerca de eso: supongamos que el conjunto se caracteriza por una temperatura termodinámica macroscópica T . Entonces, ¿cómo se usa un anillo uniforme para distribuir de manera realista (razonablemente realista) las energías cinéticas de las partículas que reproducen la función de partición correspondiente?

Además, suponga que el conjunto está restringido dentro de una caja finita. Tenía la intención de distribuir uniformemente las posiciones iniciales al azar en ( X , y , z ) . Pero, ¿los límites de la caja afectan eso o no? ¿Debería la densidad numérica (promedio) de las partículas ser una función de la distancia a las paredes, o qué? Y lo mismo para la dirección del momento, es decir, tenía la intención de usar https://math.stackexchange.com/questions/44689/ para distribuir uniformemente las direcciones iniciales en cada ángulo sólido. ¿Qué tan (poco) realista es eso y cuál es la forma correcta de explicar el límite de la caja?

Pregunta realmente interesante: la intuición dice que querrías usar una distribución normal para los momentos, pero no es mi campo y oye, la intuición...
¿ Sería la ciencia computacional un mejor hogar para esta pregunta?
@EmilioPisanty Podría ser, ya que debe haber muchos, muchos, muchos modelos de este tipo, y cualquiera que esté familiarizado con ellos probablemente podría responder la pregunta. Intenté buscar en Google, pero extrañamente no pude encontrar modelos existentes cuyo código, la documentación lo respondió. Entonces, desde una perspectiva de "primeros principios", creo que este sería el foro más relevante.

Respuestas (2)

¿Cómo inicializar las velocidades?

La forma en que los códigos de dinámica molecular hacen esto es extraer números al azar de la distribución de Maxwell-Boltzmann , es decir, cada uno de los tres componentes de velocidad se extraen de la distribución

pag ( v ) = ( 2 π metro k B T ) 3 / 2 Exp ( metro v 2 2 k B T )

Tenga en cuenta que puede generar números aleatorios con distribución gaussiana mediante la transformación de Box-Muller .

¿Cómo inicializar las posiciones?

Si los límites de la caja son periódicos o reflexivos, entonces no tienen efecto en la distribución de probabilidad, por lo que una distribución uniforme estaría bien.

Aunque si sus partículas interactúan, debe tener cuidado para evitar superposiciones (y debe equilibrar antes de cualquier muestreo de conjunto).

Gracias, limón (¿eso es un twist o una rodaja? :). Intenté buscar en Google, pero no pude construir una consulta que arrojara su explicación más clara. Por supuesto, tenía la función de partición en sí, pero de alguna manera no pude reconocer lo sencillo que es aplicarla.

La regla general es que la distribución en el espacio de fases está ponderada por mi mi / k T dónde mi es la energía.

En particular, si estás pensando en un gas ideal, no hay interacción entre las moléculas del gas y la pared (excepto en el momento en que las moléculas rebotan), por lo que la energía no depende de la posición ni de la distribución de la posición en la caja. es uniforme

En un modelo más realista de la pared, digamos uno en el que la pared repele partículas a partir de una distancia λ lejos, tendrías un potencial no trivial tu ( r ) , y dibujar posiciones de acuerdo con mi tu ( r ) . Pero si está utilizando una pared ideal en su simulación, la distribución uniforme es perfectamente correcta.

Como la energía cinética es proporcional a pag 2 , la distribución de cantidad de movimiento es como mi pag 2 . Al integrar sobre ángulos, puede elegir el ángulo de manera uniforme y aleatoria, luego elegir la magnitud, que se distribuye como pag 2 mi pag 2 .

Sin embargo, elegir un ángulo aleatorio es un poco complicado; una forma más fácil es notar que mi pag 2 factoriza como

mi pag 2 = mi pag X 2 mi pag y 2 mi pag z 2
por lo que puede elegir cada componente del impulso de forma independiente, como un Gaussiano. De nuevo, como la energía cinética no depende de la posición, no tienes que hacer ningún ajuste para "estar cerca de la pared".

Gracias, knzhou. Intenté "verificar" ambas respuestas, pero simplemente desmarqué una cuando revisé la otra. Sí, casi un gas ideal por el momento, aunque había considerado agregar alguna interacción similar a la de Van-der-Waals, y puedo probar eso para "rev 2.0".