Formas y curvatura: Surface Evolver

Posgrado Oficial Matemáticas - Universidad de Granada

Tutorial 3

Configuraciones 1D en un plano

Evolver puede tratar configuraciones de dimensión 1 en un espacio bidimensional. Los modos de trabajo del programa son dos:

  1. Soapfilm model. Para representar objetos 2D en un ambiente 3D. Los ejemplos que hemos visto hasta ahora pertenecían a este modo de trabajo.
  2. String model. Para representar objetos 1D es ambientes 2D, que es lo que trataremos en este tema.

Para estudiar el string model, usaremos el siguiente ejemplo: ¿Cuál es la configuración con menos longitud de entre todas aquellas en las que 11 recintos encierran igual área, con la restricción de que 10 de los recintos están dispuestos alrededor de un recinto central?

Primera imagen

En el string model, la energía por defecto es la longitud de los lados (en el soapfilm model, la energía era el área, aunque veremos cómo usar otras energías en el tutorial 8).

A continuación transcribimos el fichero flower.fe, y lo vamos comentando. A la vez, aprenderemos a usar parámetros en Evolver.

// flower.fe
// Planar cluster of 10 bubbles around a central bubble.
string
space_dimension 2 Estas dos líneas son obligatorias si queremos indicar a Evolver que vamos a usar el string model parameter nn = 10 // number of petals Definimos un primer parámetro: el número de recintos "exteriores" (pétalos) parameter rad1 = 0.75 // initial radius of inner ring of vertices radios interiores y exteriores sobre los que situaremos los vértices parameter rad2 = 1.75 // initial radius of outer ring of vertices Vertices //inner Estos son los 10 vértices interiores, con su módulo y argumento. 1 rad1*cos(0*pi/10) rad1*sin(0*pi/10) 2 rad1*cos(2*pi/10) rad1*sin(2*pi/10) 3 rad1*cos(4*pi/10) rad1*sin(4*pi/10) 4 rad1*cos(6*pi/10) rad1*sin(6*pi/10) 5 rad1*cos(8*pi/10) rad1*sin(8*pi/10) 6 rad1*cos(10*pi/10) rad1*sin(10*pi/10) 7 rad1*cos(12*pi/10) rad1*sin(12*pi/10) 8 rad1*cos(14*pi/10) rad1*sin(14*pi/10) 9 rad1*cos(16*pi/10) rad1*sin(16*pi/10) 10 rad1*cos(18*pi/10) rad1*sin(18*pi/10) //outer Estos son los 10 vértices exteriores. Nótese que la numeración no es consecutiva con los vértices interiores, pero resulta más cómoda de esta forma. 21 rad2*cos(0*pi/10) rad2*sin(0*pi/10) 22 rad2*cos(2*pi/10) rad2*sin(2*pi/10) 23 rad2*cos(4*pi/10) rad2*sin(4*pi/10) 24 rad2*cos(6*pi/10) rad2*sin(6*pi/10) 25 rad2*cos(8*pi/10) rad2*sin(8*pi/10) 26 rad2*cos(10*pi/10) rad2*sin(10*pi/10) 27 rad2*cos(12*pi/10) rad2*sin(12*pi/10) 28 rad2*cos(14*pi/10) rad2*sin(14*pi/10) 29 rad2*cos(16*pi/10) rad2*sin(16*pi/10) 30 rad2*cos(18*pi/10) rad2*sin(18*pi/10) Edges // inner Estos son los 10 lados interiores (entre vértices interiores). 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 // outer Estos son los 10 lados exteriores. De nuevo usamos una numeración adaptada. 21 21 22 22 22 23 23 23 24 24 24 25 25 25 26 26 26 27 27 27 28 28 28 29 29 29 30 30 30 21 // septa Ahora los 10 lados "radiales", que unen vértices interiores con exteriores. 41 1 21 42 2 22 43 3 23 44 4 24 45 5 25 46 6 26 47 7 27 48 8 28 49 9 29 50 10 30 Faces Ahora definimos las caras (recintos), para asignarles posteriormente un área a cada una. // outer Hay 10 caras exteriores, ... 1 41 21 -42 -1 2 42 22 -43 -2 3 43 23 -44 -3 4 44 24 -45 -4 5 45 25 -46 -5 6 46 26 -47 -6 7 47 27 -48 -7 8 48 28 -49 -8 9 49 29 -50 -9 10 50 30 -41 -10 // inner ... y solo una cara interior. 11 1 2 3 4 5 6 7 8 9 10 Bodies Como otras veces, para prescribir un volumen (en este caso, área) debemos definir cuerpos. // outer bodies Estos son los 10 recintos exteriores. Asignamos a cada uno área=1. 1 1 volume 1 2 2 volume 1 3 3 volume 1 4 4 volume 1 5 5 volume 1 6 6 volume 1 7 7 volume 1 8 8 volume 1 9 9 volume 1 10 10 volume 1 // inner body Por último, el único recinto interior, que también tendrá área=1. 11 11 volume 1

Tras unas cuantas iteraciones y refinamientos, veremos cómo Evolver converge a una figura como la siguiente:

Imagen final

Ejercicios

1. Resolver el problema isoperimétrico en el plano, es decir: construir la curva cerrada de longitud mínima en el plano que encierra un área dada.

2. La pompa doble plana. Supongamos que queremos encerrar dos áreas $A_1$ y $A_2$ en regiones del plano, de forma que empleemos para ello el menor perímetro posible. Dando por hecho que existe solución al problema, en principio tendríamos dos posibilidades para una configuración minimizante:

  1. Las dos regiones tienen algún borde común.
  2. Los cierres en el plano de las regiones son disjuntos.

Razonar que (B) no puede ser minimizante. Construir con Evolver una solución minimizante en la posibilidad (A), que encierre áreas $A_1=0.3$ y $A_2=1$. El resultado debe ser como el siguiente (el gráfico de la izquierda es una posible configuración inicial).

Pompa doble plana

3. Construir con Evolver una pompa triple plana y una pompa cuádruple plana.

4. Imaginemos que 4 ciudades están dispuestas en los vértices de un cuadrado de lado 1 unidad, y que debemos construir una red de carreteras para comunicarlas, como la de la figura de abajo. Usar Evolver para encontrar la posición ideal de los cruces A y B para que la red de carreteras sea lo más corta posible.

Ejercicio 3.4
Joaquín Pérez © 2011
Inicio  |   Arriba