desc.equilibrium.Equilibrium.solve
- Equilibrium.solve(objective='force', constraints=None, optimizer='lsq-exact', ftol=None, xtol=None, gtol=None, maxiter=None, x_scale='auto', options=None, verbose=1, copy=False)Source
Solve to find the equilibrium configuration.
- Parameters:
objective ({"force", "forces", "energy"}) – Objective function to solve. Default = force balance on unified grid. ObjectiveFunction can also be passed.
constraints (Tuple) – set of constraints to enforce. Default = fixed boundary/profiles
optimizer (str or Optimizer (optional)) – optimizer to use
ftol (float) – stopping tolerances. None will use defaults for given optimizer.
xtol (float) – stopping tolerances. None will use defaults for given optimizer.
gtol (float) – stopping tolerances. None will use defaults for given optimizer.
maxiter (int) – Maximum number of solver steps.
x_scale (array, list[dict |
'ess'],'ess'or'auto', optional) – Characteristic scale of each variable. Settingx_scaleis equivalent to reformulating the problem in scaled variablesxs = x / x_scale. An alternative view is that the size of a trust region along jth dimension is proportional tox_scale[j]. Improved convergence may be achieved by settingx_scalesuch that a step of a given size along any of the scaled variables has a similar effect on the cost function. Default is'auto', which iteratively updates the scale using the inverse norms of the columns of the Jacobian or Hessian matrix. If set to'ess', the scale is set using Exponential Spectral Scaling, this scaling is set with two parameters,ess_alphaandess_orderwhich are passed throughoptions.ess_alphais the decay rate of the scaling, andess_orderis the norm order for multi-index modes, which can be1,2, ornp.inf. If not provided inoptions, the defaults are:ess_alpha=1.2,ess_order=np.inf'andess_min_value=1e-7(minimum allowed scale value). If an array, should be the same size as sum(thing.dim_x for thing in things). If a list, the list should have 1 element for each thing, and each element should either be'ess'to use exponential spectral scaling for that thing, or a dict with the same keys and dimensions as thing.params_dict to specify scales manually.options (dict) – Dictionary of additional options to pass to optimizer.
verbose (int) – Level of output.
copy (bool) – Whether to return the current equilibrium or a copy (leaving the original unchanged).
- Returns:
eq (Equilibrium) – Either this equilibrium or a copy, depending on “copy” argument.
result (OptimizeResult) – The optimization result represented as a
OptimizeResultobject. Important attributes are:xthe solution array,successa Boolean flag indicating if the optimizer exited successfully andmessagewhich describes the cause of the termination. See OptimizeResult for a description of other attributes. Additionally, stores the before and after values of the objectives and constraints in theObjective valueskey.