Skip to content
Snippets Groups Projects
Commit ccc28f01 authored by Jonathan Youett's avatar Jonathan Youett
Browse files

Make the multigrid compile again

parent 3a500124
Branches
Tags
No related merge requests found
...@@ -188,7 +188,7 @@ int main (int argc, char *argv[]) try ...@@ -188,7 +188,7 @@ int main (int argc, char *argv[]) try
EnergyNorm<OperatorType,VectorType> baseEnergyNorm(baseSolverStep); EnergyNorm<OperatorType,VectorType> baseEnergyNorm(baseSolverStep);
IterativeSolver<VectorType> baseSolver(&baseSolverStep, LoopSolver<VectorType> baseSolver(&baseSolverStep,
baseIt, baseIt,
baseTolerance, baseTolerance,
&baseEnergyNorm, &baseEnergyNorm,
...@@ -200,20 +200,20 @@ int main (int argc, char *argv[]) try ...@@ -200,20 +200,20 @@ int main (int argc, char *argv[]) try
BlockGSStep<OperatorType, VectorType> postsmoother; BlockGSStep<OperatorType, VectorType> postsmoother;
MultigridStep<OperatorType, VectorType> multigridStep(stiffnessMatrix, x, rhs, grid.maxLevel()+1); MultigridStep<OperatorType, VectorType> multigridStep(stiffnessMatrix, x, rhs);
multigridStep.setMGType(1, nu1, nu2); multigridStep.setMGType(1, nu1, nu2);
multigridStep.ignoreNodes_ = &dirichletNodes.back(); multigridStep.ignoreNodes_ = &dirichletNodes.back();
multigridStep.basesolver_ = &baseSolver; multigridStep.basesolver_ = &baseSolver;
multigridStep.setSmoother(&presmoother,&postsmoother); multigridStep.setSmoother(&presmoother,&postsmoother);
multigridStep.mgTransfer_.resize(grid.maxLevel()); std::vector<CompressedMultigridTransfer<VectorType>* > mgTransfers(grid->maxLevel());
for (int i=0; i<multigridStep.mgTransfer_.size(); i++) { for (int i=0; i<mgTransfers.size(); i++) {
CompressedMultigridTransfer<VectorType>* newTransferOp = new CompressedMultigridTransfer<VectorType>; mgTransfers[i] = new CompressedMultigridTransfer<VectorType>;
newTransferOp->setup(grid, i, i+1); mgTransfers[i]->setup(*grid, i, i+1);
multigridStep.mgTransfer_[i] = newTransferOp;
} }
multigridStep.setTransferOperators(mgTransfers);
EnergyNorm<OperatorType, VectorType> energyNorm(multigridStep); EnergyNorm<OperatorType, VectorType> energyNorm(multigridStep);
LoopSolver<VectorType> solver(&multigridStep, LoopSolver<VectorType> solver(&multigridStep,
...@@ -225,7 +225,6 @@ int main (int argc, char *argv[]) try ...@@ -225,7 +225,6 @@ int main (int argc, char *argv[]) try
solver.preprocess(); solver.preprocess();
multigridStep.preprocess();
// Compute solution // Compute solution
solver.solve(); solver.solve();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment