Capítulo 28 Campos vectoriales
La visualización de los campos vectoriales es un problema bien conocido en el estudio de los fenómenos físicos. El flujo de aire alrededor de un ala, el flujo de sangre en una cámara del corazón, la circulación del agua en un océano, la velocidad del viento o el campo electromagnético son ejemplos de campos vectoriales. Los conjuntos de datos campos se utilizan por tanto en la visualización científica (sciviz), no en la visualización de datos (infoviz).
Los campos vectoriales pueden visualizarse mediante técnicas de advección23 de texturas y técnicas basadas en la geometría. Entre las primeras se consideran los métodos de ruido puntual y de convolución integral de líneas (LIC). Ejemplos de estos últimos son el trazado de flechas/cuadros, las líneas de corriente, el trazado de partículas.
Los métodos basados en la textura crean una visualización densa, continua y uniforme de un campo vectorial. Son baratos, rápidos y ayudan a los usuarios a reconocer características en un flujo. Los métodos geométricos exigen más recursos computacionales y, por lo general, producen una imagen gruesa y escasa del flujo. La calidad y los detalles de los métodos geométricos pueden converger con la representación basada en la textura si el número de elementos de trazado es suficientemente denso (Creati, Vidmar, and Sterzai 2019).
Este tipo de visualización exige importantes recursos computacionales. El número de puntos de malla de un campo vectorial que se pueden simular aumenta con el tiempo aprovechando las capacidades del hardware de los ordenadores, pero no basta la velocidad máxima de una sola CPU, la cual se encuentra en sus límites físicos (justo por encima de los 3 GHz) debido a problemas de refrigeración. La solución fue el desarrollo de CPUs multinúcleo. Al mismo tiempo, el procesamiento de gráficos se ha delegado en GPUs para distribuir el renderizado entre muchos núcleos dedicados. Los lenguajes de programación tradicionales no son la mejor opción para aprovechar el nivel de concurrencia que ofrecen las arquitecturas de CPU y GPU. MPI, OpenMP, CUDA y OpenCL son lenguajes que se crearon para distribuir la carga de trabajo entre los núcleos, pero su uso no es sencillo y suele estar restringido a los especialistas en informática (Creati, Vidmar, and Sterzai 2019).
Se presenta un ejemplo escrito en python:
## <matplotlib.quiver.Quiver object at 0x0000012D88367250>
## Text(0.5, 1.0, 'Vector Field')

https://krajit.github.io/sympy/vectorFields/vectorFields.html
https://www.geeksforgeeks.org/how-to-plot-a-simple-vector-field-in-matplotlib/
Y una simulación en R:

Referencias bibliográficas
Acción y efecto de llevar o arrastrar algo.↩︎