The extended syntax uses the ``metastep'' concept and has the
following format:
NonLinearStatic |
[nmsteps #(in)] |
|
nsteps #(in) |
|
[contextOutputStep #(in)] |
|
[sparselinsolverparams #(string)] |
|
[nonlinform #(in)] |
|
[nonlocstiff #(in)] |
|
[nonlocalext] |
|
[loadbalancing] |
This record is immediately followed by metastep records with the format described below.
The analysis parameters have following meaning
- nmsteps - determines the number of
``metasteps'', default is 1.
- nsteps - determines number of solution steps.
- contextOutputStep - causes the context file to be
created for every contextOutputStep-th step and when needed. Useful for
postprocessing.
- The sparselinsolverparams parameter describes the sparse
linear solver attributes and is explained in section 5.1.
- nonlinform - formulation of non-linear problem. If == 1 (default), total Lagrangian formulation in undeformed original shape is used (first-order theory). If == 2, the equlibrated displacements are added to original ones and updated in each time step (second-order theory).
- nonlocstiff - determines whether the tangent stiffness
extension for nonlocal models is activated. If == 0 (default) this
option is not active. If == 1 the support for nonlocal tangent
stiffness is activated.
- The nonlocalext turns on the nonlocal constitutive
extension. The extension considers a band of remote elements involved
in computation of nonlocal variables (see fig. 6.7 illustrating
this approach for node-cut partitioning).
- The loadbalancing parameter describes the dynamic load balancing
attributes and is explained in section 5.3.
The metastep record has the following general syntax:
|
nsteps #(in) |
|
[controlmode #(in)] |
|
[deltat #(rn)] |
|
[stiffmode #(in)] |
|
[refloadmode #(in)] |
|
solverParams #() |
|
[sparselinsolverparams #(string)] |
|
[donotfixload #()] |
where
- -
- controlmode - determines the type of solution
control used for corresponding meta step. if == 0 then indirect
control will be used to control solution process (arc-length method, default). if == 1
then direct displacement or load control will be used (Newton-Raphson solver). In the later
mode, one can apply the prescribed load increments as well as
control displacements.
- -
- deltaT - is time step length. If not specified, it is
set equal to 1,0. Each solution step has associated the corresponding
intrinsic time, at which the loading is generated. The deltaT
determines the spacing between solution steps on time scale.
- -
- stiffMode - If == 0 (default) then tangent stiffness will be used
at new step beginning and whenever numerical method will ask for
stiffness update. If == 1 the use of secant tangent will be forced.
The secant stiffness will be used at new step beginning
and whenever numerical method will ask for stiffness update.
If == 2 then original elastic stiffness will
be used during the whole solution process.
- -
- The refloadmode parameter determines how the reference force load vector
is obtained from given totalLoadVector and initialLoadVector.
The initialLoadVector describes the part of loading which does not scale. Works only for force loading, other non-force components (temperature, prescribed displacements should always given in total values).
If refloadmode is 0 (rlm_total, default) then the reference incremental load vector is defined as
totalLoadVector assembled at given time.
If refloadmode is 1 (rlm_inceremental) then the reference load vector is
obtained as incremental load vector at given time.
- -
- solverParams - parameters of solver. The solver type
is determined using controlmode.
- -
- The sparselinsolverparams parameter describes the sparse
linear solver attributes and is explained in section
5.1.
- -
- By default, reached load at the end of
metastep will be maintained in subsequent steps as fixed, non scaling
load and load level will be reset to zero. This can be changed using keyword donotfixload, which if
present, causes the loading to continue, not resetting the load
level. For the indirect control the reached loading will not be
fixed, however, the new reference loading vector will be assembled for
the new metastep.
The direct control corresponds to controlmode=1 and the Newton-Raphson solver is used.
Under the direct control, the total load
vector assembled for specific solution step represents the load level,
where equilibrium is searched. The implementation supports also
displacement control - it is possible to prescribe one or more
displacements by applying ``quasi prescribed'' boundary
condition(s)3.1The load level then represents the
time, where the equilibrium has been found. The Newton-Raphson solver parameters (solverParams) for
load-control are:
|
maxiter #(in) |
|
[minsteplength #(in)] |
|
[minIter #(in)] |
|
[manrmsteps #(in)] |
|
[ddm #(ia)] [ddv #(ra)] [ddltf #(in)] |
|
[linesearch #(in)] [lsearchamp #(rn)] |
|
[lsearchmaxeta #(rn)] [lsearchtol #(rn)] |
|
[nccdg #(in) ccdg1 #(ia) ... ccdgN #(ia) ] |
|
rtolv #(rn) [rtolf #(rn)] [rtold #(tn)] |
|
[initialGuess #(rn)] |
where
- maxiter determines the maximum
number of iterations allowed to reach equilibrium. If equilibrium is
not reached, the step length (corresponding to time) is reduced.
- minsteplength parameter is the minimum step length
allowed.
- minIter - minimum number of iterations which always proceed during the iterative solution.
- If manrmsteps parameter is nonzero, then the modified
N-R scheme is used, with the stiffness updated after
manrmsteps steps.
- ddm is array specifying the degrees of freedom,
which displacements are controlled.
Let the number of these DOFs is N.
The format of ddm array is 2*N dofman1 idof1
dofman2 idof2 ... dofmanN idofN, where the dofmani is the number of i-th dof manager and idofi is the
corresponding DOF number.
- ddv is array of relative weights of controlled
displacements, the size should be equal to N. The actual value of
prescribed dofs is defined as a product of its weight and the value of
load time function specified using ddltf parameter (see
below).
- ddltf number of load time function, which is used to
evaluate the actual displacements of controlled dofs.
- linesearch nonzero value turns on line search
algorithm. The lsearchtol defines tolerance (default value
is 0.8), amplification
factor can be specified using lsearchamp parameter (should
be in interval ), and parameter lsearchmaxeta
defines maximum limit on the length of iterative step (allowed range
is ).
- nccdg allows to define one or more DOF groups, that are used for evaluation of convergence criteria. Each DOF is checked if it is a member of particular group and in this case its contribution is taken into account when evaluating the convergence criteria for that group. By default, if nccdg is not specified, one group containing all DOF types is created. The value of nccdg parameter defines the number of DOF type groups. For each group, the corresponding DOF types need to be specified using ccdg# parameter, where '#' should be replaced by group number (numbering starts from 1). This array contains the DofIDItem values, that identify the physical meaning of DOFs in the group. The values and their physical meaning is defined by DofIDItem enum type (see src/oofemlib/dofiditem.h for reference).
- rtolv determines relative convergence norm (both for displacement
iterative change vector and for residual unbalanced force vector). Optionally, the rtolf and rtold parameters can be used to define
independent relative convergence crteria for unbalanced forces and displacement
iterative change. If the default convergence criteria is used,
the parameters rtolv,rtolf, and rtold are real values. If the convergence criteria DOF groups are used (see bellow the description of nccdg parameter) then they should be specified as real valued arrays of nccdg size, and individual values define relative convergence criteria for each individual dof group.
- initialGuess is an optional parameter with default vaue 0, for which the first iteration of each step starts from the previously converged state and applies the prescribed displacement increments. This can lead to very high strains in elements connected to the nodes with changing prescribed displacements and the state can be far from equilibrium, which may results into slow convergence and strain localization near the boundary. If initialGuess is set to 1, the contribution of the prescribed displacement increments to the internal nodal forces is linearized and moved to the right-hand side, which often results into an initial solution closer to equilibrium. For instance, if the step is actually elastic, equilibrium is fully restored after the second iteration, while the default method may require more iterations.
The indirect solver corresponds to controlmode=0 and the CALM
solver is used. The value of reference load vector is determined by
refloadmode parameter mentioned above at the first step of
each metastep. However, the user must ensure that the same value of
reference load vector could be obtained for all solution steps of
particular metastep (this is necessary for restart and adaptivity to work).
The corresponding meta step solver parameters (solverParams) are:
|
Psi #(rn) |
|
MaxIter #(in) |
|
stepLength #(rn) |
|
[minStepLength #(in)] |
|
[initialStepLength #(rn)] |
|
[forcedInitialStepLength #(rn)] |
|
[reqIterations #(in)] |
|
[maxrestarts #(in)] |
|
[minIter #(in)] |
|
[manrmsteps #(in)] |
|
[hpcmode #(in)] [hpc #(ia)] [hpcw #(ra)] |
|
[linesearch #(in)] [lsearchamp #(rn)] |
|
[lsearchmaxeta #(rn)] [lsearchtol #(rn)] |
|
[nccdg #(in) ccdg1 #(ia) ... ccdgN #(ia)] |
|
rtolv #(rn) [rtolf #(rn)] [rtold #(rn)] |
|
[pert #(ia)] [pertw #(ra)] |
|
[rpa #(rn)] [rseed #(in)] |
where
- Psi - CALM control parameter. For = 0
displacement control is applied. For nonzero values the load control
applies together with displacement control (ALM). For large
load control apply.
- MaxIter - determines the maximum number of iteration allowed to
reach equilibrium state. If this limit is reached, restart follows
with smaller step length.
- stepLength - determines the maximum value of arc-length (step length).
- minStepLength - minimum step length. The step length will never be
smaller. If convergence problems are encountered and step length cannot
be decreased, computation terminates.
- initialsteplength - determines the initial step length (the arc-length). If not provided, the maximum step length (determined by stepLength parameter) will be used as the value of initial step length.
- forcedInitialStepLength - When simulation is restarted, the last predicted step length is used. Use forcedInitialStepLength parameter to override the value of step length. This parameter will also override the value of initial step length set by initialsteplength parameter.
- reqIterations - approximate number of iterations controlled by changing the step length.
- maxrestarts - maximum number of restarting computation when convergence not reached up to MaxIter.
- minIter - minimum number of iterations which always proceed during the iterative solution. reqIterations are set to be the same, MaxIter are increased if lower.
- manrmsteps - Forces the use of accelerated
Newton Raphson method, where stiffness is updated after
manrmsteps steps. By default, the modified NR
method is used (no stiffness update).
- hpcmode Parameter determining the alm mode.
Possible values are: 0 - (default) full ALM with quadratic constrain and
all dofs, 1 - (default, if hpc parameter used) full ALM with quadratic constrain, taking into account
only selected dofs (see hpc param), 2 - linearized constrain
in displacements only, taking into account only selected dofs with
given weight (see hpc and hpcw parameters).
- hpc - Special parameter for Hyper-plane control, when only
selected DOFs are taken account in ALM step length
condition. Important mainly for material nonlinear problems with
strong localization. This array selects the degrees of freedom,
which displacements are controlled. Let the number of these DOFs be N.
The format of ddm array is 2*N dofman1 idof1
dofman2 idof2 ... dofmanN idofN, where the dofmani is the number of i-th dof manager and idofi is the
corresponding DOF number.
- hpcw Array of DOF weights in linear constraint. The
dof ordering is determined by hpc parameter, the size of the array should
be N.
- linesearch nonzero value turns on line search
algorithm. The lsearchtol defines tolerance, amplification
factor can be specified using lsearchamp parameter (should
be in interval ), and parameter lsearchmaxeta
defines maximum limit on the length of iterative step (allowed range
is ).
- nccdg allows to define one or more DOF groups, that are used for evaluation of convergence criteria. Each DOF is checked if it is a member of particular group and in this case its contribution is taken into account when evaluating the convergence criteria for that group. By default, if nccdg is not specified, one group containing all DOF types is created. The value of nccdg parameter defines the number of DOF type groups. For each group, the corresponding DOF types need to be specified using ccdg# parameter, where '#' should be replaced by group number (numbering starts from 1). This array contains the DofIDItem values, that identify the physical meaning of DOFs in the group. The values and their physical meaning is defined by DofIDItem enum type (see src/oofemlib/dofiditem.h for reference).
- rtolv determines relative convergence norm (both for displacement
iterative change vector and for residual unbalanced force vector). Optionally, the rtolf and rtold parameters can be used to define
independent relative convergence crteria for unbalanced forces and displacement
iterative change. If the default convergence criteria is used,
the parameters rtolv,rtolf, and rtold are real values. If the convergence criteria DOF groups are used (see bellow the description of nccdg parameter) then they should be specified as real valued arrays of nccdg size, and individual values define relative convergence criteria for each individual dof group.
- pert Array specifying DOFs that should be perturbed after the first iteration of each step.
Let the number of these DOFs be M.
The format of ddm array is 2*M dofman1 idof1
dofman2 idof2 ... dofmanN idofN, where the dofmani is the number of i-th dof manager and idofi is the
corresponding DOF number.
- pertw Array of DOF perturbations. The
dof ordering is determined by pert parameter, the size of the array should
be M.
- rpa Amplitude of random perturbation that is applied to each DOF.
- rseed Seed for the random generator that generates random perturbations.
Borek Patzak
2018-01-02