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

[Cleanup] Rename: problem_*

problem_rhs_initial -> accelerationRHS

problem_rhs         -> velocityRHS
problem_iterate     -> velocityIterate
problem_AM          -> velocityMatrix
parent 03f86bbc
No related branches found
No related tags found
No related merge requests found
...@@ -399,17 +399,17 @@ int main(int argc, char *argv[]) { ...@@ -399,17 +399,17 @@ int main(int argc, char *argv[]) {
*/ */
MatrixType const &C = A; MatrixType const &C = A;
double const wc = 0.0; // watch out -- do not choose 1.0 here! double const wc = 0.0; // watch out -- do not choose 1.0 here!
VectorType problem_rhs_initial(finestSize); VectorType accelerationRHS(finestSize);
{ {
problem_rhs_initial = 0.0; accelerationRHS = 0.0;
Arithmetic::addProduct(problem_rhs_initial, A, u_initial); Arithmetic::addProduct(accelerationRHS, A, u_initial);
Arithmetic::addProduct(problem_rhs_initial, wc, C, v_initial); Arithmetic::addProduct(accelerationRHS, wc, C, v_initial);
myGlobalNonlinearity->updateState(alpha_initial); myGlobalNonlinearity->updateState(alpha_initial);
// NOTE: We assume differentiability of Psi at v0 here! // NOTE: We assume differentiability of Psi at v0 here!
myGlobalNonlinearity->addGradient(v_initial, problem_rhs_initial); myGlobalNonlinearity->addGradient(v_initial, accelerationRHS);
problem_rhs_initial -= ell; accelerationRHS -= ell;
// instead of multiplying M by (1.0 - wc), we divide the RHS // instead of multiplying M by (1.0 - wc), we divide the RHS
problem_rhs_initial *= -1.0 / (1.0 - wc); accelerationRHS *= -1.0 / (1.0 - wc);
} }
LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"), // FIXME LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"), // FIXME
refinements, 1e-12, // FIXME, refinements, 1e-12, // FIXME,
...@@ -418,7 +418,7 @@ int main(int argc, char *argv[]) { ...@@ -418,7 +418,7 @@ int main(int argc, char *argv[]) {
auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity"); auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
typename LinearFactoryType::ConvexProblemType myConvexProblem( typename LinearFactoryType::ConvexProblemType myConvexProblem(
1.0, M, zeroNonlinearity, problem_rhs_initial, a_initial); 1.0, M, zeroNonlinearity, accelerationRHS, a_initial);
typename LinearFactoryType::BlockProblemType initialAccelerationProblem( typename LinearFactoryType::BlockProblemType initialAccelerationProblem(
parset, myConvexProblem); parset, myConvexProblem);
...@@ -492,30 +492,30 @@ int main(int argc, char *argv[]) { ...@@ -492,30 +492,30 @@ int main(int argc, char *argv[]) {
double const time = tau * run; double const time = tau * run;
createRHS(time, ell); createRHS(time, ell);
MatrixType problem_AM; MatrixType velocityMatrix;
VectorType problem_rhs(finestSize); VectorType velocityRHS(finestSize);
VectorType problem_iterate(finestSize); VectorType velocityIterate(finestSize);
stateUpdater->setup(tau); stateUpdater->setup(tau);
timeSteppingScheme->setup(ell, tau, time, problem_rhs, problem_iterate, timeSteppingScheme->setup(ell, tau, time, velocityRHS, velocityIterate,
problem_AM); velocityMatrix);
LoopSolver<VectorType> velocityProblemSolver( LoopSolver<VectorType> velocityProblemSolver(
multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"), multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"),
solverTolerance, &AMNorm, verbosity, false); // absolute error solverTolerance, &AMNorm, verbosity, false); // absolute error
size_t iterationCounter; size_t iterationCounter;
auto solveVelocityProblem = [&](VectorType &_problem_iterate, auto solveVelocityProblem = [&](VectorType &_velocityIterate,
SingletonVectorType const &_alpha) { SingletonVectorType const &_alpha) {
myGlobalNonlinearity->updateState(_alpha); myGlobalNonlinearity->updateState(_alpha);
// NIT: Do we really need to pass u here? // NIT: Do we really need to pass u here?
typename NonlinearFactoryType::ConvexProblemType const myConvexProblem( typename NonlinearFactoryType::ConvexProblemType const myConvexProblem(
1.0, problem_AM, *myGlobalNonlinearity, problem_rhs, 1.0, velocityMatrix, *myGlobalNonlinearity, velocityRHS,
_problem_iterate); _velocityIterate);
typename NonlinearFactoryType::BlockProblemType velocityProblem( typename NonlinearFactoryType::BlockProblemType velocityProblem(
parset, myConvexProblem); parset, myConvexProblem);
multigridStep->setProblem(_problem_iterate, velocityProblem); multigridStep->setProblem(_velocityIterate, velocityProblem);
velocityProblemSolver.preprocess(); velocityProblemSolver.preprocess();
velocityProblemSolver.solve(); velocityProblemSolver.solve();
...@@ -544,8 +544,8 @@ int main(int argc, char *argv[]) { ...@@ -544,8 +544,8 @@ int main(int argc, char *argv[]) {
lastCorrection = correction; lastCorrection = correction;
} }
solveVelocityProblem(problem_iterate, alpha); solveVelocityProblem(velocityIterate, alpha);
timeSteppingScheme->postProcess(problem_iterate); timeSteppingScheme->postProcess(velocityIterate);
timeSteppingScheme->extractDisplacement(u); timeSteppingScheme->extractDisplacement(u);
timeSteppingScheme->extractVelocity(v); timeSteppingScheme->extractVelocity(v);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment