Skip to content
Snippets Groups Projects
Commit a919c996 authored by Oliver Sander's avatar Oliver Sander Committed by sander@PCPOOL.MI.FU-BERLIN.DE
Browse files

actually construct and call the solver

[[Imported from SVN: r4061]]
parent d340e8eb
No related branches found
No related tags found
No related merge requests found
......@@ -12,11 +12,12 @@
#include "src/geodesicdifference.hh"
#include "src/rodwriter.hh"
#include "src/rotation.hh"
#include "src/harmonicenergystiffness.hh"
#include "src/geodesicfeassembler.hh"
#include "src/rodsolver.hh"
#include "src/riemanniantrsolver.hh"
// grid dimension
const int dim = 3;
const int dim = 2;
// Image space of the geodesic fe functions
typedef Rotation<3,double> TargetSpace;
......@@ -94,38 +95,42 @@ int main (int argc, char *argv[]) try
// ////////////////////////////////////////////////////////////
// Create an assembler for the Harmonic Energy Functional
// ////////////////////////////////////////////////////////////
GeodesicFEAssembler<GridType::LeafGridView,TargetSpace> assembler(grid.leafView());
HarmonicEnergyLocalStiffness<GridType::LeafGridView,TargetSpace> harmonicEnergyLocalStiffness;
GeodesicFEAssembler<GridType::LeafGridView,TargetSpace> assembler(grid.leafView(),
&harmonicEnergyLocalStiffness);
// /////////////////////////////////////////////////
// Create a Riemannian trust-region solver
// /////////////////////////////////////////////////
#if 0
RodSolver<GridType> rodSolver;
rodSolver.setup(grid,
&assembler,
x,
dirichletNodes,
tolerance,
maxTrustRegionSteps,
initialTrustRegionRadius,
multigridIterations,
mgTolerance,
mu, nu1, nu2,
baseIterations,
baseTolerance,
instrumented);
RiemannianTrustRegionSolver<GridType,TargetSpace> solver;
solver.setup(grid,
&assembler,
x,
dirichletNodes,
tolerance,
maxTrustRegionSteps,
initialTrustRegionRadius,
multigridIterations,
mgTolerance,
mu, nu1, nu2,
baseIterations,
baseTolerance,
instrumented);
// /////////////////////////////////////////////////////
// Solve!
// /////////////////////////////////////////////////////
std::cout << "Energy: " << assembler.computeEnergy(x) << std::endl;
rodSolver.setInitialSolution(x);
rodSolver.solve();
std::cout << "Energy: " << assembler.computeEnergy(x) << std::endl;
solver.setInitialSolution(x);
solver.solve();
x = solver.getSol();
x = rodSolver.getSol();
#endif
// //////////////////////////////
// Output result
// //////////////////////////////
......
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