From 5c31ffac42cf561e43e34f6f0a47df8609678756 Mon Sep 17 00:00:00 2001
From: aheinri5 <Anna@netzkritzler.de>
Date: Sat, 31 Oct 2020 12:43:44 +0100
Subject: [PATCH] Changes to the class structure and some new functions (will
 instead add more issues in the future, just getting used to workflow again)

---
 DESCRIPTION                                   |   5 +-
 NAMESPACE                                     |   5 +-
 R/accepted_input.R                            |   4 +
 R/analyse_xml.R                               | 294 ++++++++
 R/create_gml_R6.R                             | 702 ------------------
 R/create_vtu.R                                |  16 -
 R/{create_gml.R => export_gml.R}              |  71 +-
 R/export_prj.R                                |  85 +++
 R/export_vtu.R                                |  75 ++
 R/generics.R                                  |   8 +
 R/input_add_gml.R                             |  86 +++
 R/input_add_prj.R                             | 135 ++++
 R/input_add_vtu.R                             | 151 ++++
 R/ogs6.R                                      | 145 ++++
 R/user_input.R                                | 224 ++++--
 R/utils.R                                     | 148 +++-
 R/validate_gml.R                              | 161 +++-
 .../HM_flow_free_expansion.pdf                | Bin 0 -> 199414 bytes
 .../flow_free_expansion/cube_1x1x1.gml        |  95 +++
 .../flow_free_expansion/cube_1x1x1.vtu        |  22 +
 .../flow_free_expansion/cube_1x1x1_quad.vtu   |  22 +
 .../flow_free_expansion.prj                   | 268 +++++++
 .../flow_free_expansion_pcs_0.pvd             |   7 +
 ...w_free_expansion_pcs_0_ts_0_t_0.000000.vtu |  47 ++
 ...expansion_pcs_0_ts_1000_t_10000.000000.vtu |  47 ++
 .../playground/cube_1x1x1.vtu                 |  19 +
 .../playground/cube_1x1x1_quad.vtu            |  22 +
 .../playground/x_quad_with_half_hole_q.vtu    |  20 +
 man/GMLObject.Rd                              |  65 --
 man/GMLPoint.Rd                               |  74 --
 man/GMLPoints.Rd                              | 104 ---
 man/GMLPolyline.Rd                            |  64 --
 man/GMLPolylines.Rd                           |  74 --
 man/GMLSurface.Rd                             |  69 --
 man/GMLSurfaceElement.Rd                      |  64 --
 man/GMLSurfaces.Rd                            |  64 --
 man/OGS6.Rd                                   |  74 ++
 man/add_opt_attr.Rd                           |  18 +
 man/add_opt_child.Rd                          |  18 +
 man/adopt_nodes.Rd                            |  16 +
 man/analyse_xml.Rd                            |  21 +
 man/as_node.Rd                                |  14 +
 man/as_node.data_array.Rd                     |  11 +
 man/as_node.r2ogs6_prj_medium_phase.Rd        |  11 +
 man/as_node.r2ogs6_prj_property.Rd            |  11 +
 man/check_for_obj_of_name.Rd                  |  17 +
 man/create_gml_from_obj.Rd                    |  19 -
 man/create_template_prj.Rd                    |  19 -
 man/export_xml_to_file.Rd                     |   8 +-
 man/generate_as_node_from_element.Rd          |  18 +
 man/get_xml_encoding.Rd                       |  17 -
 man/gml_data_to_xml.Rd                        |  16 +-
 man/input_add_gml_obj.Rd                      |  16 +
 man/input_add_gml_points.Rd                   |  16 +
 man/input_add_gml_polylines.Rd                |  16 +
 man/input_add_gml_surfaces.Rd                 |  16 +
 man/input_add_vtu_appended_data.Rd            |  18 +
 man/input_add_vtu_obj.Rd                      |  31 +
 man/input_add_vtu_unstructured_grid.Rd        |  18 +
 man/new_data_array.Rd                         |  21 +
 man/new_gml.Rd                                |  11 +
 man/new_ogs6.Rd                               |  25 +
 man/new_r2ogs6_prj_medium_phase.Rd            |  16 +
 man/new_vtu.Rd                                |  22 +
 man/points_to_xml.Rd                          |   2 +-
 man/polylines_to_xml.Rd                       |   6 +-
 man/prj_data_to_xml.Rd                        |  14 +
 man/surfaces_to_xml.Rd                        |   6 +-
 man/validate_gml_data.Rd                      |  14 +
 man/validate_ogs6.Rd                          |  11 +
 man/validate_points.Rd                        |   7 +-
 man/validate_polylines.Rd                     |  16 +
 man/validate_surface_elements.Rd              |  19 +
 man/validate_surfaces.Rd                      |  16 +
 ..._data_to_xml-open-paren-WIP-close-paren.Rd |  17 +
 man/vtu_data_to_xml.Rd                        |  17 +
 man/vtu_piece_to_xml.Rd                       |  21 +
 my_experimental_cube.gml => test.gml          |   0
 tests/testthat/test-create_gml.R              |  95 ---
 tests/testthat/test-utils.R                   |  47 +-
 tests/testthat/test-validate_gml.R            |  41 +-
 81 files changed, 2711 insertions(+), 1634 deletions(-)
 create mode 100644 R/accepted_input.R
 create mode 100644 R/analyse_xml.R
 delete mode 100644 R/create_gml_R6.R
 delete mode 100644 R/create_vtu.R
 rename R/{create_gml.R => export_gml.R} (65%)
 create mode 100644 R/export_prj.R
 create mode 100644 R/export_vtu.R
 create mode 100644 R/generics.R
 create mode 100644 R/input_add_gml.R
 create mode 100644 R/input_add_prj.R
 create mode 100644 R/input_add_vtu.R
 create mode 100644 R/ogs6.R
 create mode 100644 inst/extdata/flow_free_expansion/HM_flow_free_expansion.pdf
 create mode 100644 inst/extdata/flow_free_expansion/cube_1x1x1.gml
 create mode 100644 inst/extdata/flow_free_expansion/cube_1x1x1.vtu
 create mode 100644 inst/extdata/flow_free_expansion/cube_1x1x1_quad.vtu
 create mode 100644 inst/extdata/flow_free_expansion/flow_free_expansion.prj
 create mode 100644 inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0.pvd
 create mode 100644 inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_0_t_0.000000.vtu
 create mode 100644 inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_1000_t_10000.000000.vtu
 create mode 100644 inst/extdata/flow_free_expansion/playground/cube_1x1x1.vtu
 create mode 100644 inst/extdata/flow_free_expansion/playground/cube_1x1x1_quad.vtu
 create mode 100644 inst/extdata/flow_free_expansion/playground/x_quad_with_half_hole_q.vtu
 delete mode 100644 man/GMLObject.Rd
 delete mode 100644 man/GMLPoint.Rd
 delete mode 100644 man/GMLPoints.Rd
 delete mode 100644 man/GMLPolyline.Rd
 delete mode 100644 man/GMLPolylines.Rd
 delete mode 100644 man/GMLSurface.Rd
 delete mode 100644 man/GMLSurfaceElement.Rd
 delete mode 100644 man/GMLSurfaces.Rd
 create mode 100644 man/OGS6.Rd
 create mode 100644 man/add_opt_attr.Rd
 create mode 100644 man/add_opt_child.Rd
 create mode 100644 man/adopt_nodes.Rd
 create mode 100644 man/analyse_xml.Rd
 create mode 100644 man/as_node.Rd
 create mode 100644 man/as_node.data_array.Rd
 create mode 100644 man/as_node.r2ogs6_prj_medium_phase.Rd
 create mode 100644 man/as_node.r2ogs6_prj_property.Rd
 create mode 100644 man/check_for_obj_of_name.Rd
 delete mode 100644 man/create_gml_from_obj.Rd
 delete mode 100644 man/create_template_prj.Rd
 create mode 100644 man/generate_as_node_from_element.Rd
 delete mode 100644 man/get_xml_encoding.Rd
 create mode 100644 man/input_add_gml_obj.Rd
 create mode 100644 man/input_add_gml_points.Rd
 create mode 100644 man/input_add_gml_polylines.Rd
 create mode 100644 man/input_add_gml_surfaces.Rd
 create mode 100644 man/input_add_vtu_appended_data.Rd
 create mode 100644 man/input_add_vtu_obj.Rd
 create mode 100644 man/input_add_vtu_unstructured_grid.Rd
 create mode 100644 man/new_data_array.Rd
 create mode 100644 man/new_gml.Rd
 create mode 100644 man/new_ogs6.Rd
 create mode 100644 man/new_r2ogs6_prj_medium_phase.Rd
 create mode 100644 man/new_vtu.Rd
 create mode 100644 man/prj_data_to_xml.Rd
 create mode 100644 man/validate_gml_data.Rd
 create mode 100644 man/validate_ogs6.Rd
 create mode 100644 man/validate_polylines.Rd
 create mode 100644 man/validate_surface_elements.Rd
 create mode 100644 man/validate_surfaces.Rd
 create mode 100644 man/vtu_appended_data_to_xml-open-paren-WIP-close-paren.Rd
 create mode 100644 man/vtu_data_to_xml.Rd
 create mode 100644 man/vtu_piece_to_xml.Rd
 rename my_experimental_cube.gml => test.gml (100%)
 delete mode 100644 tests/testthat/test-create_gml.R

diff --git a/DESCRIPTION b/DESCRIPTION
index 9cc1085..7c6f9ed 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -23,5 +23,8 @@ Imports:
     tibble,
     R6,
     stringr,
-    readr
+    readr,
+    assertthat,
+    crayon,
+    snakecase
 RoxygenNote: 7.1.1
diff --git a/NAMESPACE b/NAMESPACE
index ad776bc..b2796f9 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -1,7 +1,8 @@
 # Generated by roxygen2: do not edit by hand
 
-export(export_xml_to_file)
-export(gml_data_to_xml)
+export(input_add_vtu_appended_data)
+export(input_add_vtu_obj)
+export(input_add_vtu_unstructured_grid)
 export(points_to_xml)
 export(polylines_to_xml)
 export(surfaces_to_xml)
