From 87ec294d1c2a5135a3b24cdbb2a1b0cee90a549e Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Mon, 30 May 2022 12:45:32 +0200 Subject: [PATCH] [markdownlint] web/content/docs/userguide. --- .../userguide/basics/cli-arguments/index.md | 2 +- .../userguide/basics/conventions/index.md | 16 +++-- .../basics/jupyter-notebooks/index.md | 8 +-- .../userguide/basics/project-file/index.md | 3 + .../docs/userguide/basics/quadrature.md | 2 - .../run_ogs_with_mpi.md | 59 +++++++++++++------ .../Heat_Transport_BHE/index.md | 16 ++--- .../Hydro_Component.md | 13 ++-- .../troubleshooting/get-support/index.md | 1 - 9 files changed, 74 insertions(+), 46 deletions(-) diff --git a/web/content/docs/userguide/basics/cli-arguments/index.md b/web/content/docs/userguide/basics/cli-arguments/index.md index afab83dc6d9..99b3aaad173 100644 --- a/web/content/docs/userguide/basics/cli-arguments/index.md +++ b/web/content/docs/userguide/basics/cli-arguments/index.md @@ -11,7 +11,7 @@ weight = 3 The following arguments are available: -``` +```bash $ ogs --help --enable-fpe diff --git a/web/content/docs/userguide/basics/conventions/index.md b/web/content/docs/userguide/basics/conventions/index.md index 55108317ed7..d6463baec87 100644 --- a/web/content/docs/userguide/basics/conventions/index.md +++ b/web/content/docs/userguide/basics/conventions/index.md @@ -16,7 +16,6 @@ In general OpenGeoSys is not using any intrinsic units, i.e. OGS assumes that a However, there are some exceptions to the rule as for instance some empirical laws like some expressions for the vapor diffusion and latent heat that assume the temperature to be given in Kelvin. Therefore, we recommend using SI base units. - ### Dimensional analysis of source and boundary terms based on their primary variables Most processes in OpenGeoSys are derived and implemented with a 3D setting in mind. @@ -43,7 +42,7 @@ In contrast, for _real_ two-dimensional and one-dimensional problems the current **Attention**: The units given below apply to 3D and said cross-sectional models! That applies to all of OpenGeoSys's processes; there are currently no processes in OpenGeoSys that are manifest 1D or 2D. -__Units:__ +**Units:** | Quantity name | Dimension symbol | SI base units | | ------------- | ----------------- | ------------- | @@ -52,29 +51,33 @@ __Units:__ | mass | $\mathrm{M}$ | $\mathrm{kg}$ | | temperature | $\mathrm{\Theta}$ | $\mathrm{K}$ | -__Temperature:__ +**Temperature:** + * [Dirichlet BC](https://doxygen.opengeosys.org/d5/d71/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__dirichlet): Boundaries held at a fixed temperature (Units: $\mathrm{\Theta}$, SI: $\mathrm{K}$). * [Neumann BC](https://doxygen.opengeosys.org/d1/d2e/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__neumann): Used to impose a heat flux through a boundary domain (Units: $\mathrm{M \cdot T^{-3}}$, SI: $\mathrm{W}\cdot \mathrm{m}^{-2}$). * [Volumetric ST](https://doxygen.opengeosys.org/d0/d89/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__volumetric): Representing a volumetric heat source in the model domain (Units: $\mathrm{M \cdot L^{-1} \cdot T^{-3}}$, SI: $\mathrm{W} \cdot \mathrm{m}^{-3}$). * [Nodal ST](https://doxygen.opengeosys.org/d0/d2c/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__nodal): Representing a heat source in the model domain (Units: $\mathrm{M \cdot L^{d-1} \cdot T^{-3}}$, SI: $\mathrm{W} \cdot \mathrm{m}^{d-3}$). * [Line ST](https://doxygen.opengeosys.org/d9/d4a/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__line): Representing a heat source on a line shaped subdomain (Units: $\mathrm{M} \cdot \mathrm{L}^{d-2} \cdot \mathrm{T}^{-3}$, SI: $\mathrm{W} \cdot \mathrm{m}^{d-4}$). -__Displacement__ +**Displacement:** + * [Dirichlet BC](https://doxygen.opengeosys.org/d5/d71/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__dirichlet): Boundaries held at a fixed displacement (Units: $\mathrm{L}$, SI: $\mathrm{m}$). * [Neumann BC](https://doxygen.opengeosys.org/d1/d2e/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__neumann): Used to apply an external traction at a boundary (Units: $\mathrm{M \cdot L^{-1} \cdot T^{-2}}$, SI: $\mathrm{N} \cdot \mathrm{m}^{-2}$). * [Volumetric ST](https://doxygen.opengeosys.org/d0/d89/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__volumetric): A body force density acting in the model domain. One example is gravity, but gravitiy can be modeled by other means in OpenGeoSys (Units: $\mathrm{M \cdot L^{-2} \cdot T^{-2}}$, SI: $\mathrm{N} \cdot \mathrm{m}^{-3}$). -__Pressure__ +**Pressure:** + * [Dirichlet BC](https://doxygen.opengeosys.org/d5/d71/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__dirichlet): Boundaries held at a fixed pressure (Units: $\mathrm{M \cdot L^{-1} \cdot T^{-2}}$, SI: $\mathrm{Pa}$). * [Neumann BC](https://doxygen.opengeosys.org/d1/d2e/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__neumann): Used to impose a mass flux through a domain boundary (Units: $\mathrm{M \cdot L^{-2} \cdot T^{-1}}$, SI: $\mathrm{kg} \cdot \mathrm{m}^{-2} \cdot \mathrm{s}^{-1}$). * [Volumetric ST](https://doxygen.opengeosys.org/d0/d89/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__volumetric): Representing a volumetric mass source in the model domain (Units: $\mathrm{ M \cdot L^{-3} \cdot T^{-1}}$, SI: $\mathrm{kg} \cdot \mathrm{m}^{-3} \cdot \mathrm{s}^{-1}$). * [Nodal ST](https://doxygen.opengeosys.org/d0/d2c/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__nodal): Representing a mass production rate in the model domain (Units: $\mathrm{M} \cdot \mathrm{L}^{d-3} \cdot \mathrm{T}^{-1}$, SI: $\mathrm{kg} \cdot \mathrm{m}^{d-3} \cdot \mathrm{s}^{-1}$). * [Line ST](https://doxygen.opengeosys.org/d9/d4a/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__line): Representing a mass source on a line shaped subdomain (Units: $\mathrm{M} \cdot \mathrm{L}^{d-4} \cdot \mathrm{T}^{-1}$, SI: $\mathrm{kg} \cdot \mathrm{m}^{d-4} \cdot \mathrm{s}^{-1}$). -__Pressure (Liquid Flow Process)__ +**Pressure (Liquid Flow Process):** The liquid flow process uses a volume-based PDE, not a mass-based one. Therefore, the list above does not apply to the liquid flow process, but you have to divide all units of natural boundary conditions and source terms by density, leading to the following list: + * [Dirichlet BC](https://doxygen.opengeosys.org/d5/d71/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__dirichlet): Boundaries held at a fixed pressure (Units: $\mathrm{M \cdot L^{-1} \cdot T^{-2}}$, SI: $\mathrm{Pa}$). * [Neumann BC](https://doxygen.opengeosys.org/d1/d2e/ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__neumann): Used to impose a volume flux through a domain boundary (Units: $\mathrm{L} \cdot \mathrm{T}^{-1}$, SI: $\mathrm{m} \cdot \mathrm{s}^{-1} = \mathrm{m}^3 \cdot \mathrm{m}^{-2} \cdot \mathrm{s}^{-1}$). * [Volumetric ST](https://doxygen.opengeosys.org/d0/d89/ogs_file_param__prj__process_variables__process_variable__source_terms__source_term__volumetric): Representing a volumetric volume source in the model domain (Units: $\mathrm{T}^{-1}$, SI: $\mathrm{s}^{-1} = \mathrm{m}^{3} \cdot \mathrm{m}^{-3} \cdot \mathrm{s}^{-1}$). @@ -169,6 +172,7 @@ For isotropic, linear elasticity we provide the interval [[2]](#2) and the recom | $p_\mathrm{FS}^\mathrm{max}$ | $\frac{2(1+\nu)}{3}$ | $1$ | ## References + <a id="1">[1]</a> {{< bib "kimtchjua2009" >}} diff --git a/web/content/docs/userguide/basics/jupyter-notebooks/index.md b/web/content/docs/userguide/basics/jupyter-notebooks/index.md index 9e2014fe0a0..b2bd10433dd 100644 --- a/web/content/docs/userguide/basics/jupyter-notebooks/index.md +++ b/web/content/docs/userguide/basics/jupyter-notebooks/index.md @@ -56,7 +56,6 @@ docker run --rm -p 8888:8888 -v $PWD:/home/jovyan/work --user `id -u $USER` \ This mounts your current directory into `~/work` inside the container. Use image `registry.opengeosys.org/ogs/ogs/ogs-petsc-jupyter` for PETSc-support! - <div class="note"> #### <i class="fab fa-windows"></i> Windows notes @@ -67,8 +66,9 @@ The above command only works when you run Docker from within a WSL2 Linux shell! - Install a Linux distribution from the Microsoft App Store. We recommend [Ubuntu 20.04](https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71). - In the Docker Desktop application under *Settings / Resources / WSL integration* add your Linux distribution. - Open a command prompt in your Linux distribution (At the start menu type the name of the distribution) and run the container. - - If your current working contains spaces write out `$PWD`, e.g.: - ``` + - If your current working contains spaces write out `$PWD`, e.g.: + + ```bash ... -v /c/Users/My\ Name/working/directory:/home/jovyan/work ... ``` @@ -96,7 +96,7 @@ You may have to modify the IP address if this is running on a remote machine. You can append a version number to the image name (applies both to Docker and Singularity) to get an image for a specific OGS release (starting with 6.4.1): -``` +```bash singularity run docker://registry.opengeosys.org/ogs/ogs/ogs-serial-jupyter:6.4.1 ``` diff --git a/web/content/docs/userguide/basics/project-file/index.md b/web/content/docs/userguide/basics/project-file/index.md index 4dfab2a7932..ed8c74e3d67 100644 --- a/web/content/docs/userguide/basics/project-file/index.md +++ b/web/content/docs/userguide/basics/project-file/index.md @@ -30,6 +30,7 @@ The `<include file="other_file.xml" />`-tag allows to include the content of ano ``` `Tests/Data/Elliptic/cube_1x1x1_SteadyStateDiffusion/SteadyStateDiffusion.xml`: + ```xml <process> <name>SteadyStateDiffusion</name> @@ -57,6 +58,7 @@ Please do not use `UTF-8 with BOM`-encoding! The BOM-marker from the included fi Patch files contain `<replace>`, `<add>` and `<remove>`-elements with [XPath](https://en.wikipedia.org/wiki/XPath)-selectors to modify a specific part of the project file (in-memory during run-time): `Tests/Data/Elliptic/square_1x1_SteadyStateDiffusion/square_neumann.xml`: + ```xml <?xml version="1.0" encoding="ISO-8859-1"?> <OpenGeoSysProjectDiff> @@ -91,6 +93,7 @@ Supplied patch files are applied in the given order. If the patch file specifies a `base_file`: `Tests/Data/Elliptic/cube_1x1x1_SteadyStateDiffusion/cube_1e1.xml`: + ```xml <?xml version="1.0" encoding="ISO-8859-1"?> <OpenGeoSysProjectDiff base_file="cube_1e0.prj"> diff --git a/web/content/docs/userguide/basics/quadrature.md b/web/content/docs/userguide/basics/quadrature.md index eca2228e9c4..a4d0b878bd7 100644 --- a/web/content/docs/userguide/basics/quadrature.md +++ b/web/content/docs/userguide/basics/quadrature.md @@ -37,7 +37,6 @@ The columns contain the following data: *z*<sup>k</sup> with *i ≤ Q*, *j ≤ Q* and *k ≤ Q*. I.e., maximum monomial degrees are higher in the Q column than in the P column. - | Integration order → | 1 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 4 | 4 | 4 | | ------------------- | ------: | ----: | ----: | ------: | ----: | ----: | ------: | ----: | ----: | ------: | ----: | ----: | | **Mesh element ↓** | **#IP** | **Q** | **P** | **#IP** | **Q** | **P** | **#IP** | **Q** | **P** | **#IP** | **Q** | **P** | @@ -91,4 +90,3 @@ implemented in OpenGeoSys. | Tetrahedron | 1 | – | – | 5 | ✓ | – | 14 | ✓ | ✓ | 20 | ✓ | ✓ | | 3–sided prism | 1 | – | – | 6 | ✓ | – | 21 | ✓ | ✓ | 28 | ✓ | ✓ | | Pyramid | 1 | – | – | 5 | ✓ | – | 13 | ✓ | ✓ | 13 | ✓ | ✓ | - diff --git a/web/content/docs/userguide/parallel_computing_MPI/run_ogs_with_mpi.md b/web/content/docs/userguide/parallel_computing_MPI/run_ogs_with_mpi.md index 7ffe08feed5..28f6e8abc70 100644 --- a/web/content/docs/userguide/parallel_computing_MPI/run_ogs_with_mpi.md +++ b/web/content/docs/userguide/parallel_computing_MPI/run_ogs_with_mpi.md @@ -16,7 +16,9 @@ The executable OGS for MPI parallel computing is compiled with special To conduct DDC enabled parallel computing with OGS, following steps are required: ### 1. Prepare input data + #### 1.1 Partition mesh + For the domain decomposition approach, an application of OGS using METIS as a node wise mesh topology partitioner, [`partmesh`]({{<ref "mesh-partition">}}), is provided to partition meshes by node. An example of how @@ -32,7 +34,8 @@ The partitioned meshes are written in binary files for a fast parallel reading Setting PETSc solver is the only change in project file for running parallel ogs with PETSc. For linear solver, it is done by adding a tag of `petsc` inside `linear_solver` tag, e.g: -``` + +```xml <linear_solvers> <linear_solver> <name>linear_solver</name> @@ -50,6 +53,7 @@ For linear solver, it is done by adding a tag of `petsc` inside `linear_solver` </linear_solver> </linear_solvers> ``` + If tag of `petsc` is not given in project file, the default setting of PETSc linear solver will be taken, which uses the solver type of `cg` and the preconditioner type of `jacobi`. @@ -57,7 +61,8 @@ If tag of `petsc` is not given in project file, the default setting of PETSc For the simulation of coupled processes with the staggered scheme, a prefix can be used by tag `prefix` to set PETSc solver for each process, individually. For example: -``` + +```xml <linear_solvers> <linear_solver> <name>linear_solver_T</name> @@ -83,6 +88,7 @@ can be used by tag `prefix` to set PETSc solver for each process, individually. </linear_solver> </linear_solvers> ``` + The above example shows that once a prefix is given for PETSc linear solver settings, the original prefix of PETSc keyword, `-`, can be replaced with a new prefix, `-[given prefix string]_`. In the @@ -92,19 +98,22 @@ A introduction and a list of of PETSc ksp solvers and preconditioners can be fou [this link](https://petsc.org/main/docs/manual/ksp/). ### 2. Launch MPI OGS + For MPI launcher, either *mpiexec* or *mpirun* can be used to run OGS. Preferably, *mpiexec* is recommended because it is defined in the MPI standard. The number of processes to run of *mpiexec* must be identical to the number of mesh partitions. For example, if the meshes of a project, foo.prj, are partitioned into 5 partitions, OGS can be launched in MPI as -``` + +```bash mpiexec -n 5 ogs foo.prj -o [path to the output directory] ``` Running PETSc enabled OGS with one compute thread does not need mesh partitioning. However, the MPI launcher mpiexc or mpirun is required, e.g.: -``` + +```bash mpiexec -n 1 ogs ... ``` @@ -112,14 +121,19 @@ Additional PETSc command line options can be given as unlabelled arguments at th (`... ogs ... -- [PETSc options]`). With PETSc command line options, you can + * monitor ksp solver convergence status, e.g. + +```bash +mpiexec -n 5 ogs foo.prj -o output -- -ksp_converged_reason -ksp_monitor_true_residual ``` - mpiexec -n 5 ogs foo.prj -o output -- -ksp_converged_reason -ksp_monitor_true_residual -``` + * change ksp solver setting, e.g.: + +```bash +mpiexec -n 5 ogs foo.prj -o output -- -ksp_type gmres -ksp_rtol 1e-16 -ksp_max_it 2000 ``` - mpiexec -n 5 ogs foo.prj -o output -- -ksp_type gmres -ksp_rtol 1e-16 -ksp_max_it 2000 -``` + * or use other PETSc command line options. For Linux clusters or supercomputer, computation job has to be submitted to @@ -130,7 +144,8 @@ For Linux clusters or supercomputer, computation job has to be submitted to The cluster system EVE of UFZ uses SLURM (Simple Linux Utility for Resource Management) to manage computing jobs. Here is an example of job script for the SLURM system on EVE: -``` + +```bash #!/bin/bash #SBATCH --job-name=ARESH_HM_3D_20 #SBATCH --chdir=/home/wwang/data_D/project/AREHS/HM_3D @@ -157,6 +172,7 @@ APP="/home/wwang/code/ogs6/exe_petsc/bin/ogs" srun -n "$SLURM_NTASKS" $APP /home/wwang/data_D/project/AREHS/HM_3D/simHM_glaciation.prj -o /home/wwang/data_D/project/AREHS/HM_3D/output ``` + In the job script for EVE, `module load foss/2020b` must be presented, and srun is a sort of MPI job launcher. If a job fails with an error message about shared library not found, you can check @@ -165,26 +181,30 @@ In the job script for EVE, `module load foss/2020b` must be presented, and in the job script. Once the the job script is ready, you can - - submit the job by command, `sbatch [job script name]`, - - check the job status by command `squeue`, - - or cancel the job by command `scancel [job ID]`. +* submit the job by command, `sbatch [job script name]`, +* check the job status by command `squeue`, +* or cancel the job by command `scancel [job ID]`. -For the detailed syntax of job script of SLURM for EVE, please visit https://wiki.ufz.de/eve/ +For the detailed syntax of job script of SLURM for EVE, please visit <https://wiki.ufz.de/eve/> (user login required). ### 3. Check results + There are two output types available, VTK and XMDF. In the project file, output type can be specified in `type` tag of `output` tag, for example: -``` + +```xml <output> <type>VTK</type> ... </output> ``` + or -``` + +```xml <output> <type>XDMF</type> ... @@ -192,18 +212,21 @@ or ``` #### 3.1 VTK output + The results are output in the partitioned vtu files, which are governed by a pvtu file. The data in the ghost cells of vtu files are overlapped. An OGS utility, *RemoveGhostData*, is available to merge the partition vtu files into one vtu file, meanwhile to eliminate the data overlapping. Here is an example to use that utility: -``` + +```bash RemoveGhostData -i foo.pvtu -o foo.vtu ``` -where the input file name is the name of pvtu file. + +Where the input file name is the name of pvtu file. #### 3.2 XMDF output + With XMDF, ogs gives two files, one XMDF file and one HDF5 file with file name extension of `h5`. You can use ParaView to open the XDMF file by selecting `Xdmf3ReaderS` or `Xdmf3ReaderT`. The XMDF output is highly recommended for running OGS with a large mesh, especially on supercomputers. - diff --git a/web/content/docs/userguide/process-dependent-configuration/Heat_Transport_BHE/index.md b/web/content/docs/userguide/process-dependent-configuration/Heat_Transport_BHE/index.md index 21eb5da3c00..ed6316d2106 100644 --- a/web/content/docs/userguide/process-dependent-configuration/Heat_Transport_BHE/index.md +++ b/web/content/docs/userguide/process-dependent-configuration/Heat_Transport_BHE/index.md @@ -21,14 +21,12 @@ This part aims to give an explanation of the mathematical framework in configuri * The subsurface is considered to be a 3D continuum, while the BHE is represented by 1D line elements as the second continuum. * The heat transfer between different BHE components is simulated by the Capacity-Resistance-Model (CaRM) in analogy to the electrical circuits. * In the subsurface continuum, both heat convection and heat conduction are governed by the thermal energy conservation equation, and it reads: -$$ -\begin{equation} -\frac{\partial}{\partial t} \left[ \epsilon \rho_f c_f + ( 1-\epsilon ) \rho_s c_s \right] T_s - + \nabla \cdot \left( \rho_f c_f \mathbf{v_f} T_s \right) - - \nabla \cdot \left( \Lambda_s \cdot \nabla T_s \right) = H_s, -\end{equation} -$$ + +$$\begin{equation}\frac{\partial}{\partial t} \left[ \epsilon \rho_f c_f + ( 1-\epsilon ) \rho_s c_s \right] T_s + \nabla \cdot \left( \rho_f c_f \mathbf{v_f} T_s \right) - \nabla \cdot \left( \Lambda_s \cdot \nabla T_s \right) = H_s, +\end{equation}$$ + Here, $\Lambda_s$ denotes the tensor of thermal hydrodynamic dispersion and $H_s$ represents the heat source and sink term. + * In the borehole continuum, each pipe is assigned with one governing equation, with the thermal convection in the pipeline simulated. Also, for each grout zone surrounding the pipeline, the thermal conduction equation was simulated. For details of the coupling between different borehole components and continuums, interested readers may refer to Diersch et al. (2011a; 2011b). ## Input parameters @@ -128,7 +126,8 @@ Four type of flow and temperature control patterns are provided in OGS. The unit of < power > is in $\mathrm{W}$ and < flow_rate > is in $\mathrm{m^{3}/s}$. For heating applications, thermal energy is extracted from the subsurface, then a negative power value should be given. It is vice versa for cooling applications. -<i class="far fa-arrow-right"></i> Further info:\ +<i class="far fa-arrow-right"></i> Further info: + For all the flow and temperature control options, OpenGeoSys calculates the inlet temperature of each BHE internally. For each BHE, temperature on its inlet pipe is always set as a Dirichlet type boundary condition. Depending on the choice of < flow_and_temperature_control >, the inflow temperature will be calculated dynamically in each time step and iteration to satisfy the given constrains. Here is an example using `TemperatureCurveConstantFlow`. @@ -143,6 +142,7 @@ Here is an example using `TemperatureCurveConstantFlow`. For 2U-type BHE configuration, the flow rate in < flow_and_temperature_control > indicates the flow rate within each U-pipe. When a fixed power or power curve is imposed on a 2U-type BHE, the given value in < flow_and_temperature_control > or in the related power curve should be specified with half of the user's presumed entire borehole exchanger power. + ### < grout > The thermal properties of the grout material is defined here. diff --git a/web/content/docs/userguide/process-dependent-configuration/Hydro_Component.md b/web/content/docs/userguide/process-dependent-configuration/Hydro_Component.md index 94614a33384..49a558597e7 100644 --- a/web/content/docs/userguide/process-dependent-configuration/Hydro_Component.md +++ b/web/content/docs/userguide/process-dependent-configuration/Hydro_Component.md @@ -11,16 +11,16 @@ weight = 44 ## Description of the ComponentTransport process -ComponentTransport process is widely used to predict the distribution of chemical components in the subsurface, which is controlled by the groundwater flow (advection), the hydrodynamic dispersion and diffusion, the sorption on the solid phase, as well as the decay of component. +ComponentTransport process is widely used to predict the distribution of chemical components in the subsurface, which is controlled by the groundwater flow (advection), the hydrodynamic dispersion and diffusion, the sorption on the solid phase, as well as the decay of component. ## Mathematical framework -The governing equation implemented in OGS-6 is the so-called advective and diffusion equation (`ADE`), with the consideration of sorption and decay process. ADE is widely used to describe the concentration of chemical components in groundwater aquifer and porous media. The equations can be solved analytically in (simplified) 1D cases. For more complex geometry, especially with heterogeneous material properties, numerical solution is often preferred. The ComponentTransport process has the following assumptions. +The governing equation implemented in OGS-6 is the so-called advective and diffusion equation (`ADE`), with the consideration of sorption and decay process. ADE is widely used to describe the concentration of chemical components in groundwater aquifer and porous media. The equations can be solved analytically in (simplified) 1D cases. For more complex geometry, especially with heterogeneous material properties, numerical solution is often preferred. The ComponentTransport process has the following assumptions. * The model domain is a porous media and it is fully saturated with water. * The fluid velocity in the porous media is assumed to be slow, and the flow process is regulated by Darcy's law. * The sorption process redistributes the chemical component between the aqueous and solid phase. -* When a decay coefficient is given, the decay of the chemical component follows first-order reaction kinetics equation. +* When a decay coefficient is given, the decay of the chemical component follows first-order reaction kinetics equation. For the flow process, the continuity equation for flowing fluid in a saturated porous medium is as follows $$ @@ -42,11 +42,11 @@ with the concentration $c_{\alpha}$ of the chemical component as the primary var $$ R = 1 + \rho k_{d} / \phi $$ -with the dry density of the porous media $\rho$ [kg/m$^3$] and the distribution coefficient $k_d$ [m$^3$/kg], and $\alpha$ [1/s] is the first-order decay constant, i.e. +with the dry density of the porous media $\rho$ [kg/m$^3$] and the distribution coefficient $k_d$ [m$^3$/kg], and $\alpha$ [1/s] is the first-order decay constant, i.e. $$ \alpha = ln 2 / t_{1/2} $$ -where $t_{1/2}$ [s] is the half life of the decaying component. +where $t_{1/2}$ [s] is the half life of the decaying component. ## Input parameters @@ -78,6 +78,7 @@ In the configuration of `ComponentTransport` process, it is generally configured </process> </processes> ``` + ### Component definition Under the keyword `<component>`, the properties of the transported chemical component must be given. Usually the parameters to be given are the pore diffusion coefficient, the retardation factor, and the decay rate. Below is an example of the Si component with its corresponding transport parameters. @@ -115,4 +116,4 @@ Under the keyword `<component>`, the properties of the transported chemical comp * [Variable Dependent Boundary Condition](https://www.opengeosys.org/docs/benchmarks/hydro-component/vdbc/) * [Conservative tracer transport with time varying source (1D/2D)](https://www.opengeosys.org/docs/benchmarks/hydro-component/contracer/contracer/) * [(Advection-)diffusion-sorption-decay problem](https://www.opengeosys.org/docs/benchmarks/notebooks/diffusionsorptiondecay/) -* [Two-layer diffusion problem](https://www.opengeosys.org/docs/benchmarks/notebooks/multilayerdiffusion/) \ No newline at end of file +* [Two-layer diffusion problem](https://www.opengeosys.org/docs/benchmarks/notebooks/multilayerdiffusion/) diff --git a/web/content/docs/userguide/troubleshooting/get-support/index.md b/web/content/docs/userguide/troubleshooting/get-support/index.md index 405f1869052..1772779ff70 100644 --- a/web/content/docs/userguide/troubleshooting/get-support/index.md +++ b/web/content/docs/userguide/troubleshooting/get-support/index.md @@ -24,7 +24,6 @@ If you encounter issues using or developing OGS let us know. To help you in the Feel free to skip things from the list if you think they are not related to the issue but in general: the more information the better. - ### Submit the report Submit the report to one of the following channels (beforehand you may want to check these channels if somebody else already described your issue): -- GitLab