Skip to content
Snippets Groups Projects
Commit ccd387c2 authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

grid: stack->heap

parent 48cbf044
No related branches found
No related tags found
No related merge requests found
...@@ -202,15 +202,15 @@ int main(int argc, char *argv[]) { ...@@ -202,15 +202,15 @@ int main(int argc, char *argv[]) {
typedef Dune::YaspGrid<dim> GridType; typedef Dune::YaspGrid<dim> GridType;
Dune::FieldVector<double, dim> const end_points( Dune::FieldVector<double, dim> const end_points(
1); // nth dimension (zero-indexed) goes from 0 to end_points[n] 1); // nth dimension (zero-indexed) goes from 0 to end_points[n]
GridType grid( auto grid = Dune::make_shared<GridType>(
end_points, end_points,
Dune::FieldVector<int, dim>(1), // number of elements in each direction Dune::FieldVector<int, dim>(1), // number of elements in each direction
Dune::FieldVector<bool, dim>(false), // non-periodic in each direction Dune::FieldVector<bool, dim>(false), // non-periodic in each direction
0); // zero overlap (whatever that is) 0); // zero overlap (whatever that is)
grid.globalRefine(refinements); grid->globalRefine(refinements);
typedef GridType::LeafGridView GridView; typedef GridType::LeafGridView GridView;
GridView const leafView = grid.leafView(); GridView const leafView = grid->leafView();
// }}} // }}}
// Set up bases // Set up bases
...@@ -232,9 +232,11 @@ int main(int argc, char *argv[]) { ...@@ -232,9 +232,11 @@ int main(int argc, char *argv[]) {
EnergyNorm<OperatorType, VectorType> energyNorm(stiffnessMatrix); EnergyNorm<OperatorType, VectorType> energyNorm(stiffnessMatrix);
// Set up the boundary // Set up the boundary
Dune::BitSetVector<dim> ignoreNodes(grid.size(grid.maxLevel(), dim), false); Dune::BitSetVector<dim> ignoreNodes(grid->size(grid->maxLevel(), dim),
Dune::BitSetVector<1> neumannNodes(grid.size(grid.maxLevel(), dim), false); false);
Dune::BitSetVector<1> frictionalNodes(grid.size(grid.maxLevel(), dim), Dune::BitSetVector<1> neumannNodes(grid->size(grid->maxLevel(), dim),
false);
Dune::BitSetVector<1> frictionalNodes(grid->size(grid->maxLevel(), dim),
false); false);
setup_boundary(leafView, end_points, ignoreNodes, neumannNodes, setup_boundary(leafView, end_points, ignoreNodes, neumannNodes,
frictionalNodes); frictionalNodes);
...@@ -244,13 +246,13 @@ int main(int argc, char *argv[]) { ...@@ -244,13 +246,13 @@ int main(int argc, char *argv[]) {
GenericNonlinearGS<MyBlockProblemType> nonlinearGSStep; GenericNonlinearGS<MyBlockProblemType> nonlinearGSStep;
nonlinearGSStep.ignoreNodes_ = &ignoreNodes; nonlinearGSStep.ignoreNodes_ = &ignoreNodes;
VectorType u1(grid.size(grid.maxLevel(), dim)); VectorType u1(grid->size(grid->maxLevel(), dim));
u1 = 0.0; // Has to be zero! u1 = 0.0; // Has to be zero!
VectorType u2 = u1; VectorType u2 = u1;
VectorType u3 = u1; VectorType u3 = u1;
VectorType u4 = u1; VectorType u4 = u1;
VectorType u1_diff(grid.size(grid.maxLevel(), dim)); VectorType u1_diff(grid->size(grid->maxLevel(), dim));
u1_diff = 0.0; // Has to be zero! u1_diff = 0.0; // Has to be zero!
VectorType u2_diff = u1_diff; VectorType u2_diff = u1_diff;
VectorType u3_diff = u1_diff; VectorType u3_diff = u1_diff;
...@@ -271,7 +273,7 @@ int main(int argc, char *argv[]) { ...@@ -271,7 +273,7 @@ int main(int argc, char *argv[]) {
Dune::shared_ptr<Dune::GlobalNonlinearity<VectorType, OperatorType> const> Dune::shared_ptr<Dune::GlobalNonlinearity<VectorType, OperatorType> const>
myGlobalNonlinearity; myGlobalNonlinearity;
assemble_nonlinearity<VectorType, OperatorType>( assemble_nonlinearity<VectorType, OperatorType>(
grid.size(grid.maxLevel(), dim), parset, myGlobalNonlinearity, grid->size(grid->maxLevel(), dim), parset, myGlobalNonlinearity,
nodalIntegrals); nodalIntegrals);
// {{{ Set up TNNMG solver // {{{ Set up TNNMG solver
...@@ -299,7 +301,7 @@ int main(int argc, char *argv[]) { ...@@ -299,7 +301,7 @@ int main(int argc, char *argv[]) {
refinements); refinements);
for (auto &x : transferOperators) for (auto &x : transferOperators)
x = new CompressedMultigridTransfer<VectorType>; x = new CompressedMultigridTransfer<VectorType>;
TransferOperatorAssembler<GridType>(grid) TransferOperatorAssembler<GridType>(*grid)
.assembleOperatorPointerHierarchy(transferOperators); .assembleOperatorPointerHierarchy(transferOperators);
linearIterationStep.setTransferOperators(transferOperators); linearIterationStep.setTransferOperators(transferOperators);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment