|
|
If you are using Gmsh to create more complex grids and are using "Physical groups" to mark different boundary segments, you can normally access these inside your definition of the `neumann` function (solution dependent von Neumann boundaries) in your problem file by using something like the following:
|
|
|
```
|
|
|
|
|
|
```c++
|
|
|
NumEqVector neumann(const Element& element,
|
|
|
const FVElementGeometry& fvGeometry,
|
|
|
const ElementVolumeVariables& elemVolVars,
|
... | ... | @@ -13,7 +14,8 @@ NumEqVector neumann(const Element& element, |
|
|
where `gridData_` should be a `GridData` instance and a member of your problem class. (Add the grid data as argument in your problem constructor, it can be obtained via the grid manager: `gridManager.getGridData()`.)
|
|
|
|
|
|
Additionally, you have to specify to use boundary segments and domain markers in your `params.input` file:
|
|
|
```
|
|
|
|
|
|
```ini
|
|
|
[Grid]
|
|
|
File = mygrid.msh
|
|
|
DomainMarkers = 1
|
... | ... | @@ -22,7 +24,8 @@ BoundarySegments = 1 |
|
|
|
|
|
Unfortunately `ALUGrid` uses boundary flags differently, therefore you have to adapt your `FVGridGeometry` to use the class `BoundarySegmentIndexFlag` instead of the normal `BoundaryFlag` class.
|
|
|
This can be done in your property settings, where you need to add the following:
|
|
|
```
|
|
|
|
|
|
```c++
|
|
|
#include <dumux/common/boundaryflag.hh>
|
|
|
|
|
|
namespace Properties {
|
... | ... | @@ -59,7 +62,8 @@ public: |
|
|
} // end namespace properties
|
|
|
```
|
|
|
This was how to do it when using the Box discretization, for CCTpfa it works similarly:
|
|
|
```
|
|
|
|
|
|
```c++
|
|
|
namespace Properties {
|
|
|
|
|
|
// other property settings
|
... | ... | |