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

[Cleanup] Sort out bisection instances in MyBlockProblem

parent 392273c7
No related branches found
No related tags found
No related merge requests found
......@@ -58,9 +58,8 @@ template <class ConvexProblem> class MyBlockProblem {
MyBlockProblem(Dune::ParameterTree const &parset,
ConvexProblem const &problem)
: parset(parset), problem(problem) {
bisection = Bisection();
}
: parset(parset), problem(problem), localBisection() // NOTE: defaults
{}
std::string getOutput(bool header = false) const {
if (header) {
......@@ -106,8 +105,8 @@ template <class ConvexProblem> class MyBlockProblem {
return 0;
int bisectionsteps = 0;
Bisection bisection;
return bisection.minimize(psi, vnorm, 0.0, bisectionsteps) / vnorm; // TODO
Bisection const globalBisection; // NOTE: defaults
return globalBisection.minimize(psi, vnorm, 0.0, bisectionsteps) / vnorm;
}
void assembleTruncate(VectorType const &u, Linearization &linearization,
......@@ -186,7 +185,7 @@ template <class ConvexProblem> class MyBlockProblem {
/** \brief Constructs and returns an iterate object */
IterateObject getIterateObject() {
return IterateObject(parset, bisection, problem);
return IterateObject(parset, localBisection, problem);
}
private:
......@@ -195,8 +194,7 @@ template <class ConvexProblem> class MyBlockProblem {
// problem data
ConvexProblem const &problem;
// commonly used minimization stuff
Bisection bisection;
Bisection const localBisection;
mutable std::ostringstream outStream;
};
......@@ -214,7 +212,7 @@ class MyBlockProblem<ConvexProblem>::IterateObject {
IterateObject(Dune::ParameterTree const &parset, Bisection const &bisection,
ConvexProblem const &problem)
: problem(problem),
bisection(bisection),
bisection_(bisection),
localsteps(parset.get<size_t>("localsolver.steps")) {}
public:
......@@ -254,7 +252,7 @@ class MyBlockProblem<ConvexProblem>::IterateObject {
auto const phi = problem.phi.restriction(m);
EllipticEnergy<block_size> localJ(*localA, localb, phi, ignore);
minimise(localJ, ui, localsteps, bisection);
minimise(localJ, ui, localsteps, bisection_);
}
}
......@@ -262,8 +260,7 @@ class MyBlockProblem<ConvexProblem>::IterateObject {
// problem data
ConvexProblem const &problem;
// commonly used minimization stuff
Bisection bisection;
Bisection const bisection_;
// state data for smoothing procedure used by:
// setIterate, updateIterate, solveLocalProblem
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment