-
Notifications
You must be signed in to change notification settings - Fork 135
Description
Hello, I was wondering if I could get help with the appropriate settings to get the attached 3D structural problem from a finite element analysis to converge. This problem has already had the rigid body modes removed, this is sometimes called "inertial relief". I followed the structural problem tutorial to try setting the solver type, block size, maximum number of iterations, but I cannot get a small enough error.
Default settings:
./solver --matrix stiffness.mtx --rhs rhs.mtx
Solver
======
Type: BiCGStab
Unknowns: 9399
Memory footprint: 514.01 K
Preconditioner
==============
Number of levels: 2
Operator complexity: 1.04
Grid complexity: 1.05
Memory footprint: 11.10 M
level unknowns nonzeros memory
---------------------------------------------
0 9399 574515 10.45 M (96.15%)
1 437 22991 665.69 K ( 3.85%)
Iterations: 100
Error: 302.985
[Profile: 0.853 s] (100.00%)
[ reading: 0.495 s] ( 58.07%)
[ setup: 0.019 s] ( 2.26%)
[ solve: 0.338 s] ( 39.63%)
Increasing the solver's maxiter increases the error:
./solver --matrix stiffness.mtx --rhs rhs.mtx solver.maxiter=1000
Solver
======
Type: BiCGStab
Unknowns: 9399
Memory footprint: 514.01 K
Preconditioner
==============
Number of levels: 2
Operator complexity: 1.04
Grid complexity: 1.05
Memory footprint: 11.10 M
level unknowns nonzeros memory
---------------------------------------------
0 9399 574515 10.45 M (96.15%)
1 437 22991 665.69 K ( 3.85%)
Iterations: 1000
Error: 462.915
[Profile: 3.901 s] (100.00%)
[ reading: 0.494 s] ( 12.67%)
[ setup: 0.019 s] ( 0.50%)
[ solve: 3.387 s] ( 86.82%)
The problem is 3D linear elasticity, so it should have a block size of 3. Providing that to the aggregation method reduces the error, but not enough to consider the solution has converged:
./solver --matrix stiffness.mtx --rhs rhs.mtx solver.maxiter=1000 precond.coarsening.aggr.block_size=3
Solver
======
Type: BiCGStab
Unknowns: 9399
Memory footprint: 514.01 K
Preconditioner
==============
Number of levels: 2
Operator complexity: 1.10
Grid complexity: 1.08
Memory footprint: 13.34 M
level unknowns nonzeros memory
---------------------------------------------
0 9399 574515 11.81 M (90.85%)
1 735 57897 1.53 M ( 9.15%)
Iterations: 1000
Error: 51.9285
[Profile: 4.095 s] (100.00%)
[ reading: 0.496 s] ( 12.10%)
[ setup: 0.029 s] ( 0.71%)
[ solve: 3.570 s] ( 87.18%)
Do you have any suggestions to improve the performance on this type of problem? Attached is the matrix and right hand side in MatrixMarket format.