From BlenderWiki

Jump to: navigation, search

Blender 2.66: Dinámicas de fluidos en partículas

Algoritmo de resolución SPH físicamente correcto

Se ha agregado un nuevo método de cálculo de dinámicas de fluidos con partículas que posibilita simulaciones más precisas desde el punto de vista físico (r52989). El nuevo método está basado en investigaciones tempranas de SPH, de forma que ha sido llamado el método Clásico.

El nuevo método usa los mismos parámetros que el antiguo, pero es importante notar que las unidades son muy distintas. Por ejemplo, un cubo de agua de 1x1x1m que contiene 1000 particles, debería tener aproximadamente los siguientes parámetros:

  • Masa de la partícula: 1 (kg)
  • Rigidez: 300 (m/s)
  • Viscosidad: 0.01
  • Radio de interacción: 0.225 (m)
  • Densidad en reposo: 1000 (kg/m3)

El nuevo método produce partículas con un espaciado mucho más regular. El espaciado puede ser calculado antes de que se ejecute la simulación y se muestra en la interfaz. Se debe usar este valor como guía para las condiciones iniciales de la simulación, p.ej: la resolución de la cuadrícula de emisión. Con las opciones de arriba, el espaciado será de aproximadamente 0.1m - porque 1kg de agua llenará un cubo de 10cm.

Rigidez es una medida de qué tan incompresible es el fluido. El valor es relativo a la escala de la simulación; para simulaciones de una escala menor, debe ser disminuido, p.ej: para un espaciado de 0.01m la rigidez podría definirse en 500.

En comparación, con el método antiguo se hubiera usado unos parámetros como estos:

  • Masa: 4
  • Rigidez: 1
  • Viscosidad: 2
  • Repulsión: 1
  • Viscosidad rígida: 0.1
  • Radio de interacción: 0.225
  • Densidad en reposo: 1

Nótese que el método antiguo no usa ninguna unidad en particular, pero el nuevo puede aceptar unidades del SI (Sistema Internacional de medidas).

El método antiguo es, de alguna manera, más expresivo desde el punto de vista artístico y aún se encuentra disponible. Ahora es llamado el método de relajación de doble densidad.

Mejoras en la estabilidad

La simulación avanza de a intervalos discretos. Hay tres parámetros que controlan el tamaño de estos intervalos:

  • Intervalo de tiempo: La cantidad de tiempo real que transcurre con cada fotograma.
  • Sub-fotogramas: La cantidad de intervalos de la simulación por fotograma.
  • Umbral: Un valor de tolerancia que permite que el valor de Sub-fotogramas varíe automáticamente.

En Blender 2.66, tanto el parámetro Sub-fotogramas como Umbral pueden ser definidos (r52948). En este caso, la cantidad de intervalos por fotograma será de al menos Sub-fotogramas + 1. Más sub-fotogramas pueden llegar a ser simulados si el fluido se vuelve turbulento, de acuerdo con el parámetro Umbral. Antiguamente, solo uno de ellos podría ser definido - resultando a veces en fluidos inestables cuando estaban en reposo o en movimiento.

Para el ejemplo del cubo de 1m dado arriba, los siguientes serían valores razonables:

  • Intervalo de tiempo: 0.04 (segundos por fotograma)
  • Sub-fotogramas: 3
  • Umbral: 0.1

Solución de problemas

Si la simulación se comportara de una forma inesperada (si explotara):

  • Asegurarse de que el espacio calculado coincida con el espaciado deseado de las partículas.
  • Definir el radio de interacción a algo en el entorno de: (espaciado * 2.25).
  • Aumentar la cantidad de sub-fotogramas o disminuir el Umbral (ver arriba). Nótese que simulaciones de una escala más pequeña requieren un Intervalo de tiempo también más pequeño.
  • Reducir la rigidez o aumentar la viscosidad.