FEAP User Forum
FEAP => Parallel FEAP => Topic started by: TonggeWu on April 03, 2018, 08:54:52 PM
-
Hi,
I was doing linear elastic analysis on a bone tissue (simple mechanical problem on complex structures). My model was uniformly compressed by 2% strain (2% of height). The solving process was done by parallel FEAP on a local cluster.
What I wanted to get was the reaction force from the Ofiles. I did the summation for all nodal reaction forces on different Z coordinates, and it turned out on the top surface (the force is 99.2274N), on the bottom surface (the force is -99.0649N), on the middle layer (the force is somewhere between -0.2N to 1.5N depends on the Z coordinates).
I got quite confused because, for a linear elastic problem, I thought the summation of each layer in vertical direction should all equal to one constant value, which is the applied force on the top surface.
My guess is that my sample is not converged. So I check the SLURM.out file, the ksp_monitor showed
9999 KSP Residual norm 7.691349936666e-07
10000 KSP Residual norm 7.756010058369e-07
NO CONVERGENCE REASON: Iterations exceeded
NO CONVERGENCE REASON: Iterations exceeded
My "solve.D11" file was
BATCh
PETSc ON
TOL ITER 1.d-08 1.d-16 1.d+16
TANGent,,1
DISPlacement ALL
STREss ALL
REACtions ALL
END
STOP
And my solving command was
mpirun parfeap -ksp_type cg -pc_type jacobi -ksp_monitor
It would be great if someone can provide some help.
Thank you ~
-
Hard to say why poor convergence - poor condition number or incomplete set up. Did you check that the problem had sufficient boundary conditions to prevent rigid motion? Do before partitioning.
If problem is too finely meshed the check on z coordinate may need a tolerance to prevent unwanted nodes from being used.
But the problem must be converged for a good check.
-
Thank you, Prof. Taylor.
Can we use direct solver after checking mesh in parFEAP?
Since we are dealing with a linear static problem.
-
Hi, Prof. Taylor:
After the mesh checking, I am sure there are sufficient constraints for all directions.
Still, don't know why the problem is not converged.
-
You can certainly try with a direct solver if the problem is small enough. FEAP will also print some diagnositics about your matrix.
You can also use multigrid for your preconditioner, it may work better:
-ksp_type cg -ksp_monitor -log_view -pc_type gamg -pc_gamg_type agg -pc_gamg_agg_nsmooths 1
You can also use a direct solve, say super_lu:
-ksp_monitor_short -ksp_converged_reason -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package superlu_dist
-
Hi, Prof. Taylor:
The mesh was good, and the problem was too big for the direct solver.
I tried the gamg preconditioner as you suggested, the error showed "requires BCIN", can you give me more specific instructions?
(our model was 6M DOF and we had 120 domains)
Thank you ~
-
Two things to try:
(1) From the serial input file try running CHECk at the macro prompt, to make sure that the elements are all numbered correctly.
(2) For the BCIN issue, you need to generate your parallel input files with the dirichlet boundary nodes in the matrix equations. See section 3.1 of the parafeap manual, but in short use the following format for OUTDomains:
OUTDomains AIJ 1
-
Hi, Prof. Govindjee:
Thanks for your advice, now it works.
The GAMG pc didn't touch the maximum number of iteration, and the residual norm became 1e-7.
Thank you ~
Tongge