diff --git a/docs/documentation/index.md b/docs/documentation/index.md
index 913fb5d..01b2ee6 100644
--- a/docs/documentation/index.md
+++ b/docs/documentation/index.md
@@ -34,7 +34,7 @@ developerguide/index.md
maxdepth: 4
caption: Tutorials
---
-tutorials/index_inbuiltmeshgenerators.md
+tutorials/index_builtinmeshgenerators.md
tutorials/index_externalmeshes.md
tutorials/index_agglomeration.md
tutorials/index_postprocessing.md
diff --git a/docs/documentation/tutorials/blockstructuredmeshes.md b/docs/documentation/tutorials/blockstructuredmeshes.md
index 9eabf43..ef960fa 100644
--- a/docs/documentation/tutorials/blockstructuredmeshes.md
+++ b/docs/documentation/tutorials/blockstructuredmeshes.md
@@ -1,17 +1,15 @@
# Block-Structured Meshes
-This tutorial shows how to agglomerate block-structured grids with linear elements to get a curved mesh consisting of fully curved hexahedral elements.
-
-The parameter file can be found in
+This tutorial shows how to agglomerate block-structured grids with linear elements to get a high-order mesh consisting of fully curved hexahedral elements. The parameter file can be found in
tutorials/3-01-agglomeration_NACA/parameter.ini
-## Restrictions on the block-structured mesh readin
+## Restrictions on the block-structured meshes
+
+HOPR poses the following restrictions on the provided block-structured meshes:
+- **One block face** must be exclusively associated to **one boundary condition**. Block faces with multiple BCs or a combination of boundary and internal element faces on a single block face are likely to produce wrong mesh topology! The user is responsible for **splitting blocks** in such cases. Otherwise, HOPR will be unable to perform the mesh connect step!
+- When providing a block-structured mesh for agglomeration, only one **unique factor** is permitted in the `I,J,K` dimension of **all blocks**!
-- If meshes are used to create curved elements, a **unique factor** should be present in the i,j,k element count of **all blocks**!!
-- Boundary Conditions:
- - Attention: **One block face** can only be associated to **one boundary condition**. Block faces with mixed BCs or BC and internal faces a likely to produce wrong mesh topology!!
- **Split blocks** in this case, else you will get problems in the mesh connect step!
- - Each boundary conditions must be specified in the inifile by its name and an associated Boundary Type:
+Each boundary conditions present in the provided mesh must be matched in the parameter file by its name and an associated boundary type:
BoundaryName = wall_1
BoundaryType = (/4,0,0,0/)
@@ -19,11 +17,11 @@ The parameter file can be found in
BoundaryType = (/4,0,0,0/)
-You can combine multiple BCs by using only a common part of the boundary name string (here for example `BoundaryName=wall`)
+Boundary names can match multiple BCs by specifying only the common part of the boundary name string. In the example above, `BoundaryName=wall` would match all boundary conditions.
## Initial Meshes
-The use of block-structured meshes enables the generation of fully three-dimensional curved elements by agglomeration of a specific block of elements, leading to a very simple and robust curving technique. In order to illustrate block-structuring and agglomeration, enabled by the new parameter `MeshIsAlreadyCurved`, two initally fine meshes of a NACA-profile are provided as CGNS files, mesh 1 without boundary layer refinement and mesh 2 with boundary layer refinement:
+Agglomeration of block-structured meshes provides a simple and robust curving technique for the generation of three-dimensional high-order meshes. In HOPR, mesh agglomeration is controlled by the `MeshIsAlreadyCurved` parameter. The application of mesh agglomeration is demonstrated on two meshes of a NACA-profile provided as CGNS files. Here, mesh 1 is suitable for inviscid simulations without boundary layer refinement and mesh 2 features boundary layer refinement.
Mesh1: NACA0012_icem_32elems.cgns
@@ -33,7 +31,7 @@ The use of block-structured meshes enables the generation of fully three-dimensi
@@ -41,7 +39,7 @@ The use of block-structured meshes enables the generation of fully three-dimensi
@@ -56,7 +54,7 @@ The use of block-structured meshes enables the generation of fully three-dimensi
@@ -64,7 +62,7 @@ The use of block-structured meshes enables the generation of fully three-dimensi
@@ -76,34 +74,34 @@ All of the following figures were created with mesh 1.
When using agglomeration, the important parameters are
- MeshIsAlreadyCurved=T
- useCurved=T
- BoundaryOrder=5
+ MeshIsAlreadyCurved = T
+ useCurved = T
+ BoundaryOrder = 5
-and they lead to a coarsening in all three dimensions of the structured mesh, using the internal points as interpolation points for the curved mapping. The number of elements in each direction of the structured block must be a multiple number of `BoundaryOrder`-1!!! This situation is explained on an exemplary mesh in Fig. 1.5. For `BoundaryOrder = 2` the initial linear mesh is found and no agglomeration is done.
+which lead to a coarsening in all three dimensions of the structured mesh, using the internal points as interpolation points for the curved mapping. The number of elements in each direction of the structured block must be a multiple number of `BoundaryOrder`-1! This situation is illustrated on an exemplary mesh in Fig. 1.5. For `BoundaryOrder=2`, the initial linear mesh retained without agglomeration.
-
-
+
-In addtion, the parameter `nskip` to coarsen the initial mesh.
+In addtion, the parameter `nSkip` can be set to coarsen the initial mesh.
## Description of Parameters
-Below all new parameters that are associated with agglomeration are explained. A description of all parameters can be found in {ref}`userguide/parameters:List of Parameters`.
+The following table describes all parameters associated with agglomeration. A description of all parameters is given in {ref}`userguide/parameters:List of Parameters`.
```{table} Block-Structured Meshes: Description of Parameters.
---
name: tab:Block-Structured Meshes Description of Parameters
---
- | Parameters |Setting | Description |
- | :------ | :----------: | :--------------------------- |
- | `MeshIsAlreadyCurved` | `T` | T (True): Enables the agglomeration F (False): Disables the agglomeration |
- | `nskip` | `2` | Coarsen block-structured meshes: 1: no skip 2: use every second point ... |
- | `nskipZ` | `2` | Only if the mesh is extruded in z-direction, a different nskip can be given in z-direction. |
+ | Parameters | Setting | Description |
+ | :------ | :----------: | :--------------------------- |
+ | `MeshIsAlreadyCurved` | `T` | Enables the agglomeration |
+ | `nSkip` | `2` | Coarsing of block-structured meshes 1: no skip 2: use every second point ... |
+ | `nSkipZ` | `2` | Only if the mesh is extruded in z-direction, a different nSkip can be given in z-direction. |
```
@@ -120,7 +118,7 @@ name: tab:Block-Structured Meshes Description of Parameters
@@ -128,7 +126,7 @@ name: tab:Block-Structured Meshes Description of Parameters
@@ -137,9 +135,9 @@ name: tab:Block-Structured Meshes Description of Parameters
-For coarsening two new parameters are provided: `nskip` applies to all structured directions equally, and `nskipZ` can be used for z-extruded meshes.
+Mesh coarsening is controlled by two parameters: `nSkip` applies to all structured directions equally, and `nSkipZ` can be used for z-extruded meshes.
-`nskip` Variations:
+
@@ -147,7 +145,7 @@ For coarsening two new parameters are provided: `nskip` applies to all structure
@@ -155,7 +153,7 @@ For coarsening two new parameters are provided: `nskip` applies to all structure
@@ -163,7 +161,7 @@ For coarsening two new parameters are provided: `nskip` applies to all structure
@@ -171,19 +169,18 @@ For coarsening two new parameters are provided: `nskip` applies to all structure
-The mesh on the left side shows the initial mesh with an initial element, shown in grey. The parameter `nskip=1` uses every point of the initial mesh. The mesh in the middle shows the mesh if `nskip` is set to 2. That means that one node in each direction of the respective coordinate system is skipped and that the size of the new element reaches to the next node. The skipped nodes will not be used for the mesh anymore, also not for curving.
-The parameter `nskipZ` is has the same function as `nskip` but only for the z-direction. As a consequence of a setting of this parameter the skip level in z-direction by the parameter `nskip` will be repealed.
+The figure on the left side shows the initial mesh. The parameter `nSkip=1` uses every point of the initial mesh. The mesh in the middle-left shows the mesh if `nSkip` is set to 2. That means that one node in each direction of the respective coordinate system is skipped and that the size of the new element reaches to the next node. The skipped nodes will no longer be used for mesh generation, including curving. The parameter `nSkipZ` has the same function as `nSkip` but only applies towards the z-direction. By providing the `nSkipZ` parameter, the corresponding entry in `nSkip` is ignored.
-In section Output Visualization a few different parameter settings are illustrated for the NACA-profile. Take into account that the block-structuring will only work if the value for the parameter(s) `nskip` (and `nskipZ`) is a common divisor of the number of all mesh elements for each axis!!!
+The following figures illustrate possible combinations of the `nSkip` and `nSkipZ` parameters, each applied to the identical initial mesh. Keep in mind that reading in a block-structured mesh only works if the value for the parameter(s) `nSkip` (and `nSkipZ`) is a common divisor of the number of all mesh elements for each axis.
-`nskip`-`nskipZ` Combinations:
+
@@ -191,7 +188,7 @@ In section Output Visualization a few different parameter settings are illustrat
@@ -199,7 +196,7 @@ In section Output Visualization a few different parameter settings are illustrat
@@ -207,7 +204,7 @@ In section Output Visualization a few different parameter settings are illustrat
@@ -215,38 +212,36 @@ In section Output Visualization a few different parameter settings are illustrat
-This function does not only apply to block-structured meshes, but to all meshes which are extruded along the z-direction! There are five more new parameters by which one can change special properties of z-extruded meshes like for example length, starting point.
+Extruded meshes often suffer from issues with limited coordinate precision, preventing HOPR from finding corresponding surface elements on the upper/lower boundary. HOPR included a built-in correction routine for such cases. This function is not restricted to block-structured meshes, but can be applied to all meshes which are extruded along the z-direction. Enabling this setting requires five more parameters to be set.
-```{table} Correction for z-extruded Meshes: Description of Parameters.
+```{table} Correction for z-extruded meshes: Description of parameters.
---
-name: tab:Correction for z-extruded Meshes Description of Parameters
+name: tab:Correction for z-extruded meshes Description of parameters
---
- | Parameters |Setting | Description |
- | :------ | :----------: | :--------------------------- |
- | `doZcorrection` | `F` | T (True): Can only be applied to z-extruded meshes: All elements are aligned exactly along z-direction to suppress grid generator errors F (False): Correction is disabled |
- | `nElemsZ` | `1` | The number of elements in z-direction (after agglomeration!) |
- | `zstart` | `0.` | Set minimum z-coordinate |
- | `zLength` | `1.0` | Set length of domain in z-direction |
- | `zperiodic` | `T` | T (True): The Boundary conditions (here `z_plus` and `z_minus`) are set to periodic ones. F (False): Default. No change of the boundary condition. |
+ | Parameters | Setting | Description |
+ | :------ | :----------: | :--------------------------- |
+ | `doZcorrection` | `F` | All elements are aligned exactly along z-direction to suppress grid generator errors |
+ | `nElemsZ` | `1` | The number of elements in z-direction (after agglomeration!) |
+ | `zStart` | `0.` | Set minimum z-coordinate |
+ | `zLength` | `1.0` | Set length of domain in z-direction |
+ | `zPeriodic` | `T` | Boundary conditions (`z_plus` and `z_minus`) are set to periodic. |
```
-The boundary periodicity can be set here to be applied after the mesh connectivity process. The boundary condition type of the z-faces should then be set to >1,(because of tolerance issues, problems during connectivity process are found if the boundary conditions are set to periodic) and then periodicity is then applied afterwards in the z-correction process.
-
-## Output Visualization
-
-The figures here were visualizations of the mesh NACA0012_icem_32elems.cgns. Therefore, the files NACA0012_VISCOUS_Debugmesh.vtu (Fig. 1.1 - Fig. 1.4, Fig. 1.9 - Fig. 1.16) and NACA0012_VISCOUS_SplineVol.vtu (Fig. 1.6 - Fig. 1.8) were used. The volume visualization can become quickly a large file. The number of elements can be reduced by the parameter
-
- Visu_sJ_limit= 0.1 ! for DebugvisuLevel=2, only write elements with a scaled Jacobian < given limit
-
-that skips elements with a scaled Jacobian > limit.
-
-If there is a need for assistance of visualizing the HOPR output visit {ref}`tutorials/index_visualization:Visualization`.
\ No newline at end of file
+
+
+
+
+
+
+
+
+
diff --git a/docs/documentation/tutorials/figures/Nskip.jpg b/docs/documentation/tutorials/figures/Nskip.jpg
deleted file mode 100644
index 9ca0c89..0000000
Binary files a/docs/documentation/tutorials/figures/Nskip.jpg and /dev/null differ
diff --git a/docs/documentation/tutorials/index_inbuiltmeshgenerators.md b/docs/documentation/tutorials/index_inbuiltmeshgenerators.md
deleted file mode 100644
index 31a41cd..0000000
--- a/docs/documentation/tutorials/index_inbuiltmeshgenerators.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# In built Mesh Generators
-
-```{toctree}
----
-maxdepth: 1
-caption: Table of Contents
-numbered:
----
-straightedgedboxes.md
-curvedmeshes.md
-```
-
diff --git a/docs/documentation/tutorials/straightedgedboxes.md b/docs/documentation/tutorials/straightedgedboxes.md
index a9d759f..e3354df 100644
--- a/docs/documentation/tutorials/straightedgedboxes.md
+++ b/docs/documentation/tutorials/straightedgedboxes.md
@@ -1,5 +1,5 @@
# Straight-Edged Boxes
-HOPR has several simple inbuilt mesh generators.
+HOPR has several simple built-in mesh generators.
## Cartesian Box
-This tutorial shows how to generate a simple mesh of a cubical box and the definition of boundary conditions.
-The parameter file can be found in
+This tutorial shows how to generate a simple mesh of a cubical box and the definition of boundary conditions. The parameter file can be found in
tutorials/1-01-cartbox/parameter.ini
See {ref}`tutorials/straightedgedboxes:Cartesian Box: Exemplary Variations of Boundary Conditions` for cases with different boundary conditions.
### Cartesian Box: Description of Parameters
-In the following all parameters of the parameter file are explained. This description consists only of parameters which are necessary to generate a cartesian box mesh. A description of all parameters can be found in {ref}`userguide/parameters:List of Parameters`.
+The following table describes all parameters present in the parameter file. Therefore, it is limited to the parameters needed to generate a Cartesian box mesh. A description of all parameters can be found in {ref}`userguide/parameters:List of Parameters`.
```{table} Parameters Cartesian Box.
---
name: tab:Parameters Cartesian Box
---
- | Parameters |Setting | Description |
- | :------ | :----------: | :--------------------------- |
- | `ProjectName` | `cartbox ` | Part of the output files' name which will be generated during the execution (cartbox_mesh.h5, cartbox_Debugmesh.dat, cartbox_Debugmesh_BC.dat, ...) . These Files can be found in the directory of the executed parameter.ini file. |
- | `Debugvisu` | `T` | T (true) : The files *_Debugmesh.dat and *_Debugmesh_BC.dat will be generated, which enable you to visualize the mesh and the boundary mesh for debugging. These Files can be found in the directory of the executed parameter.ini file F (False): Files for visualization (cartbox_Debugmesh.dat, cartbox_Debugmesh_BC.dat) will not generated during executing of the parameter.ini file. |
- | `Mode` | `1` | Mode of mesh generation; 1: Cartmesh (intern), 3: CFD General Notation System (CGNS, extern) |
- | `nZones` | `1` | Number of cartesian boxes |
- | `Corner` | `(/0.,0.,0. ,,1.,0.,0. ,,1.,1.,0. ,,0.,1.,0. ,,0.,0.,1. ,,1.,0.,1. ,,1.,1.,1. ,,0.,1.,1. /)` | Coordinates of the box's corner nodes in the three-dimensional cartesian coordinate system. For proper operation the nodes have to be in the order as illustrated in {numref}`fig:CartmeshZone_3d` at the right and each node with x,y,z coordinates. Furthermore the corner nodes define the six surfaces of the cartesian box, see {numref}`tab:Corner`. |
- | `nElems` | `(/2,3,4/)` | Number of elements per box in the direction of the cartesian coordinate axes; `(/nElemX,nElemY,nElemZ/)` |
- | `BCIndex` | `(/1,2,3,4,5,6/)` | The `BCIndex` parameter assigns a bondary condition to each surface of the cartesian box in order of the surfaces. The number of a vector's component represents the nth boundary condition in order of its position in the file. Hence, each position refers to the six box sides `(/z-,y-,x+,y+,x-,z+/)`. Here, six different boundary conditions were assigned to the box surfaces. In case of a boundary condition defined on several faces, the components belonging to these faces will be equal in the BCIndex vector, see {ref}`tutorials/straightedgedboxes:Cartesian Box: Exemplary Variations of Boundary Conditions` for details. |
- | `elemtype` | `108` | Type of cells/elements used for discretization; 104: Tetrahedron, 105: Pyramid, 106:Prism with triangular base, 108: Hexahedron |
- | `BoundaryName` | `BC_zminus` | Name of the boundary condition |
- | `BoundaryType` | `(/4,0,0,0/)` | For each boundary condition two parameters are mandatory, the Name and the Type. The Type parameter consists of four components to set: `(/ Type, curveIndex, State, alpha /)`. For a single cartesian box only the component Type has to be set to a arbitrary number > 1. The other components have to be set 0; The further description of the components can be found in the next tutorials or in the {ref}`userguide/parameters:List of Parameters`. |
+ | Parameters | Setting | Description |
+ | :------ | :----------: | :--------------------------- |
+ | `ProjectName` | `cartbox ` | Defines the name embedded in the generated mesh file and is used as prefix for the output files (`cartbox_mesh.h5`, `cartbox_Debugmesh.dat`, `cartbox_Debugmesh_BC.dat`, ...). |
+ | `DebugVisu` | `T` | Generation of visualization files for the volume and boundary mesh (`*_Debugmesh.dat`, `*_Debugmesh_BC.dat`) to aid debugging. |
+ | `Mode` | `1` | Mode of mesh generation; 1: Cartesian mesh (build-in), 3: CFD General Notation System (CGNS, extern) |
+ | `nZones` | `1` | Number of Cartesian boxes |
+ | `Corner` | `(/0.,0.,0. ,,1.,0.,0. ,,1.,1.,0. ,,0.,1.,0. ,,0.,0.,1. ,,1.,0.,1. ,,1.,1.,1. ,,0.,1.,1. /)` | Coordinates of the box's corner nodes in the three-dimensional Cartesian coordinate system. Refer to {numref}`fig:CartmeshZone_3d` for the node ordering. Furthermore, the corner nodes define the six surfaces of the cartesian box, see {numref}`tab:Corner`. |
+ | `nElems` | `(/2,3,4/)` | Number of elements per box in the direction of the Cartesian coordinate axes; `(/nElemX,nElemY,nElemZ/)` |
+ | `BCIndex` | `(/1,2,3,4,5,6/)` | The `BCIndex` parameter assigns a bondary condition to each surface of the cartesian box in order of the surfaces. The number of a vector's component represents the nth boundary condition in order of its position in the file. Hence, each position refers to the six box sides `(/z-,y-,x+,y+,x-,z+/)`. Indices can be applied repeatedly, see {ref}`tutorials/straightedgedboxes:Cartesian Box: Exemplary Variations of Boundary Conditions` for details. |
+ | `ElemType` | `108` | Type of cells/elements used for discretization; `104`: Tetrahedron, `105`: Pyramid, `106`: Prism with triangular base, `108`: Hexahedron |
+ | `BoundaryName` | `BC_zminus` | Name of each boundary condition |
+ | `BoundaryType` | `(/4,0,0,0/)` | Type of each boundary condition, provided with the components `(/ Type, curveIndex, State, alpha /)`.For a single Cartesian box, only the component `Type` has to be set. The other components are set to the default value `0`. Further description of the components can be found in the next tutorials or in the {ref}`userguide/parameters:List of Parameters`. |
```
### Cartesian Box: Boundary Conditions and Sketch
-Fig. 1.2 shows the sketch of the current problem. On the left side, however, one can see an excerpt of the parameter file which deals with the boundary conditions. In this code's excerpt some text elements are colored to show the connection between the surfaces and their assigned boundary conditions. The same colors are used for the visualization below.
+Fig. 1.2 shows the sketch of the current flow setup. Fig. 1.3 gives the corresponding excerpt of the parameter file containing the boundary conditions. Entries are colored to highlight the connection between the `BCIndex` and the boundary conditions. The same colors are used for the visualization below.
-The index of the first component of the `BCIndex` vector `1` says that the boundary condition on position one, `BC_zminus`, is assigned to the first surface. Furthermore, the index of the second component of the `BCIndex` vector `2` means that the second boundary condition `BC_yminus` is assigned to the second surface of the cartesian box. The other boundary conditions are assigned on the same way to their surfaces. For more examples go to {ref}`tutorials/straightedgedboxes:Cartesian Box: Exemplary Variations of Boundary Conditions`.
+The index of the first component of the `BCIndex` vector `1` assigns the boundary condition on position one, `BC_zminus`, to the first surface. Consequently, the index of the second component of the `BCIndex` vector `2` assigns the second boundary condition `BC_yminus` to the second surface of the Cartesian box and so on. More examples are given in {ref}`tutorials/straightedgedboxes:Cartesian Box: Exemplary Variations of Boundary Conditions`.
### Cartesian Box: Output Visualization
-If there is a need for assistance of visualizing the HOPR output visit {ref}`tutorials/index_visualization:Visualization`.
+The following section highlights the visualization of the above setup. For more details on the HOPR visualization output, see {ref}`tutorials/index_visualization:Visualization`.
-This is a visualization of the cartbox_Debugmesh_BC.dat file. The colors of the surfaces represent the boundary conditions and are the same as in the excerpt of the parameter file.
+This is a visualization of the `cartbox_Debugmesh_BC.dat` file. The colors of the surfaces represent the boundary conditions and are identical to the ones in the excerpt of the parameter file.
@@ -631,4 +630,4 @@ These are visualizations of the cartbox_multiple_stretch_mesh.h5 file.
Fig. 1.41 Mesh of the multiple cartesian boxes with a stretched element arrangement.