diff --git a/utils/solvers/legacy/c++/solver.cpp b/utils/solvers/legacy/c++/solver.cpp
deleted file mode 100644
index b52b0ffb4fe009d9c00ebbb9d48ac691c0caaae2..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c++/solver.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// This is a dummy C++ client solver for Gmsh: it does not solve
-// anything, but shows how to program your own solver to interact with
-// the Gmsh solver module.
-//
-// To compile this solver, type something like:
-//
-// g++ solver.cpp -o solver.exe
-//
-// To run it, merge the contents of the file solver.opt into your
-// default Gmsh option file, or launch Gmsh with the command:
-//
-// gmsh -option solver.opt 
-//
-// You will then see a new button labeled "My C++ solver" in Gmsh's
-// solver menu.
-
-#include <math.h>
-#include "GmshSocket.h"
-
-typedef enum { send_options, run_code } action;
-
-int main(int argc, char *argv[])
-{
-  action what_to_do = run_code;
-  char *name = 0, *option = 0, *socket = 0;
-
-  // parse command line
-  int i = 0;
-  while(i < argc) {
-    if(argv[i][0] == '-') {
-      if(!strcmp(argv[i] + 1, "socket")) {
-        i++; 
-        if(argv[i]) socket = argv[i++];
-      }
-      else if(!strcmp(argv[i] + 1, "options")) {
-        i++;
-        what_to_do = send_options;
-      }
-      else if(!strcmp(argv[i] + 1, "run")) {
-        i++;
-        what_to_do = run_code;
-        if(argv[i]) option = argv[i++];
-      }
-    }
-    else
-      name = argv[i++];
-  }
-
-  if(!socket) {
-    printf("No socket specified: running non-interactively...\n");
-    exit(1);
-  }
-
-  // connect to Gmsh
-  GmshClient client;
-  if(client.Connect(socket) < 0){
-    printf("Unable to connect to Gmsh\n");
-    exit(1);
-  }
-  client.Start();
-
-  if(what_to_do == send_options) {
-    // send the available options for this computation
-    client.Option(1, "FormulationH");
-    client.Option(1, "ConvTest");
-    client.Option(1, "Blablabli");
-  }
-  else if(what_to_do == run_code){
-    // do the computation and merge some views
-    for(int i = 0; i < 10; i++){
-      client.Info("Computing curve...");
-      // fake computation for 500ms:
-#if !defined(WIN32) || defined(__CYGWIN__)
-      usleep(500 * 1000);
-#else
-      Sleep(500);
-#endif
-      client.Info("Done computing curve");
-      FILE *file = fopen("solver.pos", "w");
-      if(!file)
-        client.Error("Unable to open output file");
-      else {
-        fprintf(file, "View.Type = 2;\n");
-        fprintf(file, "View.Axes = 3;\n");
-        fprintf(file, "Delete View[0];\n");
-        fprintf(file, "View \"%s\"{\n", option);
-        for(int j = 0; j < 100; j++)
-          fprintf(file, "SP(%d,0,0){%g};\n", j,sin(j*i*M_PI/10.));
-        fprintf(file, "};\n");
-        fclose(file);
-        client.MergeFile("solver.pos");
-      }
-    }
-    client.Info("Done!");
-  }
-
-  client.Stop();
-  client.Disconnect();
-}
diff --git a/utils/solvers/legacy/c++/solver.opt b/utils/solvers/legacy/c++/solver.opt
deleted file mode 100644
index 6db466e2e2fb6809a888c32d9ab1d77477ddcb67..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c++/solver.opt
+++ /dev/null
@@ -1,10 +0,0 @@
-Solver.Name1 = "My C++ Solver";
-Solver.Executable1 = "./solver.exe";
-Solver.InputName1 = "dummy";
-Solver.OptionCommand1 = "-options";
-Solver.FirstOption1 = "My options";
-Solver.FirstButton1 = "Run !";
-Solver.FirstButtonCommand1 = "-run %s";
-Solver.ClientServer1 = 1;
-Solver.MergeViews1 = 1;
-Solver.PopupMessages1 = 1;
diff --git a/utils/solvers/legacy/c/GmshClient.c b/utils/solvers/legacy/c/GmshClient.c
deleted file mode 100644
index 8e16f832fd8cab857fb8e0ed713ee1531a74a431..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c/GmshClient.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, and/or sell copies of the
- * Software, and to permit persons to whom the Software is furnished
- * to do so, provided that the above copyright notice(s) and this
- * permission notice appear in all copies of the Software and that
- * both the above copyright notice(s) and this permission notice
- * appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
- * ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
- * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- * 
- * Please report all bugs and problems to the public mailing list <gmsh@geuz.org>.
- *
- * Contributor(s):
- *   Christopher Stott
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#if defined(_AIX)
-#include <strings.h>
-#endif
-
-#if !defined(WIN32) || defined(__CYGWIN__)
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#else
-#include <winsock.h>
-#include <process.h>
-#endif
-
-/* private functions */
-
-static void Socket_SendData(int socket, const void *buffer, int bytes)
-{
-  ssize_t len;
-  int sofar, remaining;
-  const char *buf;
-  buf = (const char *)buffer;
-  sofar = 0;
-  remaining = bytes;
-  do {
-    len = send(socket, buf + sofar, remaining, 0); 
-    sofar += len;
-    remaining -= len;
-  } while(remaining > 0);
-}
-
-static void Socket_Sleep(int ms)
-{
-#if !defined(WIN32) || defined(__CYGWIN__)
-    usleep(1000 * ms);
-#else
-    Sleep(ms);
-#endif
-}
-
-static void Socket_Close(int s)
-{
-#if !defined(WIN32) || defined(__CYGWIN__)
-  close(s);
-#else
-  closesocket(s);
-#endif
-}
-
-/* public interface */
-
-int Gmsh_Connect(const char *sockname)
-{
-#if !defined(WIN32) || defined(__CYGWIN__)
-  struct sockaddr_un addr_un;
-#else
-  WSADATA wsaData;
-  int iResult;
-#endif
-
-  struct sockaddr_in addr_in;
-  int sock;
-  int tries;
-  struct hostent *server;
-  int portno, remotelen;
-  char remote[256], *port;
-
-#if defined(WIN32) && !defined(__CYGWIN__)
-  iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
-  if(iResult != NO_ERROR)
-    return -4;  /* Error: Couldn't initialize Windows sockets */
-#endif
-
-  /* slight delay to be sure that the socket is bound by the
-     server before we attempt to connect to it... */
-  Socket_Sleep(100);
-
-  if(strstr(sockname, "/") || strstr(sockname, "\\") || !strstr(sockname, ":")){
-    /* UNIX socket (testing ":" is not enough with Windows paths) */
-#if !defined(WIN32) || defined(__CYGWIN__)
-    sock = socket(PF_UNIX, SOCK_STREAM, 0);
-    if(sock < 0)
-      return -1; /* Error: Couldn't create socket */
-    /* try to connect socket to given name */
-    memset((char *) &addr_un, 0, sizeof(addr_un));
-    addr_un.sun_family = AF_UNIX;
-    strcpy(addr_un.sun_path, sockname);
-    for(tries = 0; tries < 5; tries++) {
-      if(connect(sock, (struct sockaddr *)&addr_un, sizeof(addr_un)) >= 0)
-	return sock;
-      Socket_Sleep(100);
-    }
-#else
-    /* Unix sockets are not available on Windows without Cygwin */
-    return -1;
-#endif
-  }
-  else{
-    /* TCP/IP socket */
-    sock = socket(AF_INET, SOCK_STREAM, 0);
-    if(sock < 0)
-      return -1; /* Error: Couldn't create socket */
-    port = strstr(sockname, ":");
-    portno = atoi(port+1);
-    remotelen = strlen(sockname) - strlen(port);
-    if(remotelen > 0)
-      strncpy(remote, sockname, remotelen);
-    remote[remotelen] = '\0';
-    if(!(server = gethostbyname(remote))){
-      Socket_Close(sock);
-      return -3; /* Error: No such host */
-    }
-    /* try to connect socket to given name */
-    memset((char *) &addr_in, 0, sizeof(addr_in));
-    addr_in.sin_family = AF_INET;
-    memcpy((char *)&addr_in.sin_addr.s_addr, (char *)server->h_addr, server->h_length);
-    addr_in.sin_port = htons(portno);
-    for(tries = 0; tries < 5; tries++) {
-      if(connect(sock, (struct sockaddr *)&addr_in, sizeof(addr_in)) >= 0)
-	return sock;
-      Socket_Sleep(100);
-    }
-  }
-  Socket_Close(sock);
-  return -2; /* Error: Couldn't connect */
-}
-
-void Gmsh_SendString(int socket, int type, const char *str)
-{
-  int len = strlen(str);
-  Socket_SendData(socket, &type, sizeof(int));
-  Socket_SendData(socket, &len, sizeof(int));
-  Socket_SendData(socket, str, len);
-}
-
-void Gmsh_Disconnect(int sock)
-{
-  Socket_Close(sock);
-#if defined(WIN32) && !defined(__CYGWIN__)
-  WSACleanup();
-#endif
-}
diff --git a/utils/solvers/legacy/c/GmshClient.h b/utils/solvers/legacy/c/GmshClient.h
deleted file mode 100644
index 4212a99af243d62a3a2ced79ab50884470800daa..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c/GmshClient.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, and/or sell copies of the
- * Software, and to permit persons to whom the Software is furnished
- * to do so, provided that the above copyright notice(s) and this
- * permission notice appear in all copies of the Software and that
- * both the above copyright notice(s) and this permission notice
- * appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
- * ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
- * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- * 
- * Please report all bugs and problems to the public mailing list <gmsh@geuz.org>.
- */
-
-#ifndef _GMSH_CLIENT_H_
-#define _GMSH_CLIENT_H_
-
-#define GMSH_CLIENT_START        1
-#define GMSH_CLIENT_STOP         2
-#define GMSH_CLIENT_INFO         10
-#define GMSH_CLIENT_WARNING      11
-#define GMSH_CLIENT_ERROR        12
-#define GMSH_CLIENT_PROGRESS     13
-#define GMSH_CLIENT_MERGE_FILE   20
-#define GMSH_CLIENT_PARSE_STRING 21
-#define GMSH_CLIENT_VERTEX_ARRAY 22
-#define GMSH_CLIENT_SPEED_TEST   30
-#define GMSH_CLIENT_OPTION       100
-#define GMSH_CLIENT_OPTION_1     (GMSH_CLIENT_OPTION+0)
-#define GMSH_CLIENT_OPTION_2     (GMSH_CLIENT_OPTION+1)
-#define GMSH_CLIENT_OPTION_3     (GMSH_CLIENT_OPTION+2)
-#define GMSH_CLIENT_OPTION_4     (GMSH_CLIENT_OPTION+3)
-#define GMSH_CLIENT_OPTION_5     (GMSH_CLIENT_OPTION+4)
-
-int Gmsh_Connect(const char *sockname);
-void Gmsh_SendString(int socket, int type, const char *str);
-void Gmsh_Disconnect(int sock);
-
-#endif
diff --git a/utils/solvers/legacy/c/solver.c b/utils/solvers/legacy/c/solver.c
deleted file mode 100644
index 73e3b4f04107ea7935619ba8aac8a2a54ec3089b..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c/solver.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, and/or sell copies of the
- * Software, and to permit persons to whom the Software is furnished
- * to do so, provided that the above copyright notice(s) and this
- * permission notice appear in all copies of the Software and that
- * both the above copyright notice(s) and this permission notice
- * appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
- * ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
- * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- * 
- *  Please report all bugs and problems to the public mailing list <gmsh@geuz.org>.
- */
-
-/* This file contains a dummy client solver for Gmsh. It does not
-   solve anything, but shows how to program your own solver to interact
-   with the Gmsh solver module.
-   
-   To compile this solver, type something like:
-
-   gcc -o solver.exe solver.c GmshClient.c
-   
-   To run it, merge the contents of the file solver.opt into your
-   default Gmsh option file, or launch Gmsh with the command:
-   
-   gmsh -option solver.opt 
-
-   You will then see a new button labeled "My C solver" in Gmsh's
-   solver menu.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#if !defined(WIN32) || defined(__CYGWIN__)
-#include <unistd.h>
-#endif
-
-#include "GmshClient.h"
-
-typedef enum { options, run } action;
-
-int main(int argc, char *argv[])
-{
-  action what = run;
-  int i = 0, s;
-  char *name = NULL, *option = NULL, *socket = NULL, tmp[256];
-  FILE *file;
-
-  /* 1. Loop through the command line arguments, remember the action
-     the solver has to perform (what) and store the socket name, the
-     option name and the problem name. */
-
-  while(i < argc) {
-    if(argv[i][0] == '-') {
-      if(!strcmp(argv[i] + 1, "socket")) {
-        i++;
-        if(argv[i])
-          socket = argv[i++];
-      }
-      else if(!strcmp(argv[i] + 1, "options")) {
-        i++;
-        what = options;
-      }
-      else if(!strcmp(argv[i] + 1, "run")) {
-        i++;
-        what = run;
-        if(argv[i])
-          option = argv[i++];
-      }
-      else{
-        i++;
-      }
-    }
-    else
-      name = argv[i++];
-  }
-
-  /* 2. If the '-socket' option was not given, we cannot connect to
-        Gmsh... */
-
-  if(!socket) {
-    printf("No socket specified: running non-interactively...\n");
-    exit(1);
-  }
-
-  /* 3. Try to connect to the socket given by the '-socket' command
-     line option: */
-
-  s = Gmsh_Connect(socket);
-
-  if(s < 0) {
-    printf("Couldn't connect to socket %s\n", socket);
-    exit(1);
-  }
-
-  /* 4. Send the GMSH_CLIENT_START command (together with the process
-     ID of the solver), check if a problem name was specified, and
-     decide what to do according to the 'what' variable: */
-
-  sprintf(tmp, "%d", getpid());
-  Gmsh_SendString(s, GMSH_CLIENT_START, tmp);
-
-  if(!name) {
-    Gmsh_SendString(s, GMSH_CLIENT_ERROR, "Missing file name");
-    Gmsh_Disconnect(s);
-    exit(1);
-  }
-
-  switch (what) {
-
-    /* 4.1. If what==options, the solver sends the valid options (here
-       for the first option): */
-    
-  case options:
-    Gmsh_SendString(s, GMSH_CLIENT_OPTION_1, "Val1");
-    Gmsh_SendString(s, GMSH_CLIENT_OPTION_1, "Val2");
-    Gmsh_SendString(s, GMSH_CLIENT_OPTION_1, "Val3");
-    break;
-    
-    /* 4.2. If what==run, the solver runs the chosen option, updates
-       the progress message, issues some information data, produces a
-       post-processing map and asks Gmsh to merge it: */
-
-  case run:
-    sprintf(tmp, "Running %s with option %s...", name, option);
-    Gmsh_SendString(s, GMSH_CLIENT_INFO, tmp);
-    for(i = 0; i < 10; i++) {
-      sprintf(tmp, "%d %% complete", 10 * i);
-      Gmsh_SendString(s, GMSH_CLIENT_PROGRESS, tmp);
-      /* Fake some cpu-intensive calculation during 100ms: */
-#if !defined(WIN32) || defined(__CYGWIN__)
-      usleep(100 * 1000);
-#else
-      Sleep(100);
-#endif
-    }
-    sprintf(tmp, "Done with %s!", name);
-    Gmsh_SendString(s, GMSH_CLIENT_INFO, tmp);
-    file = fopen("solver.pos", "wb");
-    if(!file) {
-      Gmsh_SendString(s, GMSH_CLIENT_ERROR, "Unable to open output file");
-    }
-    else {
-      fprintf(file, "View \"%s\"{\n", option);
-      fprintf(file, "ST(0,0,0,1,0,0,0,1,0){0,1,2};\n");
-      fprintf(file, "};\n");
-      fclose(file);
-      Gmsh_SendString(s, GMSH_CLIENT_MERGE_FILE, "solver.pos");
-    }
-    break;
-  }
-  
-  /* 5. We can now disconnect the solver from Gmsh: */
-  
-  Gmsh_SendString(s, GMSH_CLIENT_STOP, "Goodbye!");
-  Gmsh_Disconnect(s);
-  
-  return 0;
-}
diff --git a/utils/solvers/legacy/c/solver.opt b/utils/solvers/legacy/c/solver.opt
deleted file mode 100644
index 52973bbf8e1173d5f9fac03a3580ebe8f28c78d3..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/c/solver.opt
+++ /dev/null
@@ -1,16 +0,0 @@
-// These options define 'solver.exe' as the second solver in Gmsh's
-// solver module, under the name 'My C Solver'.
-Solver.Name1 = "My C solver";
-Solver.Help1 = "A simple example of the client/server 
-solver implementation in Gmsh...";
-Solver.Executable1 = "./solver.exe";
-Solver.InputName1 = "dummy";
-Solver.SocketCommand1 = "-socket %s";
-Solver.NameCommand1 = "%s";
-Solver.OptionCommand1 = "-options";
-Solver.FirstOption1 = "Option";
-Solver.FirstButton1 = "Run";
-Solver.FirstButtonCommand1 = "-run %s";
-Solver.ClientServer1 = 1;
-Solver.MergeViews1 = 1;
-Solver.PopupMessages1 = 1;
diff --git a/utils/solvers/legacy/perl/GMSH_CLIENT.pm b/utils/solvers/legacy/perl/GMSH_CLIENT.pm
deleted file mode 100644
index fb97bc27f7c3eff6c4662b4d1dd2302454befa0c..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/perl/GMSH_CLIENT.pm
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2002 Laurent CHAMPANEY <laurent.champaney@meca.uvsq.fr>. 
-# All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package GMSH_CLIENT;
-use Socket;
-
-$START        = 1;
-$STOP         = 2;
-$INFO         = 10;
-$WARNING      = 11;
-$ERROR        = 12;
-$PROGRESS     = 13;
-$MERGE_FILE   = 20;
-$PARSE_STRING = 21;
-$OPTION       = 100;
-$OPTION_1     = ($OPTION+0);
-$OPTION_2     = ($OPTION+1);
-$OPTION_3     = ($OPTION+2);
-$OPTION_4     = ($OPTION+3);
-$OPTION_5     = ($OPTION+4);
-
-sub SocketSendData (*$;$$) {
-	my ($socket, $buffer, $bytes) = @_; 
-	$lng = $bytes;
-	$decalage = 0;
-	while ($lng) {
-		$ecrit = syswrite $socket, $buffer, $lng,  $decalage;
-		$decalage += $ecrit;
-		$lng -= $ecrit;
-	}
-	return;
-};
-
-sub SendString (*$;$$) {
-	my ($socket, $type, $str) = @_;
-	$type1 = pack("V", $type);
-	my $len2 = length($type1);
-	SocketSendData($socket, $type1, $len2);
-	my $len = length($str);
-	$len1 = pack("V", $len);
-	$len2 = length($len1);
-	SocketSendData($socket, $len1, $len2);
-	SocketSendData($socket, $str, $len);
-	return;
-};
-
-sub Disconnect (*) {
-	$socket = @_;
-	close $socket;
-	return;
-};
-
-sub Connect (*$;$$) {
-	my ($socket, $socket_file) = @_;
-	socket($socket, AF_UNIX, SOCK_STREAM, 0)
-		or die "Can't create socket : $!";
-	connect($socket, sockaddr_un($socket_file))
-    		or die "Can't connect to $socket_file: $!";
-	return;
-};
-
-1;
diff --git a/utils/solvers/legacy/perl/solver.opt b/utils/solvers/legacy/perl/solver.opt
deleted file mode 100644
index 3a65859164e18173a2510236ee96ff242ddcedb9..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/perl/solver.opt
+++ /dev/null
@@ -1,16 +0,0 @@
-// These options define 'solver.pl' as the second solver in
-// Gmsh's solver module, under the name'My Perl Solver'. 
-Solver.Name1 = "My Perl solver";
-Solver.Help1 = "A simple perl example of the client/server
-solver implementation in Gmsh...";
-Solver.Executable1 = "./solver.pl";
-Solver.InputName1 = "dummy";
-Solver.SocketCommand1 = "-socket %s";
-Solver.NameCommand1 = "%s";
-Solver.OptionCommand1 = "-options";
-Solver.FirstOption1 = "Option";
-Solver.FirstButton1 = "Run";
-Solver.FirstButtonCommand1 = "-run %s";
-Solver.ClientServer1 = 1;
-Solver.MergeViews1 = 1;
-Solver.PopupMessages1 = 1;
diff --git a/utils/solvers/legacy/perl/solver.pl b/utils/solvers/legacy/perl/solver.pl
deleted file mode 100755
index 3e139c4ea2610ea5de78c926cc073297fd168a51..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/perl/solver.pl
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/perl
-#
-# $Id: solver.pl,v 1.4 2007-09-04 13:47:08 remacle Exp $
-#
-# Copyright (c) 2002 Laurent CHAMPANEY <laurent.champaney@meca.uvsq.fr>. 
-#
-# This file contains a dummy perl client solver for Gmsh. It does not
-# solve anything, but shows how to program your own perl solver 
-# to interact with the Gmsh solver module.
-#   
-# To test this solver, copy the solver.opt file into your default
-# Gmsh option file, or launch Gmsh with the command:
-#   
-# gmsh -option solver.opt 
-#
-#
-use Getopt::Long;
-#
-# Let's include the Gmsh client interface definitions. At the time of
-# this writing, the client interface contains only three functions:
-# GMSH_CLIENT::Connect, GMSH_CLIENT::SendString and
-# GMSH_CLIENT::Disconnect. This example shows how to use these
-# functions in order to program some simple interactions between a
-# solver and Gmsh.
-#
-require 'GMSH_CLIENT.pm';
-#
-# 1. Loop through the command line arguments, remember the action
-#    the solver has to perform and store the socket name, the
-#    option name and the problem name. 
-#
-@knownoptions = ("options", 
-		 "run=s",
-		 "mesh=s",
-		 "socket=s");
-GetOptions(@knownoptions) || exit;
-#
-# 2. If the '-socket' option was not given, we cannot connect to Gmsh...
-#
-$socket_file = $opt_socket or die "No socket file";
-#
-$problem =  $ARGV[0];
-#
-# 3. Try to connect to the socket given by the '-socket' command
-#    line option:
-#
-#   3.1. If the socket is down, issue an error...
-#
-GMSH_CLIENT::Connect(CLIENT, $socket_file);
-#
-#   3.2. ...otherwise, send the GMSH_CLIENT_START command (together
-#        with the process ID of the solver), check if a problem name was
-#        specified, and decide what to do
-#
-my $mysolver_pid = $$;
-GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::START, "$mysolver_pid");
-#
-#     3.2.1. If options, the solver sends the valid options
-#            (here for the first option):
-#
-if ($opt_options) {
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::OPTION_1, "VAL1");
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::OPTION_1, "VAL2");
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::OPTION_1, "VAL3");
-};
-#
-#     3.2.2. If run, the solver runs the chosen option, updates the progress
-#            message, issues some information data, produces a post-processing
-#            map and asks Gmsh to merge it:
-#
-if ($opt_run) {
-#
-	if (!$problem) {
-		GMSH_CLIENT::SendString(CLIENT,$GMSH_CLIENT::ERROR,"Missing File Name");
-		GMSH_CLIENT::Disconnect(CLIENT);
-		exit;
-	};
-	$mess = "Running $problem with option $opt_run"; 
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::INFO, $mess);
-	for (my $i=0 ; $i < 10; $i++) {
-	        my $j = 10 * $i;
-		$mess = "$j% Complete";
-		GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::PROGRESS, $mess);
-		work();
-	};
-	$mess = "Done with $problem!"; 
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::INFO, $mess);
-#
-	open (POSFIC, ">solver.pos")
-		or die "Unable to open output file";
-	print POSFIC ("View \"$opt_run\"{\n");
-	print POSFIC "ST(0,0,0,1,0,0,0,1,0){0,1,2};\n";
-	print POSFIC "};\n";
-	close POSFIC;
-	GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::MERGE_FILE, "solver.pos");
-};
-#
-#   3.3. We can now disconnect the solver from Gmsh:
-#
-GMSH_CLIENT::SendString(CLIENT, $GMSH_CLIENT::STOP, "Goodbye!");
-GMSH_CLIENT::Disconnect(CLIENT);
-#
-# 4. That's it!
-#
-exit;
-
-sub work {
-	sleep 1;
-};	
diff --git a/utils/solvers/legacy/python/Gmsh.py b/utils/solvers/legacy/python/Gmsh.py
deleted file mode 100644
index 399df98cfe7140ce974ac5facee57101295b796d..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/Gmsh.py
+++ /dev/null
@@ -1,211 +0,0 @@
-#!/usr/bin/env python
-"""Gmsh.py - Python module for interacting with the Gmsh pre/post processor.
-
-Module functions:
-    getopt() -- Parse command line options
-    send() -- Send a string to the Gmsh socket if open
-
-Included classes:
-    Client -- A class for maintaining socket communication with Gmsh.
-    Mesh -- A class for storing nodes and elements.
-
-Typical use:
-    import sys
-    import Gmsh
-    opt = Gmsh.getopt(sys.argv[1:])
-    if opt.has_key('--socket'):
-        c = Gmsh.Client(opt['--socket'])
-    Gmsh.send('Testing testing', Gmsh.INFO)
-
-Carl Osterwisch <osterwischc@asme.org>, January 2005
-"""
-
-import socket
-import struct
-import time
-import os
-import sys
-
-START        = 1
-STOP         = 2
-INFO         = 10
-WARNING      = 11
-ERROR        = 12
-PROGRESS     = 13
-MERGE_FILE   = 20
-PARSE_STRING = 21
-OPTION       = 100
-OPTION_1     = OPTION + 0
-OPTION_2     = OPTION + 1
-OPTION_3     = OPTION + 2
-OPTION_4     = OPTION + 3
-OPTION_5     = OPTION + 4
-
-# Module variable used to store the open communication socket with Gmsh
-sock = None
-
-def getopt(opts):
-    """Parse the given list (usually sys.argv) into a dict. 
-
-    This is a very crude function which scans for options of the form
-    ['-option=value'] and returns a dict of the form {'-option':'value'}.
-    """
-    options = {}
-    for o in opts:
-        s = o.split('=', 1)
-        if len(s) < 2:
-            if s[0].startswith('-'):
-                # Option with no value given.
-                options[s[0].lower()] = None
-            else:
-                # Value with no option given.
-                options[None] = s[0]
-        else:
-            # Assign the given value to the option.
-            options[s[0].lower()] = s[1]
-    return options
-
-def send(message, type=INFO):
-    """Send information to Gmsh using the open socket. 
-
-    Keyword arguments:
-    message -- the string message to send
-    type -- the type of message being sent (default INFO)
-
-    As of Gmsh version 2.0, type should be one of:
-    START STOP INFO WARNING ERROR PROGRESS MERGE_FILE PARSE_FILE
-    OPTION OPTION_1 OPTION_2 OPTION_3 OPTION_4 OPTION_5 
-
-    If no socket has been opened (using a Gmsh.Client instance) then print the
-    string sys.stderr.
-    """
-    if sock:
-        sock.sendall(struct.pack('II', type, len(message)))
-        sock.sendall(message)
-    elif type is not PROGRESS:
-        print >>sys.stderr, message
-
-class Client:
-    """Initiate and maintain connection with Gmsh socket.
-    
-    Instance this class to open and initiate socket communication with Gmsh.
-    Communication will be automatically and gracefully terminated when the
-    instance is destroyed.  Only one instance should exist at a time.
-    """
-
-    def __init__(self, filename):
-        """Open and initiate connection to Gmsh socket.
-        
-        Keyword arguments:
-        filename -- the name of the Unix socket given by Gmsh
-            
-        Assigns the new socket to the module variable sock and sends the
-        process id to Gmsh to initiate the communication.
-        """
-        self.initialized = 0
-        global sock
-        if not sock:
-            sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
-            time.sleep(0.1)
-            sock.connect(filename)
-            send(str(os.getpid()), START)
-            self.initialized = 1
-        else:
-            send('Gmsh.sock already exists as'+sock.getsockname(), ERROR)
-
-    def __del__(self):
-        """Gracefully close communications upon destruction.
-        
-        Sends the STOP signal to Gmsh and closes the socket.
-        """
-        global sock
-        if self.initialized:
-            send('Done.', STOP)
-            sock.close()
-            sock = None
-
-class Mesh:
-    """This is a class for storing nodes and elements.
-
-    Members:
-    nodes -- A dict of the form { nodeID: [ xcoord, ycoord, zcoord] }
-    elements -- A dict of the form { elemID: (type, [tags], [nodeIDs]) }
-
-    Methods:
-    read(file) -- Parse a Gmsh version 1.0 or 2.0 mesh file
-    write(file) -- Output a Gmsh version 2.0 mesh file
-    """
-
-    def __init__(self):
-        self.nodes = {}
-        self.elements = {}
-
-    def read(self, mshfile):
-        """Read a Gmsh .msh file.
-        
-        Reads Gmsh format 1.0 and 2.0 mesh files, storing the nodes and
-        elements in the appropriate dicts.
-        """
-
-        readmode = 0
-        send('Reading %s'%mshfile.name)
-        for line in mshfile:
-            line = line.strip()
-            if line.startswith('$'):
-                if line == '$NOD' or line == '$Nodes':
-                    readmode = 1
-                elif line == '$ELM':
-                    readmode = 2
-                elif line == '$Elements':
-                    readmode = 3
-                else:
-                    readmode = 0
-            elif readmode:
-                columns = line.split()
-                if readmode == 1 and len(columns) == 4:
-                    # Version 1.0 or 2.0 Nodes
-                    try:
-                        self.nodes[int(columns[0])] = map(float, columns[1:])
-                    except ValueError:
-                        send('Node format error: '+line, ERROR)
-                        readmode = 0
-                elif readmode > 1 and len(columns) > 5:
-                    # Version 1.0 or 2.0 Elements 
-                    try:
-                        columns = map(int, columns)
-                    except ValueError:
-                        send('Element format error: '+line, ERROR)
-                        readmode = 0
-                    else:
-                        (id, type) = columns[0:2]
-                        if readmode == 2:
-                            # Version 1.0 Elements
-                            tags = columns[2:4]
-                            nodes = columns[5:]
-                        else:
-                            # Version 2.0 Elements
-                            ntags = columns[2]
-                            tags = columns[3:3+ntags]
-                            nodes = columns[3+ntags:]
-                        self.elements[id] = (type, tags, nodes)
-        send('  %d Nodes'%len(self.nodes))
-        send('  %d Elements'%len(self.elements))
-
-    def write(self, file):
-        """Dump the mesh out to a Gmsh 2.0 msh file."""
-        print >>file, '$MeshFormat\n2.0 0 8\n$EndMeshFormat'
-        print >>file, '$Nodes\n%d'%len(self.nodes)
-        for (id, coord) in self.nodes.items():
-            print >>file, id, ' '.join(map(str, coord))
-        print >>file, '$EndNodes'
-        print >>file, '$Elements\n%d'%len(self.elements)
-        for (id, elem) in self.elements.items():
-            (type, tags, nodes) = elem
-            print >>file, id, type, len(tags),
-            print >>file, ' '.join(map(str, tags)),
-            print >>file, ' '.join(map(str, nodes))
-        print >>file, '$EndElements'
-
-if __name__ == '__main__':
-    print __doc__
-
diff --git a/utils/solvers/legacy/python/postcsv.opt b/utils/solvers/legacy/python/postcsv.opt
deleted file mode 100644
index 4413d652849066efabe809ed4f3881a0fbd054db..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/postcsv.opt
+++ /dev/null
@@ -1,21 +0,0 @@
-// These options define 'postcsv.py' as the second solver in Gmsh's
-// solver module, under the name 'PostCSV'.
-Solver.Name1 = "PostCSV";
-Solver.Help1 = "A filter to read node or element 
-indexed, comma-separated-value results into Gmsh.
-Carl Osterwisch <osterwischc@asme.org>
-January 2005";
-Solver.Executable1 = "./postcsv.py";
-Solver.InputName1 = "dummy";
-Solver.Extension1 = ".csv";
-Solver.MeshName1 = "";
-Solver.MeshCommand1 = "--mesh=%s";
-Solver.SocketCommand1 = "--socket=%s";
-Solver.NameCommand1 = "--results=%s";
-Solver.OptionCommand1 = "--options";
-Solver.FirstOption1 = "Option";
-Solver.FirstButton1 = "Import";
-Solver.FirstButtonCommand1 = "%s";
-Solver.ClientServer1 = 1;
-Solver.MergeViews1 = 1;
-Solver.PopupMessages1 = 1;
diff --git a/utils/solvers/legacy/python/postcsv.py b/utils/solvers/legacy/python/postcsv.py
deleted file mode 100755
index 8e014fd26bce43a8ff550301118bd5df84111e7b..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/postcsv.py
+++ /dev/null
@@ -1,308 +0,0 @@
-#!/usr/bin/env python
-"""Convert csv finite element data into Gmsh pos format.
-
-Usage:
-    postcsv.py --mesh=gmshfile.msh --results=csvfile.csv [--average]
-
-If --average is specified, the data for each node ID and each element ID is
-averaged, otherwise repeated IDs are assumed to be new time steps.
-
-csvfile.csv is in the following format:
-    # comments start with #
-    # time step 1 nodal scalar and vector data
-    node, heading1, heading2
-    1, 132.5, .0032 .0012 .0011
-    2, 100.2, .0030 .0004 -.0120
-    3,  98.3, .0021 .0032 .0002
-    # time step 1 elemental scalar data
-    element, heading3
-    1, 32.63
-    2, 30.34
-    3, 21.32
-    # time step 2 nodal scalar and vector data
-    node, heading1, heading2
-    1, 232.5, .0022 .0022 .0031
-    2, 200.2, .0020 .0014 .0110
-    3,  68.3, .0011 .0022 .0012
-
-Carl Osterwisch <osterwischc@asme.org>, January 2005
-"""
-
-import Gmsh
-import os, sys, re
-
-class PostMesh(Gmsh.Mesh):
-    """Store and convert FE results into Gmsh pos format.
-
-    Extends the Gmsh.Mesh class by adding the following attributes:
-
-    Members:
-    dataTypes -- dict to convert data length into type (scalar, vector, ...)
-    elemTypes -- dict to convert mesh element type into pos element type
-    posTypes -- list in pos defined order of pos object types
-    nodalData -- dict of nodal results
-    elementData -- dict of element centroid results
-
-    Methods:
-    csvparse(csvfile): Read a comma-separated-value file of nodal results
-    makeviews(file): Write all the data out to a Gmsh pos file
-    saveview(posfile): Called by makeviews to output the data for one view
-    """
-    
-    # dataTypes is used to translate the length of a vector into its
-    # corresponding Gmsh type.
-    dataTypes = {1:'S', 3:'V', 9:'T'}
-
-    # elemTypes is used to convert from Gmsh mesh element type to Gmsh
-    # post-processing object type.
-    elemTypes = {1:'L', 2:'T', 3:'Q', 4:'S', 5:'H', 6:'I', 7:'Y'}
-
-    # postTypes lists the valid Gmsh post-processing objects (dataType-elemType
-    # combinations) in the order they are defined in the pos output file
-    # format.
-    postTypes = ['SP', 'VP', 'TP',
-              'SL', 'VL', 'TL',
-              'ST', 'VT', 'TT',
-              'SQ', 'VQ', 'TQ',
-              'SS', 'VS', 'TS',
-              'SH', 'VH', 'TH',
-              'SI', 'VI', 'TI',
-              'SY', 'VY', 'TY',
-              'T2', 'T2C', 'T3', 'T3C']
-
-    def __init__(self):
-        Gmsh.Mesh.__init__(self)
-
-        self.nodalData = {}
-        #{ viewName: { nodeID: [ [time1data], [time2data] ] } }
-
-        self.elementData = {}
-        #{ viewName: { elemID: [ [time1data], [time2data] ] } }
-
-        # Delimiter between columns in the data file
-        self.separator = '[,;]'
-
-    def csvparse(self, csvfile):
-        """Parse ascii file of results into elementData and nodeData.
-
-        The file should be comma separated columns with matching column
-        headings at the top.  The first column is assumed to be the node or
-        element number.  Each unique heading will generate a new view within
-        Gmsh.  Repeated headings will generate time steps for that view.
-        """
-
-        csv = re.compile('\s*' + self.separator + '\s*')
-        elem = re.compile('el', re.I)
-        datatype = self.nodalData
-
-        Gmsh.send('Parsing results from %s'%csvfile.name)
-        headings = []
-        for line in csvfile:
-            columns = csv.split(line.strip())
-            if len(columns) > 1:
-                # There are at least two columns.
-                linedata = []
-                try:
-                    id = int(columns[0])
-                    linedata = [map(float, column.split()) for column in columns[1:]]
-                except ValueError:
-                    # Assume this is a heading.
-                    headings = columns
-                    if elem.match(headings[0]):
-                        datatype = self.elementData
-                    else:
-                        datatype = self.nodalData
-                else:
-                    for viewName, viewData in zip(headings[1:], linedata):
-                        if not datatype.has_key(viewName):
-                            datatype[viewName] = {}
-                        if not datatype[viewName].has_key(id):
-                            datatype[viewName][id] = [ viewData ]
-                        else:
-                            datatype[viewName][id].append(viewData)
-        for (viewName, nodes) in self.nodalData.items():
-            Gmsh.send('  %s %d Nodal Results'%(viewName, len(nodes)))
-        for (viewName, elems) in self.elementData.items():
-            Gmsh.send('  %s %d Elemental Results'%(viewName, len(elems)))
-
-    def saveview(self, posfile, viewName=None, viewData=[]):
-        """Store the given viewData to the posfile.
-
-        If viewName is None it will output a header line to the file.
-        """
-        if not viewName:
-            print >>posfile, '$PostFormat\n1.2 0 8\n$EndPostFormat'
-        elif len(viewData):
-            Gmsh.send('  View '+viewName)
-
-            nts = len(viewData.values()[0][0][1][0])
-            print >>posfile, '$View\n%s %d'%(viewName, nts)
-
-            # Print section lengths.
-            for type in self.postTypes:
-                if viewData.has_key(type):
-                    print >>posfile, len(viewData[type]),
-                    Gmsh.send('    %s %d'%(type, len(viewData[type])))
-                else:
-                    print >>posfile, 0,
-
-            # Print dummy time-step values.
-            print >>posfile, '\n', ' '.join([str(i) for i in range(nts)])
-
-            # Print data.
-            for type in self.postTypes:
-                if viewData.has_key(type):
-                    for object in viewData[type]:
-                        for x in range(3):
-                            # Print the coordinates in the appropriate order.
-                            print >>posfile, ' '.join([str(i[x]) for i in object[0]])
-                        for timestep in range(nts):
-                            for nodalResult in object[1]:
-                                # Print the results.
-                                try:
-                                    print >>posfile, ' '.join([str(i) 
-                                            for i in nodalResult[timestep]])
-                                except IndexError:
-                                    Gmsh.send('      Insufficient time steps for all locations.', 
-                                            Gmsh.ERROR)
-                                    Gmsh.send('      Consider using --average if this is one time step.', 
-                                            Gmsh.ERROR)
-            print >>posfile, '$EndView'
-
-    def makeviews(self, file):
-        """Generate post-processing views for the results.
-
-        1. Loop through all defined elements and generate corresponding
-        post-processor objects for elements with nodalData.
-
-        2. Loop through all elementData and generate corresponding
-        post-processor objects.
-        """
-        self.saveview(file) # This just prints the header information
-
-        if len(self.nodalData):
-            Gmsh.send('Saving nodal results to '+file.name)
-            for viewName in self.nodalData.keys():
-                viewData = {}
-                for elem in self.elements.values():
-                    # Iterate over all defined elements.
-                    coord = []
-                    result = []
-                    for nid in elem[2]:
-                        # Gather node coordinates and results for this element.
-                        try:
-                            coord.append(self.nodes[nid])
-                        except KeyError:
-                            Gmsh.send('  Mesh is missing node %d'%nid, 
-                                    Gmsh.ERROR)
-                        try:
-                            result.append(self.nodalData[viewName][nid])
-                        except KeyError:
-                            pass
-                    if len(result) == len(coord) and \
-                            self.elemTypes.has_key(elem[0]):
-                        # There was data available at every node for this
-                        # element and this element has a corresponding
-                        # post-processing object.
-                        if self.dataTypes.has_key(len(result[0][0])):
-                            postType = self.dataTypes[len(result[0][0])] + \
-                                    self.elemTypes[elem[0]]
-                            if not viewData.has_key(postType):
-                                viewData[postType] = []
-                            viewData[postType].append( (coord, result) )
-                        else:
-                            Gmsh.send("  No data type for "+repr(result[0]), 
-                                    Gmsh.ERROR)
-                self.saveview(file, viewName, viewData)
-
-        if len(self.elementData):
-            Gmsh.send('Saving elemental results to %s'%file.name)
-            for (viewName, data) in self.elementData.items():
-                viewData = {}
-                for (eid, edata) in data.items():
-                    try:
-                        elem = self.elements[eid]
-                    except KeyError:
-                        Gmsh.send('  Mesh is missing element %d'%eid, 
-                                Gmsh.ERROR)
-                    else:
-                        coord = []
-                        for nid in elem[2]:
-                            # Gather node coordinates and results for this
-                            # element.
-                            try:
-                                coord.append(self.nodes[nid])
-                            except KeyError:
-                                Gmsh.send('  Mesh is missing node %d'%nid, 
-                                        Gmsh.ERROR)
-                        if len(elem[2]) == len(coord) and \
-                                self.elemTypes.has_key(elem[0]):
-                            # There was data available at every node for this
-                            # element and this element has a corresponding
-                            # post-processing object.
-                            result = [edata]*len(coord)
-                            if self.dataTypes.has_key(len(result[0][0])):
-                                postType = (self.dataTypes[len(result[0][0])]
-                                        + self.elemTypes[elem[0]])
-                                if not viewData.has_key(postType):
-                                    viewData[postType] = []
-                                viewData[postType].append( (coord, result) )
-                            else:
-                                Gmsh.send("  No data type for "+repr(result[0]),
-                                        Gmsh.ERROR)
-                self.saveview(file, viewName, viewData)
-
-###############################################################################
-# Main program begins here
-###############################################################################
-cmdline = Gmsh.getopt(sys.argv[1:])
-if cmdline.has_key('--socket'):
-    connection = Gmsh.Client(cmdline['--socket'])
-
-if cmdline.has_key('--help') or cmdline.has_key('-h'):
-    print __doc__
-elif cmdline.has_key('--options'):
-    Gmsh.send('--noaverage', Gmsh.OPTION)
-    Gmsh.send('--average', Gmsh.OPTION)
-else:
-    if not cmdline.has_key('--results'):
-        Gmsh.send("No results specified.", Gmsh.ERROR)
-        sys.exit(1)
-
-    if not cmdline.has_key('--mesh'):
-        mshname = cmdline['--results'].split('.')[0] + '.msh'
-    else:
-	mshname = cmdline['--mesh']
-
-    try:
-        mshfile = open(mshname)
-        csvfile = open(cmdline['--results'])
-    except:
-        Gmsh.send(str(sys.exc_info()[1]), Gmsh.ERROR)
-    else:
-        pmesh = PostMesh()
-        pmesh.read(mshfile)
-        mshfile.close()
-        pmesh.csvparse(csvfile)
-        csvfile.close()
-        if cmdline.has_key('--average'):
-            Gmsh.send('Averaging data to one time step.')
-            for result in [ pmesh.nodalData, pmesh.elementData ]:
-                for view in result.keys():
-                    for (id, data) in result[view].items():
-                        nts = len(data)
-                        averaged = []
-                        for col in range(min(map(len, data))):
-                            sum = 0.0
-                            for d in data:
-                                sum += d[col]
-                            averaged.append(sum/nts)
-                        result[view][id] = [averaged]
-        try:
-            posfile = open(os.path.splitext(csvfile.name)[0]+'.pos', 'w')
-        except:
-            Gmsh.send(str(sys.exc_info()[1]), Gmsh.ERROR)
-        else:
-            pmesh.makeviews(posfile)
-            posfile.close()
-            Gmsh.send(posfile.name, Gmsh.MERGE_FILE)
diff --git a/utils/solvers/legacy/python/testcsv.csv b/utils/solvers/legacy/python/testcsv.csv
deleted file mode 100644
index f6289106a3fe01e680bccd67a03266d8558a11a0..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/testcsv.csv
+++ /dev/null
@@ -1,200 +0,0 @@
-1
-
-  ABAQUS VERSION 6.4-4                                     DATE 18-Jan-2005   TIME 17:42:16        PAGE     1
-
-
-
-
-
-
-    AAAAAA     BBBBBBBBB      AAAAAA      QQQQQQQQ    U        U    SSSSSSSS
-   A      A    B        B    A      A    Q        Q   U        U   S
-  A        A   B        B   A        A   Q        Q   U        U   S
-  A        A   B        B   A        A   Q        Q   U        U   S
-  AAAAAAAAAA   BBBBBBBBB    AAAAAAAAAA   Q        Q   U        U    SSSSSSSS
-  A        A   B        B   A        A   Q    Q   Q   U        U            S
-  A        A   B        B   A        A   Q     Q  Q   U        U            S
-  A        A   B        B   A        A   Q      Q Q   U        U            S
-  A        A   BBBBBBBBB    A        A    QQQQQQQQ     UUUUUUUU     SSSSSSSS
-
-
-
-
-                      This program has been developed by
-
-                                  ABAQUS, Inc.
-                                1080 Main Street
-                             Pawtucket, R.I. 02860
-
-
-
-
-
-
-                            P R O B L E M   S I Z E
-
-
-          NUMBER OF ELEMENTS IS                                   218
-          NUMBER OF NODES IS                                      131
-          NUMBER OF NODES DEFINED BY THE USER                     131
-          TOTAL NUMBER OF VARIABLES IN THE MODEL                  262
-          (DEGREES OF FREEDOM PLUS ANY LAGRANGE MULTIPLIER VARIABLES)
-
-
-
-                              END OF USER INPUT PROCESSING
-
-
-
-                        S T E P       1     S T A T I C   A N A L Y S I S
-
-
-
-                                INCREMENT     1 SUMMARY
-
-
- TIME INCREMENT COMPLETED   1.00    ,  FRACTION OF STEP COMPLETED   1.00
- STEP TIME COMPLETED        1.00    ,  TOTAL TIME COMPLETED         1.00
-
-
-
-                                                  E L E M E N T   O U T P U T
-
-
-
-
-
-   THE FOLLOWING TABLE IS PRINTED FOR ALL ELEMENTS WITH TYPE CPE3 AVERAGED AT THE NODES
-
-      node, temperature,               displacement, stress
-         2,       69.86,       8.4194E-04   0.000 0, -31.56 13.43 0 13.43 -329.1 0 0 0 -251.5
-         3,       39.96,       3.0836E-03   0.000 0, -1.491 -3.133 0 -3.133 -44.68 0 0 0 -97.55
-         4,       11.16,       1.9388E-03   0.000 0, 11.99 -10.21 0 -10.21 -116.0 0 0 0 -64.08
-         5,       13.47,        0.000       0.000 0, 37.40 1.292 0 1.292 -73.75 0 0 0 -49.52
-         6,       67.60,        0.000     -6.6056E-04 0, -21.23 6.614 0 6.614 -8.562 0 0 0 -148.1
-         7,       69.83,       8.3356E-04 -6.7009E-05 0, -21.90 33.08 0 33.08 -337.4 0 0 0 -251.5
-         8,       69.76,       8.0950E-04 -1.4135E-04 0, -23.03 62.61 0 62.61 -345.2 0 0 0 -254.9
-         9,       69.62,       7.9671E-04 -2.0956E-04 0, -40.32 70.09 0 70.09 -285.4 0 0 0 -240.2
-        10,       69.48,       7.5652E-04 -2.7698E-04 0, -54.81 86.73 0 86.73 -249.9 0 0 0 -234.0
-        11,       69.28,       7.0955E-04 -3.3576E-04 0, -63.35 94.38 0 94.38 -210.6 0 0 0 -224.6
-        12,       69.07,       6.6124E-04 -3.9676E-04 0, -74.58 95.83 0 95.83 -172.0 0 0 0 -216.2
-        13,       68.82,       6.0588E-04 -4.4704E-04 0, -74.75 84.32 0 84.32 -129.5 0 0 0 -202.5
-        14,       68.59,       5.3983E-04 -4.9435E-04 0, -72.84 72.02 0 72.02 -97.01 0 0 0 -191.8
-        15,       68.35,       4.7004E-04 -5.3725E-04 0, -70.10 59.18 0 59.18 -70.98 0 0 0 -182.3
-        16,       68.14,       3.9512E-04 -5.7221E-04 0, -59.27 44.19 0 44.19 -43.37 0 0 0 -170.3
-        17,       67.96,       3.2004E-04 -6.0584E-04 0, -53.38 33.76 0 33.76 -26.85 0 0 0 -164.6
-        18,       67.80,       2.4153E-04 -6.2869E-04 0, -45.07 24.73 0 24.73 -17.33 0 0 0 -157.7
-        19,       67.67,       1.6298E-04 -6.4554E-04 0, -35.73 16.37 0 16.37 -11.90 0 0 0 -151.8
-        20,       67.61,       8.2122E-05 -6.5673E-04 0, -28.73 6.691 0 6.691 -8.362 0 0 0 -148.7
-        21,       66.81,       9.8446E-04   0.000 0, -29.35 6.504 0 6.504 -289.6 0 0 0 -235.8
-        22,       63.73,       1.1361E-03   0.000 0, -40.65 5.472 0 5.472 -257.8 0 0 0 -224.4
-        23,       60.65,       1.2821E-03   0.000 0, -49.06 1.671 0 1.671 -208.1 0 0 0 -204.7
-        24,       57.54,       1.4246E-03   0.000 0, -50.58 -0.6161 0 -0.6161 -173.6 0 0 0 -187.8
-        25,       54.50,       1.5756E-03   0.000 0, -47.33 -1.646 0 -1.646 -152.7 0 0 0 -174.7
-        26,       51.55,       1.7358E-03   0.000 0, -42.15 -3.541 0 -3.541 -133.9 0 0 0 -161.3
-        27,       48.72,       1.9085E-03   0.000 0, -34.37 -4.128 0 -4.128 -117.9 0 0 0 -148.1
-        28,       46.10,       2.0976E-03   0.000 0, -28.24 -4.892 0 -4.892 -105.2 0 0 0 -137.1
-        29,       43.78,       2.3081E-03   0.000 0, -19.19 -5.296 0 -5.296 -89.82 0 0 0 -123.8
-        30,       41.81,       2.5322E-03   0.000 0, -13.39 -3.509 0 -3.509 -76.96 0 0 0 -114.7
-        31,       40.45,       2.7922E-03   0.000 0, -5.308 -3.571 0 -3.571 -63.00 0 0 0 -105.7
-        32,       39.12,       3.0185E-03  2.2115E-04 0, -2.576 -5.276 0 -5.276 -47.55 0 0 0 -96.55
-        33,       36.19,       2.8256E-03  4.1759E-04 0, -2.044 -9.147 0 -9.147 -65.46 0 0 0 -96.16
-        34,       30.51,       2.5157E-03  4.8788E-04 0, -0.7721 -14.20 0 -14.20 -90.33 0 0 0 -92.70
-        35,       22.25,       2.1581E-03  3.8111E-04 0, 2.853 -11.24 0 -11.24 -114.0 0 0 0 -80.06
-        36,       11.69,       1.3632E-03   0.000 0, 20.52 -7.606 0 -7.606 -92.20 0 0 0 -56.02
-        37,       12.84,       7.0866E-04   0.000 0, 37.23 -2.644 0 -2.644 -79.34 0 0 0 -47.26
-        38,       26.51,        0.000      1.1136E-04 0, 18.80 2.425 0 2.425 -73.57 0 0 0 -71.25
-        39,       36.98,        0.000      5.4140E-05 0, -1.709 3.663 0 3.663 -69.27 0 0 0 -96.91
-        40,       45.62,        0.000     -8.1302E-05 0, -18.69 6.841 0 6.841 -61.46 0 0 0 -118.2
-        41,       52.82,        0.000     -2.4234E-04 0, -31.92 9.526 0 9.526 -41.54 0 0 0 -131.9
-        42,       58.77,        0.000     -4.0527E-04 0, -41.24 9.057 0 9.057 -26.89 0 0 0 -143.7
-        43,       63.66,        0.000     -5.4837E-04 0, -33.13 7.239 0 7.239 -10.12 0 0 0 -147.6
-        44,       39.11,       1.4706E-03  2.1356E-04 0, -2.215 -16.24 0 -16.24 -107.1 0 0 0 -115.4
-        45,       51.64,       1.3526E-03  9.5846E-05 0, -22.39 -6.105 0 -6.105 -141.9 0 0 0 -157.7
-        46,       47.75,       5.5026E-04 -1.9718E-05 0, -12.23 17.50 0 17.50 -88.57 0 0 0 -130.3
-        47,       60.44,       1.2091E-03 -7.5841E-06 0, -44.20 8.877 0 8.877 -194.6 0 0 0 -197.9
-        48,       58.57,       2.2758E-04 -3.4992E-04 0, -35.73 26.28 0 26.28 -39.02 0 0 0 -146.2
-        49,       53.82,       8.5472E-04 -1.6590E-05 0, -14.35 18.67 0 18.67 -126.4 0 0 0 -154.2
-        50,       59.09,       1.0037E-03 -4.4003E-05 0, -31.44 22.41 0 22.41 -168.6 0 0 0 -184.0
-        51,       42.40,       2.0545E-03  1.6521E-04 0, -13.94 -17.69 0 -17.69 -98.98 0 0 0 -122.4
-        52,       29.42,       7.8391E-04  1.7522E-04 0, 11.99 -3.246 0 -3.246 -86.77 0 0 0 -85.40
-        53,       53.34,       1.5467E-03  5.7672E-05 0, -40.47 -7.413 0 -7.413 -148.0 0 0 0 -168.6
-        54,       61.16,       7.3601E-04 -1.7843E-04 0, -36.58 46.11 0 46.11 -139.8 0 0 0 -182.0
-        55,       64.37,       1.0845E-03 -3.5633E-05 0, -44.93 17.37 0 17.37 -250.6 0 0 0 -223.5
-        56,       58.10,       4.9318E-04 -2.3073E-04 0, -28.35 39.79 0 39.79 -86.64 0 0 0 -156.9
-        57,       33.97,       2.1313E-03  2.8372E-04 0, -2.154 -17.92 0 -17.92 -90.18 0 0 0 -98.58
-        58,       43.42,       1.0689E-03  1.4500E-04 0, -3.284 -3.999 0 -3.999 -112.8 0 0 0 -126.0
-        59,       62.17,       1.1621E-04 -4.9096E-04 0, -38.48 14.31 0 14.31 -19.57 0 0 0 -148.0
-        60,       63.27,       9.8677E-04 -9.1671E-05 0, -41.88 39.07 0 39.07 -213.4 0 0 0 -209.8
-        61,       47.33,       1.8777E-03  9.3115E-05 0, -28.91 -12.50 0 -12.50 -117.6 0 0 0 -143.9
-        62,       24.09,       1.4647E-03  2.1595E-04 0, 9.910 -12.59 0 -12.59 -94.44 0 0 0 -74.41
-        63,       43.83,       1.6560E-03  1.7798E-04 0, -12.67 -17.58 0 -17.58 -113.9 0 0 0 -129.5
-        64,       39.96,       2.5284E-03  1.6466E-04 0, -7.909 -12.34 0 -12.34 -77.77 0 0 0 -109.8
-        65,       63.48,       8.1289E-04 -1.8230E-04 0, -43.51 54.68 0 54.68 -168.6 0 0 0 -197.0
-        66,       55.78,       1.2850E-03  4.3255E-05 0, -32.66 -1.098 0 -1.098 -159.4 0 0 0 -174.1
-        67,       48.37,       1.1958E-03  1.1577E-04 0, -10.63 -4.579 0 -4.579 -128.9 0 0 0 -143.2
-        68,       36.16,       4.7265E-04  1.0862E-04 0, 0.7402 4.679 0 4.679 -82.59 0 0 0 -100.9
-        69,       56.96,       1.4146E-03  2.3575E-05 0, -46.39 -1.231 0 -1.231 -171.6 0 0 0 -185.1
-        70,       61.98,       5.6338E-04 -2.8586E-04 0, -38.12 51.00 0 51.00 -104.0 0 0 0 -172.5
-        71,       65.16,       9.8242E-04 -9.3900E-05 0, -37.02 43.60 0 43.60 -237.8 0 0 0 -219.4
-        72,       53.17,       1.0946E-03  4.9133E-05 0, -17.30 6.233 0 6.233 -141.0 0 0 0 -158.6
-        73,       48.36,       2.4764E-04 -1.1023E-04 0, -21.28 13.88 0 13.88 -63.61 0 0 0 -126.9
-        74,       42.44,       2.3173E-03  1.0627E-04 0, -14.60 -11.03 0 -11.03 -89.29 0 0 0 -120.0
-        75,       35.01,       1.1293E-03  2.0386E-04 0, 4.220 -9.489 0 -9.489 -99.26 0 0 0 -102.5
-        76,       64.86,       6.2305E-04 -3.2075E-04 0, -54.70 67.14 0 67.14 -112.6 0 0 0 -187.0
-        77,       50.21,       1.7736E-03  5.1510E-05 0, -37.30 -7.163 0 -7.163 -127.9 0 0 0 -155.1
-        78,       47.98,       1.6505E-03  1.2818E-04 0, -23.30 -13.91 0 -13.91 -125.9 0 0 0 -146.0
-        79,       60.89,       1.2466E-03 -5.0573E-06 0, -48.24 6.321 0 6.321 -208.8 0 0 0 -205.2
-        80,       38.36,       1.8932E-03  2.2949E-04 0, -5.402 -20.85 0 -20.85 -99.62 0 0 0 -112.0
-        81,       48.10,       8.1422E-04  5.0337E-05 0, -7.133 11.99 0 11.99 -109.7 0 0 0 -135.8
-        82,       60.72,       3.3586E-04 -3.6942E-04 0, -38.51 35.77 0 35.77 -53.49 0 0 0 -154.7
-        83,       39.97,       7.4362E-04  1.2307E-04 0, 0.1859 3.982 0 3.982 -94.25 0 0 0 -112.7
-        84,       65.54,       8.4336E-04 -1.9118E-04 0, -43.71 68.36 0 68.36 -201.5 0 0 0 -211.5
-        85,       32.16,       1.6376E-03  2.5023E-04 0, 2.514 -18.72 0 -18.72 -96.50 0 0 0 -95.80
-        86,       57.42,       6.8273E-04 -1.3380E-04 0, -22.90 35.16 0 35.16 -119.5 0 0 0 -163.4
-        87,       22.02,       4.5206E-04  1.1849E-04 0, 27.57 -0.5780 0 -0.5780 -78.37 0 0 0 -61.70
-        88,       27.06,       1.9435E-03  3.0431E-04 0, 2.174 -15.48 0 -15.48 -98.32 0 0 0 -85.54
-        89,       57.29,       9.1126E-04 -4.6903E-05 0, -24.34 23.77 0 23.77 -147.5 0 0 0 -171.9
-        90,       20.35,       1.0270E-03  1.4077E-04 0, 23.95 -6.210 0 -6.210 -86.24 0 0 0 -62.78
-        91,       53.78,       3.7698E-04 -1.8593E-04 0, -25.62 27.49 0 27.49 -69.66 0 0 0 -142.6
-        92,       53.39,       1.6126E-03  3.0206E-05 0, -45.13 -3.757 0 -3.757 -146.9 0 0 0 -170.3
-        93,       65.62,       7.0106E-04 -2.9006E-04 0, -55.91 74.27 0 74.27 -144.5 0 0 0 -198.0
-        94,       38.27,       2.2964E-03  2.2631E-04 0, -6.964 -17.67 0 -17.67 -86.84 0 0 0 -108.7
-        95,       66.38,       8.8448E-04 -1.6366E-04 0, -42.42 66.73 0 66.73 -239.6 0 0 0 -224.3
-        96,       59.54,       1.1434E-03 -1.0713E-05 0, -37.34 14.42 0 14.42 -183.4 0 0 0 -191.1
-        97,       45.13,       2.1104E-03  7.5866E-05 0, -23.85 -10.18 0 -10.18 -103.1 0 0 0 -132.7
-        98,       63.31,       2.2765E-04 -4.8975E-04 0, -41.71 25.96 0 25.96 -22.51 0 0 0 -152.7
-        99,       52.78,       6.2969E-04 -7.5140E-05 0, -15.72 26.76 0 26.76 -103.1 0 0 0 -147.0
-       100,       43.88,       1.3641E-03  1.6792E-04 0, -7.276 -12.54 0 -12.54 -119.0 0 0 0 -130.8
-       101,       47.33,       1.4363E-03  1.4140E-04 0, -14.20 -12.38 0 -12.38 -127.2 0 0 0 -141.6
-       102,       56.84,       1.3404E-03  3.2032E-05 0, -40.35 -0.8910 0 -0.8910 -168.0 0 0 0 -181.3
-       103,       63.68,       4.2738E-04 -4.0621E-04 0, -49.22 48.06 0 48.06 -64.35 0 0 0 -168.2
-       104,       50.09,       1.6750E-03  8.8554E-05 0, -33.07 -11.61 0 -11.61 -131.7 0 0 0 -154.9
-       105,       18.82,       1.7143E-03  1.8591E-04 0, 8.110 -9.748 0 -9.748 -106.3 0 0 0 -69.59
-       106,       66.56,       9.9793E-04 -3.3011E-05 0, -31.92 15.61 0 15.61 -288.6 0 0 0 -235.6
-       107,       40.03,       2.3416E-04  3.0424E-05 0, -8.431 6.413 0 6.413 -72.11 0 0 0 -108.2
-       108,       66.84,       9.5633E-04 -8.8428E-05 0, -30.30 42.13 0 42.13 -290.6 0 0 0 -236.8
-       109,       55.88,       1.1496E-03  2.8041E-05 0, -27.72 7.216 0 7.216 -160.8 0 0 0 -174.2
-       110,       47.46,       1.9630E-03  4.6760E-05 0, -30.85 -6.555 0 -6.555 -112.4 0 0 0 -142.7
-       111,       27.87,       1.1867E-03  2.0507E-04 0, 10.06 -11.70 0 -11.70 -92.79 0 0 0 -83.81
-       112,       65.42,       5.3018E-04 -3.9857E-04 0, -58.41 62.36 0 62.36 -84.20 0 0 0 -180.3
-       113,       55.60,       1.3108E-04 -3.0201E-04 0, -35.26 16.36 0 16.36 -41.02 0 0 0 -139.8
-       114,       39.83,       2.8067E-03  1.2332E-04 0, -3.517 -5.677 0 -5.677 -57.45 0 0 0 -101.9
-       115,       52.72,       1.4654E-03  7.8496E-05 0, -32.42 -8.561 0 -8.561 -145.4 0 0 0 -163.9
-       116,       42.43,       4.4960E-04  3.6423E-05 0, -7.868 10.95 0 10.95 -79.02 0 0 0 -115.2
-       117,       66.50,       7.5078E-04 -2.7189E-04 0, -54.98 83.04 0 83.04 -176.9 0 0 0 -209.3
-       118,       41.24,       2.5562E-03  7.5637E-05 0, -10.34 -5.624 0 -5.624 -75.38 0 0 0 -112.5
-       119,       60.45,       8.7062E-04 -1.1044E-04 0, -35.49 34.88 0 34.88 -164.6 0 0 0 -187.2
-       120,       61.95,       9.4380E-04 -9.8688E-05 0, -38.04 36.30 0 36.30 -183.3 0 0 0 -196.4
-       121,       35.48,       2.4940E-03  3.2925E-04 0, -2.175 -13.00 0 -13.00 -77.42 0 0 0 -98.28
-       122,       49.70,       9.8927E-04  6.7429E-05 0, -10.44 5.383 0 5.383 -126.0 0 0 0 -144.8
-       123,       63.08,       1.1594E-03 -1.3116E-05 0, -43.33 7.414 0 7.414 -234.5 0 0 0 -216.0
-       124,       56.01,       1.4914E-03  1.3061E-05 0, -49.84 -1.514 0 -1.514 -164.5 0 0 0 -182.1
-       125,       30.47,       3.0653E-04  1.2008E-04 0, 8.389 2.497 0 2.497 -76.10 0 0 0 -86.24
-       126,       58.42,       1.3757E-03  8.2717E-06 0, -49.91 0.3047 0 0.3047 -182.9 0 0 0 -192.5
-       127,       64.90,       3.0955E-04 -5.0667E-04 0, -50.18 35.88 0 35.88 -32.63 0 0 0 -161.6
-       128,       62.35,       1.0849E-03 -4.8287E-05 0, -40.94 22.78 0 22.78 -211.7 0 0 0 -206.7
-       129,       40.75,       2.2941E-03  1.6746E-04 0, -10.97 -16.67 0 -16.67 -89.00 0 0 0 -115.6
-       130,       38.08,       2.7138E-03  2.5436E-04 0, -3.250 -10.01 0 -10.01 -64.39 0 0 0 -100.3
-       131,       45.32,       1.8808E-03  1.3680E-04 0, -21.81 -16.15 0 -16.15 -112.0 0 0 0 -135.3
-       132,       63.26,       1.1019E-03 -4.0239E-05 0, -42.03 20.67 0 20.67 -226.9 0 0 0 -213.6
diff --git a/utils/solvers/legacy/python/testcsv.geo b/utils/solvers/legacy/python/testcsv.geo
deleted file mode 100644
index 35f8799edfb9d12bffb414637c83b1ff001db718..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/testcsv.geo
+++ /dev/null
@@ -1,18 +0,0 @@
-Point(1) = {0, 0, 0, 0.1};
-Point(2) = {1, 0, 0, 0.1};
-Point(3) = {4, 0, 0, 0.5};
-Point(4) = {4, 4, 0, 1.0};
-Point(5) = {0, 4, 0, 1.0};
-Point(6) = {0, 1, 0, 0.1};
-Circle(1) = {2,1,6};
-Line(2) = {2,3};
-Line(3) = {3,4};
-Line(4) = {4,5};
-Line(5) = {5,6};
-Line Loop(6) = {1,-5,-4,-3,-2};
-Plane Surface(7) = {6};
-Physical Line(101) = {5};
-Physical Line(102) = {2};
-Physical Line(112) = {4};
-Physical Line(200) = {1};
-Physical Surface(11) = {-7};
diff --git a/utils/solvers/legacy/python/testcsv.msh b/utils/solvers/legacy/python/testcsv.msh
deleted file mode 100644
index 36c59b8192746c38d144450855bad540d99c7ec6..0000000000000000000000000000000000000000
--- a/utils/solvers/legacy/python/testcsv.msh
+++ /dev/null
@@ -1,395 +0,0 @@
-$MeshFormat
-2 0 8
-$EndMeshFormat
-$Nodes
-131
-2 1 0 0
-3 4 0 0
-4 4 4 0
-5 0 4 0
-6 0 1 0
-7 0.9945218953682734 0.104528463267653 0
-8 0.9781476007338058 0.2079116908177585 0
-9 0.951056516295154 0.3090169943749462 0
-10 0.9135454576426018 0.4067366430757982 0
-11 0.8660254037844408 0.4999999999999963 0
-12 0.8090169943749513 0.5877852522924678 0
-13 0.7431448254774 0.6691306063588518 0
-14 0.6691306063588659 0.7431448254773874 0
-15 0.5877852522924825 0.8090169943749406 0
-16 0.5000000000000111 0.8660254037844323 0
-17 0.4067366430758131 0.9135454576425951 0
-18 0.3090169943749584 0.95105651629515 0
-19 0.2079116908177668 0.978147600733804 0
-20 0.1045284632676574 0.994521895368273 0
-21 1.107660966482431 0 0
-22 1.230764829752582 0 0
-23 1.371542876294749 0 0
-24 1.532522866946499 0 0
-25 1.71659942352474 0 0
-26 1.927090777472968 0 0
-27 2.167782956522458 0 0
-28 2.443096045924229 0 0
-29 2.757877025314089 0 0
-30 3.117761880505327 0 0
-31 3.529324854187504 0 0
-32 4 0.5949066135025001 0
-33 4 1.278145619573775 0
-34 4 2.063201578232027 0
-35 4 2.964633608956098 0
-36 2.666666666666685 4 0
-37 1.33333333333337 4 0
-38 0 3.065647789360017 0
-39 0 2.393288956030129 0
-40 0 1.909232044233197 0
-41 0 1.560915832167684 0
-42 0 1.310258795174613 0
-43 0 1.129841025580155 0
-44 2.072632706027311 1.69598688973258 0
-45 1.613773926086385 0.8500227436870333 0
-46 0.8294669788088875 1.658857826312972 0
-47 1.32513596375101 0.3476839123937975 0
-48 0.3521126881546655 1.277363555436711 0
-49 1.12466853437021 1.153418043518669 0
-50 1.192696518113869 0.7306415166144991 0
-51 2.576053729862485 0.9053498230115412 0
-52 1.340126667186485 2.734096405958066 0
-53 1.726422310283826 0.4059954321843577 0
-54 0.9353736948832166 0.8715848956617313 0
-55 1.18615207058655 0.1857246235325533 0
-56 0.7052561075612429 1.175916841150846 0
-57 3.128587449887757 1.766432616500146 0
-58 1.502973959682794 1.639173253302476 0
-59 0.1759133514351944 1.169780059600397 0
-60 1.126589503584839 0.4922655384184934 0
-61 2.196140328827049 0.5068889305674 0
-62 2.612345788958327 2.921450948015479 0
-63 2.112581290158194 1.167800481700336 0
-64 3.237383018383969 0.7234638462140814 0
-65 0.9840394726232626 0.6906803311775085 0
-66 1.468485632956789 0.6195916609164185 0
-67 1.543585212840636 1.22337304019121 0
-68 0.7847572529703151 2.373911411047601 0
-69 1.536612492066048 0.2546061344524544 0
-70 0.7563814323183446 0.9674850965584817 0
-71 1.106950139898796 0.3511105542101679 0
-72 1.35889190895776 0.9986524025805176 0
-73 0.3959273532525635 1.738325897497147 0
-74 2.844593724249942 0.5138633427199154 0
-75 1.754062226045712 2.193549370361175 0
-76 0.7938495145246145 0.8047643924259087 0
-77 2.001875040491023 0.2863548721871211 0
-78 1.970700830475661 0.7993756598722095 0
-79 1.34411212289718 0.1825137374421063 0
-80 2.591371751876443 1.47181123899766 0
-81 1.145266577772124 1.501068978824429 0
-82 0.4941440667927327 1.148854074736235 0
-83 1.149429186474111 2.031817360579769 0
-84 0.9939713247765112 0.5426636213837798 0
-85 2.53934709873342 2.170371417857803 0
-86 0.9170333339922072 1.089415598156251 0
-87 0.8299773866185869 3.344838685871387 0
-88 3.289379674794993 2.516276442461847 0
-89 1.137453345295398 0.9199637046208775 0
-90 1.882033197768151 3.350776213150626 0
-91 0.5747040540405435 1.429957302128625 0
-92 1.775313987913787 0.1942086133302341 0
-93 0.8643434939808741 0.7017184961964265 0
-94 3.072389280032639 1.182610643612223 0
-95 1.025398445390052 0.425064443790196 0
-96 1.291599018349766 0.5379400141021424 0
-97 2.500950996588131 0.3796311220360604 0
-98 0.329249276924329 1.100214750608649 0
-99 0.894324716202368 1.353915876710289 0
-100 1.813941250117164 1.40844809571916 0
-101 1.794878469096937 1.088460304995382 0
-102 1.486769023536358 0.4427525772291758 0
-103 0.5900512883039151 0.9886452832900361 0
-104 1.926700328468347 0.5373153173291814 0
-105 3.279545588397917 3.324720918759852 0
-106 1.111952245445099 0.09914654476876072 0
-107 0.387323186063824 2.191864376335631 0
-108 1.078521106254799 0.230024464668231 0
-109 1.35920433836455 0.7749771722215344 0
-110 2.265435202084209 0.2409669473795033 0
-111 2.013801144774503 2.711101094307226 0
-112 0.6907699614193001 0.8590816528292089 0
-113 0.2143922726422754 1.42492042583774 0
-114 3.598069662403972 0.4358901037284767 0
-115 1.680368656509361 0.6158390637855682 0
-116 0.7133557167561021 1.999543410730382 0
-117 0.9072102561528353 0.6052161494598445 0
-118 3.178430153760137 0.3236365929559723 0
-119 1.063899507509137 0.7888937937290703 0
-120 1.1075300813509 0.6309016457330627 0
-121 3.544094384876648 1.445283348829069 0
-122 1.313711830501423 1.292934084685645 0
-123 1.253184469019452 0.1023441938573933 0
-124 1.616253868583924 0.119775562455931 0
-125 0.5355241979412432 2.779799497471038 0
-126 1.478800932191749 0.1185154109768451 0
-127 0.4286494767521648 1.012418382992747 0
-128 1.208825921620229 0.4088813796481784 0
-129 2.923716641100324 0.8451929254086457 0
-130 3.629773810408995 0.9401286651846473 0
-131 2.278190977419342 0.7701736465013063 0
-132 1.209925918352208 0.2871708528743117 0
-$EndNodes
-$Elements
-255
-1 1 2 101 5 5 38
-2 1 2 101 5 38 39
-3 1 2 101 5 39 40
-4 1 2 101 5 40 41
-5 1 2 101 5 41 42
-6 1 2 101 5 42 43
-7 1 2 101 5 43 6
-8 1 2 102 2 2 21
-9 1 2 102 2 21 22
-10 1 2 102 2 22 23
-11 1 2 102 2 23 24
-12 1 2 102 2 24 25
-13 1 2 102 2 25 26
-14 1 2 102 2 26 27
-15 1 2 102 2 27 28
-16 1 2 102 2 28 29
-17 1 2 102 2 29 30
-18 1 2 102 2 30 31
-19 1 2 102 2 31 3
-20 1 2 112 4 4 36
-21 1 2 112 4 36 37
-22 1 2 112 4 37 5
-23 1 2 200 1 2 7
-24 1 2 200 1 7 8
-25 1 2 200 1 8 9
-26 1 2 200 1 9 10
-27 1 2 200 1 10 11
-28 1 2 200 1 11 12
-29 1 2 200 1 12 13
-30 1 2 200 1 13 14
-31 1 2 200 1 14 15
-32 1 2 200 1 15 16
-33 1 2 200 1 16 17
-34 1 2 200 1 17 18
-35 1 2 200 1 18 19
-36 1 2 200 1 19 20
-37 1 2 200 1 20 6
-38 2 2 11 7 75 58 44
-39 2 2 11 7 80 63 51
-40 2 2 11 7 59 43 20
-41 2 2 11 7 72 45 67
-42 2 2 11 7 101 67 45
-43 2 2 11 7 80 44 63
-44 2 2 11 7 59 20 19
-45 2 2 11 7 85 75 44
-46 2 2 11 7 131 97 51
-47 2 2 11 7 83 46 81
-48 2 2 11 7 83 81 58
-49 2 2 11 7 98 59 19
-50 2 2 11 7 83 58 75
-51 2 2 11 7 43 6 20
-52 2 2 11 7 100 44 58
-53 2 2 11 7 97 74 51
-54 2 2 11 7 79 69 47
-55 2 2 11 7 93 65 54
-56 2 2 11 7 89 86 54
-57 2 2 11 7 111 75 85
-58 2 2 11 7 95 9 71
-59 2 2 11 7 89 49 86
-60 2 2 11 7 113 91 73
-61 2 2 11 7 113 48 91
-62 2 2 11 7 108 71 9
-63 2 2 11 7 84 11 10
-64 2 2 11 7 102 47 69
-65 2 2 11 7 118 74 29
-66 2 2 11 7 108 7 106
-67 2 2 11 7 108 8 7
-68 2 2 11 7 91 82 56
-69 2 2 11 7 88 57 34
-70 2 2 11 7 118 29 30
-71 2 2 11 7 131 61 97
-72 2 2 11 7 91 48 82
-73 2 2 11 7 86 70 54
-74 2 2 11 7 95 84 10
-75 2 2 11 7 127 16 103
-76 2 2 11 7 127 17 16
-77 2 2 11 7 76 14 13
-78 2 2 11 7 121 34 57
-79 2 2 11 7 98 19 18
-80 2 2 11 7 93 54 76
-81 2 2 11 7 109 50 96
-82 2 2 11 7 113 42 59
-83 2 2 11 7 90 87 52
-84 2 2 11 7 99 49 81
-85 2 2 11 7 83 75 52
-86 2 2 11 7 76 54 70
-87 2 2 11 7 73 40 41
-88 2 2 11 7 115 78 45
-89 2 2 11 7 85 44 80
-90 2 2 11 7 59 42 43
-91 2 2 11 7 77 26 27
-92 2 2 11 7 119 54 65
-93 2 2 11 7 131 51 63
-94 2 2 11 7 112 103 15
-95 2 2 11 7 120 96 50
-96 2 2 11 7 83 52 68
-97 2 2 11 7 109 89 50
-98 2 2 11 7 90 37 87
-99 2 2 11 7 109 72 89
-100 2 2 11 7 115 104 78
-101 2 2 11 7 99 86 49
-102 2 2 11 7 123 106 22
-103 2 2 11 7 113 73 41
-104 2 2 11 7 94 80 51
-105 2 2 11 7 92 53 69
-106 2 2 11 7 109 96 66
-107 2 2 11 7 97 29 74
-108 2 2 11 7 90 62 36
-109 2 2 11 7 106 7 2
-110 2 2 11 7 93 76 13
-111 2 2 11 7 125 68 52
-112 2 2 11 7 106 2 21
-113 2 2 11 7 122 49 72
-114 2 2 11 7 103 16 15
-115 2 2 11 7 108 9 8
-116 2 2 11 7 95 10 9
-117 2 2 11 7 122 81 49
-118 2 2 11 7 106 21 22
-119 2 2 11 7 101 45 78
-120 2 2 11 7 105 36 62
-121 2 2 11 7 120 60 96
-122 2 2 11 7 113 59 48
-123 2 2 11 7 100 63 44
-124 2 2 11 7 112 14 76
-125 2 2 11 7 87 37 5
-126 2 2 11 7 85 80 57
-127 2 2 11 7 132 55 79
-128 2 2 11 7 115 102 53
-129 2 2 11 7 125 52 87
-130 2 2 11 7 88 85 57
-131 2 2 11 7 110 77 27
-132 2 2 11 7 92 26 77
-133 2 2 11 7 124 92 69
-134 2 2 11 7 89 72 49
-135 2 2 11 7 102 69 53
-136 2 2 11 7 125 39 107
-137 2 2 11 7 122 72 67
-138 2 2 11 7 100 58 67
-139 2 2 11 7 129 94 51
-140 2 2 11 7 109 66 45
-141 2 2 11 7 123 79 55
-142 2 2 11 7 99 91 56
-143 2 2 11 7 122 67 58
-144 2 2 11 7 115 66 102
-145 2 2 11 7 86 56 70
-146 2 2 11 7 111 85 62
-147 2 2 11 7 104 53 77
-148 2 2 11 7 116 46 83
-149 2 2 11 7 97 28 29
-150 2 2 11 7 87 5 38
-151 2 2 11 7 116 73 46
-152 2 2 11 7 125 107 68
-153 2 2 11 7 92 77 53
-154 2 2 11 7 91 46 73
-155 2 2 11 7 115 45 66
-156 2 2 11 7 107 40 73
-157 2 2 11 7 132 79 47
-158 2 2 11 7 99 56 86
-159 2 2 11 7 93 13 12
-160 2 2 11 7 109 45 72
-161 2 2 11 7 130 94 64
-162 2 2 11 7 103 70 56
-163 2 2 11 7 131 63 78
-164 2 2 11 7 127 98 18
-165 2 2 11 7 117 11 84
-166 2 2 11 7 130 121 94
-167 2 2 11 7 123 55 106
-168 2 2 11 7 92 25 26
-169 2 2 11 7 88 62 85
-170 2 2 11 7 95 71 60
-171 2 2 11 7 122 58 81
-172 2 2 11 7 112 70 103
-173 2 2 11 7 102 96 47
-174 2 2 11 7 114 3 32
-175 2 2 11 7 123 23 79
-176 2 2 11 7 101 78 63
-177 2 2 11 7 114 31 3
-178 2 2 11 7 128 60 71
-179 2 2 11 7 101 100 67
-180 2 2 11 7 125 38 39
-181 2 2 11 7 126 79 23
-182 2 2 11 7 129 51 74
-183 2 2 11 7 112 76 70
-184 2 2 11 7 121 33 34
-185 2 2 11 7 118 30 31
-186 2 2 11 7 103 56 82
-187 2 2 11 7 88 34 35
-188 2 2 11 7 105 35 4
-189 2 2 11 7 126 69 79
-190 2 2 11 7 127 18 17
-191 2 2 11 7 105 62 88
-192 2 2 11 7 98 48 59
-193 2 2 11 7 104 61 78
-194 2 2 11 7 118 31 114
-195 2 2 11 7 115 53 104
-196 2 2 11 7 94 57 80
-197 2 2 11 7 120 119 65
-198 2 2 11 7 111 90 52
-199 2 2 11 7 108 106 55
-200 2 2 11 7 101 63 100
-201 2 2 11 7 117 12 11
-202 2 2 11 7 131 78 61
-203 2 2 11 7 123 22 23
-204 2 2 11 7 111 52 75
-205 2 2 11 7 120 50 119
-206 2 2 11 7 107 39 40
-207 2 2 11 7 104 77 61
-208 2 2 11 7 110 27 28
-209 2 2 11 7 102 66 96
-210 2 2 11 7 99 46 91
-211 2 2 11 7 113 41 42
-212 2 2 11 7 110 28 97
-213 2 2 11 7 112 15 14
-214 2 2 11 7 105 88 35
-215 2 2 11 7 95 60 84
-216 2 2 11 7 117 93 12
-217 2 2 11 7 99 81 46
-218 2 2 11 7 116 107 73
-219 2 2 11 7 110 61 77
-220 2 2 11 7 111 62 90
-221 2 2 11 7 119 89 54
-222 2 2 11 7 132 71 108
-223 2 2 11 7 132 108 55
-224 2 2 11 7 118 64 74
-225 2 2 11 7 98 82 48
-226 2 2 11 7 124 25 92
-227 2 2 11 7 120 65 84
-228 2 2 11 7 129 74 64
-229 2 2 11 7 126 23 24
-230 2 2 11 7 128 96 60
-231 2 2 11 7 120 84 60
-232 2 2 11 7 119 50 89
-233 2 2 11 7 125 87 38
-234 2 2 11 7 128 47 96
-235 2 2 11 7 110 97 61
-236 2 2 11 7 117 84 65
-237 2 2 11 7 116 83 68
-238 2 2 11 7 121 57 94
-239 2 2 11 7 124 24 25
-240 2 2 11 7 130 64 114
-241 2 2 11 7 127 103 82
-242 2 2 11 7 129 64 94
-243 2 2 11 7 117 65 93
-244 2 2 11 7 130 114 32
-245 2 2 11 7 132 128 71
-246 2 2 11 7 118 114 64
-247 2 2 11 7 126 24 124
-248 2 2 11 7 130 33 121
-249 2 2 11 7 116 68 107
-250 2 2 11 7 126 124 69
-251 2 2 11 7 132 47 128
-252 2 2 11 7 127 82 98
-253 2 2 11 7 90 36 37
-254 2 2 11 7 105 4 36
-255 2 2 11 7 130 32 33
-$EndElements