diff --git a/R/accepted_input.R b/R/accepted_input.R
new file mode 100644
index 0000000..3d2d951
--- /dev/null
+++ b/R/accepted_input.R
@@ -0,0 +1,4 @@
+#This is a helper script providing an overview of some accepted input parameters.
+
+#============================== .vtu ================================
+vtu_appended_data_valid_encoding_types <- list("binary", "base64")
\ No newline at end of file
diff --git a/R/analyse_xml.R b/R/analyse_xml.R
new file mode 100644
index 0000000..0327e8b
--- /dev/null
+++ b/R/analyse_xml.R
@@ -0,0 +1,294 @@
+#This is a helper function which can be used to combat missing documentation.
+
+#Benchmark HydroMechanics:
+#analyse_xml("D:\\Programme\\OpenGeoSys\\ogs-master-Tests-Data-HydroMechanics/", "\\.vtu$", "VTKFile")
+
+#Personal playground:
+#analyse_xml("./inst/extdata/flow_free_expansion/playground/", "\\.vtu$", "VTKFile")
+
+#' analyse_xml
+#' @description This is a helper function which can be used to combat missing documentation. It looks
+#'  for files in a path which match the given pattern and then attempts to parse them as XML.
+#'  For each occurence of the specified element, it documents its attributes and direct children and prints a little
+#'  summary of its findings at the end.
+#' @param path A path
+#' @param pattern A regex pattern
+#' @param element_name The name of the XML element to look for
+analyse_xml <- function(path, pattern, element_name) {
+
+    xml_files <- list.files(path = path, pattern = pattern, recursive = TRUE)
+
+    #Think about input...
+
+    files_found <- length(xml_files)
+
+    valid_files_count <- 0
+    valid_files_names <- character()
+
+    invalid_files_count <- 0
+    invalid_files_names <- character()
+
+    total_matches <- 0
+
+    attribute_name_counts <- list()
+    child_exists_counts <- list()
+    child_total_counts <- list()
+
+
+
+    if(length(xml_files) == 0) {
+        stop(paste("No files found for defined pattern ", pattern), call. = FALSE)
+    }
+
+    for(i in seq_len(length(xml_files))){
+        #If there's invalid XML somewhere comment out the following for debugging:
+
+        skip_to_next <- FALSE
+
+        out<- tryCatch(
+            {
+                xml_doc <- xml2::read_xml(paste(path, xml_files[[i]], sep = ""), encoding="ISO-8859-1")
+            },
+
+            error = function(cond){
+                invalid_files_count <<- invalid_files_count + 1
+                invalid_files_names <<- c(invalid_files_names, basename(xml_files[[i]]))
+                skip_to_next <<- TRUE
+            }
+        )
+
+        if(skip_to_next){
+            next
+        }
+
+        valid_files_count <- valid_files_count + 1
+        valid_files_names <- c(valid_files_names, basename(xml_files[[i]]))
+
+        doc_matches <- xml2::xml_find_all(xml_doc, paste("//", element_name, sep = ""))
+        total_matches <- total_matches + length(doc_matches)
+
+        #Get attribute names and counts
+        for (j in seq_len(length(doc_matches))){
+            attr_names <- names(xml2::xml_attrs(doc_matches[[j]]))
+
+            for(k in seq_len(length(attr_names))) {
+                if(!attr_names[[k]] %in% names(attribute_name_counts)) {
+                    attribute_name_counts[[attr_names[[k]]]] <- 1
+                }else{
+                    attribute_name_counts[[attr_names[[k]]]] <- attribute_name_counts[[attr_names[[k]]]] + 1
+                }
+            }
+        }
+
+        #Get child names and counts
+        for (j in seq_len(length(doc_matches))){
+            children <- xml2::xml_children(doc_matches[[j]])
+
+            first_found <- list()
+
+            for(k in seq_len(length(children))) {
+
+                child_name <- xml2::xml_name(children[[k]])
+
+                if(!child_name %in% first_found){
+
+                    first_found <- c(first_found, child_name)
+
+
+                    if(!child_name %in% names(child_exists_counts)) {
+                        child_exists_counts[[child_name]] <- 1
+                    }else{
+                        child_exists_counts[[child_name]] <- child_exists_counts[[child_name]] + 1
+                    }
+                }
+
+                if(!child_name %in% names(child_total_counts)) {
+                    child_total_counts[[child_name]] <- 1
+                }else{
+                    child_total_counts[[child_name]] <- child_total_counts[[child_name]] + 1
+                }
+            }
+        }
+    }
+
+    if(invalid_files_count > 0) {
+        cat("I skipped ", invalid_files_count, " malformed XML files matching your search pattern:\n", sep = "")
+        for(i in seq_len(length(invalid_files_names))){
+            cat(invalid_files_names[[i]], "\n")
+        }
+    }
+
+    cat("\nI parsed ", valid_files_count, " valid XML files matching your search pattern:\n", sep = "")
+
+    for(i in seq_len(length(valid_files_names))){
+        cat(valid_files_names[[i]], "\n")
+    }
+
+    cat("\nIn total, I found ", total_matches, " elements named ", element_name, ".\n", sep = "")
+
+    #List attributes
+
+    if(length(attribute_name_counts) > 0) {
+        cat("\nThese are the attributes I found:\n")
+
+        attr_name_count_vector <- unlist(attribute_name_counts, use.names=FALSE)
+        attr_name_occ_vector <- unlist(lapply(attribute_name_counts, function(x){round((x / total_matches), 2)}))
+
+        attr_df <- data.frame(names(attribute_name_counts),
+                              attr_name_count_vector,
+                              attr_name_occ_vector)
+
+        names(attr_df) <- c("name", "occ", "P(occ)")
+        rownames(attr_df) <- seq(1, length(attribute_name_counts))
+
+        print(attr_df)
+    }
+
+    #List child elements
+
+    if(length(child_exists_counts) > 0) {
+
+        cat("\nThese are the child elements I found:\n")
+
+        child_ex_count_vector <- unlist(child_exists_counts, use.names=FALSE)
+        child_ex_occ_vector <- unlist(lapply(child_exists_counts, function(x){round((x / total_matches), 2)}))
+
+        child_tot_count_vector <- unlist(child_total_counts, use.names=FALSE)
+        child_tot_occ_vector <- unlist(lapply(child_total_counts, function(x){round((x / total_matches), 2)}))
+
+        child_df <- data.frame(names(child_exists_counts),
+                               child_ex_count_vector,
+                               child_ex_occ_vector,
+                               child_tot_count_vector,
+                               child_tot_occ_vector)
+
+        names(child_df) <- c("name", "ex_occ", "P(occ)", "total", "total_mean")
+        rownames(child_df) <- seq(1, length(child_exists_counts))
+
+        print(child_df)
+    }
+
+    #Think about output...
+    return(invisible())
+}
+
+
+#Experimental stuff
+generate_from_element <- function(element_name, attrs, children) {
+
+
+}
+
+generate_class_from_element <- function(element_name, class_name = NULL) {
+
+    #Generate name of new class from element name if class_name is not specified
+    if(is.null(class_name)){
+        class_name <- snakecase::to_any_case(element_name, "snake")
+    }
+
+
+    generated_class <- structure(list(), class = class_name)
+
+    return(generated_class)
+}
+
+generate_validator_from_element <- function() {
+
+}
+
+
+#cat(generate_as_node_from_element("DataArray", c("SexyAttr")))
+
+#'generate_as_node_from_element
+#'@description Generates a method for the generic function as_node based on an XML element
+#'@param element_name The name of the XML element to base the function on
+#'@param attrs Optional: A list of element attributes
+#'@param children Optional: A list of element children
+generate_as_node_from_element <- function(element_name,
+                                          attrs = NULL, opt_attrs = NULL,
+                                          children = NULL, opt_children = NULL) {
+
+    attrs_snake_names <- sapply(attrs, snakecase::to_any_case, case = "snake")
+    children_snake_names <- sapply(children, snakecase::to_any_case, case = "snake")
+
+    element_snake_name <- snakecase::to_any_case(element_name, "snake")
+
+    f_name <- paste0("as_node.", element_snake_name)
+
+    #Is the attribute optional?
+    optional = TRUE
+
+    #Is the child a parent itself?
+    is_parent = TRUE
+
+    func_str <- paste0(f_name, " <- function(obj) {\n")
+
+    node_name <- paste0(element_snake_name, "_node")
+
+    func_str <- paste0(func_str, "\t", node_name, " <- list(", element_name," = structure(list())\n")
+
+    #Add attributes
+    for(i in seq_len(length(attrs))){
+        nattr <- attrs_snake_names[[i]]
+        attr <- attrs[[i]]
+
+        if(attr %in% opt_attrs) {
+            func_str <- paste0(func_str, "\t", node_name, " <- add_opt_attr(", node_name,
+                               ", obj$", nattr, ", '", attr, "')\n")
+        }else{
+            func_str <- paste0(func_str, "\t", "attributes(", node_name,")[['", attr, "']] <- obj$",
+                               nattr, "\n")
+        }
+    }
+
+    #Add children
+    for(i in seq_len(length(children))){
+        child_snake <- children_snake_names[[i]]
+        child <- children[[i]]
+
+
+        if(child %in% opt_children) {
+            if(is_parent){
+                func_str <- paste0(func_str, "\t", node_name, " <- add_opt_child(", node_name,
+                                   ", obj$", child_snake, ", '", child, "')\n")
+            }else{
+                func_str <- paste0(func_str, "\t", node_name, " <- add_opt_child(", node_name,
+                                   ", obj$", child_snake, ")\n")
+            }
+        }else{
+            #...(WIP)
+        }
+    }
+
+    func_str <- paste0(func_str, "\t", "return(", node_name, ")\n")
+
+    func_str <- paste0(func_str, "}")
+
+    return(invisible(func_str))
+}
+
+#============================== HELPERS FOR analyse_xml ================================
+
+#'get_optional
+#'@description Helper function to get optional attributes or children from a vector of names and a
+#' vector of occurrence probabilities
+#' @param name_counts
+#' @param occurence_probabilities
+get_optional <- function(names, occurence_probabilities){
+    optional <- character()
+
+    for(i in seq_len(length(names))) {
+        if(occurence_probabilities[[i]] != 1) {
+            optional <- c(optional, names[[i]])
+        }
+    }
+
+    return(optional)
+}
+
+
+#'
+#'@description ...
+child_is_parent <- function() {
+
+}
diff --git a/R/create_gml_R6.R b/R/create_gml_R6.R
deleted file mode 100644
index e08168a..0000000
--- a/R/create_gml_R6.R
+++ /dev/null
@@ -1,702 +0,0 @@
-#This script contains a lot of R6 classes describing various .gml elements.
-
-#You can't build a complete .gml file from this (yet?)!!! Refer to the functions in create_gml instead.
-#The aforementioned functions are also way more practical to create a .gml file.
-#This script was really more of an exercise for getting used to handling XML data and R6 classes.
-
-#============================== Class export functionality ================================
-
-#' Creates a .gml XML file based on an GML object
-#' @param gml_object The specified GML object (of class GMLObject)
-#' @param file_name The name of the file the XML will be written to
-#' @return WIP
-# @examples
-# create_gml_from_obj(GMLPrefabCube$new(), "cube_1x1x1_new.gml")
-# create_gml_from_obj(GMLPrefabSquare$new(), "square_1x1_new.gml")
-create_gml_from_obj <- function(gml_object, file_name) {
-    doc <- xml2::as_xml_document(gml_object$as_node())
-    xml2::write_xml(doc, file_name, options = "format", encoding="ISO-8859-1")
-}
-
-
-#============================== OpenGeoSysGLI wrapper class ================================
-
-#' Class representing a GML object
-#'
-#' @param input_file_name An XML (.xml or, in the case of OpenGeoSys, .prj) file
-#' @return The encoding of the input file
-#'Class describing an entire GML object with a reference file name, points, polylines and surfaces
-GMLObject <- R6::R6Class("GMLObject",
-                         public = list(
-                             initialize = function(name = NULL, points = NULL, polylines = NULL, surfaces = NULL,
-                                                   xmlns_xsi = "http://www.w3.org/2001/XMLSchema-instance",
-                                                   xmlns_ogs = "http://www.opengeosys.org") {
-                                 stopifnot(is.character(xmlns_xsi), length(xmlns_xsi) == 1)
-                                 stopifnot(is.character(xmlns_ogs), length(xmlns_ogs) == 1)
-                                 stopifnot(is.character(name), length(name) == 1)
-                                 stopifnot(checkmate::checkList(points, types = "GMLPoints"), TRUE)
-                                 stopifnot(checkmate::checkList(polylines, types = "GMLPolylines"), TRUE)
-                                 stopifnot(checkmate::checkList(surfaces, types = "GMLSurfaces"), TRUE)
-
-                                 #(add more checks here)
-
-                                 private$.xmlns_xsi <- xmlns_xsi
-                                 private$.xmlns_ogs <- xmlns_ogs
-                                 private$.name <- name
-                                 private$.points <- points
-                                 private$.polylines <- polylines
-                                 private$.surfaces <- surfaces
-                             },
-
-                             as_node = function(...) {
-                                 return(list(OpenGeoSysGLI = structure(list(c(list(name = private$.name),
-                                                                              private$.points$as_node(),
-                                                                              private$.polylines$as_node(),
-                                                                              private$.surfaces$as_node())),
-                                                                       "xmlns:xsi" = private$.xmlns_xsi,
-                                                                       "xmlns:ogs" = private$.xmlns_ogs)))
-                             }
-                         ),
-
-                         active = list(
-                             xmlns_xsi = function(value) {
-                                 if (missing(value)) {
-                                     private$.xmlns_xsi
-                                 } else {
-                                     stop("`$xmlns_xsi` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             xmlns_ogs = function(value) {
-                                 if (missing(value)) {
-                                     private$.xmlns_ogs
-                                 } else {
-                                     stop("`$xmlns_ogs` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             name = function(value) {
-                                 if (missing(value)) {
-                                     private$.name
-                                 } else {
-                                     stop("`$name` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             points = function(value) {
-                                 if (missing(value)) {
-                                     private$.points
-                                 } else {
-                                     stop("`$points` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             polylines = function(value) {
-                                 if (missing(value)) {
-                                     private$.polylines
-                                 } else {
-                                     stop("`$polylines` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             surfaces = function(value) {
-                                 if (missing(value)) {
-                                     private$.surfaces
-                                 } else {
-                                     stop("`$surfaces` is read only", call. = FALSE)
-                                 }
-                             }
-                         ),
-
-                         private = list(
-                             .xmlns_xsi = NULL,
-                             .xmlns_ogs = NULL,
-                             .name = NULL,
-                             .points = NULL,
-                             .polylines = NULL,
-                             .surfaces = NULL
-                         )
-)
-
-
-#============================== Point & Points ================================
-
-
-#'Class describing a single point
-#'
-GMLPoint <- R6::R6Class("GMLPoint",
-                        public = list(
-
-                            initialize = function(id = 0, coordinates = c(0, 0, 0), is_origin = FALSE) {
-                                stopifnot(is.numeric(id), length(id) == 1)
-                                stopifnot(is.numeric(coordinates), length(coordinates) > 0)
-                                stopifnot(is.logical(is_origin), length(is_origin) == 1)
-
-                                private$.id <- id
-                                private$.coordinates <- coordinates
-                                private$.dim <- length(private$.coordinates)
-                                private$.is_origin <- is_origin
-                            },
-
-                            as_list = function(...) {
-                                point_list <- list(id = private$.id,
-                                                   x = private$.coordinates[1], y = private$.coordinates[2], z = private$.coordinates[3])
-
-                                if(private$.is_origin){
-                                    point_list <- c(point_list, name = "origin")
-                                }
-
-                                return(point_list)
-                            },
-
-                            as_node = function(...){
-                                if(private$.is_origin){
-                                    return(list(point = structure(list(), id = private$.id,
-                                                                  x = private$.coordinates[1], y = private$.coordinates[2], z = private$.coordinates[3],
-                                                                  name = "origin")))
-                                }else{
-                                    return(list(point = structure(list(), id = private$.id,
-                                                                  x = private$.coordinates[1], y = private$.coordinates[2], z = private$.coordinates[3])))
-                                }
-                            },
-
-                            print = function(...) {
-                                cat("GMLPoint: \n")
-                                cat("  ID: ", private$.id, "\n", sep = "")
-                                cat("  Coordinates:  ", private$.coordinates,"\n", sep = "\t")
-                                cat("  Dimension:  ", private$.dim, "\n", sep = "")
-                                cat("  Is origin:  ", private$.is_origin, "\n", sep = "")
-
-                                invisible(self)
-                            }
-                        ),
-
-                        active = list(
-                            id = function(value) {
-                                if (missing(value)) {
-                                    private$.id
-                                } else {
-                                    stop("`$id` is read only", call. = FALSE)
-                                }
-                            },
-
-                            coordinates = function(value) {
-                                if (missing(value)) {
-                                    private$.coordinates
-                                } else {
-                                    stop("`$coordinates` is read only", call. = FALSE)
-                                }
-                            },
-
-                            dim = function(value) {
-                                if (missing(value)) {
-                                    private$.dim
-                                } else {
-                                    stop("`$dim` is read only", call. = FALSE)
-                                }
-                            },
-
-                            is_origin = function(value) {
-                                if (missing(value)) {
-                                    private$.is_origin
-                                } else {
-                                    stop("`$is_origin` is read only", call. = FALSE)
-                                }
-                            }
-                        ),
-
-                        private = list(
-                            .id = NULL,
-                            .coordinates = NULL,
-                            .dim = NULL,
-                            .is_origin = NULL
-                        )
-)
-
-
-#'Class describing a set of points
-#'
-GMLPoints <- R6::R6Class("GMLPoints",
-                         public = list(
-                             initialize = function(gml_points) {
-                                 stopifnot(checkmate::checkList(gml_points, types = "GMLPoint"), TRUE)
-                                 private$.ids <- self$validate_ids(gml_points)
-                                 self$validate_dim(gml_points)
-                                 self$validate_coordinates(gml_points)
-
-                                 private$.gml_points <- gml_points
-                             },
-
-                             validate_ids = function(gml_points){
-                                 ids = vector()
-
-                                 for(i in 1:length(gml_points)){
-                                     if(is.element(gml_points[[i]]$id, ids)){
-                                         stop("Duplicate point IDs detected", call. = FALSE)
-                                     }else{
-                                         ids <- c(ids, gml_points[[i]]$id)
-                                     }
-                                 }
-                                 return(ids)
-                             },
-
-                             validate_dim = function(gml_points) {
-                                 for(i in 2:length(gml_points)){
-                                     if(gml_points[[1]]$dim != gml_points[[i]]$dim){
-                                         stop("Point dimensions not eqal to each other", call. = FALSE)
-                                     }
-                                 }
-                             },
-
-                             validate_coordinates = function(gml_points) {
-                                 for(i in 1:(length(gml_points)-1)){
-                                     for(j in (i+1):length(gml_points)){
-                                         if(identical(gml_points[[i]]$coordinates, gml_points[[j]]$coordinates)){
-                                             stop("Overlapping points (with the same coordinates) detected", call. = FALSE)
-                                         }
-                                     }
-                                 }
-                             },
-
-                             as_list = function(...) {
-                                 points_list <- list()
-
-                                 for(i in 1:length(private$.gml_points)){
-                                     points_list <- c(points_list, list(point=private$.gml_points[[i]]$as_list()))
-                                 }
-
-                                 return(points_list)
-                             },
-
-                             as_node = function(...) {
-                                 points_node <- list(points = list())
-
-                                 for(i in 1:length(private$.gml_points)){
-                                     points_node[[1]] <- c(points_node[[1]], private$.gml_points[[i]]$as_node())
-                                 }
-
-                                 return(points_node)
-                             },
-
-                             print = function(...) {
-                                 cat("GMLPoints: \n")
-                                 cat("", "id", "x", "y", "z", "name", "\n", sep = "\t")
-                                 for(i in 1:length(private$.gml_points)) {
-                                     point_list <- private$.gml_points[[i]]$as_list()
-                                     cat("", unlist(point_list),  "\n", sep = "\t")
-                                 }
-                                 invisible(self)
-                             }
-
-                         ),
-
-                         active = list(
-                             ids = function(value) {
-                                 if (missing(value)) {
-                                     private$.ids
-                                 } else {
-                                     stop("`$ids` is read only", call. = FALSE)
-                                 }
-                             },
-
-                             gml_points = function(value) {
-                                 if (missing(value)) {
-                                     private$.gml_points
-                                 } else {
-                                     stop("`$gml_points` is read only", call. = FALSE)
-                                 }
-                             }
-                         ),
-
-                         private = list(
-                             .ids = NULL,
-                             .gml_points = NULL
-                         )
-)
-
-
-#============================== Polyline & Polylines ================================
-
-
-#'Class describing a single polyline
-GMLPolyline <- R6::R6Class("GMLPolyline",
-                           public = list(
-
-                               initialize = function(id = 0, name = "front_left", point1 = 0, point2 = 1) {
-                                   stopifnot(is.numeric(id), length(id) == 1)
-                                   stopifnot(is.character(name), length(name) == 1)
-                                   stopifnot(is.numeric(point1), length(point1) == 1)
-                                   stopifnot(is.numeric(point2), length(point2) == 1)
-                                   stopifnot(point1 != point2)
-
-                                   private$.id <- id
-                                   private$.name <- name
-                                   private$.point1 <- point1
-                                   private$.point2 <- point2
-                               },
-
-                               as_node = function(...) {
-                                   return(list(polyline = structure(list(pnt = list(private$.point1), pnt = list(private$.point2)),
-                                                                    id = private$.id, name = private$.name)))
-                               },
-
-                               print = function(...) {
-                                   cat("GMLPolyline: \n")
-                                   cat("  ID: ", private$.id, "\n", sep = "")
-                                   cat("  Name:  ", private$.name,"\n",sep = "")
-                                   cat("  Point 1:  ", private$.point1, "\n", sep = "")
-                                   cat("  Point 2:  ", private$.point2, "\n", sep = "")
-                                   invisible(self)
-                               }
-                           ),
-
-                           active = list(
-                               id = function(value) {
-                                   if (missing(value)) {
-                                       private$.id
-                                   } else {
-                                       stop("`$id` is read only", call. = FALSE)
-                                   }
-                               },
-
-                               name = function(value) {
-                                   if (missing(value)) {
-                                       private$.name
-                                   } else {
-                                       stop("`$name` is read only", call. = FALSE)
-                                   }
-                               },
-
-                               point1 = function(value) {
-                                   if (missing(value)) {
-                                       private$.point1
-                                   } else {
-                                       stop("`$point1` is read only", call. = FALSE)
-                                   }
-                               },
-
-                               point2 = function(value) {
-                                   if (missing(value)) {
-                                       private$.point2
-                                   } else {
-                                       stop("`$point2` is read only", call. = FALSE)
-                                   }
-                               }
-                           ),
-
-                           private = list(
-                               .id = NULL,
-                               .name = NULL,
-                               .point1 = NULL,
-                               .point2 = NULL
-                           )
-)
-
-
-#'Class describing a set of polylines
-#'
-GMLPolylines <- R6::R6Class("GMLPolylines",
-                            public = list(
-                                initialize = function(gml_polylines) {
-                                    stopifnot(checkmate::checkList(gml_polylines, types = "GMLPolyline"), TRUE)
-                                    self$validate_polylines(gml_polylines)
-
-                                    private$.ids <- self$validate_ids(gml_polylines)
-                                    private$.gml_polylines <- gml_polylines
-                                },
-
-                                validate_ids = function(gml_polylines){
-                                    ids = vector()
-
-                                    for(i in 1:length(gml_polylines)){
-                                        if(is.element(gml_polylines[[i]]$id, ids)){
-                                            stop("Duplicate polyline IDs detected", call. = FALSE)
-                                        }else{
-                                            ids <- c(ids, gml_polylines[[i]]$id)
-                                        }
-                                    }
-                                    return(ids)
-                                },
-
-                                validate_polylines = function(gml_polylines) {
-                                    for(i in 1:(length(gml_polylines)-1)){
-                                        for(j in (i+1):length(gml_polylines)) {
-                                            if((gml_polylines[[i]]$point1 == gml_polylines[[j]]$point1 &&
-                                                gml_polylines[[i]]$point2 == gml_polylines[[j]]$point2) ||
-                                               (gml_polylines[[i]]$point1 == gml_polylines[[j]]$point2 &&
-                                                gml_polylines[[i]]$point2 == gml_polylines[[j]]$point1)
-                                            ){
-                                                stop("Overlapping polylines detected", call. = FALSE)
-                                            }
-                                        }
-                                    }
-                                },
-
-                                as_node = function(...){
-                                    polylines_node <- list(polylines = list())
-
-                                    for(i in 1:length(private$.gml_polylines)){
-                                        polylines_node[[1]] <- c(polylines_node[[1]], private$.gml_polylines[[i]]$as_node())
-                                    }
-
-                                    return(polylines_node)
-                                }
-                            ),
-
-                            active = list(
-                                ids = function(value) {
-                                    if (missing(value)) {
-                                        private$.ids
-                                    } else {
-                                        stop("`$ids` is read only", call. = FALSE)
-                                    }
-                                },
-
-                                gml_polylines = function(value) {
-                                    if (missing(value)) {
-                                        private$.gml_polylines
-                                    } else {
-                                        stop("`$gml_polylines` is read only", call. = FALSE)
-                                    }
-                                }
-                            ),
-
-                            private = list(
-                                .ids = NULL,
-                                .gml_polylines = NULL
-                            )
-)
-
-
-#============================== Surface & Surfaces ================================
-
-
-#'Class describing a single surface element (using 3 point IDs)
-GMLSurfaceElement <- R6::R6Class("GMLSurfaceElement",
-                                 public = list(
-                                     initialize = function(p1 = 0, p2 = 1, p3 = 2) {
-                                         stopifnot(is.numeric(p1), length(p1) == 1)
-                                         stopifnot(is.numeric(p2), length(p2) == 1)
-                                         stopifnot(is.numeric(p3), length(p3) == 1)
-                                         stopifnot(p1 != p2, p1 != p3, p2 != p3)
-
-                                         private$.p1 <- p1
-                                         private$.p2 <- p2
-                                         private$.p3 <- p3
-                                     },
-
-                                     as_list = function(...) {
-                                         return(list(p1 = private$.p1, p2 = private$.p2, p3 = private$.p3))
-                                     },
-
-                                     as_node = function(...){
-                                         return(list(element = structure(list(), p1 = private$.p1, p2 = private$.p2, p3 = private$.p3)))
-                                     }
-                                 ),
-
-                                 active = list(
-                                     p1 = function(value) {
-                                         if (missing(value)) {
-                                             private$.p1
-                                         } else {
-                                             stop("`$p1` is read only", call. = FALSE)
-                                         }
-                                     },
-
-                                     p2 = function(value) {
-                                         if (missing(value)) {
-                                             private$.p2
-                                         } else {
-                                             stop("`$p2` is read only", call. = FALSE)
-                                         }
-                                     },
-
-                                     p3 = function(value) {
-                                         if (missing(value)) {
-                                             private$.p3
-                                         } else {
-                                             stop("`$p3` is read only", call. = FALSE)
-                                         }
-                                     }
-                                 ),
-
-                                 private = list(
-                                     .p1 = NULL,
-                                     .p2 = NULL,
-                                     .p3 = NULL
-                                 )
-)
-
-
-#'Class describing a single surface (using 2 GMLSurfaceElements)
-GMLSurface <- R6::R6Class("GMLSurface",
-                          public = list(
-
-                              initialize = function(id = 0, name = "left",
-                                                    gml_surface_element1 = GMLSurfaceElement$new(),
-                                                    gml_surface_element2 = GMLSurfaceElement$new(p3 = 3)) {
-                                  stopifnot(is.numeric(id), length(id) == 1)
-                                  stopifnot(is.character(name), length(name) == 1)
-
-                                  #check type of surface elements??
-
-                                  self$validate_elements(gml_surface_element1, gml_surface_element2)
-
-                                  private$.id <- id
-                                  private$.name <- name
-                                  private$.element1 <- gml_surface_element1
-                                  private$.element2 <- gml_surface_element2
-                              },
-
-                              validate_elements = function (gml_surface_element1, gml_surface_element2) {
-                                  elem_list1 <- gml_surface_element1$as_list()
-                                  elem_list2 <- gml_surface_element2$as_list()
-                                  equal_count <- 0
-
-                                  for(i in 1:length(elem_list1)) {
-                                      for(j in 1:length(elem_list2)) {
-                                          if(elem_list1[[i]] == elem_list2[[j]]) {
-                                              equal_count <- equal_count + 1
-                                              break
-                                          }
-                                      }
-                                  }
-
-                                  if(equal_count != 2) {
-                                      stop("Invalid surface detected", call. = FALSE)
-                                  }
-                              },
-
-                              as_node = function() {
-                                  return(list(surface = structure(c(private$.element1$as_node(), private$.element2$as_node()),
-                                                                  id = private$.id, name = private$.name)))
-                              }
-                          ),
-
-                          active = list(
-                              id = function(value) {
-                                  if (missing(value)) {
-                                      private$.id
-                                  } else {
-                                      stop("`id` is read only", call. = FALSE)
-                                  }
-                              },
-
-                              name = function(value) {
-                                  if (missing(value)) {
-                                      private$.name
-                                  } else {
-                                      stop("`name` is read only", call. = FALSE)
-                                  }
-                              },
-
-                              element1 = function(value) {
-                                  if (missing(value)) {
-                                      private$.element1
-                                  } else {
-                                      stop("`element1` is read only", call. = FALSE)
-                                  }
-                              },
-
-                              element2 = function(value) {
-                                  if (missing(value)) {
-                                      private$.element2
-                                  } else {
-                                      stop("`$element2` is read only", call. = FALSE)
-                                  }
-                              }
-                          ),
-
-                          private = list(
-                              .id = NULL,
-                              .name = NULL,
-                              .element1 = NULL,
-                              .element2 = NULL
-                          )
-)
-
-
-#'Class describing a set of surfaces
-GMLSurfaces <- R6::R6Class("GMLSurfaces",
-                           public = list(
-
-                               initialize = function(gml_surfaces) {
-                                   stopifnot(checkmate::checkList(gml_surfaces, types = "GMLSurface"), TRUE)
-                                   private$.ids <- self$validate_ids(gml_surfaces)
-                                   #validation of surfaces is a bit more difficult, there is no method for it yet!
-
-                                   private$.gml_surfaces <- gml_surfaces
-                               },
-
-                               validate_ids = function(gml_surfaces){
-                                   ids = vector()
-
-                                   for(i in 1:length(gml_surfaces)){
-                                       if(is.element(gml_surfaces[[i]]$id, ids)){
-                                           stop("Duplicate surface IDs detected", call. = FALSE)
-                                       }else{
-                                           ids <- c(ids, gml_surfaces[[i]]$id)
-                                       }
-                                   }
-                                   return(ids)
-                               },
-
-                               as_node = function(...){
-                                   surfaces_node <- list(surfaces = list())
-
-                                   for(i in 1:length(private$.gml_surfaces)){
-                                       surfaces_node[[1]] <- c(surfaces_node[[1]], private$.gml_surfaces[[i]]$as_node())
-                                   }
-
-                                   return(surfaces_node)
-                               }
-                           ),
-
-                           active = list(
-                               ids = function(value) {
-                                   if (missing(value)) {
-                                       private$.ids
-                                   } else {
-                                       stop("`ids` is read only", call. = FALSE)
-                                   }
-                               },
-
-                               gml_surfaces = function(value) {
-                                   if (missing(value)) {
-                                       private$.gml_surfaces
-                                   } else {
-                                       stop("`gml_surfaces` is read only", call. = FALSE)
-                                   }
-                               }
-                           ),
-
-                           private = list(
-                               .ids = NULL,
-                               .gml_surfaces = NULL
-                           )
-)
-
-#============================== Shared functions ================================
-
-#Helper function to check for the existence of identical objects in a list
-# @param object_list The list to check for duplicates
-# @param object_name Which objects the list consists of (for better error messages)
-# @param warn_only Should function throw error or only a warning?
-# @examples
-# check_for_duplicates(list(3, 0, 4), "point IDs")
-# check_for_duplicates(list(0, 0), "point IDs")
-# check_for_duplicates(list("no", "this", "is", "patrick"), "point names")
-# check_for_duplicates(list("no", "this", "is", "patrick", "patrick"), "point names", TRUE)
-check_for_duplicates <- function(object_list, object_name = NA, warn_only = FALSE) {
-    for(i in 1:(length(object_list)-1)) {
-        for(j in (i+1):length(object_list)) {
-            if(object_list[[i]] == object_list[[j]]) {
-                if(warn_only){
-                    warning(c("Duplicate ", object_name, " detected"), call. = FALSE)
-                }else{
-                    stop(c("Duplicate ", object_name, " detected"), call. = FALSE)
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/R/create_vtu.R b/R/create_vtu.R
deleted file mode 100644
index 1befbde..0000000
--- a/R/create_vtu.R
+++ /dev/null
@@ -1,16 +0,0 @@
-#This script contains various functions to turn data for a .vtu file into the correct XML format
-
-vtu_data_to_xml <- function() {
-
-
-}
-
-
-
-vtu_piece_to_xml <- function(n_points, n_cells, point_data, cell_data, points, cells) {
-    piece_node <- list(piece = structure(list(),
-                                         NumberOfPoints = 0,
-                                         NumberOfCells = 0))
-    return(xml2::as_xml_document(piece_node))
-}
-
diff --git a/R/create_gml.R b/R/export_gml.R
similarity index 65%
rename from R/create_gml.R
rename to R/export_gml.R
index 4fa6a13..f9265d9 100644
--- a/R/create_gml.R
+++ b/R/export_gml.R
@@ -1,38 +1,31 @@
 #This script contains various functions to turn data for a .gml file into the correct XML format
 
-#' Export function
-#' @param xml_data The .gml data (already in XML friendly format)
-#' @param file_name The name of the .gml file to be written
-# @examples
-# export_xml_to_file(my_gml)
-#' @export
-export_xml_to_file <- function(xml_data, file_name) {
-  doc <- xml2::as_xml_document(xml_data)
-  xml2::write_xml(doc, file_name, options = "format", encoding="ISO-8859-1")
-  invisible()
-}
-
 
-#' Wrapper function to create a XML document based on the user input data
-#' @param geo_name The name of the geometry specified by the user
-#' @param points_tibble A tibble containing points
-#' @param polylines_list A list containing polylines
-#' @param surfaces_list A list containing surfaces
+#' Wrapper function to create a .gml XML document based on the user input data
+#' @param gml_obj A gml class object
 #' @return A XML document ready for export to a file
 # @examples (WIP)
-#' @export
-gml_data_to_xml <- function(geo_name, points_tibble, polylines_list, surfaces_list) {
+gml_data_to_xml <- function(gml_obj) {
 
-  #data_node <- xml2::read_xml('<OpenGeoSysGLI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogs="http://www.opengeosys.org"/>')
+  validate_gml_data(gml_obj)
 
   data_node <- xml2::xml_new_root(.value = "OpenGeoSysGLI",
                     "xmlns:xsi" = "http://www.w3.org/2001/XMLSchema-instance",
                     "xmlns:ogs" = "http://www.opengeosys.org")
 
-  xml2::xml_add_child(data_node, xml2::as_xml_document(list(name = list(geo_name))))
-  xml2::xml_add_child(data_node, points_to_xml(points_tibble))
-  xml2::xml_add_child(data_node, polylines_to_xml(polylines_list))
-  xml2::xml_add_child(data_node, surfaces_to_xml(surfaces_list))
+  xml2::xml_add_child(data_node, xml2::as_xml_document(list(name = list(gml_obj$geometry_name))))
+
+  if(!is.null(gml_obj$points)){
+    xml2::xml_add_child(data_node, points_to_xml(gml_obj$points))
+  }
+
+  if(!is.null(gml_obj$polylines)){
+    xml2::xml_add_child(data_node, polylines_to_xml(gml_obj$polylines))
+  }
+
+  if(!is.null(gml_obj$surfaces)){
+    xml2::xml_add_child(data_node, surfaces_to_xml(gml_obj$surfaces))
+  }
 
   return(data_node)
 }
@@ -70,21 +63,21 @@ points_to_xml <- function(point_tibble) {
 }
 
 #' Turns a list of polylines into an XML node
-#' @param polyline_list The specified list
+#' @param polylines A list of polylines
 #' @return An XML node containing the polylines
 #' @examples
 #' my_list <- list(list(name = "front_left", c(0, 1)), list(name = "front_right", c(4, 5)))
 #' polylines_node <- polylines_to_xml(my_list)
 #' @export
-polylines_to_xml <- function(polyline_list) {
+polylines_to_xml <- function(polylines) {
   polylines_node <- list(polylines = list())
 
-  for(i in 1:length(polyline_list)){
+  for(i in 1:length(polylines)){
 
     pnt_list <- list()
 
-    for(j in 1:length(polyline_list[[i]][[2]])) {
-      pnt_list <- c(pnt_list, list(pnt = list(polyline_list[[i]][[2]][[j]])))
+    for(j in 1:length(polylines[[i]][[2]])) {
+      pnt_list <- c(pnt_list, list(pnt = list(polylines[[i]][[2]][[j]])))
     }
 
     polylines_node[[1]] <- c(polylines_node[[1]], list(polyline = structure(pnt_list,
@@ -96,27 +89,27 @@ polylines_to_xml <- function(polyline_list) {
 }
 
 #' Turns a list of surfaces into an XML node
-#' @param surfaces_list The specified list
+#' @param surfaces A list of surfaces
 #' @return An XML node containing the surfaces
 #' @examples
 #' my_list <- list(list(name = "left", c(0, 1, 2), c(0, 3, 2)),
 #' list(name = "right", c(4, 6, 5), c(4, 6, 7)))
 #' surfaces_node <- surfaces_to_xml(my_list)
 #' @export
-surfaces_to_xml <- function(surfaces_list) {
+surfaces_to_xml <- function(surfaces) {
   surfaces_node <- list(surfaces = list())
 
-  for(i in 1:length(surfaces_list)){
+  for(i in 1:length(surfaces)){
     surfaces_node[[1]] <- c(surfaces_node[[1]], list(surface = structure(c(list(element = structure(list(),
-                                                                                                    p1 = surfaces_list[[i]][[2]][[1]],
-                                                                                                    p2 = surfaces_list[[i]][[2]][[2]],
-                                                                                                    p3 = surfaces_list[[i]][[2]][[3]])),
+                                                                                                    p1 = surfaces[[i]][[2]][[1]],
+                                                                                                    p2 = surfaces[[i]][[2]][[2]],
+                                                                                                    p3 = surfaces[[i]][[2]][[3]])),
                                                                            list(element = structure(list(),
-                                                                                                    p1 = surfaces_list[[i]][[3]][[1]],
-                                                                                                    p2 = surfaces_list[[i]][[3]][[2]],
-                                                                                                    p3 = surfaces_list[[i]][[3]][[3]]))),
+                                                                                                    p1 = surfaces[[i]][[3]][[1]],
+                                                                                                    p2 = surfaces[[i]][[3]][[2]],
+                                                                                                    p3 = surfaces[[i]][[3]][[3]]))),
                                                                          id = (i-1),
-                                                                         name = surfaces_list[[i]][[1]])))
+                                                                         name = surfaces[[i]][[1]])))
   }
 
   return(xml2::as_xml_document(surfaces_node))
diff --git a/R/export_prj.R b/R/export_prj.R
new file mode 100644
index 0000000..018bc79
--- /dev/null
+++ b/R/export_prj.R
@@ -0,0 +1,85 @@
+#This script contains various functions to turn data for a .prj file into the correct XML format
+
+#' Wrapper function to create a .prj XML document based on the user input data
+#' @param prj_obj .
+prj_data_to_xml <- function(prj_obj) {
+
+    data_node <- xml2::xml_new_root(.value = "OpenGeoSysProject")
+
+    xml2::xml_add_child(data_node, adopt_nodes("processes", prj_obj$processes))
+    xml2::xml_add_child(data_node, adopt_nodes("media", prj_obj$media))
+    xml2::xml_add_child(data_node, adopt_nodes("time_loop", prj_obj$time_loop))
+    xml2::xml_add_child(data_node, adopt_nodes("parameters", prj_obj$parameters))
+    xml2::xml_add_child(data_node, adopt_nodes("process_variables", prj_obj$process_variables))
+    xml2::xml_add_child(data_node, adopt_nodes("nonlinear_solvers", prj_obj$nonlinear_solvers))
+    xml2::xml_add_child(data_node, adopt_nodes("linear_solvers", prj_obj$linear_solvers))
+
+    return(data_node)
+}
+
+#============================== processes ================================
+
+#Implementation for class r2ogs6_process
+as_node.r2ogs6_prj_process <- function(obj){
+
+    process_node <- list(process = structure(list(name = obj$name,
+                                                  type = obj$type,
+                                                  integration_order = obj$integration_order,
+                                                  dimension = obj$dimension,
+                                                  constitutive_relation = list(type = obj$cr_type,
+                                                                               youngs_modulus = obj$cr_youngs_modulus,
+                                                                               poissons_ratio = obj$cr_poissons_ratio),
+                                                  process_variables = list(displacement = obj$pv_displacement,
+                                                                           pressure = obj$pv_pressure),
+                                                  secondary_variables = list(),
+                                                  specific_body_force = obj$specific_body_force)))
+    return(process_node)
+}
+
+
+#'Method for coercing an r2ogs6_prj_property class object into the structure expected by xml2
+as_node.r2ogs6_prj_property <- function(obj) {
+    return(list(property = list(name = obj$name, type = obj$type)))
+}
+
+
+#============================== media ================================
+
+
+#'Method for coercing an r2ogs_prj_medium_phase class object into the structure expected by xml2
+as_node.r2ogs6_prj_medium_phase <- function(obj) {
+    medium_phase_node <- list(phase = list(type = obj$type),
+                              adopt_nodes("properties", obj$properties))
+    return(medium_phase_node)
+}
+
+
+as_node.r2ogs6_prj_medium <- function(obj) {
+
+    medium_node <- list(medium = list(phases = list(), properties = list()))
+
+    for(i in 1:length(obj$phases)){
+        medium_node[[1]] <- c(medium_node[[1]][[1]], as_node(obj$phases[[i]]))
+    }
+
+    for(i in 1:length(obj$properties)){
+        medium_node[[1]] <- c(medium_node[[1]][[2]], as_node(obj$properties[[i]]))
+    }
+
+    return(medium_node)
+}
+
+
+#============================== time_loop ================================
+
+
+#============================== parameters ================================
+
+
+#============================== process_variables ================================
+
+
+#============================== nonlinear_solvers ================================
+
+
+#============================== linear_solvers ================================
\ No newline at end of file
diff --git a/R/export_vtu.R b/R/export_vtu.R
new file mode 100644
index 0000000..9d618fb
--- /dev/null
+++ b/R/export_vtu.R
@@ -0,0 +1,75 @@
+#This script contains various functions to turn data for a .vtu file into the correct XML format
+
+
+#' Wrapper function to create a .vtu XML document based on the user input data
+#' @param vtu_obj A vtu class object
+#' @return A XML document ready for export to a file
+# @examples (WIP)
+vtu_data_to_xml <- function(vtu_obj) {
+
+    validate_vtu_data(vtu_obj)
+
+    data_node <- list(VTKFile = structure(list(),
+                                          type = vtu_obj$type,
+                                          version = vtu_obj$version,
+                                          byte_order = vtu_obj$byte_order,
+                                          header_type = vtu_obj$header_type))
+
+    data_node <- add_opt_attr(data_node, vtu_obj$compressor, "compressor")
+
+    #Add all the data here... (WIP)
+
+}
+
+
+vtu_unstructured_grid_to_xml <- function() {
+
+    unstructured_grid_node <- list(UnstructuredGrid = list())
+
+    field_data_xml <- adopt_nodes("FieldData", field_data_data_arrays)
+
+}
+
+#'(WIP, change input parameter to piece!!)
+#'@param piece A list consisting of lists of data_array class objects
+vtu_piece_to_xml <- function(number_of_points, number_of_cells, point_data, cell_data, points, cells) {
+
+    piece_node <- list(piece = structure(list(adopt_nodes("PointData", point_data),
+                                              adopt_nodes("CellData", cell_data),
+                                              adopt_nodes("Points", points),
+                                              adopt_nodes("Cells", cells)),
+                                         NumberOfPoints = number_of_points,
+                                         NumberOfCells = number_of_cells))
+
+    return(xml2::as_xml_document(piece_node))
+}
+
+
+#(WIP)
+vtu_data_array_to_xml <- function(data_array) {
+    data_array_node <- list(DataArray = structure(list(),
+                                                  type,
+                                                  Name,
+                                                  format,
+                                                  rangeMin,
+                                                  rangeMax))
+
+
+    if(1){
+
+    }
+
+    return(xml2::as_xml_document(data_array_node))
+}
+
+#'vtu_appended_data_to_xml
+#'@name vtu_appended_data_to_xml
+#'(WIP)
+#'@param appended_data A list object consisting of 2 elements named 'data' and 'encoding'
+#'
+vtu_appended_data_to_xml <- function(appended_data) {
+
+    return(list(AppendedData = structure(list(appended_data[[data]]),
+                                         encoding = appended_data[[encoding]])))
+}
+
diff --git a/R/generics.R b/R/generics.R
new file mode 100644
index 0000000..0574d12
--- /dev/null
+++ b/R/generics.R
@@ -0,0 +1,8 @@
+
+
+
+#'S3 generic function, use to turn class data into XML friendly format
+#'@param obj A class object (must have implementation for as_node)
+as_node <- function(obj) {
+    UseMethod("as_node")
+}
\ No newline at end of file
diff --git a/R/input_add_gml.R b/R/input_add_gml.R
new file mode 100644
index 0000000..19cead3
--- /dev/null
+++ b/R/input_add_gml.R
@@ -0,0 +1,86 @@
+# Functions for adding .gml data
+# input: ogs6 class object
+# output: updated ogs6 class object
+
+#'Class describing the gml file and any parameters defined in one
+new_gml <- function(geometry_name = NULL,
+                    points = NULL,
+                    polylines = NULL,
+                    surfaces = NULL) {
+
+    structure(
+        list(geometry_name = geometry_name,
+             points = points,
+             polylines = polylines,
+             surfaces = surfaces),
+
+        class = "gml")
+}
+
+
+#'Adds an empty gml class object to a ogs6 class object input list
+#'@param ogs6_obj The ogs6 object the gml class object should be added to
+#'@param geometry_name The name of the geometry specified by the gml class object
+input_add_gml_obj <- function(ogs6_obj, geometry_name) {
+
+    if(!is.character(geometry_name)){
+        stop("'geometry_name' is not of type character()", call. = FALSE)
+    }
+
+    if("gml_obj" %in% names(ogs6_obj$sim_input)){
+        stop("ogs6_obj already has a gml object attached to it.", call. = FALSE)
+    }else{
+        ogs6_obj$add_sim_io_input("gml_obj", new_gml(geometry_name = geometry_name))
+    }
+}
+
+
+#'Adds gml points to a ogs6 class object
+#'@param ogs6_obj A ogs6 class object
+#'@param gml_points A tibble of gml points
+input_add_gml_points <- function(ogs6_obj, gml_points) {
+
+    validate_points(gml_points)
+
+    check_for_obj_of_name(ogs6_obj, "gml_obj")
+
+    if(!is.null(ogs6_obj$sim_input[["gml_obj"]]$gml_points)){
+        stop("There are already points defined for the gml object", call. = FALSE)
+    }else{
+        ogs6_obj$set_sim_input_obj_param("gml_obj", "gml_points", gml_points)
+    }
+}
+
+
+#'Adds gml polylines to a ogs6 class object
+#'@param ogs6_obj A ogs6 class object
+#'@param gml_polylines A list of gml polylines
+input_add_gml_polylines <- function(ogs6_obj, gml_polylines) {
+
+    validate_polylines(gml_polylines)
+
+    check_for_obj_of_name(ogs6_obj, "gml_obj")
+
+    if(!is.null(ogs6_obj$sim_input[["gml_obj"]]$gml_polylines)){
+        stop("There are already polylines defined for the gml object", call. = FALSE)
+    }else{
+        ogs6_obj$set_sim_input_obj_param("gml_obj", "gml_polylines", gml_polylines)
+    }
+}
+
+
+#'Adds gml surfaces to a ogs6 class object
+#'@param ogs6_obj A ogs6 class object
+#'@param gml_surfaces A list of gml surfaces
+input_add_gml_surfaces <- function(ogs6_obj, gml_surfaces) {
+
+    validate_surfaces(gml_surfaces)
+
+    check_for_obj_of_name(ogs6_obj, "gml_obj")
+
+    if(!is.null(ogs6_obj$sim_input[["gml_obj"]]$gml_surfaces)){
+        stop("There are already surfaces defined for the gml object", call. = FALSE)
+    }else{
+        ogs6_obj$set_sim_io_input_obj_param("gml_obj", "gml_surfaces", gml_surfaces)
+    }
+}
\ No newline at end of file
diff --git a/R/input_add_prj.R b/R/input_add_prj.R
new file mode 100644
index 0000000..882e704
--- /dev/null
+++ b/R/input_add_prj.R
@@ -0,0 +1,135 @@
+#This script contains various S3 classes, methods and functions to turn data for a .prj file into
+#the correct XML format. (WIP!!!)
+
+
+#============================== Functions to be exported ================================
+
+
+
+
+#============================== processes classes and methods ================================
+
+
+#S3 class representing a .prj process element
+#'@param name The process name
+#'@param type The process type
+#'@param integration_order ...
+#'@param dimension ...
+#'@param constitutive_relation ...
+#'@param process_variables ...
+#'@param secondary_variables A list of secondary variables
+#'@param specific_body_force The specific body force
+new_r2ogs_prj_process <- function(name, type, integration_order, dimension, constitutive_relation,
+                                   process_variables, secondary_variables, specific_body_force) {
+    #validating functions here
+
+    structure(
+        list(
+            name = name,
+            type = type,
+            integration_order = integration_order,
+            dimension = dimension,
+            constitutive_relation = constitutive_relation,
+            process_variables = process_variables,
+            secondary_variables = secondary_variables,
+            specific_body_force = specific_body_force,
+        ),
+        class = "r2ogs_prj_process"
+    )
+}
+
+
+
+
+
+#============================== media classes and methods ================================
+
+new_r2ogs_prj_property <- function(name = character(), type = character(), value = double()){
+    #Validate...
+
+
+    structure(
+        list(
+            name = name,
+            type = type,
+            value = value
+        ),
+        class = "r2ogs6_prj_property"
+    )
+}
+
+
+
+
+#'Defines a .prj medium phase element
+#'@param type A string specifying the medium type (valid types: ...)
+#'@param properties A list of properties (see ?r2ogs6_property for more info)
+new_r2ogs6_prj_medium_phase <- function(type = character(), properties = list()) {
+
+    stopifnot(is.character(type), length(type) == 1)
+
+    structure(
+        list(
+            type = type,
+            properties = properties
+        ),
+        class = "r2ogs6_prj_medium_phase"
+    )
+}
+
+
+
+
+#'
+#'@param phases A list of medium phases
+#'@param properties A list of medium properties
+new_r2ogs6_prj_medium <- function(phases = list(), properties = list()) {
+    #Validate
+
+    stopifnot(is.list(phases))
+    stopifnot(is.list(properties))
+
+    structure(
+        list(
+            phases = phases,
+            properties = properties
+        ),
+        class = "r2ogs6_prj_medium"
+    )
+}
+
+
+
+
+#============================== time_loop classes and methods ================================
+
+#============================== parameters classes and methods ================================
+
+
+new_r2ogs6_prj_parameter <- function(name = character(), type = character(), value = double()) {
+    #Validate
+
+    structure(
+        list(
+            name = name,
+            type = type,
+            value = value
+        ),
+        class = "r2ogs6_prj_parameter"
+    )
+}
+
+
+
+#============================== process_variables classes and methods ================================
+
+
+#============================== nonlinear_solvers classes and methods ================================
+
+#============================== linear_solvers classes and methods ================================
+
+
+
+
+
+
diff --git a/R/input_add_vtu.R b/R/input_add_vtu.R
new file mode 100644
index 0000000..867713c
--- /dev/null
+++ b/R/input_add_vtu.R
@@ -0,0 +1,151 @@
+# Functions for adding .vtu data
+# input: ogs6 class object
+# output: updated ogs6 class object
+
+#'new_vtu
+#'@description S3 class constructor, returns S3 class describing the .vtu file and any parameters defined in it
+#'@param type The type of the vtu file (e. g. "UnstructuredGrid")
+#'@param version The version of the .vtu file (e. g. 1.0)
+#'@param byte_order Either "LittleEndian" or "BigEndian"
+#'@param header_type The header type (e. g. "UInt32")
+#'@param compressor Optional: The compressor to be used
+new_vtu <- function(type,
+                    version,
+                    byte_order,
+                    header_type,
+                    compressor = NULL) {
+
+    assertthat::assert_that(assertthat::is.string(type))
+    assertthat::assert_that(is.double(version))
+    assertthat::assert_that(assertthat::is.string(byte_order))
+    assertthat::assert_that(assertthat::is.string(header_type))
+
+    if(!is.null(compressor)){
+        assertthat::assert_that(assertthat::is.string(compressor))
+    }
+
+    structure(
+        list(unstructured_grid = NULL,
+             appended_data = NULL),
+
+        type = type,
+        version = version,
+        byte_order = byte_order,
+        header_type = header_type,
+        compressor = compressor,
+        class = "vtu")
+}
+
+#'new_data_array
+#'@description S3 class constructor, returns S3 class describing a .vtu DataArray element
+#'@param type
+#'@param name
+#'@param format
+#'@param range_min
+#'@param range_max
+#'@param number_of_components
+#'@param number_of_tuples
+#'@param offset
+#'@param data
+new_data_array <- function(type, name, format, range_min, range_max,
+                           number_of_components = NULL, number_of_tuples = NULL,
+                           offset = NULL, data = NULL) {
+    structure(
+        list(type,
+             name,
+             format,
+             range_min,
+             range_max,
+             offset,
+             number_of_components,
+             number_of_tuples,
+             data),
+        class = "data_array"
+    )
+}
+
+#'as_node.data_array
+#'@description Implementation of the generic function as_node for data_array class objects
+as_node.data_array <- function(obj) {
+
+    data_array_node <- list(DataArray = structure(list(), type = obj$type, Name = obj$name))
+
+    data_array_node <- add_opt_child(data_array_node, obj$data)
+
+    data_array_node <- add_opt_attr(data_array_node, obj$number_of_components, "NumberOfComponents")
+    data_array_node <- add_opt_attr(data_array_node, obj$number_of_tuples, "NumberOfTuples")
+
+    attributes(data_array_node)[["format"]] <- obj$format
+    attributes(data_array_node)[["RangeMin"]] <- obj$range_min
+    attributes(data_array_node)[["RangeMax"]] <- obj$range_max
+
+    data_array_node <- add_opt_attr(data_array_node, obj$offset, "offset")
+
+    return(data_array_node)
+}
+
+
+#'input_add_vtu_obj
+#'@description Adds an empty vtu class object to a ogs6 class object input.
+#'@param ogs6_obj The ogs6 object the vtu class object should be added to
+#'@param type The type of the .vtu file (e. g. "UnstructuredGrid")
+#'@param version The version of the .vtu file (e. g. 1.0)
+#'@param byte_order Either "LittleEndian" or "BigEndian"
+#'@param header_type The header type (e. g. "UInt32")
+#'@param compressor Optional: The compressor to be used
+#'@export
+input_add_vtu_obj <- function(ogs6_obj, type, version, byte_order, header_type, compressor = NULL) {
+
+    if("vtu_obj" %in% names(ogs6_obj$sim_input)){
+        stop("ogs6_obj already has a vtu object attached to it.", call. = FALSE)
+    }else{
+        ogs6_obj$add_sim_input("vtu_obj", new_vtu(type = type,
+                                                  version = version,
+                                                  byte_order = byte_order,
+                                                  header_type = header_type,
+                                                  compressor = compressor))
+    }
+}
+
+
+#'input_add_vtu_unstructured_grid
+#'@description Adds .vtu UnstructuredGrid to a ogs6 class object
+#'@param ogs6_obj The ogs6 object the .vtu UnstructuredGrid should be added to
+#'@param piece A Piece (WIP)
+#'@param field_data FieldData (WIP)
+#'@export
+input_add_vtu_unstructured_grid <- function(ogs6_obj, piece, field_data = NULL) {
+
+    #validator missing...
+
+    check_for_obj_of_name(ogs6_obj, "vtu_obj")
+
+    #...
+    set_sim_input_obj_param("vtu_obj", "unstructured_grid", list(field_data = field_data,
+                                                                 piece = piece))
+}
+
+
+#'input_add_vtu_appended_data
+#'@description Adds .vtu AppendedData to a ogs6 class object
+#'@param ogs6_obj The ogs6 object the .vtu AppendedData should be added to
+#'@param encoding How the AppendedData is encoded
+#'@param data The actual data in the specified encoding
+#'@export
+input_add_vtu_appended_data <- function(ogs6_obj, encoding, data) {
+
+    #validator missing...
+
+    check_for_obj_of_name(ogs6_obj, "vtu_obj")
+
+    assertthat::assert_that(assertthat::is.string(encoding))
+    assertthat::assert_that(assertthat::is.string(data))
+
+    if(!(encoding %in% vtu_appended_data_valid_encoding_types)) {
+        stop("Invalid encoding for vtu appended data. For an overview of valid
+             types refer to ?vtu_appended_data_valid_encoding_types", call. = FALSE)
+    }
+
+    set_sim_input_obj_param("vtu_obj", "appended_data", list(encoding = encoding,
+                                                             data = data))
+}
\ No newline at end of file
diff --git a/R/ogs6.R b/R/ogs6.R
new file mode 100644
index 0000000..201b068
--- /dev/null
+++ b/R/ogs6.R
@@ -0,0 +1,145 @@
+
+
+#============================== R6 ================================
+
+#'Constructor for the OGS6 base class
+OGS6 <- R6::R6Class("OGS6",
+  public = list(
+
+    initialize = function(sim_name,
+                          sim_id,
+                          sim_path) {
+
+      # Basic validation
+      assertthat::assert_that(assertthat::is.string(sim_name))
+      assertthat::assert_that(is.integer(sim_id))
+      assertthat::assert_that(assertthat::is.string(sim_path))
+
+        private$.sim_input <- list()
+        private$.sim_output <- list()
+
+        private$.sim_name <- sim_name
+        private$.sim_id <- sim_id
+        private$.sim_path <- sim_path
+    },
+
+    add_sim_input = function(name, value) {
+        private$.sim_input[[name]] <- value
+    },
+
+    set_sim_input_obj_param = function(obj_name, obj_param_name, value) {
+        private$.sim_input[[obj_name]]$obj_param_name <- value
+    },
+
+    add_sim_output = function(name, value) {
+        private$.sim_output[[name]] <- value
+    }
+
+  ),
+
+  active = list(
+      sim_input = function(value) {
+          if (missing(value)) {
+              private$.sim_input
+          } else {
+              stop("To modify `$sim_input`, use set_sim_input().", call. = FALSE)
+          }
+      },
+
+      sim_output = function(value) {
+        if (missing(value)) {
+          private$.sim_output
+        } else {
+          stop("To modify `$sim_output`, use set_sim_output().", call. = FALSE)
+        }
+      },
+
+      sim_name = function(value) {
+          if (missing(value)) {
+              private$.sim_name
+          } else {
+              stop("`$sim_name` is read only", call. = FALSE)
+          }
+      },
+
+      sim_id = function(value) {
+          if (missing(value)) {
+              private$.sim_id
+          } else {
+              stop("`$sim_id` is read only", call. = FALSE)
+          }
+      },
+
+      sim_path = function(value) {
+          if (missing(value)) {
+              private$.sim_path
+          } else {
+              stop("`$sim_path` is read only", call. = FALSE)
+          }
+      }
+
+  ),
+
+  private = list(
+      .sim_input = NULL,
+      .sim_output = NULL,
+      .sim_name = NULL,
+      .sim_id = NULL,
+      .sim_path = NULL
+  )
+)
+
+
+
+
+#============================== S3 ================================
+
+#'Constructor for the ogs6 base class
+#'
+#'@param sim_io ...
+#'@param sim_name A string value representing the simulation name
+#'@param sim_id An integer value representing the simulation ID
+#'@param sim_path A string value describing the path where the IO files will be saved
+new_ogs6 <- function(sim_io = list(input = list(), output = list()),
+                     sim_name = character(),
+                     sim_id = integer(),
+                     sim_path = character()) {
+
+    # Basic validation
+    if (!is.character(sim_name)) {
+        stop("'sim_name' has to be of type character", call. = FALSE)
+    }
+
+    if (!is.integer(sim_id)) {
+        stop("'sim_id' has to be of type integer", call. = FALSE)
+    }
+
+    if (!is.character(sim_path)) {
+        stop("'sim_path' has to be of type character", call. = FALSE)
+    }
+
+    structure(
+        sim_io,
+        sim_name = sim_name,
+        sim_id = sim_id,
+        sim_path = sim_path,
+        class = "ogs6"
+    )
+}
+
+#' Validating functions for an ogs6 class object (to be run before a simulation is started)
+validate_ogs6 <- function(ogs6_obj) {
+
+
+    if (!class(ogs6_obj) == "ogs6") {
+        stop("ogs6_obj is not of class 'ogs6' ", call. = FALSE)
+    }
+    if (is.null(x$input)) {
+        stop("'input' list missing.", call. = FALSE)
+    }
+    if (is.null(x$output)) {
+        stop("'output' list missing.", call. = FALSE)
+    }
+
+}
+
diff --git a/R/user_input.R b/R/user_input.R
index 2acfb73..7c317fb 100644
--- a/R/user_input.R
+++ b/R/user_input.R
@@ -1,67 +1,179 @@
 #This is where the user defines his data.
 
-#============================== Data for GML file ================================
-
-#Specify some data (source: HydroComponent Benchmarks -> IdealGas -> flow_free_expansion -> cube_1x1x1.gml)
-
-#The name of the desired geometry (will become first XML child under root)
-geo_name <- "cube_1x1x1_geometry"
-
-#Some points (will become second XML child under root)
-my_gml_points <- tibble::tibble(x = c(0, 0, 0, 0, 1, 1, 1, 1),
-                            y = c(0, 0, 1, 1, 0, 0, 1, 1),
-                            z = c(0, 1, 1, 0, 0, 1, 1, 0),
-                            name = c("origin", rep("", 7)))
-
-#Some polylines (will become third XML child under root)
-my_gml_polylines <- list(list(name = "front_left", c(0, 1)),
-                     list(name = "front_right", c(4, 5)),
-                     list(name = "front_bottom", c(0, 4)),
-                     list(name = "front_top", c(1, 5)),
-                     list(name = "bottom_left", c(0, 3)),
-                     list(name = "bottom_right", c(4, 7)),
-                     list(name = "top_left", c(1, 2)),
-                     list(name = "top_right", c(5, 6)),
-                     list(name = "back_left", c(2, 3)),
-                     list(name = "back_right", c(6, 7)),
-                     list(name = "back_bottom", c(3, 7)),
-                     list(name = "back_top", c(2, 6)))
-
-#Some surfaces (will become fourth XML child under root)
-my_gml_surfaces <- list(list(name = "left", c(0, 1, 2), c(0, 3, 2)),
-                    list(name = "right", c(4, 6, 5), c(4, 6, 7)),
-                    list(name = "top", c(1, 2, 5), c(5, 2, 6)),
-                    list(name = "bottom", c(0, 3, 4), c(4, 3, 7)),
-                    list(name = "front", c(0, 1, 4), c(4, 1, 5)),
-                    list(name = "back", c(2, 3, 6), c(6, 3, 7)))
-
-
-#============================== Data for VTU file ================================
-
-
-my_vtk_specification <- list(type="UnstructuredGrid",
-                             version="0.1",
-                             byte_order="LittleEndian",
-                             header_type="UInt32",
-                             compressor="vtkZLibDataCompressor")
-
-
-
-my_vtk_pieces <- list()
+
+#============================== SET UP SIMULATION OBJECT ================================
+
+# my_ogs6_obj <- new_ogs6( sim_io = list(input = list(), output = list()),
+#                          sim_name = "my_sim",
+#                          sim_id = 1L,
+#                          sim_path = "simulations/")
+
+
+my_ogs6_obj <- OGS6$new( sim_name = "my_sim",
+                         sim_id = 1L,
+                         sim_path = "simulations/")
+
+
+#============================== ADD .gml DATA ================================
+
+#(source: HydroComponent Benchmarks -> IdealGas -> flow_free_expansion -> cube_1x1x1.gml)
+
+# #Add gml object and give it a name
+# input_add_gml_obj(my_ogs6_obj, "cube_1x1x1_geometry")
+#
+
+
+
+# #Add some points
+input_add_gml_points(my_ogs6_obj, tibble::tibble(x = c(0, 0, 0, 0, 1, 1, 1, 1),
+                                                 y = c(0, 0, 1, 1, 0, 0, 1, 1),
+                                                 z = c(0, 1, 1, 0, 0, 1, 1, 0),
+                                                 name = c("origin", rep("", 7))))
+#
+# #Add some polylines
+# input_add_gml_polylines(my_ogs6_obj, list(list(name = "front_left", c(0, 1)),
+#                                           list(name = "front_right", c(4, 5)),
+#                                           list(name = "front_bottom", c(0, 4)),
+#                                           list(name = "front_top", c(1, 5)),
+#                                           list(name = "bottom_left", c(0, 3)),
+#                                           list(name = "bottom_right", c(4, 7)),
+#                                           list(name = "top_left", c(1, 2)),
+#                                           list(name = "top_right", c(5, 6)),
+#                                           list(name = "back_left", c(2, 3)),
+#                                           list(name = "back_right", c(6, 7)),
+#                                           list(name = "back_bottom", c(3, 7)),
+#                                           list(name = "back_top", c(2, 6))))
+#
+# #Add some surfaces
+# input_add_gml_surfaces(my_ogs6_obj, list(list(name = "left", c(0, 1, 2), c(0, 3, 2)),
+#                                          list(name = "right", c(4, 6, 5), c(4, 6, 7)),
+#                                          list(name = "top", c(1, 2, 5), c(5, 2, 6)),
+#                                          list(name = "bottom", c(0, 3, 4), c(4, 3, 7)),
+#                                          list(name = "front", c(0, 1, 4), c(4, 1, 5)),
+#                                          list(name = "back", c(2, 3, 6), c(6, 3, 7))))
+
+
+#============================== ADD .vtu DATA ================================
+
+#(source: HydroComponent Benchmarks -> IdealGas -> flow_free_expansion -> cube_1x1x1.vtu)
+
+# #Add vtu object and give it a name
+# input_add_vtu_obj(my_ogs6_obj, list(type="UnstructuredGrid",
+#                              version="0.1",
+#                              byte_order="LittleEndian",
+#                              header_type="UInt32",
+#                              compressor="vtkZLibDataCompressor"))
+#
+# #Add an unstructured grid to the vtu object
+# input_add_vtu_unstructured_grid(my_ogs6_obj, list())
+#
+# #Add appended data to the vtu object
+# input_add_vtu_appended_data(my_ogs6_obj, encoding = "", data = "")
+#
+# #... (WIP)
+
+
+#============================== ADD .prj DATA ================================
+
+#There is no documentation for the constructors (yet), but with classes instead of just lists,
+#the user could get way more info (also, I can build some nice validator friends)
+
+
+#Define processes (refer to ?new_r2ogs6_process for info on valid arguments)
+# processes <- list(new_r2ogs_prj_process(name = "HM",
+#                                  type = "HYDRO_MECHANICS",
+#                                  integration_order = 3,
+#                                  dimension = 3,
+#                                  constitutive_relation = list(type = "LinearElasticIsotropic",
+#                                                               youngs_modulus = "E",
+#                                                               poissons_ratio = "nu"),
+#                                  process_variables = list(displacement = "displacement",
+#                                                           pressure = "pressure"),
+#                                  secondary_variables = list(stub = 0),
+#                                  specific_body_force = c(0, 0, 0))
+#                   )
+
+
+#Define media (refer to ?new_r2ogs6_prj_medium for info on valid arguments)
+media <- list(new_r2ogs6_prj_medium(phases = list(phase = list(type = "Gas",
+                                                       properties = list(property = list(name = "viscosity",
+                                                                                         type = "Constant",
+                                                                                         value = 1e-5)))
+                                                  ),
+                                    properties = list(property = list(name = "reference_temperature",
+                                                              type = "Constant",
+                                                              value = 293.15)
+                                                      )
+                            )
+              )
+
+
+time_loop <- list(processes = list(),
+                  output = list(type = "VTK",
+                                prefix = "",
+                                timesteps = list(),
+                                variables = list(),
+                                suffix = "_ts_{:timestep}_t_{:time}")
+                  )
+
+
+#Define parameters (refer to ?new_r2ogs6_parameter for info on valid arguments)
+parameters <- list(new_r2ogs6_prj_parameter(name = "E",
+                                    type = "Constant",
+                                    value = 10e9)
+                   )
+
+
+#Define process variables
+process_variables <- list(process_variable = list(name = "displacement",
+                                                  components = 3,
+                                                  order = 2,
+                                                  initial_condition = "displacement0",
+                                                  boundary_conditions = list(boundary_condition = list()))
+                          )
+
+
+#Define nonlinear solvers
+nonlinear_solvers <- list(nonlinear_solver = list(name = "basic_newton",
+                                                  type = "Newton",
+                                                  max_iter = 50,
+                                                  linear_solver = "general_linear_solver")
+                          )
+
+
+linear_solvers <- list(linear_solver = list(name = "general_linear_solver",
+                                            lis = "-i bicgstab -p ilu -tol 1e-16 -maxiter 10000",
+                                            eigen = list(solver_type = "BiCGSTAB",
+                                                         precon_type = "ILUT",
+                                                         max_iteration_step = 10000,
+                                                         error_tolerance = 1e-16))
+                       )
+
 
 
+#============================== Execution (to be moved to another file later!) ================================
+
+#============================== .gml ================================
+
+#Call ogs6 object validator functions
+#...
+
+# #Now export all necessary files
+# my_gml_xml <- gml_data_to_xml(geo_name, my_gml_points, my_gml_polylines, my_gml_surfaces)
+#
+#
+# #Let's export that as a new .gml XML file
+# export_xml_to_file(my_gml_xml, "test.gml")
 
+#Now the .gml XML file should be in the r2ogs6 folder (not a perfect location but ok for a little test)
 
-#============================== Execution ================================
+#The only thing missing from the new file compared to the original is the stylesheet declaration...
+#I haven't found a way to add that one yet, but it should also be possible somehow
 
-#Turn GML data into XML structure
-my_gml_xml <- gml_data_to_xml(geo_name, my_gml_points, my_gml_polylines, my_gml_surfaces)
 
+#============================== RUN SIMULATION ================================
 
-#Let's export that as a new .gml XML file
-export_xml_to_file(my_gml_xml, "my_experimental_cube.gml")
+#Calls ogs6 object validator functions, exports all necessary files and starts OpenGeoSys6
 
-#Now the .gml XML file should be in the r2ogs6 folder (not a perfect location but ok for a little test)
+#run_simulation(my_ogs6_obj)
 
-#The only thing missing from the new file compared to the original is the stylesheet declaration...
-#I haven't found a way to add that one yet, but it should also be possible somehow
\ No newline at end of file
diff --git a/R/utils.R b/R/utils.R
index de33ec3..bc95e15 100644
--- a/R/utils.R
+++ b/R/utils.R
@@ -1,7 +1,3 @@
-
-default_xml_version <- "1.0"
-default_xml_encoding <- "ISO-8859-1"
-
 #============================== GENERAL UTILITY (copy playground) ================================
 
 ###Stub
@@ -23,51 +19,129 @@ default_xml_encoding <- "ISO-8859-1"
 #   )
 # )
 
-#============================== XML UTILITY FUNCTIONS ================================
 
-#' Reads the encoding of an XML file
-#'
-#' @param input_file_name An XML (.xml or, in the case of OpenGeoSys, .prj) file
-#' @return The encoding of the input file
+#============================== VALIDATION UTILITY ================================
+
+#'check_for_obj_of_name
+#'@description Checks if a object with the given name was already defined for a ogs6 object and if not,
+#' tells user to initialize one
+#'@param ogs6_obj The ogs6 object to check
+#'@param obj_name The name of the object to check for
+check_for_obj_of_name <- function(ogs6_obj, obj_name) {
+
+  if(!obj_name %in% names(ogs6_obj$sim_input)){
+    stop(paste("There is no object named ", obj_name," for your ogs6 object yet.\n
+               You can initialize one by calling input_add_", obj_name ,
+               "() (read up on the required parameters)"),
+         call. = FALSE)
+    }
+}
+
+
+#============================== XML UTILITY ================================
+
+
+#' export_xml_to_file
+#' @description Export function
+#' @param xml_data The data to be exported (already in XML friendly format)
+#' @param file_name The name of the file to be written
 # @examples
-# input_file_encoding <- get_xml_encoding("file.xml")
-# input_file_encoding <- get_xml_encoding("file.prj")
-get_xml_encoding <- function(input_file_name) {
-  input_file <- file(input_file_name, "r")
-  first_line <- readLines(input_file, n=1)
-  close(input_file)
-  decl <- stringr::str_split(first_line, '"', simplify = TRUE)
+# export_xml_to_file(...)
+export_xml_to_file <- function(xml_data, file_name) {
+  doc <- xml2::as_xml_document(xml_data)
+  xml2::write_xml(doc, file_name, options = "format", encoding="ISO-8859-1")
+  invisible()
+}
 
-  xml_encoding <- default_xml_encoding
 
-  if(length(decl) == 5 && decl[1] == "<?xml version=" && decl[3] == " encoding=" && decl[5]=="?>"){
-    xml_encoding <- decl[4]
-    cat(paste("Valid XML declaration in first line of input file found.\nDetected encoding ", xml_encoding))
+#' adopt_nodes
+#' @description A helper function for creating parent nodes using the generic function as_node
+#' @param parent_name The name of the new parent node
+#' @param objs A list of class objects (class must have method for generic function as_node)
+adopt_nodes <- function(parent_name, objs) {
+  parent_node <- list(parent_name = list())
 
-  }else{
-    cat("XML declaration not as expected. Example for valid declaration:\n")
-    cat('<?xml version="1.0" encoding="UTF-8"?>\n')
-    cat(paste("I will use my default value of XML encoding ",  default_xml_encoding, ".\n"))
+  for(i in 1:length(objs)) {
+    parent_node <- c(parent_node[[1]], as_node(objs[[i]]))
+  }
 
+  return(xml2::as_xml_document(parent_node))
+}
+
+#'add_opt_attr
+#'@description Adds an optional attribute to a node attribute list
+#'@param node The node the optional attribute should be added to
+#'@param obj_parameter The value of the attribute to be added
+#'@param attr_name The name of the attribute to be added
+add_opt_attr <- function(node, obj_parameter, attr_name) {
+  if(!is.null(obj_parameter)) {
+    attributes(node[[1]])[[attr_name]] <- obj_parameter
   }
-  return(xml_encoding)
+
+  return(node)
 }
 
 
-#' Creates a template project file based on the XML structure and attributes of an existing project file.
-#' @param existing_prj An existing .prj file to use as a template for the structure and attributes
-#' @param template_prj The path where the template should be saved
-#' @return The newly created template project file
-# @examples
-# blank_prj_file <- create_template_prj("file.prj")
-create_template_prj <- function(existing_prj, template_prj) {
-  xml_input <- xml2::read_xml(existing_prj)
+#'add_opt_child
+#'@description Adds an optional child to a node child list
+#'@param node The node the optional child should be added to
+#'@param obj_parameter The value of the child to be added
+#'@param child_name Optional: If it's a child node instead of just a value, the name of the child to be added
+add_opt_child <- function(node, obj_parameter, child_name = NULL) {
+
+  if(!is.null(obj_parameter)) {
+    if(!is.null(child_name) && length(node[[1]]) == length(names(node[[1]]))) {
+      node[[1]] <- c(node[[1]], list(child_name = obj_parameter))
+    }else if(length(node[[1]]) == 0) {
+      node[[1]] <- list(obj_parameter)
+    }else{
+      stop(paste("You're trying to add a value (an unnamed child node) to a node
+                 which already has a value."), call. = FALSE)
+    }
 
-  #Empty text nodes
-  text_nodes<-xml2::xml_find_all(xml_input, "//text()")
-  xml2::xml_set_text(text_nodes, "")
+  }
 
-  xml2::write_xml(xml_input, template_prj, options = "format", encoding=get_xml_encoding(existing_prj))
+  return(node)
 }
 
 
+
+
+#================================Test if S3 object in R6 class inherits reference semantics
+
+# A <- R6::R6Class("A",
+#   public = list(
+#
+#       b_obj = NULL,
+#
+#       initialize = function(b_obj) {
+#           self$b_obj <- b_obj
+#         }
+#   )
+# )
+#
+# b <- function(x){
+#     structure(x,
+#               class = "b")
+# }
+#
+# mod_func_a <- function(a_obj){
+#     a_obj$b_obj$x <- 100
+# }
+#
+# a_obj <- A$new(b(42))
+#
+# mod_func_a(a_obj)
+#
+# a_obj$b_obj$x
+#
+#
+# mod_func_b <- function(b_obj){
+#     b_obj$x <- 100
+# }
+#
+# b_obj <- b(42)
+#
+# mod_func_b(b_obj)
+#
+# b_obj
diff --git a/R/validate_gml.R b/R/validate_gml.R
index 33111c9..beff91f 100644
--- a/R/validate_gml.R
+++ b/R/validate_gml.R
@@ -1,17 +1,41 @@
 #This script contains various functions to verify data for a .gml file (WIP)
 
-# @export
-validate_gml_data <- function(gml_geometry_name, gml_points = NA, gml_polylines = NA, gml_surfaces = NA) {
+#' validate_gml_data
+#'
+#' @name validate_gml_data
+#' @description Checks if the defined gml class object isn't empty
+#' @param gml_obj A gml class object
+validate_gml_data <- function(gml_obj) {
 
-    validate_points(gml_points)
-    validate_polylines(gml_polylines)
-    validate_surfaces(gml_surfaces)
+    null_count <- 0
+
+    if(is.null(gml_obj$points)){
+        null_count <- null_count + 1
+    }
+
+    if(is.null(gml_obj$polylines)){
+        null_count <- null_count + 1
+    }
+
+    if(is.null(gml_obj$surfaces)){
+        null_count <- null_count + 1
+    }
+
+    if(null_count == 3){
+        stop(paste("Defined .gml object only has a name. Consider adding some points,
+                    polylines and surfaces."), call. = FALSE)
+    }
+
+    #More extensive checks... (WIP)
 }
 
-#'Checks if the input is a tibble, if this tibble has the right number of elements,
-#' if those elements are named correctly, if the lists in the tibble are of the same length and
-#' if there is any overlapping points or duplicate point names
-#' @param gml_points A tibble with 3 vectors named 'x', 'y' and 'z' (and an optional 'name' vector)
+
+#'validate_points
+#'
+#'@name validate_points
+#'@description Checks if the input is a tibble, if this tibble has the right number of elements,
+#' if those elements are named correctly and if there are any overlapping points or duplicate point names
+#'@param gml_points A tibble with 3 vectors named 'x', 'y' and 'z' (and an optional 'name' vector)
 validate_points <- function(gml_points) {
 
     if(!(inherits(gml_points, "tbl_df") && inherits(gml_points, "tbl") &&
@@ -28,6 +52,10 @@ validate_points <- function(gml_points) {
         stop(paste(gml_points, " column names do not fit to 'x, y, z, (name)' "), call. = FALSE)
     }
 
+    if(!is.numeric(gml_points$x) || !is.numeric(gml_points$y) || !is.numeric(gml_points$z)){
+        stop(paste(gml_points, "'x, y, z' columns must be numeric vectors"), call. = FALSE)
+    }
+
     has_names <- (length(gml_points) == 4)
 
     #Find overlapping points and duplicate names
@@ -51,16 +79,123 @@ validate_points <- function(gml_points) {
     return(invisible(gml_points))
 }
 
-
+#'validate_polylines
+#'
+#'@name validate_polylines
+#'@description Checks if the input is a list, if this list consists of other lists and
+#' if those child lists have the correct structure (length of 2, first element is a string named
+#' 'name', second element is a numeric vector)
+#'@param gml_polylines A list consisting of other lists
 validate_polylines <- function(gml_polylines) {
 
-    if(!(inherits(gml_polylines, "list"))){
-        stop(paste(gml_polylines, " is not of class 'list' "), call. = FALSE)
+    if(!(inherits(gml_polylines, "list"))) {
+        stop(paste("gml_polylines object is not of class 'list' "), call. = FALSE)
     }
 
-}
+    for(i in 1:length(gml_polylines)){
+        if(!(inherits(gml_polylines[[i]], "list"))) {
+            stop(paste("At least one element of gml_polylines is not of class 'list' "), call. = FALSE)
+        }
+
+        if(length(gml_polylines[[i]]) != 2) {
+            stop(paste("At least one element of gml_polylines has incorrect length
+                       (expected list of length 2)"), call. = FALSE)
+        }
 
+        if(names(gml_polylines[[i]])[[1]] != "name" || !is.character(gml_polylines[[i]][[1]])) {
+            stop(paste("First element of gml_polylines (list) element must be
+                       a character string named 'name' "), call. = FALSE)
+        }
+
+        if(!is.numeric(gml_polylines[[i]][[2]])) {
+            stop(paste("Second element of gml_polylines (list) element must be
+                       a numeric vector"), call. = FALSE)
+        }
 
+        #Check for duplicate points / polylines?
+    }
+
+    return(invisible(gml_polylines))
+}
+
+#'validate_surfaces
+#'
+#'@name validate_surfaces
+#'@description Checks if the input is a list, if this list consists of other lists and
+#' if those child lists have the correct structure (length of 3, first element is a string named
+#' 'name', second and third element are numeric vectors)
+#'@param gml_surfaces A list consisting of other lists
 validate_surfaces <- function(gml_surfaces) {
 
+    if(!(inherits(gml_surfaces, "list"))) {
+        stop(paste("gml_surfaces object is not of class 'list'"), call. = FALSE)
+    }
+
+    for(i in 1:length(gml_surfaces)){
+        if(!(inherits(gml_surfaces[[i]], "list"))) {
+            stop(paste("At least one element of gml_surfaces is not of class 'list'"), call. = FALSE)
+        }
+
+        if(length(gml_surfaces[[i]]) != 3) {
+            stop(paste("At least one element of gml_surfaces has incorrect length
+                       (expected list of length 3)"), call. = FALSE)
+        }
+
+        if(names(gml_surfaces[[i]])[[1]] != "name" || !is.character(gml_surfaces[[i]][[1]])) {
+            stop(paste("First element of gml_surfaces (list) element must be
+                       a character string named 'name'"), call. = FALSE)
+        }
+
+        if(!is.numeric(gml_surfaces[[i]][[2]]) || !is.numeric(gml_surfaces[[i]][[3]]) ||
+           length(gml_surfaces[[i]][[2]]) != 3 || length(gml_surfaces[[i]][[3]]) != 3) {
+            stop(paste("Second and third element of gml_surfaces (list) element must be
+                       a numeric vector of length 3"), call. = FALSE)
+        }
+
+
+        validate_surface_elements(gml_surfaces[[i]][[2]], gml_surfaces[[i]][[3]])
+
+
+        #Check for duplicate points / surfaces?
+    }
+
+    return(invisible(gml_surfaces))
+
+}
+
+
+#'validate_surface_elements
+#'
+#'@name validate_surface_elements
+#'@description Helper function, checks if two numerical vectors of length 3 (two surface elements)
+#' each consist of 3 different elements and also have exactly 2 matching elements between them
+#' which means they describe a valid surface. You can think of the two vectors as two triangles,
+#' and the two triangles together form a square which is our surface.
+#'@param gml_surface_element_1 A numerical vector of length 3
+#'@param gml_surface_element_2 A numerical vector of length 3
+validate_surface_elements = function (gml_surface_element_1, gml_surface_element_2) {
+
+    if(gml_surface_element_1[[1]] == gml_surface_element_1[[2]] ||
+       gml_surface_element_1[[1]] == gml_surface_element_1[[3]] ||
+       gml_surface_element_1[[2]] == gml_surface_element_1[[3]] ||
+       gml_surface_element_2[[1]] == gml_surface_element_2[[2]] ||
+       gml_surface_element_2[[1]] == gml_surface_element_2[[3]] ||
+       gml_surface_element_2[[2]] == gml_surface_element_2[[3]]) {
+        stop("A surface element must consist of 3 different points", call. = FALSE)
+    }
+
+    equal_count <- 0
+
+    for(i in 1:length(gml_surface_element_1)) {
+        for(j in 1:length(gml_surface_element_2)) {
+            if(gml_surface_element_1[[i]] == gml_surface_element_2[[j]]) {
+                equal_count <- equal_count + 1
+                break
+            }
+        }
+    }
+
+    if(equal_count != 2) {
+        stop("Invalid surface detected", call. = FALSE)
+    }
 }
\ No newline at end of file
diff --git a/inst/extdata/flow_free_expansion/HM_flow_free_expansion.pdf b/inst/extdata/flow_free_expansion/HM_flow_free_expansion.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..68cf031c6feb9ff176dab619151fc482c260ac9f
GIT binary patch
literal 199414
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%0Ak8-uX!CBf@Qbj+lbi6HYema>P-z86
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
O#}VFAQYN;hz`p=S7{g-#

literal 0
HcmV?d00001

diff --git a/inst/extdata/flow_free_expansion/cube_1x1x1.gml b/inst/extdata/flow_free_expansion/cube_1x1x1.gml
new file mode 100644
index 0000000..3079890
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/cube_1x1x1.gml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml-stylesheet type="text/xsl" href="OpenGeoSysGLI.xsl"?>
+
+<OpenGeoSysGLI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogs="http://www.opengeosys.org">
+    <name>cube_1x1x1_geometry</name>
+    <points>
+        <point id="0" x="0" y="0" z="0" name="origin"/>
+        <point id="1" x="0" y="0" z="1"/>
+        <point id="2" x="0" y="1" z="1"/>
+        <point id="3" x="0" y="1" z="0"/>
+
+        <point id="4" x="1" y="0" z="0"/>
+        <point id="5" x="1" y="0" z="1"/>
+        <point id="6" x="1" y="1" z="1"/>
+        <point id="7" x="1" y="1" z="0"/>
+    </points>
+
+    <polylines>
+        <polyline id="0" name="front_left">
+            <pnt>0</pnt>
+            <pnt>1</pnt>
+        </polyline>
+        <polyline id="1" name="front_right">
+            <pnt>4</pnt>
+            <pnt>5</pnt>
+        </polyline>
+        <polyline id="2" name="front_bottom">
+            <pnt>0</pnt>
+            <pnt>4</pnt>
+        </polyline>
+        <polyline id="3" name="front_top">
+            <pnt>1</pnt>
+            <pnt>5</pnt>
+        </polyline>
+        <polyline id="4" name="bottom_left">
+            <pnt>0</pnt>
+            <pnt>3</pnt>
+        </polyline>
+        <polyline id="5" name="bottom_right">
+            <pnt>4</pnt>
+            <pnt>7</pnt>
+        </polyline>
+        <polyline id="6" name="top_left">
+            <pnt>1</pnt>
+            <pnt>2</pnt>
+        </polyline>
+        <polyline id="7" name="top_right">
+            <pnt>5</pnt>
+            <pnt>6</pnt>
+        </polyline>
+        <polyline id="8" name="back_left">
+            <pnt>2</pnt>
+            <pnt>3</pnt>
+        </polyline>
+        <polyline id="9" name="back_right">
+            <pnt>6</pnt>
+            <pnt>7</pnt>
+        </polyline>
+        <polyline id="10" name="back_bottom">
+            <pnt>3</pnt>
+            <pnt>7</pnt>
+        </polyline>
+        <polyline id="11" name="back_top">
+            <pnt>2</pnt>
+            <pnt>6</pnt>
+        </polyline>
+    </polylines>
+
+    <surfaces>
+        <surface id="0" name="left"><!-- x=0 -->
+            <element p1="0" p2="1" p3="2"/>
+            <element p1="0" p2="3" p3="2"/>
+        </surface>
+        <surface id="1" name="right"><!-- x=1 -->
+            <element p1="4" p2="6" p3="5"/>
+            <element p1="4" p2="6" p3="7"/>
+        </surface>
+        <surface id="2" name="top"><!-- z=1 -->
+            <element p1="1" p2="2" p3="5"/>
+            <element p1="5" p2="2" p3="6"/>
+        </surface>
+        <surface id="3" name="bottom"><!-- z=0 -->
+            <element p1="0" p2="3" p3="4"/>
+            <element p1="4" p2="3" p3="7"/>
+        </surface>
+        <surface id="4" name="front"><!-- y=0 -->
+            <element p1="0" p2="1" p3="4"/>
+            <element p1="4" p2="1" p3="5"/>
+        </surface>
+        <surface id="5" name="back"><!-- y=1 -->
+            <element p1="2" p2="3" p3="6"/>
+            <element p1="6" p2="3" p3="7"/>
+        </surface>
+    </surfaces>
+</OpenGeoSysGLI>
diff --git a/inst/extdata/flow_free_expansion/cube_1x1x1.vtu b/inst/extdata/flow_free_expansion/cube_1x1x1.vtu
new file mode 100644
index 0000000..5595028
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/cube_1x1x1.vtu
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="8"                    NumberOfCells="1"                   >
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="0"                   />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="264"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="356"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="372"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPw==QAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAcAAAAAAAAABgAAAAAAAAA=CAAAAAgAAAAAAAAAAQAAAAw=
+  </AppendedData>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/cube_1x1x1_quad.vtu b/inst/extdata/flow_free_expansion/cube_1x1x1_quad.vtu
new file mode 100644
index 0000000..cfbcf91
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/cube_1x1x1_quad.vtu
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="20"                   NumberOfCells="1"                   >
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="0"                   />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="648"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="868"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="884"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _4AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADgPwAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAOA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAOA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADgPwAAAAAAAPA/AAAAAAAA4D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA4D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADgPw==oAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAcAAAAAAAAABgAAAAAAAAAMAAAAAAAAABEAAAAAAAAADgAAAAAAAAAJAAAAAAAAAA0AAAAAAAAAEgAAAAAAAAAPAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAQAAAAAAAAABMAAAAAAAAACwAAAAAAAAA=CAAAABQAAAAAAAAAAQAAABk=
+  </AppendedData>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/flow_free_expansion.prj b/inst/extdata/flow_free_expansion/flow_free_expansion.prj
new file mode 100644
index 0000000..291ec5c
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/flow_free_expansion.prj
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh>cube_1x1x1_quad.vtu</mesh>
+    <geometry>cube_1x1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>HM</name>
+            <type>HYDRO_MECHANICS</type>
+            <integration_order>3</integration_order>
+            <dimension>3</dimension>
+            <constitutive_relation>
+                <type>LinearElasticIsotropic</type>
+                <youngs_modulus>E</youngs_modulus>
+                <poissons_ratio>nu</poissons_ratio>
+            </constitutive_relation>
+            <process_variables>
+                <displacement>displacement</displacement>
+                <pressure>pressure</pressure>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable internal_name="sigma_xx" output_name="sigma_xx"/>
+                <secondary_variable internal_name="sigma_yy" output_name="sigma_yy"/>
+                <secondary_variable internal_name="sigma_zz" output_name="sigma_zz"/>
+                <secondary_variable internal_name="sigma_xy" output_name="sigma_xy"/>
+                <secondary_variable internal_name="epsilon_xx" output_name="epsilon_xx"/>
+                <secondary_variable internal_name="epsilon_yy" output_name="epsilon_yy"/>
+                <secondary_variable internal_name="epsilon_zz" output_name="epsilon_zz"/>
+                <secondary_variable internal_name="epsilon_xy" output_name="epsilon_xy"/>
+                <secondary_variable internal_name="velocity" output_name="velocity"/>
+            </secondary_variables>
+            <specific_body_force>0 0 0</specific_body_force>
+        </process>
+    </processes>
+    <media>
+        <medium>
+            <phases>
+                <phase>
+                    <type>Gas</type>
+                    <properties>
+                        <property>
+                            <name>viscosity</name>
+                            <type>Constant</type>
+                            <value>1e-5</value>
+                        </property>
+                        <property>
+                            <name>density</name>
+                            <type>IdealGasLaw</type>
+                        </property>
+                        <property>
+                            <name>molar_mass</name>
+                            <type>Constant</type>
+                            <value>0.028964397787206768</value>
+                        </property>
+                    </properties>
+                </phase>
+                <phase>
+                    <type>Solid</type>
+                    <properties>
+                        <property>
+                            <name>porosity</name>
+                            <type>Constant</type>
+                            <value>0.3</value>
+                        </property>
+                        <property>
+                            <name>density</name>
+                            <type>Constant</type>
+                            <value>1.43e3</value>
+                        </property>
+                        <property>
+                            <name>biot_coefficient</name>
+                            <type>Constant</type>
+                            <value>0.6</value>
+                        </property>
+                    </properties>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>reference_temperature</name>
+                    <type>Constant</type>
+                    <value>293.15</value>
+                </property>
+                <property>
+                    <name>permeability</name>
+                    <type>Constant</type>
+                    <value>1e-5</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
+    <time_loop>
+        <processes>
+            <process ref="HM">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>1e-8</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>10000</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>1000</repeat>
+                            <delta_t>10</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>flow_free_expansion_pcs_{:process_id}</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>1000</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>sigma_xx</variable>
+                <variable>sigma_yy</variable>
+                <variable>sigma_zz</variable>
+                <variable>sigma_xy</variable>
+                <variable>epsilon_xx</variable>
+                <variable>epsilon_yy</variable>
+                <variable>epsilon_zz</variable>
+                <variable>epsilon_xy</variable>
+                <variable>velocity</variable>
+            </variables>
+            <suffix>_ts_{:timestep}_t_{:time}</suffix>
+        </output>
+    </time_loop>
+    <parameters>
+        <!-- Mechanics -->
+        <parameter>
+            <name>E</name>
+            <type>Constant</type>
+            <value>10e9</value>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>.3</value>
+        </parameter>
+        <!-- Model parameters -->
+        <parameter>
+            <name>displacement0</name>
+            <type>Constant</type>
+            <values>0 0 0</values>
+        </parameter>
+        <parameter>
+            <name>pressure0</name>
+            <type>Constant</type>
+            <values>1e5</values>
+        </parameter>
+        <!-- pressure-load = -alpha_b * p0 -->
+        <parameter>
+            <name>pressure_load</name>
+            <type>Constant</type>
+            <values>-0.6e5</values>
+        </parameter>
+        <parameter>
+            <name>zero</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>flux_in</name>
+            <type>Constant</type>
+            <value>1e-4</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>displacement</name>
+            <components>3</components>
+            <order>2</order>
+            <initial_condition>displacement0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>front</geometry>
+                    <type>Dirichlet</type>
+                    <component>1</component>
+                    <parameter>zero</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>zero</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>bottom</geometry>
+                    <type>Dirichlet</type>
+                    <component>2</component>
+                    <parameter>zero</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>back</geometry>
+                    <type>Neumann</type>
+                    <component>1</component>
+                    <parameter>pressure_load</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Neumann</type>
+                    <component>0</component>
+                    <parameter>pressure_load</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>top</geometry>
+                    <type>Neumann</type>
+                    <component>2</component>
+                    <parameter>pressure_load</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>pressure0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>cube_1x1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Neumann</type>
+                    <component>0</component>
+                    <parameter>flux_in</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_newton</name>
+            <type>Newton</type>
+            <max_iter>50</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilu -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0.pvd b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0.pvd
new file mode 100644
index 0000000..3977b2f
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0.pvd
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<VTKFile type="Collection" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor">
+  <Collection>
+    <DataSet timestep="0" group="" part="0" file="flow_free_expansion_pcs_0_ts_0_t_0.000000.vtu"/>
+    <DataSet timestep="10000" group="" part="0" file="flow_free_expansion_pcs_0_ts_1000_t_10000.000000.vtu"/>
+  </Collection>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_0_t_0.000000.vtu b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_0_t_0.000000.vtu
new file mode 100644
index 0000000..2b88d13
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_0_t_0.000000.vtu
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="IntegrationPointMetaData" NumberOfTuples="166" format="appended" RangeMin="34"                   RangeMax="125"                  offset="0"                   />
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="20" format="appended" RangeMin="45"                   RangeMax="103"                  offset="176"                 />
+      <DataArray type="Float64" Name="epsilon_ip" NumberOfComponents="6" NumberOfTuples="27" format="appended" RangeMin="0"                    RangeMax="0"                    offset="260"                 />
+      <DataArray type="Float64" Name="sigma_ip" NumberOfComponents="6" NumberOfTuples="27" format="appended" RangeMin="0"                    RangeMax="0"                    offset="332"                 />
+    </FieldData>
+    <Piece NumberOfPoints="20"                   NumberOfCells="1"                   >
+      <PointData>
+        <DataArray type="Float64" Name="HydraulicFlow" format="appended" RangeMin="0"                    RangeMax="0"                    offset="404"                 />
+        <DataArray type="Float64" Name="NodalForces" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="0"                    offset="464"                 />
+        <DataArray type="Float64" Name="displacement" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="0"                    offset="528"                 />
+        <DataArray type="Float64" Name="epsilon_xx" format="appended" RangeMin="0"                    RangeMax="0"                    offset="592"                 />
+        <DataArray type="Float64" Name="epsilon_xy" format="appended" RangeMin="0"                    RangeMax="0"                    offset="652"                 />
+        <DataArray type="Float64" Name="epsilon_yy" format="appended" RangeMin="0"                    RangeMax="0"                    offset="712"                 />
+        <DataArray type="Float64" Name="epsilon_zz" format="appended" RangeMin="0"                    RangeMax="0"                    offset="772"                 />
+        <DataArray type="Float64" Name="pressure" format="appended" RangeMin="0"                    RangeMax="100000"               offset="832"                 />
+        <DataArray type="Float64" Name="pressure_interpolated" format="appended" RangeMin="100000"               RangeMax="100000"               offset="904"                 />
+        <DataArray type="Float64" Name="sigma_xx" format="appended" RangeMin="0"                    RangeMax="0"                    offset="972"                 />
+        <DataArray type="Float64" Name="sigma_xy" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1032"                />
+        <DataArray type="Float64" Name="sigma_yy" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1092"                />
+        <DataArray type="Float64" Name="sigma_zz" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1152"                />
+        <DataArray type="Float64" Name="velocity" NumberOfComponents="3" format="appended" RangeMin="1.0362684928e-12"     RangeMax="4.203568835e-11"      offset="1212"                />
+      </PointData>
+      <CellData>
+        <DataArray type="Float64" Name="permeability" NumberOfComponents="6" format="appended" RangeMin="1.7320508076e-05"     RangeMax="1.7320508076e-05"     offset="1644"                />
+        <DataArray type="Float64" Name="principal_stress_values" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1720"                />
+        <DataArray type="Float64" Name="principal_stress_vector_1" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1780"                />
+        <DataArray type="Float64" Name="principal_stress_vector_2" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1848"                />
+        <DataArray type="Float64" Name="principal_stress_vector_3" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1912"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="1976"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="2104"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="2212"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="2272"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAAKYAAAAAAAAAYwAAAAAAAAA=eF6FzDEKgDAMheG7ZO7k4NCriISoUQI2KWkdRLy7XV10fO+H7wLRyptTFVPM1haSO50F4nC9ovnCDrELoJQYIhTZEqFkaM+RJna0FWdL2ZS1NqC/ww/Bucjewicy3g8l5D0kAQAAAAAAAAAAgAAAAAAAABQAAAAAAAAAHAAAAAAAAAA=eF4z0zPWM9I1NjPVTU9Os0xOMTOySAEAMNgFJA==AQAAAAAAAAAAgAAAAAAAABAFAAAAAAAAEwAAAAAAAAA=eF5jYBgFo2AUjIJRAAIABRAAAQ==AQAAAAAAAAAAgAAAAAAAABAFAAAAAAAAEwAAAAAAAAA=eF5jYBgFo2AUjIJRAAIABRAAAQ==AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAOABAAAAAAAADgAAAAAAAAA=eF5jYBgFwxkAAAHgAAE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAADgAAAAAAAAA=eF5jYBgFwxkAAAHgAAE=AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAEwAAAAAAAAA=eF5jYACCrB8ODJTQNAQAcCoNEQ==AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAEgAAAAAAAAA=eF5jYACCrB8ODIOUBgD3nyCpAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAADAAAAAAAAAA=eF5jYBjcAAAAoAABAQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAIQEAAAAAAAA=eF5jYICAhfM/zzhVE7E3Ilt2n03Rlr1QYQYOvvZzDJ3dey3rL817dHQXXDwUqp6jgTH5tPRxW5g4F0y9mJirY+IcuLiN3Ooj7bND9p65NWvZ0lyE+W0rVsg1b2/f+8Ji4srzrTvh4iug6rliDA7yciHMnwRVfzFcYfHcYoT59s066uu2Ru2VUY4x+piPML8E6s4ZXs9M3mkXwtV7QM1/U3mHdfqTIrh4GtQcoXcSk94IIewNCAUB1b2958rfLI5fCxe/EQIRD5oyjW3nNIR4AlT97S9fddnLtsLdwwBV/2XiswU1UQjxf0fyJ8z/175X8Y6hyk1VRDizQsPzeoGLfO7ihXDzW6HhsMYs2bLpFkL8B9QcFXPpkvysObYAxDKfSA==AQAAAAAAAAAAgAAAAAAAADAAAAAAAAAAFgAAAAAAAAA=eF77lPG4Y+uPJ3af0GgGHAAAZjoQvQ==AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAACwAAAAAAAAA=eF5jYMAOAAAYAAE=AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAAEAAAAAAAAAA=eF5jYACBD/YMaAAAFScBMA==AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAADwAAAAAAAAA=eF5jYEAGH+xhLAALrwEwAQAAAAAAAAAAgAAAAAAAABgAAAAAAAAADgAAAAAAAAA=eF5jYMAGPtgDAAI3ATA=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAPwAAAAAAAAA=eF5jYMAHPtjjlcaQh/GJ1YdLPy51uGh08ABNHJ2PLo7L3gdoNDpAF0fXh24uujguf6CrI9YedPqBPQBopCndAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAMAAAAAAAAAA=eF4txUkCgBAAAECpiKLt/391MHOZEKbFq6M3785Ovvy6u7j58+3qw49/nx4uqAC/AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACwAAAAAAAAA=eF4TYYAAAACoABU=AQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACQAAAAAAAAA=eF6TBAAAGgAa
+  </AppendedData>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_1000_t_10000.000000.vtu b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_1000_t_10000.000000.vtu
new file mode 100644
index 0000000..6f56001
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/flow_free_expansion_pcs_0_ts_1000_t_10000.000000.vtu
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="IntegrationPointMetaData" NumberOfTuples="166" format="appended" RangeMin="34"                   RangeMax="125"                  offset="0"                   />
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="20" format="appended" RangeMin="45"                   RangeMax="103"                  offset="176"                 />
+      <DataArray type="Float64" Name="epsilon_ip" NumberOfComponents="6" NumberOfTuples="27" format="appended" RangeMin="1.1659775813e-05"     RangeMax="1.1659775814e-05"     offset="260"                 />
+      <DataArray type="Float64" Name="sigma_ip" NumberOfComponents="6" NumberOfTuples="27" format="appended" RangeMin="291494.39533"         RangeMax="291494.39534"         offset="1576"                />
+    </FieldData>
+    <Piece NumberOfPoints="20"                   NumberOfCells="1"                   >
+      <PointData>
+        <DataArray type="Float64" Name="HydraulicFlow" format="appended" RangeMin="-3.0029926662e-10"    RangeMax="2.4999948271e-05"     offset="2880"                />
+        <DataArray type="Float64" Name="NodalForces" NumberOfComponents="3" format="appended" RangeMin="8660.2540378"         RangeMax="28284.271248"         offset="3028"                />
+        <DataArray type="Float64" Name="displacement" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.1659775813e-05"     offset="3348"                />
+        <DataArray type="Float64" Name="epsilon_xx" format="appended" RangeMin="6.7317747044e-06"     RangeMax="6.7317747049e-06"     offset="3620"                />
+        <DataArray type="Float64" Name="epsilon_xy" format="appended" RangeMin="-8.9736613229e-17"    RangeMax="3.7491046973e-21"     offset="3784"                />
+        <DataArray type="Float64" Name="epsilon_yy" format="appended" RangeMin="6.7317747044e-06"     RangeMax="6.7317747047e-06"     offset="4056"                />
+        <DataArray type="Float64" Name="epsilon_zz" format="appended" RangeMin="6.7317747044e-06"     RangeMax="6.7317747047e-06"     offset="4228"                />
+        <DataArray type="Float64" Name="pressure" format="appended" RangeMin="0"                    RangeMax="380490.6127"          offset="4396"                />
+        <DataArray type="Float64" Name="pressure_interpolated" format="appended" RangeMin="380490.61268"         RangeMax="380490.6127"          offset="4492"                />
+        <DataArray type="Float64" Name="sigma_xx" format="appended" RangeMin="168294.36761"         RangeMax="168294.36762"         offset="4604"                />
+        <DataArray type="Float64" Name="sigma_xy" format="appended" RangeMin="-4.8810282873e-07"    RangeMax="2.0392441191e-11"     offset="4764"                />
+        <DataArray type="Float64" Name="sigma_yy" format="appended" RangeMin="168294.36761"         RangeMax="168294.36762"         offset="5036"                />
+        <DataArray type="Float64" Name="sigma_zz" format="appended" RangeMin="168294.36761"         RangeMax="168294.36762"         offset="5208"                />
+        <DataArray type="Float64" Name="velocity" NumberOfComponents="3" format="appended" RangeMin="1.1058101093e-05"     RangeMax="1.1058351392e-05"     offset="5380"                />
+      </PointData>
+      <CellData>
+        <DataArray type="Float64" Name="permeability" NumberOfComponents="6" format="appended" RangeMin="1.7320508076e-05"     RangeMax="1.7320508076e-05"     offset="5920"                />
+        <DataArray type="Float64" Name="principal_stress_values" NumberOfComponents="3" format="appended" RangeMin="291494.39534"         RangeMax="291494.39534"         offset="5996"                />
+        <DataArray type="Float64" Name="principal_stress_vector_1" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="6072"                />
+        <DataArray type="Float64" Name="principal_stress_vector_2" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="6160"                />
+        <DataArray type="Float64" Name="principal_stress_vector_3" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1"                    offset="6244"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="6332"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="6460"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="6568"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="6628"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAAKYAAAAAAAAAYwAAAAAAAAA=eF6FzDEKgDAMheG7ZO7k4NCriISoUQI2KWkdRLy7XV10fO+H7wLRyptTFVPM1haSO50F4nC9ovnCDrELoJQYIhTZEqFkaM+RJna0FWdL2ZS1NqC/ww/Bucjewicy3g8l5D0kAQAAAAAAAAAAgAAAAAAAABQAAAAAAAAAHAAAAAAAAAA=eF4z0zPWM9I1NjPVTU9Os0xOMTOySAEAMNgFJA==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ARzmprArCo0gLCHvqEIPE89u5hlqs4pgG+/KNF+ZBjlZQ7MOqgj+B6zqg3s=AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAATQAAAAAAAAA=eF57fkI49rLZL7uWfT6rXi/6spd1+r/EO0D+Ar4ij1jxo3uzp4S+BfF52maGXHd9ulf1lHDsfSD/wmfVJ2y+J2wZwOBHPa1oAF8DM6Y=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAzgAAAAAAAAA=eF5jcGFgYOjYfMCj8v///+2bD4RBaREGsLjDi3aI/A0ofUufEUxzQOWXPICol4DyWaC0SiJUH1T9CjR1MPMNoOqkoPyEW6jmi6DRDFBaDEo/2QSiLztwVUNosDxDw94Xm1D4tmxQ+Vt3QO6AiSfYsoHNuXzgClQcxofIN9lC6I22Pzgh+v9wIpnrsGnvrBcQfRzI+hoW2LJA+SteINu3Zi8DVBwm/+8/WP6A2mJkdZvh6iD8Fls5qDwLsnhDsS0TmnkwPlh+wpa9AN0rojg=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAqQAAAAAAAAA=eF5jYMAOLKK4VQxs7tjhkGaoWMmLIn/tBg+Yf+UDJ1591VB9n6HqYeKX0PSpuUHUyULpYm0+MK0pzgWmJaE0uvn8dSD1Z+DiYmh8GJDygogHlaD6wxvKV4HKu2TxYNXPEcyHIi6gCfHPmyCI+D8NVP/tkhIAi3MzQcQ5oPTpQtRwXhzOBVZ3Diq+BMqHyeu8hehTzICIT+KDhIM4VHwdlK8MlQcA7/5ZjQ==AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAWgAAAAAAAAA=eF5zqOJVMbC5Y6dvxQmmBc/yg+mDTyB8Xih/P5TPxCUEptl9ucD0498Q/cx/IHRjmACYLoPSVlHcEHU3eMD0fShdpM0Hpvc85wDTK6D0yWaIPaehNADSATeqAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAqwAAAAAAAAA=eF4BoABf/wAAcidkCaK7lR59m5t6ibwW7smyZN2ZvASiC/qNj4e8gIFsNmnLsbuylYhhvMSGvDGNCKTYRZW84gwahUvpgrwAgj20Y7SxO/fEXvjWZ4O8tsPDIyHfgbyH3bdF0/GWvGRWDq+MG3C8F06UJjzRaLytkvSsPnqQvF+4sbbhjIm8PtNzrVJ5hrwfdcq/PA6CvPpzL+uCb4G82tqrhmFSgrw9MlXkAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAXgAAAAAAAAA=eF6bEcSrYmBzx657HxeY9mPgA9NOypxgmtUPIi+0EyJvYwfhB5VC5C/5QPgdKyG0nBuE3jAbQpek8IDp52EQevZbbjAtuxZCdxyDmHvmA8Q8HXEI/3MYhA8A06E0bA==AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAXQAAAAAAAAA=eF6bF8SrYmBzx65+HxeYtvGD8F13Qvg+DHxg2lSZE0zz2UHktUoh/KqVEP53Hwi9bTaEVnSD0LUpPGB6zltuiHg4hM+4FsJ/9AFiTt4xiH07wiB8DXEIHwDbCDNxAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAJgAAAAAAAAA=eF5bUJRWrGUp7tjakwym56Px50H5bVD+Aii/BcpnoDEAAK6+FR4=AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAMwAAAAAAAAA=eF5bUJRWrGUp7tjakwym56Px50H5bVD+Aii/BU09TBydP+l/Cl4aZm4rGg0zHwA07zbIAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAVgAAAAAAAAA=eF67sujBB6NuFsc3UvfAtP+Kh2B6rziE7wblH4Pyi1Mfgen/UL7jY4j+ECj9+TRE/SMovav2PphO+wuhS6D0yiiI+qybd8F0EJQ2vw+hvaA0ACHWT9k=AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAqwAAAAAAAAA=eF4BoABf/wCAml+c16a9x3iDBDgikL6uwLJ4xWCgvl9FRF6N1o2+AOGf+R2Jtr2pMwg2stWMviDteObK8Jq+urclcCvzh74ARLA/9mu2PTO/kRBuk4i+CBaK1Baihr4sQb9+zA6dvkJAY60xZnS+ojEqPvBtb75r5lqBHt6UvlGizkTKLZC+B7/32jB2jL5wIaWAv92Gvqc0lYe7FIa+gLErHww0h74eGFHzAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAXgAAAAAAAAA=eF57NvPBB6NuFsebhffAtLLjQzCd9eYumFaThPCd3CHy04Ig/NXPIfJMeyD6H16A0EEyEPkUfQgdu/M+mA55AKEPnYDQx09D6HYXiLnbRCC0EQOEtr4KMR8AKnxLyQ==AQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAXgAAAAAAAAA=eF57PfPBB6NuFscbhffAtJ/kQzBd5A7hCzpC+Plv7oLp6UEQ/o7nEP61CxD96nsgdJE+RN5PBkJH7bwPpneegNARDyD0hdMQepsIxJ45LhDa4CrEXFsGCB8AbDxMYA==AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAdAEAAAAAAAA=eF5b/nzFmusGz+3OKO3YuWXubduEY0azp695absHKu7mrrkg4OcW2yWWt6IllDfs3VRiO/kUUHwzVL3MQRW1k5zn9u6Eih+Aqv98pDfm+Icntn9Mc68fBYqXup5pdZv2am9NlnDi3rUvbRnNIOKc/im8e+9dtg2LWv/oievqvT8PMdq9AIpnQdULcR7PdNE9t1fqMERcDqreLDNP6e3HJ7YrgjkaTwPFC5Yvj3gfe2GvylzJiSxLX9p+dpabexkovgfqTp3jhTLHC5fZiu15mHQBKJ4CNX9L8PqAj/eX2Yat+f7vFlA8EWpO5eQ/NxQFz+3dDg2HOauAQGu7bdPNiAW8L2/Y/oD6ayVUnLn7wbNL327YboGGwwKouBr/bk19kR17v0P9dRgqvslzDr/U3e17d0Ld/9rPf+M967O28pX1O+x11+x9CHV/EzQ8J1mbvJjDvMxWBup+Vmg4KEP9lQB1/3GoOednlwSZvHxiCwB6oPz2AQAAAAAAAAAAgAAAAAAAADAAAAAAAAAAFgAAAAAAAAA=eF77lPG4Y+uPJ3af0GgGHAAAZjoQvQ==AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAAFwAAAAAAAAA=eF4Tr73/waibxTFqDoQO2AGhAY0zCwY=AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAAIAAAAAAAAAA=eF47ejH+VfbpJ/u/qUxZ+tjo4f7LZuJnTgNpAMXyD0o=AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAAHAAAAAAAAAA=eF5jYIAA971y2/oWPNvff/OK2LoFz+wBTigJcQ==AQAAAAAAAAAAgAAAAAAAABgAAAAAAAAAHwAAAAAAAAA=eF57prLYvz/ohf2bTN/bHRl39y+XrRZOANIAoAQMxA==AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAPwAAAAAAAAA=eF5jYMAHPtjjlcaQh/GJ1YdLPy51uGh08ABNHJ2PLo7L3gdoNDpAF0fXh24uujguf6CrI9YedPqBPQBopCndAQAAAAAAAAAAgAAAAAAAAKAAAAAAAAAAMAAAAAAAAAA=eF4txUkCgBAAAECpiKLt/391MHOZEKbFq6M3785Ovvy6u7j58+3qw49/nx4uqAC/AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACwAAAAAAAAA=eF4TYYAAAACoABU=AQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACQAAAAAAAAA=eF6TBAAAGgAa
+  </AppendedData>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/playground/cube_1x1x1.vtu b/inst/extdata/flow_free_expansion/playground/cube_1x1x1.vtu
new file mode 100644
index 0000000..b440638
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/playground/cube_1x1x1.vtu
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="8"                    NumberOfCells="1"                   >
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="0"                   />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="264"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="356"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="372"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/playground/cube_1x1x1_quad.vtu b/inst/extdata/flow_free_expansion/playground/cube_1x1x1_quad.vtu
new file mode 100644
index 0000000..cfbcf91
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/playground/cube_1x1x1_quad.vtu
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="20"                   NumberOfCells="1"                   >
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.7320508076"         offset="0"                   />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="648"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="868"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="884"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _4AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADgPwAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAOA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAOA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADgPwAAAAAAAPA/AAAAAAAA4D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA4D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADgPw==oAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAcAAAAAAAAABgAAAAAAAAAMAAAAAAAAABEAAAAAAAAADgAAAAAAAAAJAAAAAAAAAA0AAAAAAAAAEgAAAAAAAAAPAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAQAAAAAAAAABMAAAAAAAAACwAAAAAAAAA=CAAAABQAAAAAAAAAAQAAABk=
+  </AppendedData>
+</VTKFile>
diff --git a/inst/extdata/flow_free_expansion/playground/x_quad_with_half_hole_q.vtu b/inst/extdata/flow_free_expansion/playground/x_quad_with_half_hole_q.vtu
new file mode 100644
index 0000000..015f24c
--- /dev/null
+++ b/inst/extdata/flow_free_expansion/playground/x_quad_with_half_hole_q.vtu
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="3479"                 NumberOfCells="1114"                >
+      <PointData>
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="0"                   />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="2.2980352443"         RangeMax="55.901699437"         offset="5948"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="117284"              />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="212352"              />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="224240"              />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/man/GMLObject.Rd b/man/GMLObject.Rd
deleted file mode 100644
index 2e77fd7..0000000
--- a/man/GMLObject.Rd
+++ /dev/null
@@ -1,65 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLObject}
-\alias{GMLObject}
-\title{Class representing a GML object}
-\value{
-The encoding of the input file
-Class describing an entire GML object with a reference file name, points, polylines and surfaces
-}
-\description{
-Class representing a GML object
-
-Class representing a GML object
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLObject$new()}}
-\item \href{#method-as_node}{\code{GMLObject$as_node()}}
-\item \href{#method-clone}{\code{GMLObject$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLObject$new(
-  name = NULL,
-  points = NULL,
-  polylines = NULL,
-  surfaces = NULL,
-  xmlns_xsi = "http://www.w3.org/2001/XMLSchema-instance",
-  xmlns_ogs = "http://www.opengeosys.org"
-)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLObject$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLObject$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLPoint.Rd b/man/GMLPoint.Rd
deleted file mode 100644
index 9fff657..0000000
--- a/man/GMLPoint.Rd
+++ /dev/null
@@ -1,74 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLPoint}
-\alias{GMLPoint}
-\title{Class describing a single point}
-\description{
-Class describing a single point
-
-Class describing a single point
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLPoint$new()}}
-\item \href{#method-as_list}{\code{GMLPoint$as_list()}}
-\item \href{#method-as_node}{\code{GMLPoint$as_node()}}
-\item \href{#method-print}{\code{GMLPoint$print()}}
-\item \href{#method-clone}{\code{GMLPoint$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoint$new(id = 0, coordinates = c(0, 0, 0), is_origin = FALSE)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_list"></a>}}
-\if{latex}{\out{\hypertarget{method-as_list}{}}}
-\subsection{Method \code{as_list()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoint$as_list(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoint$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-print"></a>}}
-\if{latex}{\out{\hypertarget{method-print}{}}}
-\subsection{Method \code{print()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoint$print(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoint$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLPoints.Rd b/man/GMLPoints.Rd
deleted file mode 100644
index 2b84e1a..0000000
--- a/man/GMLPoints.Rd
+++ /dev/null
@@ -1,104 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLPoints}
-\alias{GMLPoints}
-\title{Class describing a set of points}
-\description{
-Class describing a set of points
-
-Class describing a set of points
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLPoints$new()}}
-\item \href{#method-validate_ids}{\code{GMLPoints$validate_ids()}}
-\item \href{#method-validate_dim}{\code{GMLPoints$validate_dim()}}
-\item \href{#method-validate_coordinates}{\code{GMLPoints$validate_coordinates()}}
-\item \href{#method-as_list}{\code{GMLPoints$as_list()}}
-\item \href{#method-as_node}{\code{GMLPoints$as_node()}}
-\item \href{#method-print}{\code{GMLPoints$print()}}
-\item \href{#method-clone}{\code{GMLPoints$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$new(gml_points)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_ids"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_ids}{}}}
-\subsection{Method \code{validate_ids()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$validate_ids(gml_points)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_dim"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_dim}{}}}
-\subsection{Method \code{validate_dim()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$validate_dim(gml_points)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_coordinates"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_coordinates}{}}}
-\subsection{Method \code{validate_coordinates()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$validate_coordinates(gml_points)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_list"></a>}}
-\if{latex}{\out{\hypertarget{method-as_list}{}}}
-\subsection{Method \code{as_list()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$as_list(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-print"></a>}}
-\if{latex}{\out{\hypertarget{method-print}{}}}
-\subsection{Method \code{print()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$print(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPoints$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLPolyline.Rd b/man/GMLPolyline.Rd
deleted file mode 100644
index b3283ac..0000000
--- a/man/GMLPolyline.Rd
+++ /dev/null
@@ -1,64 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLPolyline}
-\alias{GMLPolyline}
-\title{Class describing a single polyline}
-\description{
-Class describing a single polyline
-
-Class describing a single polyline
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLPolyline$new()}}
-\item \href{#method-as_node}{\code{GMLPolyline$as_node()}}
-\item \href{#method-print}{\code{GMLPolyline$print()}}
-\item \href{#method-clone}{\code{GMLPolyline$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolyline$new(id = 0, name = "front_left", point1 = 0, point2 = 1)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolyline$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-print"></a>}}
-\if{latex}{\out{\hypertarget{method-print}{}}}
-\subsection{Method \code{print()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolyline$print(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolyline$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLPolylines.Rd b/man/GMLPolylines.Rd
deleted file mode 100644
index 071ed9b..0000000
--- a/man/GMLPolylines.Rd
+++ /dev/null
@@ -1,74 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLPolylines}
-\alias{GMLPolylines}
-\title{Class describing a set of polylines}
-\description{
-Class describing a set of polylines
-
-Class describing a set of polylines
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLPolylines$new()}}
-\item \href{#method-validate_ids}{\code{GMLPolylines$validate_ids()}}
-\item \href{#method-validate_polylines}{\code{GMLPolylines$validate_polylines()}}
-\item \href{#method-as_node}{\code{GMLPolylines$as_node()}}
-\item \href{#method-clone}{\code{GMLPolylines$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolylines$new(gml_polylines)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_ids"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_ids}{}}}
-\subsection{Method \code{validate_ids()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolylines$validate_ids(gml_polylines)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_polylines"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_polylines}{}}}
-\subsection{Method \code{validate_polylines()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolylines$validate_polylines(gml_polylines)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolylines$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLPolylines$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLSurface.Rd b/man/GMLSurface.Rd
deleted file mode 100644
index de15661..0000000
--- a/man/GMLSurface.Rd
+++ /dev/null
@@ -1,69 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLSurface}
-\alias{GMLSurface}
-\title{Class describing a single surface (using 2 GMLSurfaceElements)}
-\description{
-Class describing a single surface (using 2 GMLSurfaceElements)
-
-Class describing a single surface (using 2 GMLSurfaceElements)
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLSurface$new()}}
-\item \href{#method-validate_elements}{\code{GMLSurface$validate_elements()}}
-\item \href{#method-as_node}{\code{GMLSurface$as_node()}}
-\item \href{#method-clone}{\code{GMLSurface$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurface$new(
-  id = 0,
-  name = "left",
-  gml_surface_element1 = GMLSurfaceElement$new(),
-  gml_surface_element2 = GMLSurfaceElement$new(p3 = 3)
-)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_elements"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_elements}{}}}
-\subsection{Method \code{validate_elements()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurface$validate_elements(gml_surface_element1, gml_surface_element2)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurface$as_node()}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurface$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLSurfaceElement.Rd b/man/GMLSurfaceElement.Rd
deleted file mode 100644
index 3a5c05b..0000000
--- a/man/GMLSurfaceElement.Rd
+++ /dev/null
@@ -1,64 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLSurfaceElement}
-\alias{GMLSurfaceElement}
-\title{Class describing a single surface element (using 3 point IDs)}
-\description{
-Class describing a single surface element (using 3 point IDs)
-
-Class describing a single surface element (using 3 point IDs)
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLSurfaceElement$new()}}
-\item \href{#method-as_list}{\code{GMLSurfaceElement$as_list()}}
-\item \href{#method-as_node}{\code{GMLSurfaceElement$as_node()}}
-\item \href{#method-clone}{\code{GMLSurfaceElement$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaceElement$new(p1 = 0, p2 = 1, p3 = 2)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_list"></a>}}
-\if{latex}{\out{\hypertarget{method-as_list}{}}}
-\subsection{Method \code{as_list()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaceElement$as_list(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaceElement$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaceElement$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/GMLSurfaces.Rd b/man/GMLSurfaces.Rd
deleted file mode 100644
index 8440c35..0000000
--- a/man/GMLSurfaces.Rd
+++ /dev/null
@@ -1,64 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{GMLSurfaces}
-\alias{GMLSurfaces}
-\title{Class describing a set of surfaces}
-\description{
-Class describing a set of surfaces
-
-Class describing a set of surfaces
-}
-\section{Methods}{
-\subsection{Public methods}{
-\itemize{
-\item \href{#method-new}{\code{GMLSurfaces$new()}}
-\item \href{#method-validate_ids}{\code{GMLSurfaces$validate_ids()}}
-\item \href{#method-as_node}{\code{GMLSurfaces$as_node()}}
-\item \href{#method-clone}{\code{GMLSurfaces$clone()}}
-}
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-new"></a>}}
-\if{latex}{\out{\hypertarget{method-new}{}}}
-\subsection{Method \code{new()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaces$new(gml_surfaces)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-validate_ids"></a>}}
-\if{latex}{\out{\hypertarget{method-validate_ids}{}}}
-\subsection{Method \code{validate_ids()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaces$validate_ids(gml_surfaces)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-as_node"></a>}}
-\if{latex}{\out{\hypertarget{method-as_node}{}}}
-\subsection{Method \code{as_node()}}{
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaces$as_node(...)}\if{html}{\out{</div>}}
-}
-
-}
-\if{html}{\out{<hr>}}
-\if{html}{\out{<a id="method-clone"></a>}}
-\if{latex}{\out{\hypertarget{method-clone}{}}}
-\subsection{Method \code{clone()}}{
-The objects of this class are cloneable with this method.
-\subsection{Usage}{
-\if{html}{\out{<div class="r">}}\preformatted{GMLSurfaces$clone(deep = FALSE)}\if{html}{\out{</div>}}
-}
-
-\subsection{Arguments}{
-\if{html}{\out{<div class="arguments">}}
-\describe{
-\item{\code{deep}}{Whether to make a deep clone.}
-}
-\if{html}{\out{</div>}}
-}
-}
-}
diff --git a/man/OGS6.Rd b/man/OGS6.Rd
new file mode 100644
index 0000000..a2fc853
--- /dev/null
+++ b/man/OGS6.Rd
@@ -0,0 +1,74 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/ogs6.R
+\name{OGS6}
+\alias{OGS6}
+\title{Constructor for the OGS6 base class}
+\description{
+Constructor for the OGS6 base class
+
+Constructor for the OGS6 base class
+}
+\section{Methods}{
+\subsection{Public methods}{
+\itemize{
+\item \href{#method-new}{\code{OGS6$new()}}
+\item \href{#method-add_sim_input}{\code{OGS6$add_sim_input()}}
+\item \href{#method-set_sim_input_obj_param}{\code{OGS6$set_sim_input_obj_param()}}
+\item \href{#method-add_sim_output}{\code{OGS6$add_sim_output()}}
+\item \href{#method-clone}{\code{OGS6$clone()}}
+}
+}
+\if{html}{\out{<hr>}}
+\if{html}{\out{<a id="method-new"></a>}}
+\if{latex}{\out{\hypertarget{method-new}{}}}
+\subsection{Method \code{new()}}{
+\subsection{Usage}{
+\if{html}{\out{<div class="r">}}\preformatted{OGS6$new(sim_name, sim_id, sim_path)}\if{html}{\out{</div>}}
+}
+
+}
+\if{html}{\out{<hr>}}
+\if{html}{\out{<a id="method-add_sim_input"></a>}}
+\if{latex}{\out{\hypertarget{method-add_sim_input}{}}}
+\subsection{Method \code{add_sim_input()}}{
+\subsection{Usage}{
+\if{html}{\out{<div class="r">}}\preformatted{OGS6$add_sim_input(name, value)}\if{html}{\out{</div>}}
+}
+
+}
+\if{html}{\out{<hr>}}
+\if{html}{\out{<a id="method-set_sim_input_obj_param"></a>}}
+\if{latex}{\out{\hypertarget{method-set_sim_input_obj_param}{}}}
+\subsection{Method \code{set_sim_input_obj_param()}}{
+\subsection{Usage}{
+\if{html}{\out{<div class="r">}}\preformatted{OGS6$set_sim_input_obj_param(obj_name, obj_param_name, value)}\if{html}{\out{</div>}}
+}
+
+}
+\if{html}{\out{<hr>}}
+\if{html}{\out{<a id="method-add_sim_output"></a>}}
+\if{latex}{\out{\hypertarget{method-add_sim_output}{}}}
+\subsection{Method \code{add_sim_output()}}{
+\subsection{Usage}{
+\if{html}{\out{<div class="r">}}\preformatted{OGS6$add_sim_output(name, value)}\if{html}{\out{</div>}}
+}
+
+}
+\if{html}{\out{<hr>}}
+\if{html}{\out{<a id="method-clone"></a>}}
+\if{latex}{\out{\hypertarget{method-clone}{}}}
+\subsection{Method \code{clone()}}{
+The objects of this class are cloneable with this method.
+\subsection{Usage}{
+\if{html}{\out{<div class="r">}}\preformatted{OGS6$clone(deep = FALSE)}\if{html}{\out{</div>}}
+}
+
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{deep}}{Whether to make a deep clone.}
+}
+\if{html}{\out{</div>}}
+}
+}
+}
diff --git a/man/add_opt_attr.Rd b/man/add_opt_attr.Rd
new file mode 100644
index 0000000..f5c04bc
--- /dev/null
+++ b/man/add_opt_attr.Rd
@@ -0,0 +1,18 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/utils.R
+\name{add_opt_attr}
+\alias{add_opt_attr}
+\title{add_opt_attr}
+\usage{
+add_opt_attr(node, obj_parameter, attr_name)
+}
+\arguments{
+\item{node}{The node the optional attribute should be added to}
+
+\item{obj_parameter}{The value of the attribute to be added}
+
+\item{attr_name}{The name of the attribute to be added}
+}
+\description{
+Adds an optional attribute to a node attribute list
+}
diff --git a/man/add_opt_child.Rd b/man/add_opt_child.Rd
new file mode 100644
index 0000000..4ebcceb
--- /dev/null
+++ b/man/add_opt_child.Rd
@@ -0,0 +1,18 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/utils.R
+\name{add_opt_child}
+\alias{add_opt_child}
+\title{add_opt_child}
+\usage{
+add_opt_child(node, obj_parameter, child_name = NULL)
+}
+\arguments{
+\item{node}{The node the optional child should be added to}
+
+\item{obj_parameter}{The value of the child to be added}
+
+\item{child_name}{Optional: If it's a child node instead of just a value, the name of the child to be added}
+}
+\description{
+Adds an optional child to a node child list
+}
diff --git a/man/adopt_nodes.Rd b/man/adopt_nodes.Rd
new file mode 100644
index 0000000..a939fd6
--- /dev/null
+++ b/man/adopt_nodes.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/utils.R
+\name{adopt_nodes}
+\alias{adopt_nodes}
+\title{adopt_nodes}
+\usage{
+adopt_nodes(parent_name, objs)
+}
+\arguments{
+\item{parent_name}{The name of the new parent node}
+
+\item{objs}{A list of class objects (class must have method for generic function as_node)}
+}
+\description{
+A helper function for creating parent nodes using the generic function as_node
+}
diff --git a/man/analyse_xml.Rd b/man/analyse_xml.Rd
new file mode 100644
index 0000000..bfde46e
--- /dev/null
+++ b/man/analyse_xml.Rd
@@ -0,0 +1,21 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/analyse_xml.R
+\name{analyse_xml}
+\alias{analyse_xml}
+\title{analyse_xml}
+\usage{
+analyse_xml(path, pattern, element_name)
+}
+\arguments{
+\item{path}{A path}
+
+\item{pattern}{A regex pattern}
+
+\item{element_name}{The name of the XML element to look for}
+}
+\description{
+This is a helper function which can be used to combat missing documentation. It looks
+ for files in a path which match the given pattern and then attempts to parse them as XML.
+ For each occurence of the specified element, it documents its attributes and direct children and prints a little
+ summary of its findings at the end.
+}
diff --git a/man/as_node.Rd b/man/as_node.Rd
new file mode 100644
index 0000000..d3e3179
--- /dev/null
+++ b/man/as_node.Rd
@@ -0,0 +1,14 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/generics.R
+\name{as_node}
+\alias{as_node}
+\title{S3 generic function, use to turn class data into XML friendly format}
+\usage{
+as_node(obj)
+}
+\arguments{
+\item{obj}{A class object (must have implementation for as_node)}
+}
+\description{
+S3 generic function, use to turn class data into XML friendly format
+}
diff --git a/man/as_node.data_array.Rd b/man/as_node.data_array.Rd
new file mode 100644
index 0000000..f4cd308
--- /dev/null
+++ b/man/as_node.data_array.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{as_node.data_array}
+\alias{as_node.data_array}
+\title{as_node.data_array}
+\usage{
+\method{as_node}{data_array}(obj)
+}
+\description{
+Implementation of the generic function as_node for data_array class objects
+}
diff --git a/man/as_node.r2ogs6_prj_medium_phase.Rd b/man/as_node.r2ogs6_prj_medium_phase.Rd
new file mode 100644
index 0000000..4093e1e
--- /dev/null
+++ b/man/as_node.r2ogs6_prj_medium_phase.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_prj.R
+\name{as_node.r2ogs6_prj_medium_phase}
+\alias{as_node.r2ogs6_prj_medium_phase}
+\title{Method for coercing an r2ogs_prj_medium_phase class object into the structure expected by xml2}
+\usage{
+\method{as_node}{r2ogs6_prj_medium_phase}(obj)
+}
+\description{
+Method for coercing an r2ogs_prj_medium_phase class object into the structure expected by xml2
+}
diff --git a/man/as_node.r2ogs6_prj_property.Rd b/man/as_node.r2ogs6_prj_property.Rd
new file mode 100644
index 0000000..9d0ae02
--- /dev/null
+++ b/man/as_node.r2ogs6_prj_property.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_prj.R
+\name{as_node.r2ogs6_prj_property}
+\alias{as_node.r2ogs6_prj_property}
+\title{Method for coercing an r2ogs6_prj_property class object into the structure expected by xml2}
+\usage{
+\method{as_node}{r2ogs6_prj_property}(obj)
+}
+\description{
+Method for coercing an r2ogs6_prj_property class object into the structure expected by xml2
+}
diff --git a/man/check_for_obj_of_name.Rd b/man/check_for_obj_of_name.Rd
new file mode 100644
index 0000000..6a45903
--- /dev/null
+++ b/man/check_for_obj_of_name.Rd
@@ -0,0 +1,17 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/utils.R
+\name{check_for_obj_of_name}
+\alias{check_for_obj_of_name}
+\title{check_for_obj_of_name}
+\usage{
+check_for_obj_of_name(ogs6_obj, obj_name)
+}
+\arguments{
+\item{ogs6_obj}{The ogs6 object to check}
+
+\item{obj_name}{The name of the object to check for}
+}
+\description{
+Checks if a object with the given name was already defined for a ogs6 object and if not,
+tells user to initialize one
+}
diff --git a/man/create_gml_from_obj.Rd b/man/create_gml_from_obj.Rd
deleted file mode 100644
index 5e83857..0000000
--- a/man/create_gml_from_obj.Rd
+++ /dev/null
@@ -1,19 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml_R6.R
-\name{create_gml_from_obj}
-\alias{create_gml_from_obj}
-\title{Creates a .gml XML file based on an GML object}
-\usage{
-create_gml_from_obj(gml_object, file_name)
-}
-\arguments{
-\item{gml_object}{The specified GML object (of class GMLObject)}
-
-\item{file_name}{The name of the file the XML will be written to}
-}
-\value{
-WIP
-}
-\description{
-Creates a .gml XML file based on an GML object
-}
diff --git a/man/create_template_prj.Rd b/man/create_template_prj.Rd
deleted file mode 100644
index a83651b..0000000
--- a/man/create_template_prj.Rd
+++ /dev/null
@@ -1,19 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/utils.R
-\name{create_template_prj}
-\alias{create_template_prj}
-\title{Creates a template project file based on the XML structure and attributes of an existing project file.}
-\usage{
-create_template_prj(existing_prj, template_prj)
-}
-\arguments{
-\item{existing_prj}{An existing .prj file to use as a template for the structure and attributes}
-
-\item{template_prj}{The path where the template should be saved}
-}
-\value{
-The newly created template project file
-}
-\description{
-Creates a template project file based on the XML structure and attributes of an existing project file.
-}
diff --git a/man/export_xml_to_file.Rd b/man/export_xml_to_file.Rd
index 8aa952f..81750af 100644
--- a/man/export_xml_to_file.Rd
+++ b/man/export_xml_to_file.Rd
@@ -1,15 +1,15 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml.R
+% Please edit documentation in R/utils.R
 \name{export_xml_to_file}
 \alias{export_xml_to_file}
-\title{Export function}
+\title{export_xml_to_file}
 \usage{
 export_xml_to_file(xml_data, file_name)
 }
 \arguments{
-\item{xml_data}{The .gml data (already in XML friendly format)}
+\item{xml_data}{The data to be exported (already in XML friendly format)}
 
-\item{file_name}{The name of the .gml file to be written}
+\item{file_name}{The name of the file to be written}
 }
 \description{
 Export function
diff --git a/man/generate_as_node_from_element.Rd b/man/generate_as_node_from_element.Rd
new file mode 100644
index 0000000..2ebc47d
--- /dev/null
+++ b/man/generate_as_node_from_element.Rd
@@ -0,0 +1,18 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/analyse_xml.R
+\name{generate_as_node_from_element}
+\alias{generate_as_node_from_element}
+\title{generate_as_node_from_element}
+\usage{
+generate_as_node_from_element(element_name, attrs = NULL, children = NULL)
+}
+\arguments{
+\item{element_name}{The name of the XML element to base the function on}
+
+\item{attrs}{Optional: A list of element attributes}
+
+\item{children}{Optional: A list of element children}
+}
+\description{
+Generates a method for the generic function as_node based on an XML element
+}
diff --git a/man/get_xml_encoding.Rd b/man/get_xml_encoding.Rd
deleted file mode 100644
index c179376..0000000
--- a/man/get_xml_encoding.Rd
+++ /dev/null
@@ -1,17 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/utils.R
-\name{get_xml_encoding}
-\alias{get_xml_encoding}
-\title{Reads the encoding of an XML file}
-\usage{
-get_xml_encoding(input_file_name)
-}
-\arguments{
-\item{input_file_name}{An XML (.xml or, in the case of OpenGeoSys, .prj) file}
-}
-\value{
-The encoding of the input file
-}
-\description{
-Reads the encoding of an XML file
-}
diff --git a/man/gml_data_to_xml.Rd b/man/gml_data_to_xml.Rd
index 919404a..5713afd 100644
--- a/man/gml_data_to_xml.Rd
+++ b/man/gml_data_to_xml.Rd
@@ -1,23 +1,17 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml.R
+% Please edit documentation in R/export_gml.R
 \name{gml_data_to_xml}
 \alias{gml_data_to_xml}
-\title{Wrapper function to create a XML document based on the user input data}
+\title{Wrapper function to create a .gml XML document based on the user input data}
 \usage{
-gml_data_to_xml(geo_name, points_tibble, polylines_list, surfaces_list)
+gml_data_to_xml(gml_obj)
 }
 \arguments{
-\item{geo_name}{The name of the geometry specified by the user}
-
-\item{points_tibble}{A tibble containing points}
-
-\item{polylines_list}{A list containing polylines}
-
-\item{surfaces_list}{A list containing surfaces}
+\item{gml_obj}{A gml class object}
 }
 \value{
 A XML document ready for export to a file
 }
 \description{
-Wrapper function to create a XML document based on the user input data
+Wrapper function to create a .gml XML document based on the user input data
 }
diff --git a/man/input_add_gml_obj.Rd b/man/input_add_gml_obj.Rd
new file mode 100644
index 0000000..4316ca6
--- /dev/null
+++ b/man/input_add_gml_obj.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_gml.R
+\name{input_add_gml_obj}
+\alias{input_add_gml_obj}
+\title{Adds an empty gml class object to a ogs6 class object input list}
+\usage{
+input_add_gml_obj(ogs6_obj, geometry_name)
+}
+\arguments{
+\item{ogs6_obj}{The ogs6 object the gml class object should be added to}
+
+\item{geometry_name}{The name of the geometry specified by the gml class object}
+}
+\description{
+Adds an empty gml class object to a ogs6 class object input list
+}
diff --git a/man/input_add_gml_points.Rd b/man/input_add_gml_points.Rd
new file mode 100644
index 0000000..ccd4ab1
--- /dev/null
+++ b/man/input_add_gml_points.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_gml.R
+\name{input_add_gml_points}
+\alias{input_add_gml_points}
+\title{Adds gml points to a ogs6 class object}
+\usage{
+input_add_gml_points(ogs6_obj, gml_points)
+}
+\arguments{
+\item{ogs6_obj}{A ogs6 class object}
+
+\item{gml_points}{A tibble of gml points}
+}
+\description{
+Adds gml points to a ogs6 class object
+}
diff --git a/man/input_add_gml_polylines.Rd b/man/input_add_gml_polylines.Rd
new file mode 100644
index 0000000..6258d91
--- /dev/null
+++ b/man/input_add_gml_polylines.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_gml.R
+\name{input_add_gml_polylines}
+\alias{input_add_gml_polylines}
+\title{Adds gml polylines to a ogs6 class object}
+\usage{
+input_add_gml_polylines(ogs6_obj, gml_polylines)
+}
+\arguments{
+\item{ogs6_obj}{A ogs6 class object}
+
+\item{gml_polylines}{A list of gml polylines}
+}
+\description{
+Adds gml polylines to a ogs6 class object
+}
diff --git a/man/input_add_gml_surfaces.Rd b/man/input_add_gml_surfaces.Rd
new file mode 100644
index 0000000..389611e
--- /dev/null
+++ b/man/input_add_gml_surfaces.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_gml.R
+\name{input_add_gml_surfaces}
+\alias{input_add_gml_surfaces}
+\title{Adds gml surfaces to a ogs6 class object}
+\usage{
+input_add_gml_surfaces(ogs6_obj, gml_surfaces)
+}
+\arguments{
+\item{ogs6_obj}{A ogs6 class object}
+
+\item{gml_surfaces}{A list of gml surfaces}
+}
+\description{
+Adds gml surfaces to a ogs6 class object
+}
diff --git a/man/input_add_vtu_appended_data.Rd b/man/input_add_vtu_appended_data.Rd
new file mode 100644
index 0000000..822f2cc
--- /dev/null
+++ b/man/input_add_vtu_appended_data.Rd
@@ -0,0 +1,18 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{input_add_vtu_appended_data}
+\alias{input_add_vtu_appended_data}
+\title{input_add_vtu_appended_data}
+\usage{
+input_add_vtu_appended_data(ogs6_obj, encoding, data)
+}
+\arguments{
+\item{ogs6_obj}{The ogs6 object the .vtu AppendedData should be added to}
+
+\item{encoding}{How the AppendedData is encoded}
+
+\item{data}{The actual data in the specified encoding}
+}
+\description{
+Adds .vtu AppendedData to a ogs6 class object
+}
diff --git a/man/input_add_vtu_obj.Rd b/man/input_add_vtu_obj.Rd
new file mode 100644
index 0000000..dfda2b6
--- /dev/null
+++ b/man/input_add_vtu_obj.Rd
@@ -0,0 +1,31 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{input_add_vtu_obj}
+\alias{input_add_vtu_obj}
+\title{input_add_vtu_obj}
+\usage{
+input_add_vtu_obj(
+  ogs6_obj,
+  type,
+  version,
+  byte_order,
+  header_type,
+  compressor = NULL
+)
+}
+\arguments{
+\item{ogs6_obj}{The ogs6 object the vtu class object should be added to}
+
+\item{type}{The type of the .vtu file (e. g. "UnstructuredGrid")}
+
+\item{version}{The version of the .vtu file (e. g. 1.0)}
+
+\item{byte_order}{Either "LittleEndian" or "BigEndian"}
+
+\item{header_type}{The header type (e. g. "UInt32")}
+
+\item{compressor}{Optional: The compressor to be used}
+}
+\description{
+Adds an empty vtu class object to a ogs6 class object input.
+}
diff --git a/man/input_add_vtu_unstructured_grid.Rd b/man/input_add_vtu_unstructured_grid.Rd
new file mode 100644
index 0000000..53a479c
--- /dev/null
+++ b/man/input_add_vtu_unstructured_grid.Rd
@@ -0,0 +1,18 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{input_add_vtu_unstructured_grid}
+\alias{input_add_vtu_unstructured_grid}
+\title{input_add_vtu_unstructured_grid}
+\usage{
+input_add_vtu_unstructured_grid(ogs6_obj, piece, field_data = NULL)
+}
+\arguments{
+\item{ogs6_obj}{The ogs6 object the .vtu UnstructuredGrid should be added to}
+
+\item{piece}{A Piece (WIP)}
+
+\item{field_data}{FieldData (WIP)}
+}
+\description{
+Adds .vtu UnstructuredGrid to a ogs6 class object
+}
diff --git a/man/new_data_array.Rd b/man/new_data_array.Rd
new file mode 100644
index 0000000..6d01975
--- /dev/null
+++ b/man/new_data_array.Rd
@@ -0,0 +1,21 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{new_data_array}
+\alias{new_data_array}
+\title{new_data_array}
+\usage{
+new_data_array(
+  type,
+  name,
+  format,
+  range_min,
+  range_max,
+  number_of_components = NULL,
+  number_of_tuples = NULL,
+  offset = NULL,
+  data = NULL
+)
+}
+\description{
+S3 class constructor, returns S3 class describing a .vtu DataArray element
+}
diff --git a/man/new_gml.Rd b/man/new_gml.Rd
new file mode 100644
index 0000000..6a1d6ce
--- /dev/null
+++ b/man/new_gml.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_gml.R
+\name{new_gml}
+\alias{new_gml}
+\title{Class describing the gml file and any parameters defined in one}
+\usage{
+new_gml(geometry_name = NULL, points = NULL, polylines = NULL, surfaces = NULL)
+}
+\description{
+Class describing the gml file and any parameters defined in one
+}
diff --git a/man/new_ogs6.Rd b/man/new_ogs6.Rd
new file mode 100644
index 0000000..dd3a911
--- /dev/null
+++ b/man/new_ogs6.Rd
@@ -0,0 +1,25 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/ogs6.R
+\name{new_ogs6}
+\alias{new_ogs6}
+\title{Constructor for the ogs6 base class}
+\usage{
+new_ogs6(
+  sim_io = list(input = list(), output = list()),
+  sim_name = character(),
+  sim_id = integer(),
+  sim_path = character()
+)
+}
+\arguments{
+\item{sim_io}{...}
+
+\item{sim_name}{A string value representing the simulation name}
+
+\item{sim_id}{An integer value representing the simulation ID}
+
+\item{sim_path}{A string value describing the path where the IO files will be saved}
+}
+\description{
+Constructor for the ogs6 base class
+}
diff --git a/man/new_r2ogs6_prj_medium_phase.Rd b/man/new_r2ogs6_prj_medium_phase.Rd
new file mode 100644
index 0000000..f42ff0a
--- /dev/null
+++ b/man/new_r2ogs6_prj_medium_phase.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_prj.R
+\name{new_r2ogs6_prj_medium_phase}
+\alias{new_r2ogs6_prj_medium_phase}
+\title{Defines a .prj medium phase element}
+\usage{
+new_r2ogs6_prj_medium_phase(type = character(), properties = list())
+}
+\arguments{
+\item{type}{A string specifying the medium type (valid types: ...)}
+
+\item{properties}{A list of properties (see ?r2ogs6_property for more info)}
+}
+\description{
+Defines a .prj medium phase element
+}
diff --git a/man/new_vtu.Rd b/man/new_vtu.Rd
new file mode 100644
index 0000000..74156ed
--- /dev/null
+++ b/man/new_vtu.Rd
@@ -0,0 +1,22 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/input_add_vtu.R
+\name{new_vtu}
+\alias{new_vtu}
+\title{new_vtu}
+\usage{
+new_vtu(type, version, byte_order, header_type, compressor = NULL)
+}
+\arguments{
+\item{type}{The type of the vtu file (e. g. "UnstructuredGrid")}
+
+\item{version}{The version of the .vtu file (e. g. 1.0)}
+
+\item{byte_order}{Either "LittleEndian" or "BigEndian"}
+
+\item{header_type}{The header type (e. g. "UInt32")}
+
+\item{compressor}{Optional: The compressor to be used}
+}
+\description{
+S3 class constructor, returns S3 class describing the .vtu file and any parameters defined in it
+}
diff --git a/man/points_to_xml.Rd b/man/points_to_xml.Rd
index 3028ad0..25f9a3d 100644
--- a/man/points_to_xml.Rd
+++ b/man/points_to_xml.Rd
@@ -1,5 +1,5 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml.R
+% Please edit documentation in R/export_gml.R
 \name{points_to_xml}
 \alias{points_to_xml}
 \title{Turns a tibble of points into an XML node}
diff --git a/man/polylines_to_xml.Rd b/man/polylines_to_xml.Rd
index 153a155..0ab088a 100644
--- a/man/polylines_to_xml.Rd
+++ b/man/polylines_to_xml.Rd
@@ -1,13 +1,13 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml.R
+% Please edit documentation in R/export_gml.R
 \name{polylines_to_xml}
 \alias{polylines_to_xml}
 \title{Turns a list of polylines into an XML node}
 \usage{
-polylines_to_xml(polyline_list)
+polylines_to_xml(polylines)
 }
 \arguments{
-\item{polyline_list}{The specified list}
+\item{polylines}{A list of polylines}
 }
 \value{
 An XML node containing the polylines
diff --git a/man/prj_data_to_xml.Rd b/man/prj_data_to_xml.Rd
new file mode 100644
index 0000000..4c7e129
--- /dev/null
+++ b/man/prj_data_to_xml.Rd
@@ -0,0 +1,14 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_prj.R
+\name{prj_data_to_xml}
+\alias{prj_data_to_xml}
+\title{Wrapper function to create a .prj XML document based on the user input data}
+\usage{
+prj_data_to_xml(prj_obj)
+}
+\arguments{
+\item{prj_obj}{.}
+}
+\description{
+Wrapper function to create a .prj XML document based on the user input data
+}
diff --git a/man/surfaces_to_xml.Rd b/man/surfaces_to_xml.Rd
index 0715a66..c0a376a 100644
--- a/man/surfaces_to_xml.Rd
+++ b/man/surfaces_to_xml.Rd
@@ -1,13 +1,13 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/create_gml.R
+% Please edit documentation in R/export_gml.R
 \name{surfaces_to_xml}
 \alias{surfaces_to_xml}
 \title{Turns a list of surfaces into an XML node}
 \usage{
-surfaces_to_xml(surfaces_list)
+surfaces_to_xml(surfaces)
 }
 \arguments{
-\item{surfaces_list}{The specified list}
+\item{surfaces}{A list of surfaces}
 }
 \value{
 An XML node containing the surfaces
diff --git a/man/validate_gml_data.Rd b/man/validate_gml_data.Rd
new file mode 100644
index 0000000..f26bf31
--- /dev/null
+++ b/man/validate_gml_data.Rd
@@ -0,0 +1,14 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/validate_gml.R
+\name{validate_gml_data}
+\alias{validate_gml_data}
+\title{validate_gml_data}
+\usage{
+validate_gml_data(gml_obj)
+}
+\arguments{
+\item{gml_obj}{A gml class object}
+}
+\description{
+Checks if the defined gml class object isn't empty
+}
diff --git a/man/validate_ogs6.Rd b/man/validate_ogs6.Rd
new file mode 100644
index 0000000..81ae718
--- /dev/null
+++ b/man/validate_ogs6.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/ogs6.R
+\name{validate_ogs6}
+\alias{validate_ogs6}
+\title{Validating functions for an ogs6 class object (to be run before a simulation is started)}
+\usage{
+validate_ogs6(ogs6_obj)
+}
+\description{
+Validating functions for an ogs6 class object (to be run before a simulation is started)
+}
diff --git a/man/validate_points.Rd b/man/validate_points.Rd
index f781919..2c0ab7f 100644
--- a/man/validate_points.Rd
+++ b/man/validate_points.Rd
@@ -2,9 +2,7 @@
 % Please edit documentation in R/validate_gml.R
 \name{validate_points}
 \alias{validate_points}
-\title{Checks if the input is a tibble, if this tibble has the right number of elements,
-if those elements are named correctly, if the lists in the tibble are of the same length and
-if there is any overlapping points or duplicate point names}
+\title{validate_points}
 \usage{
 validate_points(gml_points)
 }
@@ -13,6 +11,5 @@ validate_points(gml_points)
 }
 \description{
 Checks if the input is a tibble, if this tibble has the right number of elements,
-if those elements are named correctly, if the lists in the tibble are of the same length and
-if there is any overlapping points or duplicate point names
+if those elements are named correctly and if there are any overlapping points or duplicate point names
 }
diff --git a/man/validate_polylines.Rd b/man/validate_polylines.Rd
new file mode 100644
index 0000000..78fdd47
--- /dev/null
+++ b/man/validate_polylines.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/validate_gml.R
+\name{validate_polylines}
+\alias{validate_polylines}
+\title{validate_polylines}
+\usage{
+validate_polylines(gml_polylines)
+}
+\arguments{
+\item{gml_polylines}{A list consisting of other lists}
+}
+\description{
+Checks if the input is a list, if this list consists of other lists and
+if those child lists have the correct structure (length of 2, first element is a string named
+'name', second element is a numeric vector)
+}
diff --git a/man/validate_surface_elements.Rd b/man/validate_surface_elements.Rd
new file mode 100644
index 0000000..3720ee7
--- /dev/null
+++ b/man/validate_surface_elements.Rd
@@ -0,0 +1,19 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/validate_gml.R
+\name{validate_surface_elements}
+\alias{validate_surface_elements}
+\title{validate_surface_elements}
+\usage{
+validate_surface_elements(gml_surface_element_1, gml_surface_element_2)
+}
+\arguments{
+\item{gml_surface_element_1}{A numerical vector of length 3}
+
+\item{gml_surface_element_2}{A numerical vector of length 3}
+}
+\description{
+Helper function, checks if two numerical vectors of length 3 (two surface elements)
+each consist of 3 different elements and also have exactly 2 matching elements between them
+which means they describe a valid surface. You can think of the two vectors as two triangles,
+and the two triangles together form a square which is our surface.
+}
diff --git a/man/validate_surfaces.Rd b/man/validate_surfaces.Rd
new file mode 100644
index 0000000..9baad48
--- /dev/null
+++ b/man/validate_surfaces.Rd
@@ -0,0 +1,16 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/validate_gml.R
+\name{validate_surfaces}
+\alias{validate_surfaces}
+\title{validate_surfaces}
+\usage{
+validate_surfaces(gml_surfaces)
+}
+\arguments{
+\item{gml_surfaces}{A list consisting of other lists}
+}
+\description{
+Checks if the input is a list, if this list consists of other lists and
+if those child lists have the correct structure (length of 3, first element is a string named
+'name', second and third element are numeric vectors)
+}
diff --git a/man/vtu_appended_data_to_xml-open-paren-WIP-close-paren.Rd b/man/vtu_appended_data_to_xml-open-paren-WIP-close-paren.Rd
new file mode 100644
index 0000000..08012d7
--- /dev/null
+++ b/man/vtu_appended_data_to_xml-open-paren-WIP-close-paren.Rd
@@ -0,0 +1,17 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_vtu.R
+\name{vtu_appended_data_to_xml
+(WIP)}
+\alias{vtu_appended_data_to_xml
+(WIP)}
+\alias{vtu_appended_data_to_xml}
+\title{vtu_appended_data_to_xml}
+\usage{
+vtu_appended_data_to_xml(appended_data)
+}
+\arguments{
+\item{appended_data}{A list object consisting of 2 elements named 'data' and 'encoding'}
+}
+\description{
+vtu_appended_data_to_xml
+}
diff --git a/man/vtu_data_to_xml.Rd b/man/vtu_data_to_xml.Rd
new file mode 100644
index 0000000..9fb16ef
--- /dev/null
+++ b/man/vtu_data_to_xml.Rd
@@ -0,0 +1,17 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_vtu.R
+\name{vtu_data_to_xml}
+\alias{vtu_data_to_xml}
+\title{Wrapper function to create a .vtu XML document based on the user input data}
+\usage{
+vtu_data_to_xml(vtu_obj)
+}
+\arguments{
+\item{vtu_obj}{A vtu class object}
+}
+\value{
+A XML document ready for export to a file
+}
+\description{
+Wrapper function to create a .vtu XML document based on the user input data
+}
diff --git a/man/vtu_piece_to_xml.Rd b/man/vtu_piece_to_xml.Rd
new file mode 100644
index 0000000..cc11b2b
--- /dev/null
+++ b/man/vtu_piece_to_xml.Rd
@@ -0,0 +1,21 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/export_vtu.R
+\name{vtu_piece_to_xml}
+\alias{vtu_piece_to_xml}
+\title{(WIP, change input parameter to piece!!)}
+\usage{
+vtu_piece_to_xml(
+  number_of_points,
+  number_of_cells,
+  point_data,
+  cell_data,
+  points,
+  cells
+)
+}
+\arguments{
+\item{piece}{A list consisting of lists of data_array class objects}
+}
+\description{
+(WIP, change input parameter to piece!!)
+}
diff --git a/my_experimental_cube.gml b/test.gml
similarity index 100%
rename from my_experimental_cube.gml
rename to test.gml
diff --git a/tests/testthat/test-create_gml.R b/tests/testthat/test-create_gml.R
deleted file mode 100644
index db42d82..0000000
--- a/tests/testthat/test-create_gml.R
+++ /dev/null
@@ -1,95 +0,0 @@
-test_that("GMLPoint object is initialized correctly", {
-  gml_point <- GMLPoint$new(1, c(2, 3, 4), TRUE)
-
-  expect_equal(gml_point$id, 1)
-  expect_equal(gml_point$coordinates, c(2, 3, 4))
-  expect_equal(gml_point$dim, 3)
-  expect_equal(gml_point$is_origin, TRUE)
-
-  expect_equal(gml_point$as_list(), list(id = 1, x = 2, y = 3, z = 4, name = "origin"))
-  expect_equal(gml_point$as_node(), list(point = structure(list(), id = 1,
-                                                           x = 2, y = 3, z = 4, name = "origin")))
-})
-
-test_that("GMLPoints object is initialized correctly", {
-  gml_point_1 <- GMLPoint$new(is_origin = TRUE)
-  gml_point_2 <- GMLPoint$new(1, c(0, 0, 1))
-  gml_points <- GMLPoints$new(c(gml_point_1, gml_point_2))
-
-  expect_equal(gml_points$ids, c(gml_point_1$id, gml_point_2$id))
-  expect_equal(gml_points$as_list(), list(point = gml_point_1$as_list(), point = gml_point_2$as_list()))
-  expect_equal(gml_points$as_node(), list(points = c(gml_point_1$as_node(), gml_point_2$as_node())))
-})
-
-
-test_that("GMLPolyline object is initialized correctly", {
-  gml_polyline <- GMLPolyline$new(0, "my_line", 1, 2)
-
-  expect_equal(gml_polyline$id, 0)
-  expect_equal(gml_polyline$name, "my_line")
-  expect_equal(gml_polyline$point1, 1)
-  expect_equal(gml_polyline$point2, 2)
-
-  expect_equal(gml_polyline$as_node(), list(polyline = structure(list(pnt = list(1), pnt = list(2)),
-                                                                 id = 0, name = "my_line")))
-})
-
-test_that("GMLPolylines object is initialized correctly", {
-  gml_polyline_1 <- GMLPolyline$new(0, "line_1", 1, 2)
-  gml_polyline_2 <- GMLPolyline$new(1, "line_2", 1, 3)
-  gml_polyline_3 <- GMLPolyline$new(1, "line_3", 1, 3)
-  gml_polylines <- GMLPolylines$new(c(gml_polyline_1, gml_polyline_2))
-
-  expect_equal(gml_polylines$ids, c(gml_polyline_1$id, gml_polyline_2$id))
-  expect_equal(gml_polylines$gml_polylines, c(gml_polyline_1, gml_polyline_2))
-
-  expect_error(gml_polylines$validate_ids(c(gml_polyline_2, gml_polyline_3)))
-  expect_error(gml_polylines$validate_polylines(c(gml_polyline_2, gml_polyline_3)))
-  expect_equal(gml_polylines$as_node(), list(polylines = c(gml_polyline_1$as_node(), gml_polyline_2$as_node())))
-})
-
-
-test_that("GMLSurfaceElement object is initialized correctly", {
-  gml_surface_element <- GMLSurfaceElement$new(0, 1, 3)
-
-  expect_equal(gml_surface_element$p1, 0)
-  expect_equal(gml_surface_element$p2, 1)
-  expect_equal(gml_surface_element$p3, 3)
-
-  expect_error(GMLSurfaceElement$new(0, 0, 3))
-  expect_equal(gml_surface_element$as_list(), list(p1 = 0, p2 = 1, p3 = 3))
-  expect_equal(gml_surface_element$as_node(), list(element = structure(list(), p1 = 0, p2 = 1, p3 = 3)))
-})
-
-test_that("GMLSurface object is initialized correctly", {
-  gml_surface_element_1 <- GMLSurfaceElement$new(0, 1, 3)
-  gml_surface_element_2 <- GMLSurfaceElement$new(1, 3, 2)
-  gml_surface_element_3 <- GMLSurfaceElement$new(3, 0, 1)
-  gml_surface <- GMLSurface$new(0, "my_surface", gml_surface_element_1, gml_surface_element_2)
-
-  expect_equal(gml_surface$id, 0)
-  expect_equal(gml_surface$name, "my_surface")
-  expect_equal(gml_surface$element1, gml_surface_element_1)
-  expect_equal(gml_surface$element2, gml_surface_element_2)
-
-  expect_error(GMLSurface$new(0, "my_surface", gml_surface_element_1, gml_surface_element_3))
-  expect_equal(gml_surface$as_node(), list(surface =
-                                                     structure(c(gml_surface_element_1$as_node(),
-                                                                 gml_surface_element_2$as_node()),
-                                                               id = 0, name = "my_surface")))
-})
-
-test_that("GMLSurfaces object is initialized correctly", {
-  gml_surface_element_1 <- GMLSurfaceElement$new(0, 1, 3)
-  gml_surface_element_2 <- GMLSurfaceElement$new(1, 3, 2)
-  gml_surface_element_3 <- GMLSurfaceElement$new(4, 5, 6)
-  gml_surface_element_4 <- GMLSurfaceElement$new(5, 6, 7)
-  gml_surface_1 <- GMLSurface$new(0, "surface_1", gml_surface_element_1, gml_surface_element_2)
-  gml_surface_2 <- GMLSurface$new(1, "surface_2", gml_surface_element_3, gml_surface_element_4)
-  gml_surface_3 <- GMLSurface$new(1, "surface_3", gml_surface_element_3, gml_surface_element_4)
-  gml_surfaces <- GMLSurfaces$new(c(gml_surface_1, gml_surface_2))
-
-  expect_equal(gml_surfaces$ids, c(gml_surface_1$id, gml_surface_2$id))
-  expect_error(gml_surfaces$validate_ids(c(gml_surface_2, gml_surface_3)))
-  expect_equal(gml_surfaces$as_node(), list(surfaces = c(gml_surface_1$as_node(), gml_surface_2$as_node())))
-})
diff --git a/tests/testthat/test-utils.R b/tests/testthat/test-utils.R
index 0e8f85b..c2aa95b 100644
--- a/tests/testthat/test-utils.R
+++ b/tests/testthat/test-utils.R
@@ -1,19 +1,42 @@
 
-test_that("get_xml_encoding returns valid XML encoding", {
-  expect_equal(get_xml_encoding(system.file("extdata", "flow_free_expansion.prj", package = "r2ogs6")), "ISO-8859-1")
+test_that("add_opt_attr adds an optional attribute to a node list", {
+
+    test_node_1 <- list(test = structure(list()))
+
+    test_node_1 <- add_opt_attr(test_node_1, 42, "meaning_of_life")
+
+    expect_equal(attributes(test_node_1[[1]])[["meaning_of_life"]], 42)
+
+    test_node_1 <- add_opt_attr(test_node_1, NULL, "null")
+    expect_equal(length(attributes(test_node_1[[1]])), 1)
+
 })
-#> Test passed
 
-test_that("create_blank_prj writes .prj file with empty XML text nodes", {
-  template_file <- system.file("extdata", "flow_free_expansion_template.prj", package = "r2ogs6")
-  create_template_prj(system.file("extdata", "flow_free_expansion.prj", package = "r2ogs6"), template_file)
 
-  xml_templ <- xml2::read_xml(template_file)
+test_that("add_opt_child adds an optional child to a node list", {
+
+    test_node_1 <- list(test = structure(list(), attr_1 = "hi", attr_2 = "there"))
+    test_node_2 <- list(test = structure(list(), attr_1 = "hi", attr_2 = "there"))
+
+    test_node_1 <- add_opt_child(test_node_1, 42)
+
+    expect_equal(test_node_1[[1]][[1]], 42)
 
-  #Get text nodes
-  text_nodes<-xml2::xml_find_all(xml_templ, "//text()")
+    expect_error(add_opt_child(test_node_1, 42))
+    expect_error(add_opt_child(test_node_1, 42, "number"))
+
+
+    test_node_2 <- add_opt_child(test_node_2, 42, "number")
+    test_node_2 <- add_opt_child(test_node_2, 42, "number")
+    test_node_2 <- add_opt_child(test_node_2, NULL, "null")
+
+
+    expect_equal(length(test_node_2[[1]]), 2)
+    expect_equal(length(names(test_node_2[[1]])), 2)
+
+    expect_error(add_opt_child(test_node_2, 42))
 
-  #There should not be any text left in the text nodes
-  expect_equal(xml2::xml_text(text_nodes), character(0))
 })
-#> Test passed
+
+
+
diff --git a/tests/testthat/test-validate_gml.R b/tests/testthat/test-validate_gml.R
index 2ad65b7..71e5ffc 100644
--- a/tests/testthat/test-validate_gml.R
+++ b/tests/testthat/test-validate_gml.R
@@ -1,4 +1,4 @@
-test_that("validate_points function checks ...", {
+test_that("validate_points function checks if ...", {
 
     point_list <- list(x = c(0, 0), y = c(1, 1), z = c(0, 1))
 
@@ -22,3 +22,42 @@ test_that("validate_points function checks ...", {
     expect_invisible(validate_points(point_tibble_val))
     expect_invisible(validate_points(point_tibble_val_2))
 })
+
+
+test_that("validate_polylines function checks if...", {
+
+    polyline_tibble <- tibble::tibble(name = "tibble", polyline = c(c(1, 2)))
+
+    #Check class (should expect a list, not a tibble)
+    expect_error(validate_polylines(polyline_tibble))
+
+    polyline_list_inv_0 <- list(name = "missing_polyline_list", c(1,2))
+    polyline_list_inv_1 <- list(list(name = "wrong_length", c(0, 1, 2), c(1, 2)))
+    polyline_list_inv_2 <- list(list(name = 42, c(1, 2)))
+    polyline_list_inv_3 <- list(list(name = "wrong_points", c("this", "should", "fail")))
+
+    expect_error(validate_polylines(polyline_list_inv_0))
+    expect_error(validate_polylines(polyline_list_inv_1))
+    expect_error(validate_polylines(polyline_list_inv_2))
+    expect_error(validate_polylines(polyline_list_inv_3))
+
+    polyline_list_val_0 <- list(list(name = "cool", c(1, 2)))
+    polyline_list_val_1 <- list(list(name = "also cool", c(1, 2, 4, 5, 1)))
+
+    expect_invisible(validate_polylines(polyline_list_val_0))
+    expect_invisible(validate_polylines(polyline_list_val_1))
+
+    #...(WIP)
+
+})
+
+
+test_that("validate_surfaces function checks if...", {
+
+    surface_tibble <- tibble::tibble(name = "tibble", surface = c(c(0, 1, 2), c(1, 2, 3)))
+
+    #Check class (should expect a list, not a tibble)
+    expect_error(validate_surfaces(surface_tibble))
+
+    #...(WIP)
+})
\ No newline at end of file
-- 
GitLab