Topic: CALMLS and its usage
Dear all,
I'm trying to correctly use CALM linear solver for a non-linear structure and I'm getting some problems. I have some things to ask you:
1. one limitation of CALMS is that one cannot use a restrained nodes in which displacement are applied to control the solution, because "dman->giveDofWithID(idofid)->giveEquationNumber(dn)" returns 0. This is not a problem anyway, but only a limitation;
2. with hpcmode 2, I always get:
In CylindricalALM::oofem::CylindricalALM::computeDeltaLambda:
zero denominator in linearized control
3. with hpcmode 1, in the line:
DeltaLambda = deltaLambda = sgn(XR) * deltaL / p;
I always get p = 0, and I cannot figure out why. I think this is something misplaced or wrong in the analisys setting:
NonLinearStatic nsteps 101 deltat 0.0100000 rtolv 1e-4 controlmode 0 psi 1 stepLength 0.0100000 minsteplength 0.0005000 reqIterations 5 maxrestarts 5 hpcmode 1 hpc 2 95 1 hpcw 1 1 maxiter 30 manrmsteps 1 linesearch 1
With this settings, I always get increasing loadlevel and this is wrong (with or withtout line search):
Solving [step number 1.0, time = 0.000000e+000]
CALMLS: Initial step length: 1.000000e-002
CALMLS: Iteration LoadLevel ForceError DisplError
----------------------------------------------------------------------------
CALMLS: 1 2.000000e-002 0.000000e+000 0.000000e+000
CALMLS: Adjusted step length: 1.000000e-002
Equilibrium reached at load level = 0.020000 in 1 iterations
EngngModel info: user time consumed by solution step 1: 2.00s
endStep
Solving [step number 2.0, time = 1.000000e-002]
CALMLS: Initial step length: 1.000000e-002
CALMLS: Iteration LoadLevel ForceError DisplError
----------------------------------------------------------------------------
CALMLS: 1 4.000000e-002 5.484458e-001 1.000000e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=2.000000e-002
CALMLS: 2 6.000000e-002 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=4.000000e-002
CALMLS: 3 1.000000e-001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=8.000000e-002
CALMLS: 4 1.800000e-001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=1.600000e-001
CALMLS: 5 3.400000e-001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=3.200000e-001
CALMLS: 6 6.600000e-001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=6.400000e-001
CALMLS: 7 1.300000e+000 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=1.280000e+000
CALMLS: 8 2.580000e+000 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=2.560000e+000
CALMLS: 9 5.140000e+000 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=5.120000e+000
CALMLS: 10 1.026000e+001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=1.024000e+001
CALMLS: 11 2.050000e+001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=2.048000e+001
CALMLS: 12 4.098000e+001 5.484458e-001 4.637997e+000
CALMLS: Line search - err_id=2, eta=1.000000e+000, dlambda=4.096000e+001
CALMLS: 13 8.194000e+001 5.484458e-001 4.637997e+000
...
Finally, I cannot share the file because I'm using custom (Windows) code, but I'm asking if there's a 2-node non-linear spring to be used instead of my code to make shareable tests.
By now I cannot find any suitable sample.
thanks in advance