diff --git a/examples/init/stokes.dat.2d b/examples/init/stokes.dat.2d index 19232d37587533c5adb60ff5eb47d2d24a0ae629..3fdf287e22cefc4173da9def8cb500a435c2a145 100644 --- a/examples/init/stokes.dat.2d +++ b/examples/init/stokes.dat.2d @@ -1,7 +1,8 @@ dimension of world: 2 -stokesMesh->macro file name: ./macro/macro.stand.2d stokesMesh->global refinements: 0 +stokesMesh->dimension: 1.0 1.0 +stokesMesh->num cells: 4 4 stokes->mesh: stokesMesh @@ -14,7 +15,7 @@ stokes->solver->info: 2 stokes->output[0]->filename: stokes_u.2d stokes->output[0]->name: u -stokes->output[0]->subsampling: 0 +stokes->output[0]->subsampling: 2 stokes->output[0]->output directory: ./output stokes->output[0]->ParaView format: 1 stokes->output[0]->ParaView mode: 1 @@ -25,7 +26,7 @@ stokes->output[1]->output directory: ./output stokes->output[1]->ParaView format: 1 stokes->output[1]->ParaView mode: 1 -stokes->viscosity: 0.1 +stokes->viscosity: 1.0 stokes->density: 1.0 stokes->boundary velocity: 10.0 diff --git a/src/amdis/DirichletBC.hpp b/src/amdis/DirichletBC.hpp index 3cfd811aa53b5926300ff48547543e977c4d1aec..1729ec65a3f51a56f52450b108d924f236730ad5 100644 --- a/src/amdis/DirichletBC.hpp +++ b/src/amdis/DirichletBC.hpp @@ -78,8 +78,8 @@ namespace AMDiS finishImpl(matrix, rhs, solution, rowBasis, colBasis, ValueCategory_t<Range>{}); // subtract columns of dirichlet nodes from rhs - for (auto const& triplet : columns) - rhs[triplet.row] -= triplet.value * solution[triplet.col]; + // for (auto const& triplet : columns) + // rhs[triplet.row] -= triplet.value * solution[triplet.col]; } protected: diff --git a/src/amdis/linear_algebra/mtl/DOFMatrix.hpp b/src/amdis/linear_algebra/mtl/DOFMatrix.hpp index b8b4d85df3c7489c9206037f2ccc245bbc66d49a..efadcc319d8618f27bb854331f083a08bbbe4730 100644 --- a/src/amdis/linear_algebra/mtl/DOFMatrix.hpp +++ b/src/amdis/linear_algebra/mtl/DOFMatrix.hpp @@ -181,6 +181,7 @@ namespace AMDiS auto value = mtl::mat::value_map(*matrix); // iterate over the matrix +#if 0 for (auto r : mtl::major_of(*matrix)) { // rows or columns for (auto i : mtl::nz_of(r)) { // non-zeros within if (dirichletNodes[row(i)]) { @@ -193,6 +194,16 @@ namespace AMDiS } } } +#endif + + for (auto r : mtl::rows_of(*matrix)) { // rows or columns + if (dirichletNodes[r.value()]) { + for (auto i : mtl::nz_of(r)) { // non-zeros within + // set identity row + value(i, (row(i) == col(i) ? value_type(1) : value_type(0)) ); + } + } + } return columns; }