
ALIMIT=r | Specifies the maximum angular increment allowed per iteration during a static or quasi-static equilibrium analysis. The default units for ALIMIT are radians. To specify ALIMIT in degrees, add a D after the value. Default: 0.17453 (10 D) Range: ALIMIT > 0 |
ERROR=r | Specifies the relative correction convergence threshold. The iterative process carried out during the equilibrium analysis can not converge prior to all relevant relative corrections being smaller than this value. Default: 1.0E-04 Range: ERROR > 0 |
IMBALANCE=r | Specifies the equation imbalance convergence threshold. The iterative process carried out during the equilibrium analysis can not converge prior to each equation imbalance being smaller than this value. Default: 1.0E-04 Range: IMBALANCE > 0 |
MAXIT=i | Specifies the maximum number of iterations allowed for finding static equilibrium. Default: 25 Range: MAXIT > 0 |
PATTERN=c1[:...:c10] | Allows you to specify as many as ten character strings that together establish the pattern for evaluating the Jacobian matrix during the modified Newton-Raphson iteration. For each iteration, T or TRUE indicates that Adams Solver (C++) evaluates the Jacobian and F or FALSE indicates that Adams Solver (C++) does not evaluate the Jacobian. Thus, cj determines whether or not Adams Solver (C++) evaluates the Jacobian at the jth iteration. If necessary, Adams Solver (C++) repeats the pattern of evaluations until it reaches the maximum number of iterations (MAXIT). The number of Ts or TRUEs and Fs or FALSEs together must be at least one and no more than ten. Default: T:T:T:T:T:T:T:T:T:T, which evaluates the Jacobian at every iteration (for example, the unmodified Newton-Raphson algorithm). |
STABILITY=r | Specifies the fraction of the mass and damping matrices (subsets of the equilibrium Jacobian matrix) Adams Solver (C++) adds to the stiffness matrix (a subset of the equilibrium Jacobian matrix) during static simulations performed using static analyses. Adding a fraction of the mass and damping matrices to the stiffness matrix can stabilize the iteration process and prevent the iteration from diverging. Often the stiffness matrix is singular for a system because the system is neutrally stable (for example, the system moves in certain directions without affecting the potential energy). Adding a fraction of the mass and damping matrices to the stiffness matrix removes this singularity and makes it possible to solve for equilibrium positions. The value of STABILITY does not affect the accuracy of the solution, but it does affect the rate of convergence of the iteration process. Default: 1.0E-05 Range: STABILITY >0 |
TLIMIT=r | Specifies the maximum translational increment allowed per iteration. Default: 20 Range: TLIMIT > 0 |
METHOD=i | Specifies the option which determines the static solver method to be used for equilibrium solution. 1. ORIGINAL, for running only the ORIGINAL Solver 2. ADVANCED, runs, in order, the following methods until one shows progress: a. ORIGINAL b. ORIGINAL+Krylov c. ORIGINAL+UMF d. Newton+Krylov e. Tensor-Krylov block-3 f. Tensor-Krylov block-2+ 3. AGGRESSIVE, runs, in order, the following methods until one shows progress: a. ORIGINAL b. ORIGINAL+Krylov c. ORIGINAL+UMF d. Newton+Krylov e. Tensor-Krylov block-3 f. Tensor-Krylov block-2+ g. Broyden-Armijo h. Trust-Region 4. ALL, runs, in order, all the available methods, until one shows progress: a. ORIGINAL b. ORIGINAL+Krylov c. ORIGINAL+UMF d. Newton+Krylov e. Tensor-Krylov block-3 f. Tensor-Krylov block-2+ g. Broyden-Armijo h. Trust-Region i. Hooke-Jeeves Default: ORIGINAL |
ATOL | Specifies the absolute tolerance value Default: 1.0e-6 Range: 0.0 < ATOL < 1.0 |
RTOL | Specifies the relative tolerance value For all solvers, except ORIGINAL and ORIGINAL+Krylov, the tolerance is defined as : TOL=ATOL+||xIC||*RTOL. For ORIGINAL and ORIGINAL+Krylov solvers the tolerance is equal to ERROR. Default: 0.0 Range: 0.0 < RTOL < 1.0 |
MAXITL | Specifies the maximum number of allowed inner loops in all the solvers. ORIGINAL, ORIGINAL+Krylov and ORIGINAL+UMF solver methods ignore this parameter. For Hooke-Jeeves method, allowed budget of function evaluations is set to MAXITL*N, where N is the size of the problem (number of unknowns). Default: 40 Range: > 0 |
ETAMAX | Specifies the maximum threshold for the error tolerance of the linear Krylov solver (for Newton+Krylov and Tensor-Krylov methods) that solves the linear systems required by Krylov algorithm. Maximum error tolerance for residual in inner iteration. The inner iteration terminates when the relative linear residual is smaller than eta*| F(x_c) |. eta is determined by the modified Eisenstat-Walker formula if etamax > 0. If etamax < 0, then eta = |etamax| for the entire iteration. Default: 0.9 Range: 0.0 < ETAMAX < 1.0 |
ETA | Specifies the initial residual tolerance for the linear Krylov Solver for Tensor_Krylov method. The Tensor-Krylov ETA parameter is maintained adaptively by the Krylov algorithm but ETA is the indicated starting value, while ETAMAX is the maximum threshold for ETA. Default: 1.0e-4 Range: 0.0 < ETA < 1.0 Specifies the dimensionless radius of the trust-region for Trust-region method. The smaller the value, the more the refinement of Trust-region solution (hence more work). Range: 0.0 < ETA < 0.25 |
Tip: | ■Using the PATTERN argument to request less frequent evaluations of the Jacobian matrix may decrease the computation time. However, infrequent evaluations could also be more expensive since the modified Newton-Raphson algorithm might require more iterations due to the slower convergence rates. ■Use the ALIMIT and TLIMIT arguments to limit incrementing displacement variables during an iteration for static equilibrium. Excessive incrementing could prevent Adams Solver (C++) from finding a static equilibrium position. ■Use the IMBALANCE argument if the physical units of the problem are such that the default imbalance of 1.0E0-4 is excessively large or excessively small. Changing from an inappropriate to an appropriate value for IMBALANCE saves CPU time. ■You can use the MSC_USE_ALTERNATE_SOLVERS environment variable to specify a particular method to be used for equilibrium solution. The variable works as an integer bit-mask with 9 bits, corresponding to the eight solvers above in the order: ORIGINAL (bit0), ORIGINAL+Krylov (bit1), ORIGINAL+UMF (bit2), Newton+Krylov (bit3), Tensor-Krylov block-3 (bit4), Tensor-Krylov block-2+ (bit5), Broyden-Armijo (bit6), Trust-Region (bit7), Hooke-Jeeves (bit8). The lowest order bit, if set to 1, means ORIGINAL solver will be used. The highest order bit, if set to 1, means Continuation method will be used. For example if the user wants to enforce the exclusive use of only ORIGINAL+Krylov, ORIGINAL+UMF, Broyden-Armijo, and Trust-Region solvers, then the bits that must be set are bit1, bit2, bit5, and bit7. Hence, the binary value of MSC_USE_ALTERNATE_SOLVERS is 10100110, that is, MSC_USE_ALTERNATE_SOLVERS=2^7+2^5+2^2+2^1=128+32+4+2=166. |
Caution: | ■Setting STABILITY=0 results in a singularity if the system is neutrally stable. If the system is neutrally stable, STABILITY must be greater than zero in order for Adams Solver (C++) to compute static equilibrium. ■Static equilibrium, or quasi-static equilibrium analyses often have multiple equilibrium solutions. Adams Solver (C++) makes no attempt to converge to a stable position. For example, Adams Solver (C++) may converge to an inverted pendulum position rather than the more common hanging pendulum. Items such as the initial position of parts and the settings for ALIMIT, TLIMIT, and STABILITY can all influence the solution to which Adams Solver (C++) converges. ■If MSC_USE_ALTERNATE_SOLVERS is set to a non-zero value, then its value overrides the METHOD setting. |