From 2b6e52647698108490c732712181b2a148e923c6 Mon Sep 17 00:00:00 2001 From: aheinri5 <Anna@netzkritzler.de> Date: Tue, 24 Nov 2020 09:26:04 +0100 Subject: [PATCH] Added vignettes folder (WIP) --- vignettes/user_workflow_vignette.Rmd | 104 +++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 vignettes/user_workflow_vignette.Rmd diff --git a/vignettes/user_workflow_vignette.Rmd b/vignettes/user_workflow_vignette.Rmd new file mode 100644 index 0000000..de913ce --- /dev/null +++ b/vignettes/user_workflow_vignette.Rmd @@ -0,0 +1,104 @@ +--- +title: "r2ogs6 User Guide" +author: "Anna Heinrich" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{r2ogs6 User Guide} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +```{r setup} +library(r2ogs6) +``` + +## Prerequisites +Apart from having the library itself loaded, you need to have OpenGeoSys 6 installed to be able to use `r2ogs6`. + +## Creating your simulation object +... +To represent a simulation object, `r2ogs6` uses an R6 class called 'OGS6'. (...). + +Don't let ... intimidate you, though. Working with your simulation object is easier than it sounds, so let's get to it. + +Before we can work with an object, we need to create it. To create it, we need to call the class constructor and provide it with some parameters: + +* `sim_name` The name of your simulation + +* `sim_id` A simulation ID (defaults to 1, this is used for chaining simulations) + +* `sim_path` All relevant files for your simulation will be in here + +* `ogs_bin_path` This is the path to the `bin` folder of your OpenGeoSys 6 distribution + +* `test_mode` (This defaults to `FALSE` and should be left alone. I'm setting it to `TRUE` for this vignette because it turns off path validation and we haven't supplied a valid `ogs_bin_path`) + +Usually, you will only ever define `sim_name`, `sim_path` and `ogs_bin_path`. + +```{r} +ogs6_obj <- OGS6$new(sim_name = "my_simulation", + sim_id = 1, + sim_path = "C:\\my_sim_folder\\", + ogs_bin_path ="C:\\Programs\\OpenGeoSys\\...\\bin\\", + test_mode = TRUE) +``` + +And that's it, we now have a simulation object. + + +## Loading an OpenGeoSys 6 simulation from a project file +The quickest and easiest way to load a simulation is by using an already existing benchmark. If you take a look at the [OpenGeoSys documentation](https://www.opengeosys.org/docs/benchmarks/elliptic/elliptic-dirichlet/), you'll find plenty of benchmarks to choose from along with a link to their project file on GitLab at the top of the respective page. + +For demonstration purposes, I will use a project from the `HydroMechanics` benchmarks, which can be found [here](https://gitlab.opengeosys.org/ogs/ogs/-/tree/master/Tests/Data/HydroMechanics/IdealGas/flow_free_expansion). + +NOTE: `r2ogs6` has not been tested with every existing benchmark. Due to the large number of input parameters, you might encounter cases where the import fails. + + +## Setting up your own OpenGeoSys 6 simulation +(...) + + +### Check the status of your OGS6 simulation object +Since there's plenty of required and optional input parameters, you might get lost while setting up your simulation. To get a brief overview of your simulation, you can use the `OGS6` function `get_status()`. This tells you which input parameters are missing before you can run a simulation. + +```{r} +# Call on the OGS6 object (note the R6 style) +ogs6_obj$get_status() +``` + +Since we haven't defined anything so far, you'll see a lot of red there. + +### Knowing what kind of data to add to your OGS6 simulation object + +The results of `get_status()` already gave us a hint what we can add. We'll go from there and try to find out more about the possible input data. Say we want to find out more about `process` objects. + +```r +# To take a look at the documentation, use ? followed by the name of a class +?r2ogs6_process +``` + +As a rule of thumb, classes are named with the prefix `r2ogs6_` followed by their XML tag name in the `.prj` file. The only exceptions to this rule are subclasses where this would lead to duplicate class names. The class `r2ogs6_time_loop` for example contains a subclass representing a `process` child element which is not to be confused with the `process` children of the first level `processes` node directly under the root node of the `.prj` file. Because of this, that subclass is named `r2ogs6_tl_process`. + +(...) + + + +Let's try adding something now. + +### Adding input data via input_add() + + + +### Adding input data via add_* + + + + + -- GitLab