--- /dev/null
+#include "MeshConversion.h"
+#include <iostream>
+
+using namespace std;
+
+//--------------------------------------------------------------------------------
+
+int main (int argc, char* argv[]) {
+
+ if (argc == 4)
+ {
+ try
+ {
+ const unsigned int dimension = *argv[1] - '0';
+ std::cout << "Dimension: " << dimension << std::endl;
+ std::string input_file = argv[2];
+ std::string output_file = argv[3];
+
+ MeshConversion mesh (dimension);
+
+ const bool readin_successul = mesh.read_in_abaqus_inp(input_file);
+
+ if (readin_successul == true)
+ mesh.write_out_avs_ucd(output_file);
+ else
+ std::cerr << "ERROR: Input file not found." << std::endl;
+ }
+
+ catch (...)
+ {
+ std::cerr << std::endl
+ << "==============" << std::endl;
+ std::cerr << "UNKNOWN ERROR!" << std::endl
+ << "==============" << std::endl;
+
+ return 1;
+ }
+ }
+ else {
+ std::cerr << "WRONG NUMBER OF INPUT ARGUMENTS:" << std::endl
+ << "The first input argument is the spatial dimension of the input file, the second is the path to the read-in Abaqus .inp file, and the third is the name of the file to which you wish to write the output AVS .ucd file to." << std::endl << std::endl
+ << "Correct program usage is: " << std::endl
+ << " './convert_mesh <spatial_dimension> /path/to/input_file.inp /path/to/output_file.ucd'" << std::endl
+ << "e.g. './convert_mesh 3 mesh/3d/test_in.inp mesh/3d/test_out.ucd'" << std::endl;
+ }
+
+ return 0;
+}
+
+//--------------------------------------------------------------------------------
--- /dev/null
+SHELL = /bin/sh
+
+#MACROS
+CPP = g++ -g -ansi -pedantic -Wall
+PROG = convert_mesh
+
+#SUFFIX RULES
+.SUFFIXES: .o .cpp
+.cpp.o:
+ $(CPP) -c $<
+
+all: $(PROG)
+
+$(PROG): Main.o MeshConversion.o
+ $(CPP) -o $(PROG) Main.o MeshConversion.o
+Main.o: Main.cc MeshConversion.o
+MeshConversion.o: MeshConversion.cc
+
+clean:
+ @echo "-------------------------------------------------"
+ @echo "REMOVING EXECUTABLES, *.o, a.out AND FILE BACKUPS"
+ -rm -f ${PROG} *.o *.*~ makefile~ *~
+ @echo "-------------------------------------------------"
+
+clean-temp:
+ @echo "-------------------------------------------------"
+ @echo "REMOVING EXECUTABLES, *.o, a.out AND FILE BACKUPS"
+ -rm -f *.o *.*~ makefile~ *~
+ @echo "-------------------------------------------------"
--- /dev/null
+#include "MeshConversion.h"
+
+//--------------------------------------------------------------------------------
+
+MeshConversion::MeshConversion (const unsigned int dimension):
+dimension (dimension),
+tolerance (5e-16) // Used to offset Cubit tolerance error when outputting value close to zero
+{
+ greeting ();
+
+ if (dimension == 2)
+ {
+ node_per_face = 2; // Line edge
+ node_per_cell = 4; // Quad face
+ face_per_cell = 2*dimension; // Lines per quad
+ }
+ else if (dimension == 3)
+ {
+ node_per_face = 4; // Quad face
+ node_per_cell = 8; // Hex cell
+ face_per_cell = 2*dimension; // Quads per hex
+ }
+ else
+ {
+ std::cout << "ERROR: Chosen spatial dimension is invalid!" << std::endl;
+ }
+}
+
+//--------------------------------------------------------------------------------
+
+MeshConversion::~MeshConversion ()
+{
+
+}
+
+//--------------------------------------------------------------------------------
+
+// ========================================================
+// http://www.codeguru.com/forum/showthread.php?t=231054
+// ========================================================
+template <class T> bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&))
+{
+ std::istringstream iss(s);
+ return !(iss >> f >> t).fail();
+}
+
+//--------------------------------------------------------------------------------
+
+void MeshConversion::greeting () {
+ std::cout << std::endl; std::cout << std::endl; std::cout << std::endl;
+ std::cout << "************************************************************************************" << std::endl;
+ std::cout << "*** FEM Mesh conversion tool ***" << std::endl;
+ std::cout << "************************************************************************************" << std::endl;
+ std::cout << "*** Author: Jean-Paul Pelteret ***" << std::endl;
+ std::cout << "*** Date: December 2008 ***" << std::endl;
+ std::cout << "*** References: ***" << std::endl;
+ std::cout << "*** http://www.dealii.org/developer/doxygen/deal.II/structGeometryInfo.html ***" << std::endl;
+ std::cout << "*** http://people.scs.fsu.edu/~burkardt/html/ucd_format.html ***" << std::endl;
+ std::cout << "*** http://people.scs.fsu.edu/~burkardt/data/ucd/ucd.html ***" << std::endl;
+ std::cout << "*** http://www.cprogramming.com/tutorial/string.html ***" << std::endl;
+ std::cout << "*** http://www.codeguru.com/forum/showthread.php?t=231054 ***" << std::endl;
+ std::cout << "************************************************************************************" << std::endl;
+ std::cout << "*** FEATURES: ***" << std::endl;
+ std::cout << "*** Read-in file types: ***" << std::endl;
+ std::cout << "*** - Abaqus inp ***" << std::endl;
+ std::cout << "*** Write-out file types: ***" << std::endl;
+ std::cout << "*** - AVS UCD ***" << std::endl;
+ std::cout << "************************************************************************************" << std::endl;
+ std::cout << std::endl;
+}
+
+//--------------------------------------------------------------------------------
+
+bool MeshConversion::read_in_abaqus_inp (const std::string filename)
+{
+ input_file_name = filename;
+ bool read_in_successful = true;
+ std::cout << "Reading in ABAQUS .inp FILE: " << input_file_name << std::endl;
+
+ std::ifstream input_stream;
+
+ input_stream.open(filename.c_str(), std::ifstream::in);
+
+ // Check to see if file exists
+ if (input_stream.good() == true)
+ {
+ std::string buffer;
+ std::vector < std::string > temp_data;
+
+ // Loop over all the contents of the fibre data file and read it into buffer
+ while (input_stream >> buffer)
+ {
+ for(int i = 0; i < buffer.length(); ++i)
+ if (buffer[i] == ',') // Get rid of the .inp file's useless comma's
+ {
+ buffer.erase(i);
+ --i;
+ }
+
+ temp_data.push_back(buffer);
+ }
+
+ const bool print_input_deck = false;
+ if (print_input_deck == true)
+ {
+ // =========== TEMP ===========
+ std::string filename_out ("checks/input_stream.txt");
+ std::ofstream output;
+ output.open(filename_out.c_str());
+
+ for (int ii = 0; ii < temp_data.size(); ii++ )
+ output << temp_data[ii] << std::endl;
+
+ output.close();
+ // =========== TEMP ===========
+ }
+
+ for (int k = 0; k < temp_data.size(); ++k)
+ {
+ // ================================ NODES ===================================
+ // ABAQUS formatting
+ // *NODE
+ // <global node number>, <x coordinate>, <y coordinate>, <z coordinate>
+ // ==========================================================================
+
+ if (temp_data[k] == "*NODE")
+ {
+ int j = 0;
+ float temp_float;
+
+ while (from_string<float> (temp_float, temp_data[k + 1 + j*(dimension+1+(dimension==2 ? 1 : 0))], std::dec) == true)
+ {
+ // Initilise storage variables
+ std::vector <double> node (dimension+1);
+
+ // Convert from string to the variable types
+ for (int i = 0; i < dimension+1; ++i)
+ from_string<double> (node[i], temp_data[k + 1 + j*(dimension+1+(dimension==2 ? 1 : 0)) + i], std::dec);
+
+ // Add to the global node number vector
+ node_list.push_back(node);
+
+ ++j;
+ }
+ }
+
+ // ===================== 2D QUADS / 3D HEX CELLS =======================
+ // ABAQUS formatting
+ // *ELEMENT, TYPE=C3D8R, ELSET=EB< block-set number (material-id) >
+ // <cell number>, <8 x node number>
+ // =====================================================================
+
+ else if (temp_data[k] == "*ELEMENT")
+ {
+ int j = 0;
+ float temp_float;
+ const int data_per_cell = node_per_cell + 1;
+
+ // Get material id
+ std::string material_id_line = temp_data[k+ 2];
+ std::string material_id_temp;
+ for (int ll = 8 /*Characters in "ELSET=EB" */; ll < material_id_line.length(); ++ll)
+ material_id_temp += material_id_line[ll];
+
+ int material_id = 0;
+ for (int ll = 0; ll < material_id_temp.length(); ++ll)
+ material_id += (material_id_temp[material_id_temp.length() - ll - 1] - 48 /* ASCII TRICKS */) * pow(10.0,ll);
+
+ while (from_string<float> (temp_float, temp_data[k + 3 + j*(data_per_cell)], std::dec) == true)
+ {
+ // Initilise storage variables
+ std::vector <double> cell (data_per_cell);
+
+ // Material id
+ cell[0] = material_id;
+
+ // Convert from string to the variable types
+ for (int i = 1; i < data_per_cell; ++i)
+ from_string<double> (cell[i], temp_data[k + 3 + j*(data_per_cell) + i], std::dec);
+
+ // Add to the global node number vector
+ cell_list.push_back(cell);
+
+ ++j;
+ }
+ }
+
+ // =========== 2D LINES / 3D BC_QUADS ===========
+ // ABAQUS formatting
+ // SURFACE, NAME=SS<side-set number>
+ // <cell number>, <cell side number>
+ // ==============================================
+
+ else if (temp_data[k] == "*SURFACE" )
+ {
+ float temp_float;
+ const int data_per_quad = node_per_face + 1;
+
+ // Get sideset id
+ std::string sideset_id_line = temp_data[k + 1];
+ std::string sideset_id_temp;
+ for (int m = 7 /*Characters in "NAME=SS" */; m < sideset_id_line.length(); ++m)
+ sideset_id_temp += sideset_id_line[m];
+
+ int sideset_id = 0;
+ for (int m = 0; m < sideset_id_temp.length(); ++m)
+ sideset_id += (sideset_id_temp[sideset_id_temp.length() - m - 1] - 48 /* ASCII TRICKS */) * pow(10.0,m);
+
+ const int data_per_face = 2;
+ int j = 0;
+ while (( (k + 2) + j * data_per_face ) < temp_data.size() && from_string<float> (temp_float, temp_data[(k + 2) + j * data_per_face], std::dec) == true)
+ {
+ // Get cell to which the face belongs
+ std::string face_cell_no_line = temp_data[(k + 2) + j * data_per_face];
+ int face_cell_no = 0;
+ for (int m = 0; m < face_cell_no_line.length(); ++m)
+ face_cell_no += (face_cell_no_line[face_cell_no_line.length() - m - 1] - 48 /* ASCII TRICKS */) * pow(10.0,m);
+
+ // Get ABAQUS cell face number
+ std::string face_cell_face_no_line = temp_data[(k + 2) + j * data_per_face + 1];
+ std::string face_cell_face_no_temp;
+ for (int m = 1 /*Characters in "S" */; m < face_cell_face_no_line.length(); ++m)
+ face_cell_face_no_temp += face_cell_face_no_line[m];
+
+ int face_cell_face_no = 0;
+ for (int m = 0; m < face_cell_face_no_temp.length(); ++m)
+ face_cell_face_no += (face_cell_face_no_temp[face_cell_face_no_temp.length() - m - 1] - 48 /* ASCII TRICKS */) * pow(10.0,m);
+
+ // Initilise storage variables
+ std::vector <double> quad (data_per_quad);
+ std::vector <double> quad_node_list (node_per_face);
+
+ quad_node_list = get_global_node_numbers(face_cell_no, face_cell_face_no);
+
+ // Sideset id
+ quad[0] = sideset_id;
+
+ // Global node numbers
+ for (int m = 0; m < node_per_face; ++m)
+ quad[m + 1] = quad_node_list[m];
+
+ // Add to the global quad vector
+ face_list.push_back(quad);
+
+ ++j;
+ }
+ }
+ }
+ }
+ else
+ {
+ return false;
+ }
+
+ return read_in_successful;
+}
+
+//--------------------------------------------------------------------------------
+
+std::vector <double> MeshConversion::get_global_node_numbers (const int face_cell_no, const int face_cell_face_no)
+{
+ std::vector <double> quad_node_list (node_per_face);
+
+ if (dimension == 2)
+ {
+ if (face_cell_face_no == 1)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][1];
+ quad_node_list[1] = cell_list[face_cell_no - 1][2];
+ }
+ else if (face_cell_face_no == 2)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][2];
+ quad_node_list[1] = cell_list[face_cell_no - 1][3];
+ }
+ else if (face_cell_face_no == 3)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][3];
+ quad_node_list[1] = cell_list[face_cell_no - 1][4];
+ }
+ else if (face_cell_face_no == 4)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][4];
+ quad_node_list[1] = cell_list[face_cell_no - 1][1];
+ }
+ else
+ {
+ std::cerr << "ERROR! Invalid face number inputted!" << std::endl;
+ std::cerr << "face_cell_face_no = " << face_cell_face_no << std::endl;
+ }
+ }
+ else // (dimension == 3)
+ {
+ if (face_cell_face_no == 1)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][1];
+ quad_node_list[1] = cell_list[face_cell_no - 1][4];
+ quad_node_list[2] = cell_list[face_cell_no - 1][3];
+ quad_node_list[3] = cell_list[face_cell_no - 1][2];
+ }
+ else if (face_cell_face_no == 2)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][5];
+ quad_node_list[1] = cell_list[face_cell_no - 1][8];
+ quad_node_list[2] = cell_list[face_cell_no - 1][7];
+ quad_node_list[3] = cell_list[face_cell_no - 1][6];
+ }
+ else if (face_cell_face_no == 3)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][1];
+ quad_node_list[1] = cell_list[face_cell_no - 1][2];
+ quad_node_list[2] = cell_list[face_cell_no - 1][6];
+ quad_node_list[3] = cell_list[face_cell_no - 1][5];
+ }
+ else if (face_cell_face_no == 4)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][2];
+ quad_node_list[1] = cell_list[face_cell_no - 1][3];
+ quad_node_list[2] = cell_list[face_cell_no - 1][7];
+ quad_node_list[3] = cell_list[face_cell_no - 1][6];
+ }
+ else if (face_cell_face_no == 5)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][3];
+ quad_node_list[1] = cell_list[face_cell_no - 1][4];
+ quad_node_list[2] = cell_list[face_cell_no - 1][8];
+ quad_node_list[3] = cell_list[face_cell_no - 1][7];
+ }
+ else if (face_cell_face_no == 6)
+ {
+ quad_node_list[0] = cell_list[face_cell_no - 1][1];
+ quad_node_list[1] = cell_list[face_cell_no - 1][5];
+ quad_node_list[2] = cell_list[face_cell_no - 1][8];
+ quad_node_list[3] = cell_list[face_cell_no - 1][4];
+ }
+ else
+ {
+ std::cerr << "ERROR! Invalid face number inputted!" << std::endl;
+ std::cerr << "face_cell_face_no = " << face_cell_face_no << std::endl;
+ }
+ }
+
+ return quad_node_list;
+}
+
+//--------------------------------------------------------------------------------
+
+bool MeshConversion::write_out_avs_ucd (const std::string filename)
+{
+ output_file_name = filename;
+ bool write_out_successful = true;
+ std::cout << "Writing out AVS .ucd FILE: " << output_file_name << std::endl;
+
+ std::ofstream output;
+ output.open(filename.c_str());
+
+ // Write out title - Note: No other commented text can be inserted below the title in a UCD file
+ output << "# FEM Mesh Converter" << std::endl;
+ output << "# Mesh type: AVS UCD" << std::endl;
+ output << "# Input file name: " << input_file_name << std::endl;
+
+ // ========================================================
+ // http://people.scs.fsu.edu/~burkardt/html/ucd_format.html
+ // ========================================================
+ // ASCII UCD File Format
+ // The input file cannot contain blank lines or lines with leading blanks. Comments, if present, must precede all data in the file. Comments within the data will cause read errors. The general order of the data is as follows:
+ // 1. Numbers defining the overall structure, including the number of nodes, the number of cells, and the length of the vector of data associated with the nodes, cells, and the model.
+ // e.g. 1:
+ // <num_nodes> <num_cells> <num_ndata> <num_cdata> <num_mdata>
+ // e.g. 2:
+ // n_elements = n_hex_cells + n_bc_quads + n_quad_cells + n_bc_edges
+ // outfile.write(str(n_nodes) + " " + str(n_elements) + " 0 0 0\n")
+ // 2. For each node, its node id and the coordinates of that node in space. Node-ids must be integers, but any number including non sequential numbers can be used. Mid-edge nodes are treated like any other node.
+ // 3. For each cell: its cell-id, material, cell type (hexahedral, pyramid, etc.), and the list of node-ids that correspond to each of the cell's vertices. The below table specifies the different cell types and the keyword used to represent them in the file.
+
+ // Write out header
+ output << node_list.size() << "\t" << (cell_list.size() + face_list.size()) << "\t0\t0\t0" << std::endl;
+
+ // Write out node numbers
+ for (int ii = 0; ii < node_list.size(); ++ii) // Loop over all nodes
+ {
+ for (int jj = 0; jj < dimension + 1; ++jj) // Loop over entries to be outputted
+ {
+ if (jj == 0) // Node number
+ {
+ output.precision();
+ output << node_list[ii][jj] << "\t";
+ }
+ else // Node coordinates
+ {
+ output.width(16);
+ output.setf(ios::scientific, ios::floatfield);
+ output.precision(8);
+ if (abs(node_list[ii][jj]) > tolerance) // invoke tolerance -> set points close to zero equal to zero
+ output << static_cast<double> (node_list[ii][jj]) << "\t";
+ else
+ output << 0.0 << "\t";
+ }
+ }
+ if (dimension == 2)
+ output << 0.0 << "\t";
+
+ output << std::endl;
+ output.unsetf(ios::floatfield);
+ }
+
+ // Write out cell node numbers
+ for (int ii = 0; ii < cell_list.size(); ++ii)
+ {
+ output << ii + 1 << "\t" << cell_list[ii][0] << "\t" << (dimension==2 ? "quad" : "hex") << "\t";
+ for (int jj = 1; jj < node_per_cell + 1; ++jj)
+ output << cell_list[ii][jj] << "\t";
+
+ output << std::endl;
+ }
+
+ // Write out quad node numbers
+ for (int ii = 0; ii < face_list.size(); ++ii)
+ {
+ output << ii + 1 << "\t" << face_list[ii][0] << "\t" << (dimension==2 ? "line" : "quad") << "\t";
+ for (int jj = 1; jj < node_per_face + 1; ++jj)
+ output << face_list[ii][jj] << "\t";
+
+ output << std::endl;
+ }
+
+ output.close();
+
+ if (write_out_successful == true)
+ {
+ std::cout << "Output successful!" << std::endl;
+ std::cout << " Number of nodes: " << node_list.size() << std::endl;
+ std::cout << " Number of cells: " << cell_list.size() << std::endl;
+ std::cout << " Number of boundary faces: " << face_list.size() << std::endl << std::endl;
+ }
+
+ return write_out_successful;
+}
+
+//--------------------------------------------------------------------------------
--- /dev/null
+#ifndef MESH_CONVERSION_H
+#define MESH_CONVERSION_H
+
+//--------------------------------------------------------------------------------
+
+#include <string>
+#include <sstream>
+#include <fstream>
+#include <iostream>
+#include <iomanip>
+#include <cmath>
+#include <vector>
+
+using namespace std;
+
+class MeshConversion
+{
+ public:
+ MeshConversion (const unsigned int dimension);
+ ~MeshConversion ();
+ bool read_in_abaqus_inp (const std::string file_name);
+ bool write_out_avs_ucd (const std::string file_name);
+
+ private:
+ void greeting ();
+ std::vector <double> get_global_node_numbers(const int face_cell_no, const int face_cell_face_no);
+
+ const double tolerance;
+ const unsigned int dimension;
+
+ unsigned int node_per_face;
+ unsigned int node_per_cell;
+ unsigned int face_per_cell;
+
+ std::string input_file_name;
+ std::string output_file_name;
+
+ std::vector< std::vector<double> > node_list; // Stored as [ global node-id (int), x-coord, y-coord, z-coord ]
+ std::vector< std::vector<double> > cell_list; // Stored as [ material-id (int), node1, node2, node3, node4, node5, node6, node7, node8 ]
+ std::vector< std::vector<double> > face_list; // Stored as [ sideset-id (int), node1, node2, node3, node4 ]
+};
+
+#endif // MESH_CONVERSION_H
--- /dev/null
+====================================================
+MESH CONVERSION TOOL
+v. 1.0
+
+Use: Convert an ABAQUS .inp file to an AVS UCD file.
+
+Author: Jean-Paul Pelteret
+ jppelteret.uct@gmail.com
+===================================================
+
+Cubit features captured by ABAQUS .inp files:
+---------------------------------------------
+1. Multiple material-id's can be defined in the mesh. This is done by specifying blocksets in the pre-processor.
+2. Arbitrary surface boundaries can be defined in the mesh. This is done by specifying sidesets in the pre-processor. In particular, boundaries are not confined to just surfaces (in 3d) - individual element faces can be added to the sideset as well. This is useful when a boundary condition is to be applied on a complex shape boundary that is difficult to define using "surfaces" alone. Similar can be done in 2d.
+
+How to use:
+-----------
+1. It is necessary to save the mesh as an Abaqus input file .inp. In Cubit, this is done as follows:
+1.1. Go to "Analysis setup mode" by clicking on the disc icon in the toolbar on the right.
+1.2. Select "Export Mesh" under "Operation" by clicking on the necessary icon in the toolbar on the right.
+1.3. Select an output file. I have found that in Cubit version 11.0 and 12.0 beta that it is necessary to click on the browse button and type it in the dialogue that pops up.
+1.4. Select the dimension to output in.
+1.5. Tick the overwrite box.
+1.6. Click apply.
+
+2. Converting the mesh
+2.1. Compile the program using 'make' or another suitable tool
+2.2. Run the program with the following command line arguments:
+ './convert_mesh <spatial_dimension> /path/to/input_file.inp /path/to/output_file.ucd'
+
+ The first input argument is the spatial dimension of the input file, the second is the path to the read-in Abaqus .inp file, and the third is the name of the file to which you wish to write the output AVS .ucd file to.
+ An example of the correct program usage is:
+e.g. './convert_mesh 3 mesh/3d/test_in.inp mesh/3d/test_out.ucd'
+
+
+Notes:
+------
+1. This tool was made with the specific intention of the output file being used as a mesh for deal.ii.
+2. It has been tested with the deal.ii 6.2-pre subversion as distributed on 12 Jan 2009.
+3. It has been tested for both 2d and 3d meshes, although more thoroughly for the latter. The 2d grids that were tested were drawn in the X-Y plane.
+4. A few example / test meshes are provided in the directory "mesh".
+
+Copyright:
+----------
+This program is distributed under the GNU GPL v2.0 copyright. Details can be found at:
+http://www.gnu.org/licenses/gpl-2.0.html
--- /dev/null
+*HEADING
+cubit(rent/Geometry/Mesh_conversion/Program/mesh/2d/2d_test.inp): 01/17/2009: 16
+*NODE
+ 1, -1.000000e+00, 0.000000e+00, 0.000000e+00
+ 2, -1.000000e+00, -1.666667e-01, 0.000000e+00
+ 3, -8.333333e-01, -1.666667e-01, 0.000000e+00
+ 4, -8.333333e-01, 0.000000e+00, 0.000000e+00
+ 5, -1.000000e+00, -3.333333e-01, 0.000000e+00
+ 6, -8.333333e-01, -3.333333e-01, 0.000000e+00
+ 7, -1.000000e+00, -5.000000e-01, 0.000000e+00
+ 8, -8.333333e-01, -5.000000e-01, 0.000000e+00
+ 9, -1.000000e+00, -6.666667e-01, 0.000000e+00
+ 10, -8.333333e-01, -6.666667e-01, 0.000000e+00
+ 11, -1.000000e+00, -8.333333e-01, 0.000000e+00
+ 12, -8.333333e-01, -8.333333e-01, 0.000000e+00
+ 13, -1.000000e+00, -1.000000e+00, 0.000000e+00
+ 14, -8.333333e-01, -1.000000e+00, 0.000000e+00
+ 15, -6.666667e-01, -1.666667e-01, 0.000000e+00
+ 16, -6.666667e-01, 0.000000e+00, 0.000000e+00
+ 17, -6.666667e-01, -3.333333e-01, 0.000000e+00
+ 18, -6.666667e-01, -5.000000e-01, 0.000000e+00
+ 19, -6.666667e-01, -6.666667e-01, 0.000000e+00
+ 20, -6.666667e-01, -8.333333e-01, 0.000000e+00
+ 21, -6.666667e-01, -1.000000e+00, 0.000000e+00
+ 22, -5.000000e-01, -1.666667e-01, 0.000000e+00
+ 23, -5.000000e-01, 0.000000e+00, 0.000000e+00
+ 24, -5.000000e-01, -3.333333e-01, 0.000000e+00
+ 25, -5.000000e-01, -5.000000e-01, 0.000000e+00
+ 26, -5.000000e-01, -6.666667e-01, 0.000000e+00
+ 27, -5.000000e-01, -8.333333e-01, 0.000000e+00
+ 28, -5.000000e-01, -1.000000e+00, 0.000000e+00
+ 29, -3.333333e-01, -1.666667e-01, 0.000000e+00
+ 30, -3.333333e-01, 0.000000e+00, 0.000000e+00
+ 31, -3.333333e-01, -3.333333e-01, 0.000000e+00
+ 32, -3.333333e-01, -5.000000e-01, 0.000000e+00
+ 33, -3.333333e-01, -6.666667e-01, 0.000000e+00
+ 34, -3.333333e-01, -8.333333e-01, 0.000000e+00
+ 35, -3.333333e-01, -1.000000e+00, 0.000000e+00
+ 36, -1.666667e-01, -1.666667e-01, 0.000000e+00
+ 37, -1.666667e-01, 0.000000e+00, 0.000000e+00
+ 38, -1.666667e-01, -3.333333e-01, 0.000000e+00
+ 39, -1.666667e-01, -5.000000e-01, 0.000000e+00
+ 40, -1.666667e-01, -6.666667e-01, 0.000000e+00
+ 41, -1.666667e-01, -8.333333e-01, 0.000000e+00
+ 42, -1.666667e-01, -1.000000e+00, 0.000000e+00
+ 43, -1.387779e-17, -1.666667e-01, 0.000000e+00
+ 44, 0.000000e+00, 0.000000e+00, 0.000000e+00
+ 45, -3.122502e-17, -3.333333e-01, 0.000000e+00
+ 46, -4.250073e-17, -5.000000e-01, 0.000000e+00
+ 47, -4.531965e-17, -6.666667e-01, 0.000000e+00
+ 48, -5.990217e-17, -8.333333e-01, 0.000000e+00
+ 49, 0.000000e+00, -1.000000e+00, 0.000000e+00
+ 50, 1.666667e-01, -1.666667e-01, 0.000000e+00
+ 51, 1.666667e-01, 1.387779e-17, 0.000000e+00
+ 52, 1.666667e-01, -3.333333e-01, 0.000000e+00
+ 53, 1.666667e-01, -5.000000e-01, 0.000000e+00
+ 54, 1.666667e-01, -6.666667e-01, 0.000000e+00
+ 55, 1.666667e-01, -8.333333e-01, 0.000000e+00
+ 56, 1.666667e-01, -1.000000e+00, 0.000000e+00
+ 57, 3.333333e-01, -1.666667e-01, 0.000000e+00
+ 58, 3.333333e-01, 3.122502e-17, 0.000000e+00
+ 59, 3.333333e-01, -3.333333e-01, 0.000000e+00
+ 60, 3.333333e-01, -5.000000e-01, 0.000000e+00
+ 61, 3.333333e-01, -6.666667e-01, 0.000000e+00
+ 62, 3.333333e-01, -8.333333e-01, 0.000000e+00
+ 63, 3.333333e-01, -1.000000e+00, 0.000000e+00
+ 64, 5.000000e-01, -1.666667e-01, 0.000000e+00
+ 65, 5.000000e-01, 4.943962e-17, 0.000000e+00
+ 66, 5.000000e-01, -3.333333e-01, 0.000000e+00
+ 67, 5.000000e-01, -5.000000e-01, 0.000000e+00
+ 68, 5.000000e-01, -6.666667e-01, 0.000000e+00
+ 69, 5.000000e-01, -8.333333e-01, 0.000000e+00
+ 70, 5.000000e-01, -1.000000e+00, 0.000000e+00
+ 71, 6.666667e-01, -1.666667e-01, 0.000000e+00
+ 72, 6.666667e-01, 4.705437e-17, 0.000000e+00
+ 73, 6.666667e-01, -3.333333e-01, 0.000000e+00
+ 74, 6.666667e-01, -5.000000e-01, 0.000000e+00
+ 75, 6.666667e-01, -6.666667e-01, 0.000000e+00
+ 76, 6.666667e-01, -8.333333e-01, 0.000000e+00
+ 77, 6.666667e-01, -1.000000e+00, 0.000000e+00
+ 78, 8.333333e-01, -1.666667e-01, 0.000000e+00
+ 79, 8.333333e-01, 6.033585e-17, 0.000000e+00
+ 80, 8.333333e-01, -3.333333e-01, 0.000000e+00
+ 81, 8.333333e-01, -5.000000e-01, 0.000000e+00
+ 82, 8.333333e-01, -6.666667e-01, 0.000000e+00
+ 83, 8.333333e-01, -8.333333e-01, 0.000000e+00
+ 84, 8.333333e-01, -1.000000e+00, 0.000000e+00
+ 85, 1.000000e+00, -1.666667e-01, 0.000000e+00
+ 86, 1.000000e+00, 0.000000e+00, 0.000000e+00
+ 87, 1.000000e+00, -3.333333e-01, 0.000000e+00
+ 88, 1.000000e+00, -5.000000e-01, 0.000000e+00
+ 89, 1.000000e+00, -6.666667e-01, 0.000000e+00
+ 90, 1.000000e+00, -8.333333e-01, 0.000000e+00
+ 91, 1.000000e+00, -1.000000e+00, 0.000000e+00
+ 92, 1.000000e+00, 1.666667e-01, 0.000000e+00
+ 93, 8.333333e-01, 1.666667e-01, 0.000000e+00
+ 94, 1.000000e+00, 3.333333e-01, 0.000000e+00
+ 95, 8.333333e-01, 3.333333e-01, 0.000000e+00
+ 96, 1.000000e+00, 5.000000e-01, 0.000000e+00
+ 97, 8.333333e-01, 5.000000e-01, 0.000000e+00
+ 98, 1.000000e+00, 6.666667e-01, 0.000000e+00
+ 99, 8.333333e-01, 6.666667e-01, 0.000000e+00
+ 100, 1.000000e+00, 8.333333e-01, 0.000000e+00
+ 101, 8.333333e-01, 8.333333e-01, 0.000000e+00
+ 102, 1.000000e+00, 1.000000e+00, 0.000000e+00
+ 103, 8.333333e-01, 1.000000e+00, 0.000000e+00
+ 104, 6.666667e-01, 1.666667e-01, 0.000000e+00
+ 105, 6.666667e-01, 3.333333e-01, 0.000000e+00
+ 106, 6.666667e-01, 5.000000e-01, 0.000000e+00
+ 107, 6.666667e-01, 6.666667e-01, 0.000000e+00
+ 108, 6.666667e-01, 8.333333e-01, 0.000000e+00
+ 109, 6.666667e-01, 1.000000e+00, 0.000000e+00
+ 110, 5.000000e-01, 1.666667e-01, 0.000000e+00
+ 111, 5.000000e-01, 3.333333e-01, 0.000000e+00
+ 112, 5.000000e-01, 5.000000e-01, 0.000000e+00
+ 113, 5.000000e-01, 6.666667e-01, 0.000000e+00
+ 114, 5.000000e-01, 8.333333e-01, 0.000000e+00
+ 115, 5.000000e-01, 1.000000e+00, 0.000000e+00
+ 116, 3.333333e-01, 1.666667e-01, 0.000000e+00
+ 117, 3.333333e-01, 3.333333e-01, 0.000000e+00
+ 118, 3.333333e-01, 5.000000e-01, 0.000000e+00
+ 119, 3.333333e-01, 6.666667e-01, 0.000000e+00
+ 120, 3.333333e-01, 8.333333e-01, 0.000000e+00
+ 121, 3.333333e-01, 1.000000e+00, 0.000000e+00
+ 122, 1.666667e-01, 1.666667e-01, 0.000000e+00
+ 123, 1.666667e-01, 3.333333e-01, 0.000000e+00
+ 124, 1.666667e-01, 5.000000e-01, 0.000000e+00
+ 125, 1.666667e-01, 6.666667e-01, 0.000000e+00
+ 126, 1.666667e-01, 8.333333e-01, 0.000000e+00
+ 127, 1.666667e-01, 1.000000e+00, 0.000000e+00
+ 128, 0.000000e+00, 1.666667e-01, 0.000000e+00
+ 129, 0.000000e+00, 3.333333e-01, 0.000000e+00
+ 130, 0.000000e+00, 5.000000e-01, 0.000000e+00
+ 131, 0.000000e+00, 6.666667e-01, 0.000000e+00
+ 132, 0.000000e+00, 8.333333e-01, 0.000000e+00
+ 133, 0.000000e+00, 1.000000e+00, 0.000000e+00
+*ELEMENT, TYPE=S4R, ELSET=EB1
+ 1, 1, 2, 3, 4
+ 2, 2, 5, 6, 3
+ 3, 5, 7, 8, 6
+ 4, 7, 9, 10, 8
+ 5, 9, 11, 12, 10
+ 6, 11, 13, 14, 12
+ 7, 4, 3, 15, 16
+ 8, 3, 6, 17, 15
+ 9, 6, 8, 18, 17
+ 10, 8, 10, 19, 18
+ 11, 10, 12, 20, 19
+ 12, 12, 14, 21, 20
+ 13, 16, 15, 22, 23
+ 14, 15, 17, 24, 22
+ 15, 17, 18, 25, 24
+ 16, 18, 19, 26, 25
+ 17, 19, 20, 27, 26
+ 18, 20, 21, 28, 27
+ 19, 23, 22, 29, 30
+ 20, 22, 24, 31, 29
+ 21, 24, 25, 32, 31
+ 22, 25, 26, 33, 32
+ 23, 26, 27, 34, 33
+ 24, 27, 28, 35, 34
+ 25, 30, 29, 36, 37
+ 26, 29, 31, 38, 36
+ 27, 31, 32, 39, 38
+ 28, 32, 33, 40, 39
+ 29, 33, 34, 41, 40
+ 30, 34, 35, 42, 41
+ 31, 37, 36, 43, 44
+ 32, 36, 38, 45, 43
+ 33, 38, 39, 46, 45
+ 34, 39, 40, 47, 46
+ 35, 40, 41, 48, 47
+ 36, 41, 42, 49, 48
+ 37, 44, 43, 50, 51
+ 38, 43, 45, 52, 50
+ 39, 45, 46, 53, 52
+ 40, 46, 47, 54, 53
+ 41, 47, 48, 55, 54
+ 42, 48, 49, 56, 55
+ 43, 51, 50, 57, 58
+ 44, 50, 52, 59, 57
+ 45, 52, 53, 60, 59
+ 46, 53, 54, 61, 60
+ 47, 54, 55, 62, 61
+ 48, 55, 56, 63, 62
+ 49, 58, 57, 64, 65
+ 50, 57, 59, 66, 64
+ 51, 59, 60, 67, 66
+ 52, 60, 61, 68, 67
+ 53, 61, 62, 69, 68
+ 54, 62, 63, 70, 69
+ 55, 65, 64, 71, 72
+ 56, 64, 66, 73, 71
+ 57, 66, 67, 74, 73
+ 58, 67, 68, 75, 74
+ 59, 68, 69, 76, 75
+ 60, 69, 70, 77, 76
+ 61, 72, 71, 78, 79
+ 62, 71, 73, 80, 78
+ 63, 73, 74, 81, 80
+ 64, 74, 75, 82, 81
+ 65, 75, 76, 83, 82
+ 66, 76, 77, 84, 83
+ 67, 79, 78, 85, 86
+ 68, 78, 80, 87, 85
+ 69, 80, 81, 88, 87
+ 70, 81, 82, 89, 88
+ 71, 82, 83, 90, 89
+ 72, 83, 84, 91, 90
+ 73, 86, 92, 93, 79
+ 74, 92, 94, 95, 93
+ 75, 94, 96, 97, 95
+ 76, 96, 98, 99, 97
+ 77, 98, 100, 101, 99
+ 78, 100, 102, 103, 101
+ 79, 79, 93, 104, 72
+ 80, 93, 95, 105, 104
+ 81, 95, 97, 106, 105
+ 82, 97, 99, 107, 106
+ 83, 99, 101, 108, 107
+ 84, 101, 103, 109, 108
+ 85, 72, 104, 110, 65
+ 86, 104, 105, 111, 110
+ 87, 105, 106, 112, 111
+ 88, 106, 107, 113, 112
+ 89, 107, 108, 114, 113
+ 90, 108, 109, 115, 114
+ 91, 65, 110, 116, 58
+ 92, 110, 111, 117, 116
+ 93, 111, 112, 118, 117
+ 94, 112, 113, 119, 118
+ 95, 113, 114, 120, 119
+ 96, 114, 115, 121, 120
+ 97, 58, 116, 122, 51
+ 98, 116, 117, 123, 122
+ 99, 117, 118, 124, 123
+ 100, 118, 119, 125, 124
+ 101, 119, 120, 126, 125
+ 102, 120, 121, 127, 126
+ 103, 51, 122, 128, 44
+ 104, 122, 123, 129, 128
+ 105, 123, 124, 130, 129
+ 106, 124, 125, 131, 130
+ 107, 125, 126, 132, 131
+ 108, 126, 127, 133, 132
+*SURFACE, NAME=SS1
+ 78, E2
+ 84, E2
+ 90, E2
+ 96, E2
+ 102, E2
+ 108, E2
--- /dev/null
+# FEM Mesh Converter
+# Mesh type: AVS UCD
+# Input file name: mesh/2d/2d_test.inp
+133 114 0 0 0
+1 -1.00000000e+00 0.00000000e+00 0.00000000e+00
+2 -1.00000000e+00 -1.66666700e-01 0.00000000e+00
+3 -8.33333300e-01 -1.66666700e-01 0.00000000e+00
+4 -8.33333300e-01 0.00000000e+00 0.00000000e+00
+5 -1.00000000e+00 -3.33333300e-01 0.00000000e+00
+6 -8.33333300e-01 -3.33333300e-01 0.00000000e+00
+7 -1.00000000e+00 -5.00000000e-01 0.00000000e+00
+8 -8.33333300e-01 -5.00000000e-01 0.00000000e+00
+9 -1.00000000e+00 -6.66666700e-01 0.00000000e+00
+10 -8.33333300e-01 -6.66666700e-01 0.00000000e+00
+11 -1.00000000e+00 -8.33333300e-01 0.00000000e+00
+12 -8.33333300e-01 -8.33333300e-01 0.00000000e+00
+13 -1.00000000e+00 -1.00000000e+00 0.00000000e+00
+14 -8.33333300e-01 -1.00000000e+00 0.00000000e+00
+15 -6.66666700e-01 -1.66666700e-01 0.00000000e+00
+16 -6.66666700e-01 0.00000000e+00 0.00000000e+00
+17 -6.66666700e-01 -3.33333300e-01 0.00000000e+00
+18 -6.66666700e-01 -5.00000000e-01 0.00000000e+00
+19 -6.66666700e-01 -6.66666700e-01 0.00000000e+00
+20 -6.66666700e-01 -8.33333300e-01 0.00000000e+00
+21 -6.66666700e-01 -1.00000000e+00 0.00000000e+00
+22 -5.00000000e-01 -1.66666700e-01 0.00000000e+00
+23 -5.00000000e-01 0.00000000e+00 0.00000000e+00
+24 -5.00000000e-01 -3.33333300e-01 0.00000000e+00
+25 -5.00000000e-01 -5.00000000e-01 0.00000000e+00
+26 -5.00000000e-01 -6.66666700e-01 0.00000000e+00
+27 -5.00000000e-01 -8.33333300e-01 0.00000000e+00
+28 -5.00000000e-01 -1.00000000e+00 0.00000000e+00
+29 -3.33333300e-01 -1.66666700e-01 0.00000000e+00
+30 -3.33333300e-01 0.00000000e+00 0.00000000e+00
+31 -3.33333300e-01 -3.33333300e-01 0.00000000e+00
+32 -3.33333300e-01 -5.00000000e-01 0.00000000e+00
+33 -3.33333300e-01 -6.66666700e-01 0.00000000e+00
+34 -3.33333300e-01 -8.33333300e-01 0.00000000e+00
+35 -3.33333300e-01 -1.00000000e+00 0.00000000e+00
+36 -1.66666700e-01 -1.66666700e-01 0.00000000e+00
+37 -1.66666700e-01 0.00000000e+00 0.00000000e+00
+38 -1.66666700e-01 -3.33333300e-01 0.00000000e+00
+39 -1.66666700e-01 -5.00000000e-01 0.00000000e+00
+40 -1.66666700e-01 -6.66666700e-01 0.00000000e+00
+41 -1.66666700e-01 -8.33333300e-01 0.00000000e+00
+42 -1.66666700e-01 -1.00000000e+00 0.00000000e+00
+43 0.00000000e+00 -1.66666700e-01 0.00000000e+00
+44 0.00000000e+00 0.00000000e+00 0.00000000e+00
+45 0.00000000e+00 -3.33333300e-01 0.00000000e+00
+46 0.00000000e+00 -5.00000000e-01 0.00000000e+00
+47 0.00000000e+00 -6.66666700e-01 0.00000000e+00
+48 0.00000000e+00 -8.33333300e-01 0.00000000e+00
+49 0.00000000e+00 -1.00000000e+00 0.00000000e+00
+50 1.66666700e-01 -1.66666700e-01 0.00000000e+00
+51 1.66666700e-01 0.00000000e+00 0.00000000e+00
+52 1.66666700e-01 -3.33333300e-01 0.00000000e+00
+53 1.66666700e-01 -5.00000000e-01 0.00000000e+00
+54 1.66666700e-01 -6.66666700e-01 0.00000000e+00
+55 1.66666700e-01 -8.33333300e-01 0.00000000e+00
+56 1.66666700e-01 -1.00000000e+00 0.00000000e+00
+57 3.33333300e-01 -1.66666700e-01 0.00000000e+00
+58 3.33333300e-01 0.00000000e+00 0.00000000e+00
+59 3.33333300e-01 -3.33333300e-01 0.00000000e+00
+60 3.33333300e-01 -5.00000000e-01 0.00000000e+00
+61 3.33333300e-01 -6.66666700e-01 0.00000000e+00
+62 3.33333300e-01 -8.33333300e-01 0.00000000e+00
+63 3.33333300e-01 -1.00000000e+00 0.00000000e+00
+64 5.00000000e-01 -1.66666700e-01 0.00000000e+00
+65 5.00000000e-01 0.00000000e+00 0.00000000e+00
+66 5.00000000e-01 -3.33333300e-01 0.00000000e+00
+67 5.00000000e-01 -5.00000000e-01 0.00000000e+00
+68 5.00000000e-01 -6.66666700e-01 0.00000000e+00
+69 5.00000000e-01 -8.33333300e-01 0.00000000e+00
+70 5.00000000e-01 -1.00000000e+00 0.00000000e+00
+71 6.66666700e-01 -1.66666700e-01 0.00000000e+00
+72 6.66666700e-01 0.00000000e+00 0.00000000e+00
+73 6.66666700e-01 -3.33333300e-01 0.00000000e+00
+74 6.66666700e-01 -5.00000000e-01 0.00000000e+00
+75 6.66666700e-01 -6.66666700e-01 0.00000000e+00
+76 6.66666700e-01 -8.33333300e-01 0.00000000e+00
+77 6.66666700e-01 -1.00000000e+00 0.00000000e+00
+78 8.33333300e-01 -1.66666700e-01 0.00000000e+00
+79 8.33333300e-01 0.00000000e+00 0.00000000e+00
+80 8.33333300e-01 -3.33333300e-01 0.00000000e+00
+81 8.33333300e-01 -5.00000000e-01 0.00000000e+00
+82 8.33333300e-01 -6.66666700e-01 0.00000000e+00
+83 8.33333300e-01 -8.33333300e-01 0.00000000e+00
+84 8.33333300e-01 -1.00000000e+00 0.00000000e+00
+85 1.00000000e+00 -1.66666700e-01 0.00000000e+00
+86 1.00000000e+00 0.00000000e+00 0.00000000e+00
+87 1.00000000e+00 -3.33333300e-01 0.00000000e+00
+88 1.00000000e+00 -5.00000000e-01 0.00000000e+00
+89 1.00000000e+00 -6.66666700e-01 0.00000000e+00
+90 1.00000000e+00 -8.33333300e-01 0.00000000e+00
+91 1.00000000e+00 -1.00000000e+00 0.00000000e+00
+92 1.00000000e+00 1.66666700e-01 0.00000000e+00
+93 8.33333300e-01 1.66666700e-01 0.00000000e+00
+94 1.00000000e+00 3.33333300e-01 0.00000000e+00
+95 8.33333300e-01 3.33333300e-01 0.00000000e+00
+96 1.00000000e+00 5.00000000e-01 0.00000000e+00
+97 8.33333300e-01 5.00000000e-01 0.00000000e+00
+98 1.00000000e+00 6.66666700e-01 0.00000000e+00
+99 8.33333300e-01 6.66666700e-01 0.00000000e+00
+100 1.00000000e+00 8.33333300e-01 0.00000000e+00
+101 8.33333300e-01 8.33333300e-01 0.00000000e+00
+102 1.00000000e+00 1.00000000e+00 0.00000000e+00
+103 8.33333300e-01 1.00000000e+00 0.00000000e+00
+104 6.66666700e-01 1.66666700e-01 0.00000000e+00
+105 6.66666700e-01 3.33333300e-01 0.00000000e+00
+106 6.66666700e-01 5.00000000e-01 0.00000000e+00
+107 6.66666700e-01 6.66666700e-01 0.00000000e+00
+108 6.66666700e-01 8.33333300e-01 0.00000000e+00
+109 6.66666700e-01 1.00000000e+00 0.00000000e+00
+110 5.00000000e-01 1.66666700e-01 0.00000000e+00
+111 5.00000000e-01 3.33333300e-01 0.00000000e+00
+112 5.00000000e-01 5.00000000e-01 0.00000000e+00
+113 5.00000000e-01 6.66666700e-01 0.00000000e+00
+114 5.00000000e-01 8.33333300e-01 0.00000000e+00
+115 5.00000000e-01 1.00000000e+00 0.00000000e+00
+116 3.33333300e-01 1.66666700e-01 0.00000000e+00
+117 3.33333300e-01 3.33333300e-01 0.00000000e+00
+118 3.33333300e-01 5.00000000e-01 0.00000000e+00
+119 3.33333300e-01 6.66666700e-01 0.00000000e+00
+120 3.33333300e-01 8.33333300e-01 0.00000000e+00
+121 3.33333300e-01 1.00000000e+00 0.00000000e+00
+122 1.66666700e-01 1.66666700e-01 0.00000000e+00
+123 1.66666700e-01 3.33333300e-01 0.00000000e+00
+124 1.66666700e-01 5.00000000e-01 0.00000000e+00
+125 1.66666700e-01 6.66666700e-01 0.00000000e+00
+126 1.66666700e-01 8.33333300e-01 0.00000000e+00
+127 1.66666700e-01 1.00000000e+00 0.00000000e+00
+128 0.00000000e+00 1.66666700e-01 0.00000000e+00
+129 0.00000000e+00 3.33333300e-01 0.00000000e+00
+130 0.00000000e+00 5.00000000e-01 0.00000000e+00
+131 0.00000000e+00 6.66666700e-01 0.00000000e+00
+132 0.00000000e+00 8.33333300e-01 0.00000000e+00
+133 0.00000000e+00 1.00000000e+00 0.00000000e+00
+1 1 quad 1 2 3 4
+2 1 quad 2 5 6 3
+3 1 quad 5 7 8 6
+4 1 quad 7 9 10 8
+5 1 quad 9 11 12 10
+6 1 quad 11 13 14 12
+7 1 quad 4 3 15 16
+8 1 quad 3 6 17 15
+9 1 quad 6 8 18 17
+10 1 quad 8 10 19 18
+11 1 quad 10 12 20 19
+12 1 quad 12 14 21 20
+13 1 quad 16 15 22 23
+14 1 quad 15 17 24 22
+15 1 quad 17 18 25 24
+16 1 quad 18 19 26 25
+17 1 quad 19 20 27 26
+18 1 quad 20 21 28 27
+19 1 quad 23 22 29 30
+20 1 quad 22 24 31 29
+21 1 quad 24 25 32 31
+22 1 quad 25 26 33 32
+23 1 quad 26 27 34 33
+24 1 quad 27 28 35 34
+25 1 quad 30 29 36 37
+26 1 quad 29 31 38 36
+27 1 quad 31 32 39 38
+28 1 quad 32 33 40 39
+29 1 quad 33 34 41 40
+30 1 quad 34 35 42 41
+31 1 quad 37 36 43 44
+32 1 quad 36 38 45 43
+33 1 quad 38 39 46 45
+34 1 quad 39 40 47 46
+35 1 quad 40 41 48 47
+36 1 quad 41 42 49 48
+37 1 quad 44 43 50 51
+38 1 quad 43 45 52 50
+39 1 quad 45 46 53 52
+40 1 quad 46 47 54 53
+41 1 quad 47 48 55 54
+42 1 quad 48 49 56 55
+43 1 quad 51 50 57 58
+44 1 quad 50 52 59 57
+45 1 quad 52 53 60 59
+46 1 quad 53 54 61 60
+47 1 quad 54 55 62 61
+48 1 quad 55 56 63 62
+49 1 quad 58 57 64 65
+50 1 quad 57 59 66 64
+51 1 quad 59 60 67 66
+52 1 quad 60 61 68 67
+53 1 quad 61 62 69 68
+54 1 quad 62 63 70 69
+55 1 quad 65 64 71 72
+56 1 quad 64 66 73 71
+57 1 quad 66 67 74 73
+58 1 quad 67 68 75 74
+59 1 quad 68 69 76 75
+60 1 quad 69 70 77 76
+61 1 quad 72 71 78 79
+62 1 quad 71 73 80 78
+63 1 quad 73 74 81 80
+64 1 quad 74 75 82 81
+65 1 quad 75 76 83 82
+66 1 quad 76 77 84 83
+67 1 quad 79 78 85 86
+68 1 quad 78 80 87 85
+69 1 quad 80 81 88 87
+70 1 quad 81 82 89 88
+71 1 quad 82 83 90 89
+72 1 quad 83 84 91 90
+73 1 quad 86 92 93 79
+74 1 quad 92 94 95 93
+75 1 quad 94 96 97 95
+76 1 quad 96 98 99 97
+77 1 quad 98 100 101 99
+78 1 quad 100 102 103 101
+79 1 quad 79 93 104 72
+80 1 quad 93 95 105 104
+81 1 quad 95 97 106 105
+82 1 quad 97 99 107 106
+83 1 quad 99 101 108 107
+84 1 quad 101 103 109 108
+85 1 quad 72 104 110 65
+86 1 quad 104 105 111 110
+87 1 quad 105 106 112 111
+88 1 quad 106 107 113 112
+89 1 quad 107 108 114 113
+90 1 quad 108 109 115 114
+91 1 quad 65 110 116 58
+92 1 quad 110 111 117 116
+93 1 quad 111 112 118 117
+94 1 quad 112 113 119 118
+95 1 quad 113 114 120 119
+96 1 quad 114 115 121 120
+97 1 quad 58 116 122 51
+98 1 quad 116 117 123 122
+99 1 quad 117 118 124 123
+100 1 quad 118 119 125 124
+101 1 quad 119 120 126 125
+102 1 quad 120 121 127 126
+103 1 quad 51 122 128 44
+104 1 quad 122 123 129 128
+105 1 quad 123 124 130 129
+106 1 quad 124 125 131 130
+107 1 quad 125 126 132 131
+108 1 quad 126 127 133 132
+1 1 line 102 103
+2 1 line 103 109
+3 1 line 109 115
+4 1 line 115 121
+5 1 line 121 127
+6 1 line 127 133
--- /dev/null
+*HEADING
+cubit(y/Work/Current/Geometry/Mesh_conversion/mesh/2d/quad2.inp): 01/17/2009: 13
+*NODE
+ 1, -1.000000e+00, 1.000000e+00, 0.000000e+00
+ 2, -1.000000e+00, 0.000000e+00, 0.000000e+00
+ 3, 0.000000e+00, 0.000000e+00, 0.000000e+00
+ 4, 0.000000e+00, 1.000000e+00, 0.000000e+00
+ 5, -1.000000e+00, -1.000000e+00, 0.000000e+00
+ 6, 0.000000e+00, -1.000000e+00, 0.000000e+00
+ 7, 1.000000e+00, 0.000000e+00, 0.000000e+00
+ 8, 1.000000e+00, 1.000000e+00, 0.000000e+00
+ 9, 1.000000e+00, -1.000000e+00, 0.000000e+00
+*ELEMENT, TYPE=S4R, ELSET=EB14
+ 1, 1, 2, 3, 4
+ 2, 2, 5, 6, 3
+ 3, 4, 3, 7, 8
+ 4, 3, 6, 9, 7
+*SURFACE, NAME=SS1
+ 1, E1
+ 2, E1
+*SURFACE, NAME=SS2
+ 2, E2
+ 4, E2
+*SURFACE, NAME=SS3
+ 3, E3
+ 4, E3
+*SURFACE, NAME=SS4
+ 1, E4
+ 3, E4
--- /dev/null
+# FEM Mesh Converter
+# Mesh type: AVS UCD
+# Input file name: mesh/2d/quad.inp
+9 12 0 0 0
+1 -1.00000000e+00 1.00000000e+00 0.00000000e+00
+2 -1.00000000e+00 0.00000000e+00 0.00000000e+00
+3 0.00000000e+00 0.00000000e+00 0.00000000e+00
+4 0.00000000e+00 1.00000000e+00 0.00000000e+00
+5 -1.00000000e+00 -1.00000000e+00 0.00000000e+00
+6 0.00000000e+00 -1.00000000e+00 0.00000000e+00
+7 1.00000000e+00 0.00000000e+00 0.00000000e+00
+8 1.00000000e+00 1.00000000e+00 0.00000000e+00
+9 1.00000000e+00 -1.00000000e+00 0.00000000e+00
+1 14 quad 1 2 3 4
+2 14 quad 2 5 6 3
+3 14 quad 4 3 7 8
+4 14 quad 3 6 9 7
+1 1 line 1 2
+2 1 line 2 5
+3 2 line 5 6
+4 2 line 6 9
+5 3 line 7 8
+6 3 line 9 7
+7 4 line 4 1
+8 4 line 8 4
--- /dev/null
+*HEADING
+cubit(t/Geometry/Mesh_conversion/mesh/Test_cube/test_cube_1.inp): 11/06/2008: 09
+*NODE
+ 1, -1.000000e+00, -1.000000e+00, 1.000000e+00
+ 2, -1.000000e+00, -1.000000e+00, -1.000000e+00
+ 3, -1.000000e+00, 1.000000e+00, -1.000000e+00
+ 4, -1.000000e+00, 1.000000e+00, 1.000000e+00
+ 5, 1.000000e+00, -1.000000e+00, 1.000000e+00
+ 6, 1.000000e+00, -1.000000e+00, -1.000000e+00
+ 7, 1.000000e+00, 1.000000e+00, -1.000000e+00
+ 8, 1.000000e+00, 1.000000e+00, 1.000000e+00
+*ELEMENT, TYPE=C3D8R, ELSET=EB1
+ 1, 1, 2, 3, 4, 5, 6, 7, 8
+*SURFACE, NAME=SS1
+ 1, S6
+*SURFACE, NAME=SS2
+ 1, S4
+*SURFACE, NAME=SS3
+ 1, S3
+*SURFACE, NAME=SS4
+ 1, S1
+*SURFACE, NAME=SS5
+ 1, S5
+*SURFACE, NAME=SS6
+ 1, S2
--- /dev/null
+# FEM Mesh Converter
+# Mesh type: AVS UCD
+# Input file name: mesh/3d/test_cube_1.inp
+8 7 0 0 0
+1 -1.00000000e+00 -1.00000000e+00 1.00000000e+00
+2 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+3 -1.00000000e+00 1.00000000e+00 -1.00000000e+00
+4 -1.00000000e+00 1.00000000e+00 1.00000000e+00
+5 1.00000000e+00 -1.00000000e+00 1.00000000e+00
+6 1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+7 1.00000000e+00 1.00000000e+00 -1.00000000e+00
+8 1.00000000e+00 1.00000000e+00 1.00000000e+00
+1 1 hex 1 2 3 4 5 6 7 8
+1 1 quad 1 5 8 4
+2 2 quad 2 3 7 6
+3 3 quad 1 2 6 5
+4 4 quad 1 4 3 2
+5 5 quad 3 4 8 7
+6 6 quad 5 8 7 6
--- /dev/null
+*HEADING
+cubit(metry/Mesh_conversion/mesh/Test_cube/test_cube_pave_1.inp): 11/06/2008: 10
+*NODE
+ 1, 1.000000e+00, 1.000000e+00, 0.000000e+00
+ 2, 5.000000e-01, 1.000000e+00, 0.000000e+00
+ 3, 5.583559e-01, 3.929331e-01, 0.000000e+00
+ 4, 1.000000e+00, 0.000000e+00, 0.000000e+00
+ 5, 1.000000e+00, 1.000000e+00, 1.000000e+00
+ 6, 5.000000e-01, 1.000000e+00, 1.000000e+00
+ 7, 5.583559e-01, 3.929331e-01, 1.000000e+00
+ 8, 1.000000e+00, 0.000000e+00, 1.000000e+00
+ 9, 0.000000e+00, 1.000000e+00, 0.000000e+00
+ 10, 1.562409e-01, 1.799288e-01, 0.000000e+00
+ 11, 0.000000e+00, 1.000000e+00, 1.000000e+00
+ 12, 1.562409e-01, 1.799288e-01, 1.000000e+00
+ 13, -5.000000e-01, 1.000000e+00, 0.000000e+00
+ 14, -3.897075e-01, 6.804246e-02, 0.000000e+00
+ 15, -5.000000e-01, 1.000000e+00, 1.000000e+00
+ 16, -3.897075e-01, 6.804246e-02, 1.000000e+00
+ 17, -1.000000e+00, 1.000000e+00, 0.000000e+00
+ 18, -1.000000e+00, 0.000000e+00, 0.000000e+00
+ 19, -1.000000e+00, 1.000000e+00, 1.000000e+00
+ 20, -1.000000e+00, 0.000000e+00, 1.000000e+00
+ 21, -1.000000e+00, -1.000000e+00, 0.000000e+00
+ 22, 0.000000e+00, -1.000000e+00, 0.000000e+00
+ 23, -1.000000e+00, -1.000000e+00, 1.000000e+00
+ 24, 0.000000e+00, -1.000000e+00, 1.000000e+00
+ 25, 1.000000e+00, -1.000000e+00, 0.000000e+00
+ 26, 1.000000e+00, -1.000000e+00, 1.000000e+00
+ 27, 1.000000e+00, 1.000000e+00, -1.000000e+00
+ 28, 5.000000e-01, 1.000000e+00, -1.000000e+00
+ 29, 5.583559e-01, 3.929331e-01, -1.000000e+00
+ 30, 1.000000e+00, 0.000000e+00, -1.000000e+00
+ 31, 0.000000e+00, 1.000000e+00, -1.000000e+00
+ 32, 1.562409e-01, 1.799288e-01, -1.000000e+00
+ 33, -5.000000e-01, 1.000000e+00, -1.000000e+00
+ 34, -3.897075e-01, 6.804246e-02, -1.000000e+00
+ 35, -1.000000e+00, 1.000000e+00, -1.000000e+00
+ 36, -1.000000e+00, 0.000000e+00, -1.000000e+00
+ 37, -1.000000e+00, -1.000000e+00, -1.000000e+00
+ 38, 0.000000e+00, -1.000000e+00, -1.000000e+00
+ 39, 1.000000e+00, -1.000000e+00, -1.000000e+00
+*ELEMENT, TYPE=C3D8R, ELSET=EB1
+ 1, 1, 2, 3, 4, 5, 6, 7, 8
+ 2, 2, 9, 10, 3, 6, 11, 12, 7
+ 3, 9, 13, 14, 10, 11, 15, 16, 12
+ 4, 13, 17, 18, 14, 15, 19, 20, 16
+ 5, 21, 22, 14, 18, 23, 24, 16, 20
+ 6, 10, 14, 22, 25, 12, 16, 24, 26
+ 7, 25, 4, 3, 10, 26, 8, 7, 12
+ 8, 27, 28, 29, 30, 1, 2, 3, 4
+ 9, 28, 31, 32, 29, 2, 9, 10, 3
+ 10, 31, 33, 34, 32, 9, 13, 14, 10
+ 11, 33, 35, 36, 34, 13, 17, 18, 14
+ 12, 37, 38, 34, 36, 21, 22, 14, 18
+ 13, 32, 34, 38, 39, 10, 14, 22, 25
+ 14, 39, 30, 29, 32, 25, 4, 3, 10
+*SURFACE, NAME=SS1
+ 1, S2
+ 2, S2
+ 3, S2
+ 4, S2
+ 5, S2
+ 6, S2
+ 7, S2
+*SURFACE, NAME=SS2
+ 8, S1
+ 9, S1
+ 10, S1
+ 11, S1
+ 12, S1
+ 13, S1
+ 14, S1
+*SURFACE, NAME=SS3
+ 5, S3
+ 6, S5
+ 12, S3
+ 13, S5
+*SURFACE, NAME=SS4
+ 4, S4
+ 5, S6
+ 11, S4
+ 12, S6
+*SURFACE, NAME=SS5
+ 1, S3
+ 2, S3
+ 3, S3
+ 4, S3
+ 8, S3
+ 9, S3
+ 10, S3
+ 11, S3
+*SURFACE, NAME=SS6
+ 1, S6
+ 7, S3
+ 8, S6
+ 14, S3
--- /dev/null
+# FEM Mesh Converter
+# Mesh type: AVS UCD
+# Input file name: mesh/3d/test_cube_pave_1.inp
+39 48 0 0 0
+1 1.00000000e+00 1.00000000e+00 0.00000000e+00
+2 5.00000000e-01 1.00000000e+00 0.00000000e+00
+3 5.58355900e-01 3.92933100e-01 0.00000000e+00
+4 1.00000000e+00 0.00000000e+00 0.00000000e+00
+5 1.00000000e+00 1.00000000e+00 1.00000000e+00
+6 5.00000000e-01 1.00000000e+00 1.00000000e+00
+7 5.58355900e-01 3.92933100e-01 1.00000000e+00
+8 1.00000000e+00 0.00000000e+00 1.00000000e+00
+9 0.00000000e+00 1.00000000e+00 0.00000000e+00
+10 1.56240900e-01 1.79928800e-01 0.00000000e+00
+11 0.00000000e+00 1.00000000e+00 1.00000000e+00
+12 1.56240900e-01 1.79928800e-01 1.00000000e+00
+13 -5.00000000e-01 1.00000000e+00 0.00000000e+00
+14 -3.89707500e-01 6.80424600e-02 0.00000000e+00
+15 -5.00000000e-01 1.00000000e+00 1.00000000e+00
+16 -3.89707500e-01 6.80424600e-02 1.00000000e+00
+17 -1.00000000e+00 1.00000000e+00 0.00000000e+00
+18 -1.00000000e+00 0.00000000e+00 0.00000000e+00
+19 -1.00000000e+00 1.00000000e+00 1.00000000e+00
+20 -1.00000000e+00 0.00000000e+00 1.00000000e+00
+21 -1.00000000e+00 -1.00000000e+00 0.00000000e+00
+22 0.00000000e+00 -1.00000000e+00 0.00000000e+00
+23 -1.00000000e+00 -1.00000000e+00 1.00000000e+00
+24 0.00000000e+00 -1.00000000e+00 1.00000000e+00
+25 1.00000000e+00 -1.00000000e+00 0.00000000e+00
+26 1.00000000e+00 -1.00000000e+00 1.00000000e+00
+27 1.00000000e+00 1.00000000e+00 -1.00000000e+00
+28 5.00000000e-01 1.00000000e+00 -1.00000000e+00
+29 5.58355900e-01 3.92933100e-01 -1.00000000e+00
+30 1.00000000e+00 0.00000000e+00 -1.00000000e+00
+31 0.00000000e+00 1.00000000e+00 -1.00000000e+00
+32 1.56240900e-01 1.79928800e-01 -1.00000000e+00
+33 -5.00000000e-01 1.00000000e+00 -1.00000000e+00
+34 -3.89707500e-01 6.80424600e-02 -1.00000000e+00
+35 -1.00000000e+00 1.00000000e+00 -1.00000000e+00
+36 -1.00000000e+00 0.00000000e+00 -1.00000000e+00
+37 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+38 0.00000000e+00 -1.00000000e+00 -1.00000000e+00
+39 1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+1 1 hex 1 2 3 4 5 6 7 8
+2 1 hex 2 9 10 3 6 11 12 7
+3 1 hex 9 13 14 10 11 15 16 12
+4 1 hex 13 17 18 14 15 19 20 16
+5 1 hex 21 22 14 18 23 24 16 20
+6 1 hex 10 14 22 25 12 16 24 26
+7 1 hex 25 4 3 10 26 8 7 12
+8 1 hex 27 28 29 30 1 2 3 4
+9 1 hex 28 31 32 29 2 9 10 3
+10 1 hex 31 33 34 32 9 13 14 10
+11 1 hex 33 35 36 34 13 17 18 14
+12 1 hex 37 38 34 36 21 22 14 18
+13 1 hex 32 34 38 39 10 14 22 25
+14 1 hex 39 30 29 32 25 4 3 10
+1 1 quad 5 8 7 6
+2 1 quad 6 7 12 11
+3 1 quad 11 12 16 15
+4 1 quad 15 16 20 19
+5 1 quad 23 20 16 24
+6 1 quad 12 26 24 16
+7 1 quad 26 12 7 8
+8 2 quad 27 30 29 28
+9 2 quad 28 29 32 31
+10 2 quad 31 32 34 33
+11 2 quad 33 34 36 35
+12 2 quad 37 36 34 38
+13 2 quad 32 39 38 34
+14 2 quad 39 32 29 30
+15 3 quad 21 22 24 23
+16 3 quad 22 25 26 24
+17 3 quad 37 38 22 21
+18 3 quad 38 39 25 22
+19 4 quad 17 18 20 19
+20 4 quad 21 23 20 18
+21 4 quad 35 36 18 17
+22 4 quad 37 21 18 36
+23 5 quad 1 2 6 5
+24 5 quad 2 9 11 6
+25 5 quad 9 13 15 11
+26 5 quad 13 17 19 15
+27 5 quad 27 28 2 1
+28 5 quad 28 31 9 2
+29 5 quad 31 33 13 9
+30 5 quad 33 35 17 13
+31 6 quad 1 5 8 4
+32 6 quad 25 4 8 26
+33 6 quad 27 1 4 30
+34 6 quad 39 30 4 25
--- /dev/null
+*HEADING
+cubit(rsion/Mesh_conversion/mesh/3d/test_cube_two_materials.inp): 01/20/2009: 07
+*NODE
+ 1, -1.000000e+00, -1.000000e+00, 1.000000e+00
+ 2, -1.000000e+00, -1.000000e+00, 0.000000e+00
+ 3, -1.000000e+00, 0.000000e+00, 0.000000e+00
+ 4, -1.000000e+00, 0.000000e+00, 1.000000e+00
+ 5, 0.000000e+00, -1.000000e+00, 1.000000e+00
+ 6, 0.000000e+00, -1.000000e+00, 0.000000e+00
+ 7, 0.000000e+00, 0.000000e+00, 0.000000e+00
+ 8, 0.000000e+00, 0.000000e+00, 1.000000e+00
+ 9, -1.000000e+00, -1.000000e+00, -1.000000e+00
+ 10, -1.000000e+00, 0.000000e+00, -1.000000e+00
+ 11, 0.000000e+00, -1.000000e+00, -1.000000e+00
+ 12, 0.000000e+00, 0.000000e+00, -1.000000e+00
+ 13, -1.000000e+00, 1.000000e+00, 0.000000e+00
+ 14, -1.000000e+00, 1.000000e+00, 1.000000e+00
+ 15, 0.000000e+00, 1.000000e+00, 0.000000e+00
+ 16, 0.000000e+00, 1.000000e+00, 1.000000e+00
+ 17, -1.000000e+00, 1.000000e+00, -1.000000e+00
+ 18, 0.000000e+00, 1.000000e+00, -1.000000e+00
+ 19, 1.000000e+00, -1.000000e+00, 1.000000e+00
+ 20, 1.000000e+00, -1.000000e+00, 0.000000e+00
+ 21, 1.000000e+00, 0.000000e+00, 0.000000e+00
+ 22, 1.000000e+00, 0.000000e+00, 1.000000e+00
+ 23, 1.000000e+00, -1.000000e+00, -1.000000e+00
+ 24, 1.000000e+00, 0.000000e+00, -1.000000e+00
+ 25, 1.000000e+00, 1.000000e+00, 0.000000e+00
+ 26, 1.000000e+00, 1.000000e+00, 1.000000e+00
+ 27, 1.000000e+00, 1.000000e+00, -1.000000e+00
+*ELEMENT, TYPE=C3D8R, ELSET=EB1
+ 1, 1, 2, 3, 4, 5, 6, 7, 8
+ 2, 2, 9, 10, 3, 6, 11, 12, 7
+ 3, 4, 3, 13, 14, 8, 7, 15, 16
+ 4, 3, 10, 17, 13, 7, 12, 18, 15
+ 5, 5, 6, 7, 8, 19, 20, 21, 22
+*ELEMENT, TYPE=C3D8R, ELSET=EB2
+ 6, 6, 11, 12, 7, 20, 23, 24, 21
+ 7, 8, 7, 15, 16, 22, 21, 25, 26
+ 8, 7, 12, 18, 15, 21, 24, 27, 25
+*SURFACE, NAME=SS1
+ 1, S6
+ 3, S6
+ 5, S6
+ 7, S6
+ 3, S5
+ 4, S5
+ 7, S5
+ 8, S5
+ 1, S1
+ 2, S1
+ 3, S1
+ 4, S1
+ 1, S3
+ 2, S3
+ 5, S3
+ 6, S3
+*SURFACE, NAME=SS2
+ 2, S4
+ 4, S4
+ 8, S4
+ 8, S2
+*SURFACE, NAME=SS3
+ 5, S2
+ 6, S4
+ 6, S2
+ 7, S2
--- /dev/null
+# FEM Mesh Converter
+# Mesh type: AVS UCD
+# Input file name: mesh/3d/test_cube_two_materials.inp
+27 32 0 0 0
+1 -1.00000000e+00 -1.00000000e+00 1.00000000e+00
+2 -1.00000000e+00 -1.00000000e+00 0.00000000e+00
+3 -1.00000000e+00 0.00000000e+00 0.00000000e+00
+4 -1.00000000e+00 0.00000000e+00 1.00000000e+00
+5 0.00000000e+00 -1.00000000e+00 1.00000000e+00
+6 0.00000000e+00 -1.00000000e+00 0.00000000e+00
+7 0.00000000e+00 0.00000000e+00 0.00000000e+00
+8 0.00000000e+00 0.00000000e+00 1.00000000e+00
+9 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+10 -1.00000000e+00 0.00000000e+00 -1.00000000e+00
+11 0.00000000e+00 -1.00000000e+00 -1.00000000e+00
+12 0.00000000e+00 0.00000000e+00 -1.00000000e+00
+13 -1.00000000e+00 1.00000000e+00 0.00000000e+00
+14 -1.00000000e+00 1.00000000e+00 1.00000000e+00
+15 0.00000000e+00 1.00000000e+00 0.00000000e+00
+16 0.00000000e+00 1.00000000e+00 1.00000000e+00
+17 -1.00000000e+00 1.00000000e+00 -1.00000000e+00
+18 0.00000000e+00 1.00000000e+00 -1.00000000e+00
+19 1.00000000e+00 -1.00000000e+00 1.00000000e+00
+20 1.00000000e+00 -1.00000000e+00 0.00000000e+00
+21 1.00000000e+00 0.00000000e+00 0.00000000e+00
+22 1.00000000e+00 0.00000000e+00 1.00000000e+00
+23 1.00000000e+00 -1.00000000e+00 -1.00000000e+00
+24 1.00000000e+00 0.00000000e+00 -1.00000000e+00
+25 1.00000000e+00 1.00000000e+00 0.00000000e+00
+26 1.00000000e+00 1.00000000e+00 1.00000000e+00
+27 1.00000000e+00 1.00000000e+00 -1.00000000e+00
+1 1 hex 1 2 3 4 5 6 7 8
+2 1 hex 2 9 10 3 6 11 12 7
+3 1 hex 4 3 13 14 8 7 15 16
+4 1 hex 3 10 17 13 7 12 18 15
+5 1 hex 5 6 7 8 19 20 21 22
+6 2 hex 6 11 12 7 20 23 24 21
+7 2 hex 8 7 15 16 22 21 25 26
+8 2 hex 7 12 18 15 21 24 27 25
+1 1 quad 1 5 8 4
+2 1 quad 4 8 16 14
+3 1 quad 5 19 22 8
+4 1 quad 8 22 26 16
+5 1 quad 13 14 16 15
+6 1 quad 17 13 15 18
+7 1 quad 15 16 26 25
+8 1 quad 18 15 25 27
+9 1 quad 1 4 3 2
+10 1 quad 2 3 10 9
+11 1 quad 4 14 13 3
+12 1 quad 3 13 17 10
+13 1 quad 1 2 6 5
+14 1 quad 2 9 11 6
+15 1 quad 5 6 20 19
+16 1 quad 6 11 23 20
+17 2 quad 9 10 12 11
+18 2 quad 10 17 18 12
+19 2 quad 12 18 27 24
+20 2 quad 21 25 27 24
+21 3 quad 19 22 21 20
+22 3 quad 11 12 24 23
+23 3 quad 20 21 24 23
+24 3 quad 22 26 25 21