Commit 600f2cdf authored by Theresa Schollenberger's avatar Theresa Schollenberger
Browse files

[exercise-fracture] update README

parent abb342b8
......@@ -67,11 +67,10 @@ From the matrix side, the coupling works a bit different. Since the fracture dom
...
// create the type tag node for the matrix sub-problem
// We need to put the facet-coupling type tag after the physics-related type tag
// because it overwrites some of the properties inherited from "TwoP". This is
// necessary because we need e.g. a modified implementation of darcys law that
// evaluates the coupling conditions on faces that coincide with the fractures.
NEW_TYPE_TAG(MatrixProblemTypeTag, INHERITS_FROM(TwoP, CCTpfaFacetCouplingModel));
// Create new type tags
namespace TTag {
struct MatrixProblemTypeTag { using InheritsFrom = std::tuple<CCTpfaFacetCouplingModel, TwoP>; };
} // end namespace TTag
```
Additionally, we need to provide access to the coupling manager in the matrix problem, so that the flux assembly engine of the matrix domain has access to the state inside the fracture (which the fluxes depend on):
......@@ -189,7 +188,7 @@ int getElementDomainMarker(const Element& element) const
{ return gridDataPtr_->getElementDomainMarker(element); }
```
The domain markers are also already added to the output (see `exercise_fractures.cc`, lines 188-197). To visualize them, open any of your previously produced results with _Paraview_ and take a look at them by selecting __domainMarker__.
The domain markers are also already added to the output (see `exercise_fractures.cc`, lines 195-199). To visualize them, open any of your previously produced results with _Paraview_ and take a look at them by selecting __domainMarker__.
Adjust the functions for permeability, porosity and material law parameters in the `fracturespatialparams.hh` file such that they are selected depending on the domain marker of the elements. You will see in the results that the pressure jump across the first vertical fracture is now lower than before, because there are highly permeable fractures crossing it, allowing for a pressure release into the other parts of the domain.
......@@ -201,8 +200,8 @@ We can now also set the interior boundary condition depending on the domain mark
// we need to obtain the domain marker of the fracture element that is coupled to this face
// therefore we first get the fracture problem from the coupling manager. For this test, we
// know that the fracture domain id is 1 (see main file)
static constexpr std::size_t fractureDomainId = 1;
const auto& fractureProblem = couplingManager().template problem<fractureDomainId>();
static constexpr auto fractureDomainId = Dune::index_constant<1>();
const auto& fractureProblem = couplingManager().problem(fractureDomainId);
// use helper function in coupling manager to obtain the element this face couples to
const auto fractureElement = couplingManager().getLowDimElement(element, scvf);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment