diff --git a/test/freeflow/shallowwater/dambreak/main.cc b/test/freeflow/shallowwater/dambreak/main.cc index 42d6e95ddb6f4026ffda50cc7a29bac24eca4dbd..6873c39f7c34fb96cf9786ee8525636799b53e4f 100644 --- a/test/freeflow/shallowwater/dambreak/main.cc +++ b/test/freeflow/shallowwater/dambreak/main.cc @@ -126,7 +126,7 @@ int main(int argc, char** argv) // the linear solver using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; - auto linearSolver = std::make_shared<LinearSolver>(leafGridView, gridGeometry->dofMapper()); + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porenetwork/1p/noncreepingflow/nonisothermal/main.cc b/test/porenetwork/1p/noncreepingflow/nonisothermal/main.cc index 7830fab6995dd00159c77ef99c84dade65c4d0f1..83bcff081765a36441b7412fb7eb3fa3549faa3d 100644 --- a/test/porenetwork/1p/noncreepingflow/nonisothermal/main.cc +++ b/test/porenetwork/1p/noncreepingflow/nonisothermal/main.cc @@ -35,7 +35,9 @@ #include <dumux/common/properties.hh> #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/porenetwork/common/pnmvtkoutputmodule.hh> @@ -123,8 +125,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porenetwork/1p/nonisothermal/main.cc b/test/porenetwork/1p/nonisothermal/main.cc index f229d985b754bd5ad3ced952a140c4f26eccc53e..155ee576996d08adf715fb3af0029189c9875d25 100644 --- a/test/porenetwork/1p/nonisothermal/main.cc +++ b/test/porenetwork/1p/nonisothermal/main.cc @@ -35,7 +35,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/common/parameters.hh> #include <dumux/common/properties.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/porenetwork/common/pnmvtkoutputmodule.hh> @@ -128,8 +130,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1p/compressible/instationary/main.cc b/test/porousmediumflow/1p/compressible/instationary/main.cc index 81eec275d7b095e234aed9f6f15067d1c856cd73..4a61da7c404fcb1b8a9dedc62d56c97afc6e23ba 100644 --- a/test/porousmediumflow/1p/compressible/instationary/main.cc +++ b/test/porousmediumflow/1p/compressible/instationary/main.cc @@ -39,7 +39,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/assembly/fvassembler.hh> @@ -125,8 +127,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1p/compressible/instationary/main_experimental.cc b/test/porousmediumflow/1p/compressible/instationary/main_experimental.cc index 00b3e44221b916c97f622be7d4053348d2f298af..98019bca2ca1c38b915ebc6ca68330fb2d013f79 100644 --- a/test/porousmediumflow/1p/compressible/instationary/main_experimental.cc +++ b/test/porousmediumflow/1p/compressible/instationary/main_experimental.cc @@ -38,7 +38,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/assembly/fvassembler.hh> @@ -125,8 +127,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1p/compressible/stationary/main.cc b/test/porousmediumflow/1p/compressible/stationary/main.cc index 97f16a78469cd51c05ad633a61a319cc6af069d5..9b4b4926a993a0683847dec0410644343168089d 100644 --- a/test/porousmediumflow/1p/compressible/stationary/main.cc +++ b/test/porousmediumflow/1p/compressible/stationary/main.cc @@ -40,7 +40,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/assembly/fvassembler.hh> @@ -112,8 +114,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1p/convergence/analyticsolution/main.cc b/test/porousmediumflow/1p/convergence/analyticsolution/main.cc index 218adebeaa9fb21d54e6aae4c787623ec0ab98e2..80e53a1368ac6d9ca557f2af5e022955fe5581fc 100644 --- a/test/porousmediumflow/1p/convergence/analyticsolution/main.cc +++ b/test/porousmediumflow/1p/convergence/analyticsolution/main.cc @@ -28,7 +28,9 @@ #include <dune/common/parallel/mpihelper.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/common/initialize.hh> #include <dumux/common/properties.hh> @@ -141,8 +143,8 @@ int main(int argc, char** argv) using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables); - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1p/convergence/discretesolution/solver.hh b/test/porousmediumflow/1p/convergence/discretesolution/solver.hh index cd9590dc42acae08e7b271d42e315bd6b2acd4b0..d7b8d599788ba20c4faa827e28b69203a3e4d1a7 100644 --- a/test/porousmediumflow/1p/convergence/discretesolution/solver.hh +++ b/test/porousmediumflow/1p/convergence/discretesolution/solver.hh @@ -30,7 +30,9 @@ #include <dune/common/timer.hh> #include <dune/grid/io/file/vtk.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/linear/pdesolver.hh> #include <dumux/common/properties.hh> @@ -107,8 +109,8 @@ SolutionStorage<TypeTag> solveRefinementLevel(int numCells) using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>; auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables); - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // solver the linear problem LinearPDESolver<Assembler, LinearSolver> solver(assembler, linearSolver); diff --git a/test/porousmediumflow/1p/nonisothermal/main.cc b/test/porousmediumflow/1p/nonisothermal/main.cc index 5ade81cf49f3e85649b45e53f16d128e813c1970..1367cf79b8a483ba11747342d88429333a5645ab 100644 --- a/test/porousmediumflow/1p/nonisothermal/main.cc +++ b/test/porousmediumflow/1p/nonisothermal/main.cc @@ -38,8 +38,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> #include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -139,8 +140,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1pnc/1p2c/isothermal/main.cc b/test/porousmediumflow/1pnc/1p2c/isothermal/main.cc index f84c8ad365eaf12ae51b23e99fe8be7f415f6289..ba26030ec67db2fd1e22f5a4b8709b60918a7ed7 100644 --- a/test/porousmediumflow/1pnc/1p2c/isothermal/main.cc +++ b/test/porousmediumflow/1pnc/1p2c/isothermal/main.cc @@ -36,7 +36,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -123,8 +125,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver NewtonSolver<Assembler, LinearSolver> nonLinearSolver(assembler, linearSolver); diff --git a/test/porousmediumflow/1pnc/1p2c/isothermal/saltwaterintrusion/main.cc b/test/porousmediumflow/1pnc/1p2c/isothermal/saltwaterintrusion/main.cc index 22f8bf68d856bb00f36265720ff3c03fbe2b7a6e..697e23a6d238419217c751519e42ec4c21ecc095 100644 --- a/test/porousmediumflow/1pnc/1p2c/isothermal/saltwaterintrusion/main.cc +++ b/test/porousmediumflow/1pnc/1p2c/isothermal/saltwaterintrusion/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -132,8 +134,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver NewtonSolver<Assembler, LinearSolver> nonLinearSolver(assembler, linearSolver); diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/main.cc b/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/main.cc index 8b66628a4864145e38ce8a675351e65f71b642c1..9e406c1c4b277e4a42e1e2be99ca05598fbc17bf 100644 --- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/main.cc +++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/main.cc @@ -129,8 +129,8 @@ int main(int argc, char** argv) // the linear solver // using LinearSolver = UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>; - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/main.cc b/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/main.cc index 1acc6406542ce49e2802bec9eb2eb643cfbdb883..2baa9ecfd7d4d1b9714bf9a0ee40bddb79eac8a7 100644 --- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/main.cc +++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/main.cc @@ -129,8 +129,8 @@ int main(int argc, char** argv) // the linear solver // using LinearSolver = UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>; - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/main.cc b/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/main.cc index e039b1fd44e88c745215c7bf1f1052c6dbe0030b..1667ebc6331bfd369cdd8e1beb49d74e1b5533c5 100644 --- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/main.cc +++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/main.cc @@ -39,7 +39,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/assembly/fvassembler.hh> @@ -125,8 +127,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1pnc/1p3c/main.cc b/test/porousmediumflow/1pnc/1p3c/main.cc index 40eb842857cbff50392cc96119768d4d4ceb3366..6b98e4fb8f20d5dc7f9a091defd754ae2bf957b7 100644 --- a/test/porousmediumflow/1pnc/1p3c/main.cc +++ b/test/porousmediumflow/1pnc/1p3c/main.cc @@ -36,7 +36,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -122,8 +124,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver NewtonSolver<Assembler, LinearSolver> nonLinearSolver(assembler, linearSolver); diff --git a/test/porousmediumflow/1pnc/dispersion/main.cc b/test/porousmediumflow/1pnc/dispersion/main.cc index 68c9e97df6cf8eaf36c46cdd251e2bd1fdfc6114..263c66478e8d6248daaa5b36b8458b9521afc6c0 100644 --- a/test/porousmediumflow/1pnc/dispersion/main.cc +++ b/test/porousmediumflow/1pnc/dispersion/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -120,8 +122,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver NewtonSolver<Assembler, LinearSolver> nonLinearSolver(assembler, linearSolver); diff --git a/test/porousmediumflow/1pnc/nonequilibrium/main.cc b/test/porousmediumflow/1pnc/nonequilibrium/main.cc index 33a6a8b33aae8be88b6c9ddeb1fd82501fd473dc..1617fc90bcd9034e32e9baafd06b942697933cd7 100644 --- a/test/porousmediumflow/1pnc/nonequilibrium/main.cc +++ b/test/porousmediumflow/1pnc/nonequilibrium/main.cc @@ -127,8 +127,8 @@ int main(int argc, char** argv) // the linear solver // using LinearSolver = UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>; - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NonEquilibriumNewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/1pncmin/nonisothermal/main.cc b/test/porousmediumflow/1pncmin/nonisothermal/main.cc index ca506426a680367be74de8f4afc6bea969ce3373..cd8a7b8db7239f852126986c74eca20e013d581a 100644 --- a/test/porousmediumflow/1pncmin/nonisothermal/main.cc +++ b/test/porousmediumflow/1pncmin/nonisothermal/main.cc @@ -32,7 +32,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/nonlinear/newtonsolver.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/assembly/fvassembler.hh> @@ -124,8 +126,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/2p/boxdfm/main.cc b/test/porousmediumflow/2p/boxdfm/main.cc index 8911516de367b0ae89deb067edfd8022f3e5d25a..6a32123b0f57a5fb0cb5d3c72128769b78f9328e 100644 --- a/test/porousmediumflow/2p/boxdfm/main.cc +++ b/test/porousmediumflow/2p/boxdfm/main.cc @@ -33,7 +33,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -128,8 +130,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/2p/nonisothermal/main.cc b/test/porousmediumflow/2p/nonisothermal/main.cc index 7175532bc27d4163d38c0941bb5b6c8e11bf8ac5..081a9c6a892893137bd4a76adaa03d87ee8a34c8 100644 --- a/test/porousmediumflow/2p/nonisothermal/main.cc +++ b/test/porousmediumflow/2p/nonisothermal/main.cc @@ -33,7 +33,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -117,8 +119,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/2p1c/main.cc b/test/porousmediumflow/2p1c/main.cc index e70f4b7c561a0f8d36c0acd5d463b5ea4292fc2c..c47de38511b17bc5ff019617c13579f996dbd7c8 100644 --- a/test/porousmediumflow/2p1c/main.cc +++ b/test/porousmediumflow/2p1c/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -119,8 +121,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/2p2c/injection/main.cc b/test/porousmediumflow/2p2c/injection/main.cc index 3a5157a49bc0178223cf627a022aa68f693711a6..67f3870e64d87308364aba5ad45f1fd086378223 100644 --- a/test/porousmediumflow/2p2c/injection/main.cc +++ b/test/porousmediumflow/2p2c/injection/main.cc @@ -133,7 +133,7 @@ int main(int argc, char** argv) // the linear solver using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; - auto linearSolver = std::make_shared<LinearSolver>(leafGridView, gridGeometry->dofMapper()); + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/3p/conduction/main.cc b/test/porousmediumflow/3p/conduction/main.cc index dd3b35c34af73ebfc6841aef7f291c7f80358d83..c5d5b562e8f751e56553a82222c08603d6fc2b3b 100644 --- a/test/porousmediumflow/3p/conduction/main.cc +++ b/test/porousmediumflow/3p/conduction/main.cc @@ -33,8 +33,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> #include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -121,8 +122,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/3p3c/columnxylol/main.cc b/test/porousmediumflow/3p3c/columnxylol/main.cc index 4c266e9c8300cf4ebcba75b17a571edc40439ac3..62d48a17fc9379a040b584c92a4860874595f6b7 100644 --- a/test/porousmediumflow/3p3c/columnxylol/main.cc +++ b/test/porousmediumflow/3p3c/columnxylol/main.cc @@ -33,8 +33,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/common/timeloop.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> #include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -119,8 +120,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/3pwateroil/main.cc b/test/porousmediumflow/3pwateroil/main.cc index b8d71270b624addc5be60e59c02e97eaf9bb8a5c..440758a57a326f2e253e9aeed55b57344d3f2dd1 100644 --- a/test/porousmediumflow/3pwateroil/main.cc +++ b/test/porousmediumflow/3pwateroil/main.cc @@ -34,8 +34,9 @@ #include <dumux/common/dumuxmessage.hh> #include <dumux/common/timeloop.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> #include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -121,8 +122,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = NewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/richards/analytical/main.cc b/test/porousmediumflow/richards/analytical/main.cc index 4020bc7703ddb0bb4c9b95a667f88a8a99b46a41..3b37ebe8c48f69d41fd6eec7e531d4585e9ffd9a 100644 --- a/test/porousmediumflow/richards/analytical/main.cc +++ b/test/porousmediumflow/richards/analytical/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/porousmediumflow/richards/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -118,8 +120,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::RichardsNewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/richards/annulus/main.cc b/test/porousmediumflow/richards/annulus/main.cc index 4ca5cc906b77ec47759ee94fbf105f602fba9bd1..c6185c8da3b8c1bdb7aa95881ab122a2ffbf7dd4 100644 --- a/test/porousmediumflow/richards/annulus/main.cc +++ b/test/porousmediumflow/richards/annulus/main.cc @@ -29,7 +29,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/integrate.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> #include <dumux/assembly/diffmethod.hh> @@ -110,8 +112,8 @@ int main(int argc, char** argv) using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>; auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables); - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); NewtonSolver<Assembler, LinearSolver> solver(assembler, linearSolver); // Solution of the problem and error computation diff --git a/test/porousmediumflow/richards/annulus/main_instationary.cc b/test/porousmediumflow/richards/annulus/main_instationary.cc index d319b11a7349a9029748e185b84e9dcf2b354013..414044a5907208432f46c21a927432fb352e2447 100644 --- a/test/porousmediumflow/richards/annulus/main_instationary.cc +++ b/test/porousmediumflow/richards/annulus/main_instationary.cc @@ -30,7 +30,9 @@ #include <dumux/common/integrate.hh> #include <dumux/common/timeloop.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> #include <dumux/assembly/diffmethod.hh> @@ -134,8 +136,8 @@ int main(int argc, char** argv) using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>; auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, pOld); - using LinearSolver = ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); NewtonSolver<Assembler, LinearSolver> nonLinearSolver(assembler, linearSolver); // time loop diff --git a/test/porousmediumflow/richards/benchmarks/main.cc b/test/porousmediumflow/richards/benchmarks/main.cc index 96f791553f3215ebbdb29086e1abd75d24845fa4..fdce5413fee4dbd8c40f9f8c20bd9eb38bd1e478 100644 --- a/test/porousmediumflow/richards/benchmarks/main.cc +++ b/test/porousmediumflow/richards/benchmarks/main.cc @@ -39,7 +39,6 @@ #include <dumux/common/parameters.hh> #include <dumux/common/math.hh> -#include <dumux/linear/linearsolvertraits.hh> #include <dumux/linear/istlsolvers.hh> #include <dumux/linear/linearsolvertraits.hh> #include <dumux/linear/linearalgebratraits.hh> @@ -98,11 +97,6 @@ int main(int argc, char** argv) vtkWriter->addVolumeVariable([](const auto& volVars){ return volVars.saturation(0); }, "saturation"); vtkWriter->addVolumeVariable([](const auto& volVars){ return volVars.pressure(0); }, "pressure"); - using LinearSolver = UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>; - auto linearSolver = std::make_shared<LinearSolver>(); - - using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>; - const auto dt = getParam<double>("TimeLoop.DtInitial"); const auto checkPoints = getParam<std::vector<double>>("TimeLoop.TEnd"); const auto tEnd = checkPoints.back(); @@ -113,7 +107,10 @@ int main(int argc, char** argv) timeLoop->setCheckPoint(checkPoints); int checkPointCounter = 0; + using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>; auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); + using LinearSolver = UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(); using Newton = RichardsNewtonSolver<Assembler, LinearSolver>; Newton nonLinearSolver(assembler, linearSolver); diff --git a/test/porousmediumflow/richards/nonisothermal/conduction/main.cc b/test/porousmediumflow/richards/nonisothermal/conduction/main.cc index 9b90071bf15329fbcb34a5685636ce015ce2b870..56746ef1aca0092f4129f580e3a203b9fe2dc7be 100644 --- a/test/porousmediumflow/richards/nonisothermal/conduction/main.cc +++ b/test/porousmediumflow/richards/nonisothermal/conduction/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/porousmediumflow/richards/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -119,8 +121,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::RichardsNewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/richards/nonisothermal/convection/main.cc b/test/porousmediumflow/richards/nonisothermal/convection/main.cc index 9b90071bf15329fbcb34a5685636ce015ce2b870..56746ef1aca0092f4129f580e3a203b9fe2dc7be 100644 --- a/test/porousmediumflow/richards/nonisothermal/convection/main.cc +++ b/test/porousmediumflow/richards/nonisothermal/convection/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/porousmediumflow/richards/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -119,8 +121,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::RichardsNewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/richards/nonisothermal/evaporation/main.cc b/test/porousmediumflow/richards/nonisothermal/evaporation/main.cc index 46649d25edd3e9ef4750228480be2cee64c253cd..4486298c65a967da46f602b6c08798400ea596bc 100644 --- a/test/porousmediumflow/richards/nonisothermal/evaporation/main.cc +++ b/test/porousmediumflow/richards/nonisothermal/evaporation/main.cc @@ -36,7 +36,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/porousmediumflow/richards/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -118,8 +120,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = RichardsNewtonSolver<Assembler, LinearSolver>; diff --git a/test/porousmediumflow/richardsnc/main.cc b/test/porousmediumflow/richardsnc/main.cc index d37ac9f3bd52b55980cfbcd15aa5465c1d1db382..32019a8747f0fe8e3c685e708ea5a0545eadb240 100644 --- a/test/porousmediumflow/richardsnc/main.cc +++ b/test/porousmediumflow/richardsnc/main.cc @@ -34,7 +34,9 @@ #include <dumux/common/parameters.hh> #include <dumux/common/dumuxmessage.hh> -#include <dumux/linear/seqsolverbackend.hh> +#include <dumux/linear/istlsolvers.hh> +#include <dumux/linear/linearsolvertraits.hh> +#include <dumux/linear/linearalgebratraits.hh> #include <dumux/porousmediumflow/richards/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -119,8 +121,8 @@ int main(int argc, char** argv) auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop, xOld); // the linear solver - using LinearSolver = Dumux::ILU0BiCGSTABBackend; - auto linearSolver = std::make_shared<LinearSolver>(); + using LinearSolver = Dumux::ILUBiCGSTABIstlSolver<LinearSolverTraits<GridGeometry>, LinearAlgebraTraitsFromAssembler<Assembler>>; + auto linearSolver = std::make_shared<LinearSolver>(gridGeometry->gridView(), gridGeometry->dofMapper()); // the non-linear solver using NewtonSolver = Dumux::RichardsNewtonSolver<Assembler, LinearSolver>;