Skip to content

Commit 3bb4444

Browse files
author
Andrea Mola
committed
added AMG preconditioning for all mass matrix systems in bem_problem
1 parent 9b8845f commit 3bb4444

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

source/bem_problem.cc

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1844,7 +1844,10 @@ void BEMProblem<dim>::compute_gradients(const TrilinosWrappers::MPI::Vector &glo
18441844
SolverGMRES<TrilinosWrappers::MPI::Vector > solver (solver_control,
18451845
SolverGMRES<TrilinosWrappers::MPI::Vector >::AdditionalData(1000));
18461846

1847-
solver.solve (vector_gradients_matrix, vector_gradients_solution, vector_gradients_rhs, PreconditionIdentity());
1847+
TrilinosWrappers::PreconditionAMG mass_prec;
1848+
mass_prec.initialize(vector_gradients_matrix);
1849+
1850+
solver.solve (vector_gradients_matrix, vector_gradients_solution, vector_gradients_rhs, mass_prec);
18481851

18491852
vector_constraints.distribute(vector_gradients_solution);
18501853
}
@@ -1974,7 +1977,10 @@ void BEMProblem<dim>::compute_surface_gradients(const TrilinosWrappers::MPI::Vec
19741977
SolverGMRES<TrilinosWrappers::MPI::Vector > solver (solver_control,
19751978
SolverGMRES<TrilinosWrappers::MPI::Vector >::AdditionalData(1000));
19761979

1977-
solver.solve (vector_surface_gradients_matrix, vector_surface_gradients_solution, vector_surface_gradients_rhs, PreconditionIdentity());
1980+
TrilinosWrappers::PreconditionAMG mass_prec;
1981+
mass_prec.initialize(vector_surface_gradients_matrix);
1982+
1983+
solver.solve (vector_surface_gradients_matrix, vector_surface_gradients_solution, vector_surface_gradients_rhs, mass_prec);
19781984

19791985
vector_constraints.distribute(vector_surface_gradients_solution);
19801986

@@ -2068,8 +2074,11 @@ void BEMProblem<dim>::compute_normals()
20682074

20692075
SolverGMRES<TrilinosWrappers::MPI::Vector > solver (solver_control,
20702076
SolverGMRES<TrilinosWrappers::MPI::Vector >::AdditionalData(1000));
2077+
TrilinosWrappers::PreconditionAMG mass_prec;
2078+
mass_prec.initialize(vector_normals_matrix);
2079+
20712080

2072-
solver.solve (vector_normals_matrix, vector_normals_solution, vector_normals_rhs, PreconditionIdentity());
2081+
solver.solve (vector_normals_matrix, vector_normals_solution, vector_normals_rhs, mass_prec);
20732082

20742083
vector_constraints.distribute(vector_normals_solution);
20752084

0 commit comments

Comments
 (0)