diff --git a/demos/.gmsh-options b/demos/.gmsh-options
deleted file mode 100644
index 2f6f0ecd273d251a91d8507daae77bf59730de9e..0000000000000000000000000000000000000000
--- a/demos/.gmsh-options
+++ /dev/null
@@ -1,278 +0,0 @@
-// Gmsh Option File
-//
-// This file takes configuration options (preferences) that
-// should be loaded each time Gmsh is launched. You can create
-// this file by hand, or let Gmsh generate it for you (with
-// the 'Options->Save options now' menu button). This file can
-// also be automatically regenerated every time you quit
-// Gmsh if the option 'General.SaveOptions' is set. If
-// this file isn't found, defaults are used.
-//
-//
-// General options
-//
-General.TextEditor = "emacs %s &"; // System command to launch a text editor
-General.InitialModule = 0; // Module launched on startup (0=automatic, 1=geometry, 2=mesh, 3=solver, 4=post-processing) 
-General.CenterWindows = 1; // Center new windows on the menu window
-General.Shininess = 0.4; // Material shininess (must be > 0)
-General.ColorScheme = 0; // Default color scheme (0, 1 or 2)
-General.Verbosity = 2; // Level of information printed during processing (0=no information)
-General.Terminal = 0; // Should information be printed on the terminal (if available)?
-General.Orthographic = 1; // Orthographic projection mode (0=perspective projection)
-General.FastRedraw = 1; // Fast redraw (no mesh or view display) when moving the model
-General.Axes = 0; // Display the axes linked to the model
-General.SmallAxes = 1; // Display the small axes
-General.DoubleBuffer = 1; // Use a double buffered graphic window (on Unix, should be set to 0 when working on a remote host without GLX)
-General.DisplayLists = 0; // Use OpenGL display lists (useful with real time manipulation of 'big' post-processing views)
-General.AlphaBlending = 0; // Enable alpha blending (transparency) in post-processing views
-General.Trackball = 1; // Use trackball rotation mode
-General.ZoomFactor = 1.1; // 'Speed' of the middle mouse button zoom
-General.DefaultPlugins = 1; // Load default plugins on startup
-General.MovingLight = 0; // Use a moving (i.e. which follows the model) light source
-General.Light0 = 1; // Enable light source 0
-General.Light0X = 0.5; // X position of light source 0
-General.Light0Y = 0.3; // Y position of light source 0
-General.Light0Z = 1; // Z position of light source 0
-General.Light1 = 0; // Enable light source 1
-General.Light1X = 0.5; // X position of light source 1
-General.Light1Y = 0.3; // Y position of light source 1
-General.Light1Z = 1; // Z position of light source 1
-General.Light2 = 0; // Enable light source 2
-General.Light2X = 0.5; // X position of light source 2
-General.Light2Y = 0.3; // Y position of light source 2
-General.Light2Z = 1; // Z position of light source 2
-General.Light3 = 0; // Enable light source 3
-General.Light3X = 0.5; // X position of light source 3
-General.Light3Y = 0.3; // Y position of light source 3
-General.Light3Z = 1; // Z position of light source 3
-General.Light4 = 0; // Enable light source 4
-General.Light4X = 0.5; // X position of light source 4
-General.Light4Y = 0.3; // Y position of light source 4
-General.Light4Z = 1; // Z position of light source 4
-General.Light5 = 0; // Enable light source 5
-General.Light5X = 0.5; // X position of light source 5
-General.Light5Y = 0.3; // Y position of light source 5
-General.Light5Z = 1; // Z position of light source 5
-General.Color.Background = {120,120,120}; // Background color
-General.Color.Foreground = {255,255,255}; // Foreground color
-General.Color.Text = {255,255,255}; // Text color
-General.Color.Axes = {255,255,0}; // Axes color
-General.Color.SmallAxes = {255,255,255}; // Small axes color
-//
-// Geometry options
-//
-Geometry.Normals = 0; // Size of the vectors normal to the surfaces
-Geometry.Tangents = 0; // Size of the vectors tangent to the curves
-Geometry.Points = 1; // Display geometry points?
-Geometry.Lines = 1; // Display geometry curves?
-Geometry.Surfaces = 0; // Display geometry surfaces?
-Geometry.Volumes = 0; // Display geometry volumes? (not implemented yet)
-Geometry.PointsNumbers = 0; // Display points numbers?
-Geometry.LinesNumbers = 0; // Display curve numbers?
-Geometry.SurfacesNumbers = 0; // Display surface numbers?
-Geometry.VolumesNumbers = 0; // Display volume numbers? (not implemented yet)
-Geometry.PointSize = 3; // Display size of points (in pixels)
-Geometry.PointSelectSize = 5; // Display size of selected points (in pixels)
-Geometry.LineWidth = 1; // Display width of lines (in pixels)
-Geometry.LineSelectWidth = 2; // Display width of selected lines (in pixels)
-Geometry.Aspect = 0; // Not used
-Geometry.Highlight = 0; // Not used
-Geometry.OldCircle = 0; // Use old circle description (compatibility option for old Gmsh geometries)
-Geometry.ScalingFactor = 1; // Global geometry scaling factor
-Geometry.ColorScheme = 0; // Default geometry color scheme (0, 1 or 2)
-Geometry.Color.Points = {255,119,0}; // Normal geometry point color
-Geometry.Color.Lines = {0,0,255}; // Normal geometry curve color
-Geometry.Color.Surfaces = {196,196,196}; // Normal geometry surface color
-Geometry.Color.Volumes = {128,128,128}; // Normal geometry volume color
-Geometry.Color.PointsSelect = {255,0,0}; // Selected geometry point color
-Geometry.Color.LinesSelect = {255,0,0}; // Selected geometry curve color
-Geometry.Color.SurfacesSelect = {255,0,0}; // Selected geometry surface color
-Geometry.Color.VolumesSelect = {255,0,0}; // Selected geometry volume color
-Geometry.Color.PointsHighlight = {0,255,0}; // Highlighted geometry point color
-Geometry.Color.LinesHighlight = {0,0,255}; // Highlighted geometry curve color
-Geometry.Color.SurfacesHighlight = {128,128,128}; // Highlighted geometry surface color
-Geometry.Color.VolumesHighlight = {128,128,128}; // Highlighted geometry volume color
-Geometry.Color.Tangents = {255,255,0}; // Tangent geometry vectors color
-Geometry.Color.Normals = {255,0,0}; // Normal geometry vectors color
-//
-// Mesh options
-//
-Mesh.Quality = 0; // Target quality for tetrahedral elements (not fully functional)
-Mesh.Normals = 0; // Size of the normal vectors
-Mesh.Tangents = 0; // Size of the tangent vectors
-Mesh.Explode = 1; // Display mesh with non adjacent elements (factor between 0 and 1)
-Mesh.ScalingFactor = 1; // Global scaling factor applied to the saved mesh
-Mesh.CharacteristicLengthFactor = 1; // Factor applied to all charcteristic lenghts (and background meshes)
-Mesh.RandomFactor = 0.0001; // Random factor used in 2D and 3D meshing algorithm (test other values when the algorithm fails)
-Mesh.GammaInf = 0; // Only display elements whose Gamma factor is greater than GammaInf
-Mesh.GammaSup = 0; // Only display elements whose Gamma factor is smaller than GammaSup
-Mesh.RadiusInf = 0; // Only display elements whose Radius is greater than RadiusInf
-Mesh.RadiusSup = 0; // Only display elements whose Radius is smaller than RadiusSup
-Mesh.Points = 1; // Display mesh vertices?
-Mesh.Lines = 1; // Display mesh vertices on curves?
-Mesh.Surfaces = 1; // Display surface mesh?
-Mesh.Volumes = 1; // Display volume mesh?
-Mesh.PointsNumbers = 0; // Display mesh vertices numbers?
-Mesh.LinesNumbers = 0; // Display mesh line numbers?
-Mesh.SurfacesNumbers = 0; // Display mesh surface numbers?
-Mesh.VolumesNumbers = 0; // Display mesh elements numbers?
-Mesh.PointSize = 2; // Display size of points (in pixels)
-Mesh.LineWidth = 1; // Display width of lines (in pixels)
-Mesh.Aspect = 0; // Mesh apsect (0=wireframe, 1=hidden lines, 2=solid)
-Mesh.Format = 1; // Mesh output format (1=MSH, 2=UNV)
-Mesh.Smoothing = 0; // Number of smoothing steps applied to the final mesh
-Mesh.Algorithm = 3; // 2D mesh algorithm (1=isotropic, 2=anisotropic, 3=triangle)
-Mesh.PointInsertion = 1; // Point insertion method for isotropic 2D algorithm (1=center of circ. circle, 2=voronoi, 3=cog)
-Mesh.SpeedMax = 0; // Disable dubious point insertion tests
-Mesh.MinimumCirclePoints = 7; // Minimum number of points used to mesh a circle
-Mesh.ConstrainedBackgroundMesh = 0; // Should the background mesh be constrained by the characteristic lengths associated with the geometry?
-Mesh.Degree = 1; // Element order
-Mesh.Dual = 0; // Display the dual mesh obtained by barycentric subdivision
-Mesh.Interactive = 0; // Show the construction of the 2D mesh in real time (only with the anisotropic algorithm)
-Mesh.ColorScheme = 0; // Default mesh color scheme (0, 1 or 2)
-Mesh.ColorCarousel = 1; // Use a 'color by region number' scheme
-Mesh.Color.Points = {0,123,59}; // Mesh vertex color
-Mesh.Color.PointsSupp = {255,0,255}; // Mesh high order vertex color
-Mesh.Color.Lines = {0,255,0}; // Mesh line color
-Mesh.Color.Triangles = {160,150,255}; // Mesh triangle color (if ColorCarousel=0)
-Mesh.Color.Quadrangles = {130,120,225}; // Mesh quadrangle color (if ColorCarousel=0)
-Mesh.Color.Tetrahedra = {160,150,255}; // Mesh tetrahedron color (if ColorCarousel=0)
-Mesh.Color.Hexahedra = {130,120,225}; // Mesh hexahedron color (if ColorCarousel=0)
-Mesh.Color.Prisms = {232,210,23}; // Mesh prism color (if ColorCarousel=0)
-Mesh.Color.Pyramids = {217,113,38}; // Mesh pyramid color (if ColorCarousel=0)
-Mesh.Color.Normals = {128,128,128}; // Normal mesh vector color
-Mesh.Color.Tangents = {128,128,128}; // Tangent mesh vector color
-Mesh.Color.One = {232,210,23}; // First color in color carousel
-Mesh.Color.Two = {226,167,29}; // Second color in color carousel
-Mesh.Color.Three = {217,113,38}; // Third color in color carousel
-Mesh.Color.Four = {201,54,54}; // Fourth color in color carousel
-Mesh.Color.Five = {169,12,86}; // Fifth color in color carousel
-Mesh.Color.Six = {114,2,141}; // Sixth color in color carousel
-Mesh.Color.Seven = {67,30,188}; // Seventh color in color carousel
-Mesh.Color.Eight = {44,86,211}; // Eighth color in color carousel
-Mesh.Color.Nine = {32,145,223}; // Nitnth color in color carousel
-Mesh.Color.Ten = {25,193,230}; // tenth color in color carousel
-//
-// Solver options
-//
-Solver.GetDPCommand = "getdp"; // System command to launch the GetDP solver (should _not_ contain the '&' character)
-Solver.GetDPPopupMessages = 1; // Automatically display GetDP messages
-Solver.GetDPMergeViews = 1; // Automatically merge any post-processing view created by GetDP
-//
-// Post-processing options
-//
-PostProcessing.Scales = 1; // Show value scales
-PostProcessing.Link = 0; // Link post-processing views (0=none, 1,2=changes in visible/all, 3,4=everything in visible/all)
-PostProcessing.Smoothing = 0; // Apply (non-reversible) smoothing to post-processing view when merged
-PostProcessing.AnimationDelay = 0.25; // Delay (in seconds) between to animation frames
-//
-// View options
-//
-View.Format = "%.3e"; // Number format (in standard C form)
-View.ArrowScale = 50; // Size of the vector (e.g. arrow size in pixels)
-View.Explode = 1; // Explode elements (0: reduced to point; 1: not transformed)
-View.IntervalsType = 2; // Type of interval display (1=iso, 2=continuous, 3=discrete, 4=numeric)
-View.SaturateValues = 0; // Saturate the view values to custom min and max (1=true, 0=false)
-View.NbIso = 15; // Number of intervals
-View.Boundary = 0; // Draw the N-b dimensional boundary of the simplex (N=dimension, b=option value)
-View.Light = 0; // Enable light sources?
-View.SmoothNormals = 0; // Smooth the normals?
-View.AngleSmoothNormals = 15; // Threshold angle below which we do not smooth the normals
-View.ShowElement = 0; // Show element boundaries?
-View.ShowTime = 1; // Show time value (or time step) if NbTimeStep > 1?
-View.ShowScale = 1; // Show value scale?
-View.DrawPoints = 1; // Display post-processing points?
-View.DrawLines = 1; // Display post-processing lines?
-View.DrawTriangles = 1; // Display post-processing triangles?
-View.DrawTetrahedra = 1; // Display post-processing tetrahedra?
-View.DrawScalars = 1; // Display scalar values?
-View.DrawVectors = 1; // Display vector values?
-View.DrawTensors = 1; // Display tensor values?
-View.TransparentScale = 1; // Display a 'transparent' value scale?
-View.ScaleType = 1; // Value scale type (1=linear, 2=logarithmic, 3=double logarithmic)
-View.RangeType = 1; // Value scale range type (1=default, 2=custom)
-View.ArrowType = 2; // Vector display type (1=segment, 2=arrow, 3=pyramid, 4=cone, 5=displacement)
-View.ArrowLocation = 1; // Arrow location (1=cog, 2=vertex)
-View.PointSize = 2; // Display size of points (in pixels)
-View.LineWidth = 1; // Display width of lines (in pixels)
-View.ColorTable = {
-{17, 246, 238, 255}, {17, 246, 238, 255}, {17, 245, 238, 255}, {17, 245, 238, 255}, 
-{17, 244, 238, 255}, {17, 244, 238, 255}, {18, 243, 237, 255}, {18, 243, 237, 255}, 
-{18, 242, 237, 255}, {18, 241, 237, 255}, {18, 241, 237, 255}, {18, 240, 237, 255}, 
-{18, 239, 237, 255}, {19, 238, 236, 255}, {19, 238, 236, 255}, {19, 237, 236, 255}, 
-{19, 236, 236, 255}, {19, 235, 236, 255}, {19, 234, 236, 255}, {19, 233, 236, 255}, 
-{20, 232, 235, 255}, {20, 231, 235, 255}, {20, 230, 235, 255}, {20, 229, 235, 255}, 
-{20, 228, 235, 255}, {21, 227, 234, 255}, {21, 225, 234, 255}, {21, 224, 234, 255}, 
-{21, 223, 234, 255}, {21, 222, 234, 255}, {22, 220, 233, 255}, {22, 219, 233, 255}, 
-{22, 217, 233, 255}, {22, 216, 233, 255}, {22, 214, 233, 255}, {23, 213, 232, 255}, 
-{23, 211, 232, 255}, {23, 209, 232, 255}, {23, 207, 232, 255}, {24, 206, 231, 255}, 
-{24, 204, 231, 255}, {24, 202, 231, 255}, {24, 200, 231, 255}, {25, 198, 230, 255}, 
-{25, 196, 230, 255}, {25, 194, 230, 255}, {25, 192, 230, 255}, {26, 189, 229, 255}, 
-{26, 187, 229, 255}, {26, 185, 229, 255}, {27, 183, 228, 255}, {27, 180, 228, 255}, 
-{27, 178, 228, 255}, {28, 175, 227, 255}, {28, 173, 227, 255}, {28, 170, 227, 255}, 
-{29, 168, 226, 255}, {29, 165, 226, 255}, {30, 162, 225, 255}, {30, 159, 225, 255}, 
-{30, 157, 225, 255}, {31, 154, 224, 255}, {31, 151, 224, 255}, {32, 148, 223, 255}, 
-{32, 145, 223, 255}, {32, 142, 223, 255}, {33, 139, 222, 255}, {33, 136, 222, 255}, 
-{34, 133, 221, 255}, {34, 130, 221, 255}, {35, 127, 220, 255}, {35, 124, 220, 255}, 
-{36, 121, 219, 255}, {37, 118, 218, 255}, {37, 115, 218, 255}, {38, 112, 217, 255}, 
-{38, 108, 217, 255}, {39, 105, 216, 255}, {40, 102, 215, 255}, {40, 99, 215, 255}, 
-{41, 96, 214, 255}, {42, 93, 213, 255}, {43, 89, 212, 255}, {43, 86, 212, 255}, 
-{44, 83, 211, 255}, {45, 80, 210, 255}, {46, 77, 209, 255}, {47, 74, 208, 255}, 
-{48, 71, 207, 255}, {49, 68, 206, 255}, {50, 65, 205, 255}, {51, 62, 204, 255}, 
-{52, 59, 203, 255}, {53, 56, 202, 255}, {54, 53, 201, 255}, {56, 50, 199, 255}, 
-{57, 47, 198, 255}, {58, 45, 197, 255}, {59, 42, 196, 255}, {61, 40, 194, 255}, 
-{62, 37, 193, 255}, {64, 35, 191, 255}, {65, 32, 190, 255}, {67, 30, 188, 255}, 
-{69, 28, 186, 255}, {71, 25, 184, 255}, {72, 23, 183, 255}, {74, 21, 181, 255}, 
-{76, 19, 179, 255}, {78, 17, 177, 255}, {81, 16, 174, 255}, {83, 14, 172, 255}, 
-{85, 12, 170, 255}, {87, 11, 168, 255}, {90, 9, 165, 255}, {92, 8, 163, 255}, 
-{95, 7, 160, 255}, {98, 6, 157, 255}, {100, 5, 155, 255}, {103, 4, 152, 255}, 
-{106, 3, 149, 255}, {109, 2, 146, 255}, {112, 2, 143, 255}, {115, 1, 140, 255}, 
-{118, 1, 137, 255}, {121, 1, 134, 255}, {124, 1, 131, 255}, {127, 0, 127, 255}, 
-{131, 1, 124, 255}, {134, 1, 121, 255}, {137, 1, 118, 255}, {140, 1, 115, 255}, 
-{143, 2, 112, 255}, {146, 2, 109, 255}, {149, 3, 106, 255}, {152, 4, 103, 255}, 
-{155, 5, 100, 255}, {157, 6, 98, 255}, {160, 7, 95, 255}, {163, 8, 92, 255}, 
-{165, 9, 90, 255}, {168, 11, 87, 255}, {170, 12, 85, 255}, {172, 14, 83, 255}, 
-{174, 16, 81, 255}, {177, 17, 78, 255}, {179, 19, 76, 255}, {181, 21, 74, 255}, 
-{183, 23, 72, 255}, {184, 25, 71, 255}, {186, 28, 69, 255}, {188, 30, 67, 255}, 
-{190, 32, 65, 255}, {191, 35, 64, 255}, {193, 37, 62, 255}, {194, 40, 61, 255}, 
-{196, 42, 59, 255}, {197, 45, 58, 255}, {198, 47, 57, 255}, {199, 50, 56, 255}, 
-{201, 53, 54, 255}, {202, 56, 53, 255}, {203, 59, 52, 255}, {204, 62, 51, 255}, 
-{205, 65, 50, 255}, {206, 68, 49, 255}, {207, 71, 48, 255}, {208, 74, 47, 255}, 
-{209, 77, 46, 255}, {210, 80, 45, 255}, {211, 83, 44, 255}, {212, 86, 43, 255}, 
-{212, 89, 43, 255}, {213, 93, 42, 255}, {214, 96, 41, 255}, {215, 99, 40, 255}, 
-{215, 102, 40, 255}, {216, 105, 39, 255}, {217, 108, 38, 255}, {217, 112, 38, 255}, 
-{218, 115, 37, 255}, {218, 118, 37, 255}, {219, 121, 36, 255}, {220, 124, 35, 255}, 
-{220, 127, 35, 255}, {221, 130, 34, 255}, {221, 133, 34, 255}, {222, 136, 33, 255}, 
-{222, 139, 33, 255}, {223, 142, 32, 255}, {223, 145, 32, 255}, {223, 148, 32, 255}, 
-{224, 151, 31, 255}, {224, 154, 31, 255}, {225, 157, 30, 255}, {225, 159, 30, 255}, 
-{225, 162, 30, 255}, {226, 165, 29, 255}, {226, 168, 29, 255}, {227, 170, 28, 255}, 
-{227, 173, 28, 255}, {227, 175, 28, 255}, {228, 178, 27, 255}, {228, 180, 27, 255}, 
-{228, 183, 27, 255}, {229, 185, 26, 255}, {229, 187, 26, 255}, {229, 189, 26, 255}, 
-{230, 192, 25, 255}, {230, 194, 25, 255}, {230, 196, 25, 255}, {230, 198, 25, 255}, 
-{231, 200, 24, 255}, {231, 202, 24, 255}, {231, 204, 24, 255}, {231, 206, 24, 255}, 
-{232, 207, 23, 255}, {232, 209, 23, 255}, {232, 211, 23, 255}, {232, 213, 23, 255}, 
-{233, 214, 22, 255}, {233, 216, 22, 255}, {233, 217, 22, 255}, {233, 219, 22, 255}, 
-{233, 220, 22, 255}, {234, 222, 21, 255}, {234, 223, 21, 255}, {234, 224, 21, 255}, 
-{234, 225, 21, 255}, {234, 227, 21, 255}, {235, 228, 20, 255}, {235, 229, 20, 255}, 
-{235, 230, 20, 255}, {235, 231, 20, 255}, {235, 232, 20, 255}, {236, 233, 19, 255}, 
-{236, 234, 19, 255}, {236, 235, 19, 255}, {236, 236, 19, 255}, {236, 237, 19, 255}, 
-{236, 238, 19, 255}, {236, 238, 19, 255}, {237, 239, 18, 255}, {237, 240, 18, 255}, 
-{237, 241, 18, 255}, {237, 241, 18, 255}, {237, 242, 18, 255}, {237, 243, 18, 255}, 
-{237, 243, 18, 255}, {238, 244, 17, 255}, {238, 244, 17, 255}, {238, 245, 17, 255}, 
-{238, 245, 17, 255}, {238, 246, 17, 255}, {238, 246, 17, 255}
-};
-//
-// Print options
-//
-Print.EpsFont = "Courier"; // Font used for postscript printing
-Print.Format = 10; // Print format (10=automatic)
-Print.EpsQuality = 2; // Postscript quality (1=simple sort, 2=recursive sort)
-Print.EpsBackground = 0; // Save image background in postscript output
-Print.EpsFontSize = 12; // Font size used for postscript printing
-Print.EpsPointSizeFactor = 1; // Size factor for points in postscript output
-Print.EpsLineWidthFactor = 1; // Width factor for lines in postscript output
-Print.JpegQuality = 85; // JPEG quality (between 1 and 100)
-Print.GifDither = 0; // Apply dithering to GIF output
-Print.GifSort = 1; // Sort the colormap in GIF output
-Print.GifInterlace = 0; // Interlace GIF output
-Print.GifTransparent = 0; // Output transparent GIF image