Estoy tratando de simular un objeto de cuerda. La formulación que entiendo es una matriz de partículas, conectadas por resortes. Estos resortes tienen valores k muy grandes, de modo que la línea se deforma, pero se estira muy poco. He concluido que resolver esto en función del tiempo no es posible en forma cerrada porque una cuerda es una generalización de un péndulo (que no es de forma cerrada).
Conformarse con soluciones aproximadas, entonces. Necesito un algoritmo que se adapte bien. Los ejemplos que he visto usan integración euleriana explícita o implícita para mover las partículas. Esto no escala.
Para ver esto, considere una cuerda con n nodos. Aplica una gran fuerza en un extremo. Como la cuerda no debe estirarse demasiado, la aceleración en el otro extremo debe ser inmediata.
Sin embargo, con la integración euleriana, para llevar cualquier fuerza al otro extremo se requieren n pasos. Noto una caída exponencial: si el primer nodo acelera una cierta cantidad, entonces los nodos adyacentes aceleran menos (si aceleran a la misma velocidad, entonces el algoritmo no es estable). En consecuencia, los nodos adyacentes a ese nodo aceleran aún más lentamente.
Entonces, para n nodos de distancia, la aceleración es casi insignificante. Esto lleva a una cuerda que se estira significativamente. Si solo desea duplicar la resolución de la simulación, de repente necesita tomar medidas de tiempo que sean decenas o cientos de veces más pequeñas para obtener un comportamiento similar.
Estoy buscando un método simple que resuelva este problema, es decir, las simulaciones de mayor resolución convergen a la solución con solo un cálculo adicional de tiempo polinómico. Se encuentra disponible una biblioteca completa de técnicas de matriz y álgebra lineal. Mi conocimiento de la mecánica clásica es muy bueno, y conozco algunos análisis numéricos.
fuente
Respuestas:
En primer lugar, como ha mencionado Jed Brown , debe usar un esquema implícito de tiempo, ya que su problema parece bastante rígido, o al menos un esquema más estable, pero igualmente simple, como la integración de Leapfrog o la integración de Verlet .
En cuanto al problema físico, ¿qué tan interesado estás en el estiramiento? En lugar de conectar las partículas con resortes rígidos, puede usar restricciones holonómicas , por ejemplo, asegúrese de que la distancia entre pares de partículas permanezca constante. Las restricciones deben resolverse en cada paso de tiempo, y existen algoritmos eficientes para exactamente su configuración, es decir, una larga cadena de restricciones vinculadas. Ver, por ejemplo, este artículo .
Solo por curiosidad, ¿también estás utilizando potenciales angulares a lo largo de la cuerda para modelar su flexibilidad?
fuente
Tiene un sistema rígido con la formulación actual. El estiramiento dinámico y la vibración en la cuerda son (presumiblemente) poco interesantes, pero controlan el paso de tiempo explícito. Esto indica el uso de un método de integración de tiempo implícito. Puede usar la amortiguación para evitar las oscilaciones que tenderán a estropear el control de error adaptativo para el método implícito.
Si las oscilaciones de escala fina son importantes para modelar a pesar de querer pasar por encima de ellas (p. Ej., Para el modelado de fatiga), entonces es posible que desee ver nuevos métodos multiescala como el método heterogéneo multiescala (Engquist, Tsai, etc.) o semi- métodos espectrales en el tiempo. El uso de tales métodos es un tema de nivel de investigación y debe comprender bien su problema y las capacidades del método para decidir si puede ser apropiado. Si desea conservar energía, por ejemplo, que ciertos modos de vibración no deberían disiparse, entonces debería buscar integradores simplécticos como Verlet.
También puede resolver el límite de estiramiento cero si lo desea. Con términos de inercia, el modelo puede reformularse en términos de ángulos, lo que lleva a un sistema ODE no rígido. Como faleichik señaló, este es el
ROPE
problema de prueba considerado en el libro de Hairer, Nørsett y Wanner. Si descarta la inercia de la cuerda en sí, pero permite la holgura (cuerda ligera y de bajo estiramiento con carga discreta; no es un modelo común), el problema se convierte en una desigualdad diferencial de variación (DVI) y generalmente no puede ser mejor que la precisión de primer orden en hora.fuente
Si está interesado en una solución rápida y aproximada, los métodos utilizados en los efectos digitales, como la geometría diferencial discreta, pueden ser de su interés. Soy consciente de una formulación cuasiestática en Discrete Elastic Rods , un artículo de 2008 del grupo de Grinspun en la Universidad de Columbia, pero probablemente haya literatura más reciente en esta área.
fuente
El movimiento de la cuerda colgante es un problema de prueba muy querido de Hairer y Wanner que apareció en el segundo volumen (rígido) de "Resolver ecuaciones diferenciales ordinarias" y en la segunda edición del primer volumen (1993). Recomiendo la última opción, página 247. Las ecuaciones son difíciles de derivar y el algoritmo de solución numérica no es muy sencillo. Aunque al final, los pasos de tiempo explícitos convencionales como DOPRI, RK45 u ODEX se aplican y se comportan bastante bien, por lo que el problema no es realmente rígido.
fuente
ROPE
problema del libro modela una cuerda que no se estira, con una dinámica dominada por efectos inerciales. La pregunta parece ser acerca de las cuerdas que se estiran.