dumux merge requestshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests2018-02-16T15:52:14Zhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/798Feature/1d3d richards 1p test2018-02-16T15:52:14ZTimo Kochtimokoch@math.uio.noFeature/1d3d richards 1p test3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/797[typetraits] Implement isValid function to generate class member introspection functors2018-02-14T15:29:25ZTimo Kochtimokoch@math.uio.no[typetraits] Implement isValid function to generate class member introspection functors* isValid can be used to generate a functor that can check whether an operation done with a type is valid
* this patch also provides examples in form of a test and documentation* isValid can be used to generate a functor that can check whether an operation done with a type is valid
* this patch also provides examples in form of a test and documentation3.0Kilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/796[assembly][newton] reimplement partial reassembly2018-02-20T10:33:17ZBernd Flemisch[assembly][newton] reimplement partial reassemblyTransfer the partial reassembly functionality to the current
structure.
On the topmost level, the `NewtonSolver` uses the functionality
in the methods `solve`, `newtonUpdate` and `assembleLinearSystem`
by calls to new methods `asse...Transfer the partial reassembly functionality to the current
structure.
On the topmost level, the `NewtonSolver` uses the functionality
in the methods `solve`, `newtonUpdate` and `assembleLinearSystem`
by calls to new methods `assemblerResetColors_`,
`assemblerNewtonUpdate_` and `assembleLinearSystem_`. In these
new methods, new member functions of the `FVAssembler` are called:
`resetColors`, `updateDistanceFromLastLinearization` and
`computeColors` as well as `assembleJacobianAndResidual` with a
second argument. Use SFINAE and `enable_if` such that not all
assemblers are required to implement the extended interface.
The `FVAssembler` forwards the work to a new class
`PartialReassembler`. This class also holds the required data.
After each Newton iteration, the `PartialReassembler` colors the
geometrical degrees of freedom depending on the shift of the
primary variables from the last time that the derivatives have been
calculated. For green-colored entities, the entries in the Jacobian
are kept, while for the other entities, they are recalculated.
Use an enum class `EntityColor` for the coloring, enable read
access to the color of an entity via the Assembler.
Implement the functionality for Box and TPFA. The correspnding
local assemblers have to be adapted such that no calculations are
performed for green elements.
Still missing (while also not present in Dumux 2.x):
- [x] Parametrize the thresholds in the `NewtonSolver`
- [x] Throw if called with mpfa
Fixes #379.3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/791Feature/variable eps2018-02-14T10:15:29ZTimo Kochtimokoch@math.uio.noFeature/variable epsFor some problems, especially for linear problems and zero initial value problems, we want to be able to set a constant epsilon per primary variable for numeric differentiation.
This introduces a new epsilon class that reads two param...For some problems, especially for linear problems and zero initial value problems, we want to be able to set a constant epsilon per primary variable for numeric differentiation.
This introduces a new epsilon class that reads two parameters from the input file
* Assembly.NumericDifference.PriVarMagnitude
* Assembly.NumericDifference.BaseEps
the magnitude is a vector with the number of privars as size, base eps (optional) is a scalar (default 1e-10).
If nothing is set it default to the old behaviour (trying to estimate the magnitude from the primary variable at the d.o.f the residual is assembled at (which leads to different epsilons in different cells).
For multidomain problems those parameters can be set per TypeTag / ModelParameterGroup.3.0Kilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/789Feature/mixed dim staggered2018-05-02T09:17:19ZKilian WeishauptFeature/mixed dim staggered3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/781Feature/mpnc 2p2c comparison2018-02-05T12:22:55ZTimo Kochtimokoch@math.uio.noFeature/mpnc 2p2c comparison3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/773[impes] Remove grid singleton from problem2018-02-12T10:01:21ZKilian Weishaupt[impes] Remove grid singleton from problemsee #431. Prepares sequential model (using old style main files) for times without a grid singleton.
We pass a non-const reference to the grid to the problem. Now the `Grid` property is used less (it can be anywhere extracted from the G...see #431. Prepares sequential model (using old style main files) for times without a grid singleton.
We pass a non-const reference to the grid to the problem. Now the `Grid` property is used less (it can be anywhere extracted from the GridView type) and the Grid singleton is only accessed once in the main file, so it can be easily replaced.3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/762Feature/unify newtoncontrollers2018-05-30T08:46:12ZKilian WeishauptFeature/unify newtoncontrollersAdds `NewtonSolver` class that replaces the existing `NewtonMethod` and `NewtonController` classes.
The old classes are still there for backward compatibility and are deprecated.
Tests can use the new Newton solver but still compil...Adds `NewtonSolver` class that replaces the existing `NewtonMethod` and `NewtonController` classes.
The old classes are still there for backward compatibility and are deprecated.
Tests can use the new Newton solver but still compile with the old one, yielding a deprecation warning.3.0Bernd FlemischBernd Flemischhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/759[io][gridcreator] Make construction of tensorgrid more flexible2018-01-26T11:05:57ZKilian Weishaupt[io][gridcreator] Make construction of tensorgrid more flexible* Add a public method taking the positions, cells and the grading
vectors as arguments.
* The general makeGrid() method now extracts the necessary parameters from
the input file and calls the new method with them
* The new method can...* Add a public method taking the positions, cells and the grading
vectors as arguments.
* The general makeGrid() method now extracts the necessary parameters from
the input file and calls the new method with them
* The new method can be useful in cases where a tensorgrid should
be constructed not based on input file data, but on different ones,
e.g. evalutated by a user specified algorithm3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/757[assembly][analytic] Get source derivative per default from problem2018-01-25T17:37:35ZTimo Kochtimokoch@math.uio.no[assembly][analytic] Get source derivative per default from problem3.0Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/756Feature/small fixes newton2018-01-25T17:10:54ZTimo Kochtimokoch@math.uio.noFeature/small fixes newton3.0Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/755Feature/improve point source handling2018-01-25T17:34:08ZTimo Kochtimokoch@math.uio.noFeature/improve point source handlingIntroduces a getter for the point source map which is needed at least in the context of multidomain problems.Introduces a getter for the point source map which is needed at least in the context of multidomain problems.3.0Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/754Feature/subgrid2018-01-25T15:45:47ZKilian WeishauptFeature/subgrid3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/753Feature/2d3d intersection2018-01-25T16:52:16ZTimo Kochtimokoch@math.uio.noFeature/2d3d intersection3.0Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/744Feature/linearsolver multitype matrix2018-01-25T15:15:44ZKilian WeishauptFeature/linearsolver multitype matrixcloses #435closes #4353.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/742Make FVGridGeometry independent of TypeTag2018-01-18T14:39:10ZTimo Kochtimokoch@math.uio.noMake FVGridGeometry independent of TypeTag* [x] Make mapper types compatible with Dune 2.5* [x] Make mapper types compatible with Dune 2.53.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/740Make Newtoncontroller independent of TypeTag2018-01-18T11:14:06ZTimo Kochtimokoch@math.uio.noMake Newtoncontroller independent of TypeTagEnables to use a Newton method independent of the property system. Especially useful for multidomain problems with several sub problem typetags.Enables to use a Newton method independent of the property system. Especially useful for multidomain problems with several sub problem typetags.3.0Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/739Feature/mpnc 2p2c comparison2018-02-05T12:23:16ZKatharina HeckFeature/mpnc 2p2c comparison3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/738Feature/make linearsolver independent of typetag2018-05-30T08:46:11ZTimo Kochtimokoch@math.uio.noFeature/make linearsolver independent of typetagDepends on !737 to be merged.
Thanks to @DennisGlaeser for fixing some small bugs.Depends on !737 to be merged.
Thanks to @DennisGlaeser for fixing some small bugs.3.0Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/736WIP: Feature/multidomain on 3.02018-05-30T08:48:21ZTimo Kochtimokoch@math.uio.noWIP: Feature/multidomain on 3.0This merge request adds a multidomain module to Dumux. It is a fairly generic module that provides a generic assembler for multi-domain problems (more than two domains possible). The domains can have different dimension. The coupling man...This merge request adds a multidomain module to Dumux. It is a fairly generic module that provides a generic assembler for multi-domain problems (more than two domains possible). The domains can have different dimension. The coupling manager concept allows to specify coupling dof dependencies and defines how to evaluate coupling residuals / residual derivatives.
The goal is to be able to use this module for
* equal-dimension multi-domain problems (e.g. Darcy-Stokes coupling)
* mixed-dimension multi-domain problems (e.g. embedded mixed-dimension methods, embedded fracture models)
* multi-physics problems (e.g. dual-continuum models)
TODO
* [x] depends on !737 and !738 to be merged.
* [x] check function overloads for different element types, probably need domainId as element types can be the same
* [ ] add coupling manager for darcy-darcy domain decomposition
* [ ] implement additional derivatives for caching disabled -> custom ElementVolVar type
* [ ] implement explicit assembly
* [x] Unify newtoncontroller with staggered newtoncontroller (depends on !762)
3.0