From eb38f653f3cc69c1a763abbc799b4724c375764a Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 16 Apr 2009 14:58:17 +0000 Subject: [PATCH] Add contributed Cubit->UCD mesh conversion utility. git-svn-id: https://svn.dealii.org/trunk@18629 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/contrib/mesh_conversion/Main.cc | 50 ++ deal.II/contrib/mesh_conversion/Makefile | 29 ++ .../contrib/mesh_conversion/MeshConversion.cc | 440 ++++++++++++++++++ .../contrib/mesh_conversion/MeshConversion.h | 43 ++ deal.II/contrib/mesh_conversion/README.txt | 46 ++ .../mesh_conversion/mesh/2d/2d_test.cub | Bin 0 -> 22952 bytes .../mesh_conversion/mesh/2d/2d_test.inp | 252 ++++++++++ .../mesh_conversion/mesh/2d/2d_test.ucd | 251 ++++++++++ .../contrib/mesh_conversion/mesh/2d/quad.cub | Bin 0 -> 14372 bytes .../contrib/mesh_conversion/mesh/2d/quad.inp | 29 ++ .../contrib/mesh_conversion/mesh/2d/quad.ucd | 25 + .../mesh_conversion/mesh/3d/test_cube_1.cub | Bin 0 -> 25385 bytes .../mesh_conversion/mesh/3d/test_cube_1.inp | 25 + .../mesh_conversion/mesh/3d/test_cube_1.ucd | 19 + .../mesh/3d/test_cube_pave_1.cub | Bin 0 -> 29571 bytes .../mesh/3d/test_cube_pave_1.inp | 97 ++++ .../mesh/3d/test_cube_pave_1.ucd | 91 ++++ .../mesh/3d/test_cube_two_materials.cub | Bin 0 -> 27699 bytes .../mesh/3d/test_cube_two_materials.inp | 67 +++ .../mesh/3d/test_cube_two_materials.ucd | 63 +++ 20 files changed, 1527 insertions(+) create mode 100755 deal.II/contrib/mesh_conversion/Main.cc create mode 100755 deal.II/contrib/mesh_conversion/Makefile create mode 100755 deal.II/contrib/mesh_conversion/MeshConversion.cc create mode 100755 deal.II/contrib/mesh_conversion/MeshConversion.h create mode 100755 deal.II/contrib/mesh_conversion/README.txt create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/2d_test.cub create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/2d_test.inp create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/2d_test.ucd create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/quad.cub create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/quad.inp create mode 100755 deal.II/contrib/mesh_conversion/mesh/2d/quad.ucd create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.cub create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.inp create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.ucd create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.cub create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.inp create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.ucd create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.cub create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.inp create mode 100755 deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.ucd diff --git a/deal.II/contrib/mesh_conversion/Main.cc b/deal.II/contrib/mesh_conversion/Main.cc new file mode 100755 index 0000000000..2cc001e5cf --- /dev/null +++ b/deal.II/contrib/mesh_conversion/Main.cc @@ -0,0 +1,50 @@ +#include "MeshConversion.h" +#include + +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 /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; +} + +//-------------------------------------------------------------------------------- diff --git a/deal.II/contrib/mesh_conversion/Makefile b/deal.II/contrib/mesh_conversion/Makefile new file mode 100755 index 0000000000..a61d0399ae --- /dev/null +++ b/deal.II/contrib/mesh_conversion/Makefile @@ -0,0 +1,29 @@ +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 "-------------------------------------------------" diff --git a/deal.II/contrib/mesh_conversion/MeshConversion.cc b/deal.II/contrib/mesh_conversion/MeshConversion.cc new file mode 100755 index 0000000000..eb7d2f2fac --- /dev/null +++ b/deal.II/contrib/mesh_conversion/MeshConversion.cc @@ -0,0 +1,440 @@ +#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 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 + // , , , + // ========================================================================== + + if (temp_data[k] == "*NODE") + { + int j = 0; + float temp_float; + + while (from_string (temp_float, temp_data[k + 1 + j*(dimension+1+(dimension==2 ? 1 : 0))], std::dec) == true) + { + // Initilise storage variables + std::vector node (dimension+1); + + // Convert from string to the variable types + for (int i = 0; i < dimension+1; ++i) + from_string (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) > + // , <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 (temp_float, temp_data[k + 3 + j*(data_per_cell)], std::dec) == true) + { + // Initilise storage variables + std::vector 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 (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 + // , + // ============================================== + + 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 (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 quad (data_per_quad); + std::vector 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 MeshConversion::get_global_node_numbers (const int face_cell_no, const int face_cell_face_no) +{ + std::vector 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: + // + // 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 (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; +} + +//-------------------------------------------------------------------------------- diff --git a/deal.II/contrib/mesh_conversion/MeshConversion.h b/deal.II/contrib/mesh_conversion/MeshConversion.h new file mode 100755 index 0000000000..c44a384da7 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/MeshConversion.h @@ -0,0 +1,43 @@ +#ifndef MESH_CONVERSION_H +#define MESH_CONVERSION_H + +//-------------------------------------------------------------------------------- + +#include +#include +#include +#include +#include +#include +#include + +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 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 > node_list; // Stored as [ global node-id (int), x-coord, y-coord, z-coord ] + std::vector< std::vector > cell_list; // Stored as [ material-id (int), node1, node2, node3, node4, node5, node6, node7, node8 ] + std::vector< std::vector > face_list; // Stored as [ sideset-id (int), node1, node2, node3, node4 ] +}; + +#endif // MESH_CONVERSION_H diff --git a/deal.II/contrib/mesh_conversion/README.txt b/deal.II/contrib/mesh_conversion/README.txt new file mode 100755 index 0000000000..40af3acfbf --- /dev/null +++ b/deal.II/contrib/mesh_conversion/README.txt @@ -0,0 +1,46 @@ +==================================================== +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 /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 diff --git a/deal.II/contrib/mesh_conversion/mesh/2d/2d_test.cub b/deal.II/contrib/mesh_conversion/mesh/2d/2d_test.cub new file mode 100755 index 0000000000000000000000000000000000000000..90511d4e049b4279812b56e59a05fb15b7699287 GIT binary patch literal 22952 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 literal 0 HcmV?d00001 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.inp b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.inp new file mode 100755 index 0000000000..6e3a898f13 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.inp @@ -0,0 +1,25 @@ +*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 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.ucd b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.ucd new file mode 100755 index 0000000000..e466858092 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_1.ucd @@ -0,0 +1,19 @@ +# 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 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.cub b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.cub new file mode 100755 index 0000000000000000000000000000000000000000..3222831cf239517c2af9ae329a7599b76e333422 GIT binary patch literal 29571 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 LjhMFS#kBtqXWo8q literal 0 HcmV?d00001 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.inp b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.inp new file mode 100755 index 0000000000..336d4424e0 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.inp @@ -0,0 +1,97 @@ +*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 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.ucd b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.ucd new file mode 100755 index 0000000000..02c7fd4898 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_pave_1.ucd @@ -0,0 +1,91 @@ +# 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 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.cub b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.cub new file mode 100755 index 0000000000000000000000000000000000000000..abfe09593e61d059359a634292dd4792d0c8adb2 GIT binary patch literal 27699 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 literal 0 HcmV?d00001 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.inp b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.inp new file mode 100755 index 0000000000..1e329c1a61 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.inp @@ -0,0 +1,67 @@ +*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 diff --git a/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.ucd b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.ucd new file mode 100755 index 0000000000..3889718dd6 --- /dev/null +++ b/deal.II/contrib/mesh_conversion/mesh/3d/test_cube_two_materials.ucd @@ -0,0 +1,63 @@ +# 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 -- 2.39.5