2008-10-08 20 views
7

Estoy interesado en leer y comprender los algoritmos de malla 2D. Una búsqueda en Google revela a lot of papers and sources, sin embargo, la mayoría son demasiado académicos y no mucho para principiantes.Lectura en Mesh Algorithm and Mesh Library

Entonces, ¿alguien aquí recomendaría alguna fuente de lectura (adecuada para principiantes) o implementación de código abierto que pueda aprender desde el principio? Gracias.

Además, en comparación con la generación de malla triangular, tengo más interés en la malla cuadrilátera y la malla mixta (quad y tri combinados).

Respuesta

5

En segundo lugar, la respuesta de David con respecto al sitio Jonathan Shewchuk's como un buen punto de partida.

En términos de software de código abierto, depende de lo que está buscando exactamente.

  • Si está interesado en la generación de malla, puede echarle un vistazo al código CGAL. Comprender las partes de bajo nivel del código de CGAL es demasiado para un principiante. Sin embargo, echar un vistazo a los algoritmos de nivel superior puede ser bastante interesante incluso para un principiante. También tenga en cuenta que el documentation of CGAL es muy detallado.
  • También puede consultar TetGen, pero su código fuente es monolítico y no está documentado (es más un software de usuario final que una biblioteca, incluso si también se puede llamar simplemente desde otros programas). Aún así, es bastante legible, y el user manual contiene una breve presentación de la generación de malla, con algunas referencias.
  • Si también está interesado en el procesamiento de malla, puede echar un vistazo a OpenMesh.

Más información sobre sus objetivos definitivamente ayudaría a proporcionar punteros más relevantes.

5

El primer enlace en su búsqueda de Google lo lleva al sitio Jonathan Shewchuk's. Este no es realmente un mal lugar para comenzar. Él tiene un programa llamado triangle que puedes descargar para la triangulación 2D. En esa página hay un link a las referencias utilizadas en creating triangle, incluido un enlace a una descripción del triangluation algorithm.

Existen varios enfoques para la generación de malla. Uno de los más comunes es crear un Delaunay triangulation. Triangular un conjunto de puntos es bastante simple y hay varios algoritmos que lo hacen, incluyendo Watson y Rupert's como se usa en el triángulo Cuando quiere crear una triangulación restringida, donde los bordes de la triangulación coinciden con los bordes de su forma de entrada es un poco más difícil, porque necesita recuperar ciertos bordes.

Comenzaría entendiendo la triangulación de Delaunay. Entonces tal vez mire algunos de los otros algoritmos de mallado.

Algunos de los temas comunes que se encuentran en los documentos de la generación de mallas son

  • Robustez - que es cómo hacer frente a los errores de redondeo de punto flotante.
  • Calidad de malla: asegura que las formas de los triángulos/tetraedros son casi equiláteros. Si esto es importante depende de por qué está creando la malla. Para el trabajo de análisis es muy importante,
  • Cómo elegir dónde insertar los nodos en la malla para obtener una buena distribución de la malla.
  • Velocidad de mallado
  • Generación de malla cuadrilátera/hexagonal. Esto es más difícil que usar triángulos/tetraedros.

generación de la malla 3D es mucho más difícil que en 2D así que muchos de los papeles están en la generación de 3D

Generación de malla es un tema de gran tamaño. Sería útil si pudiera dar más información sobre qué aspectos (por ejemplo, 2D o 3D) le interesan. Si puede dar una idea de lo que debe hacer, tal vez pueda encontrar algunas mejores fuentes de información.

+0

I segundo esto. La calidad de malla es importante si está utilizando la malla para aproximar funciones: el error de aproximación (en la norma H^1, es decir, teniendo en cuenta el error cuadrático medio del gradiente) depende del "espesor" de los triángulos: la proporción de los radios de su círculo interno a su círculo externo. Los triángulos equiláteros son los mejores, pero cuando los puntos son fijos esto es demasiado pedir, y la triangulación de Delaunay se trata de obtener la mejor triangulación dados los vértices. –

+0

La robustez es difícil de obtener. Tengo algunos documentos sobre esto, pero es principalmente un poco técnico dar vueltas para obtener la cantidad correcta de precisión cuando es importante. Naturalmente, ves los problemas que surgen con el error de redondeo al estudiar la triangulación de Delaunay, y luego, entiendes que * no deberías * escribirlo tú mismo. –