- bufferThe buffer this solver is writing to
C++ Type:std::vector<std::string>
Controllable:No
Description:The buffer this solver is writing to
- linear_reciprocalBuffer with the reciprocal of the linear prefactor (e.g. kappa*k^2). Either one buffer per nonlinear_reciprocal, or no buffer names, or `0` to skip linear reciprocal buffers for a given variable.
C++ Type:std::vector<std::string>
Controllable:No
Description:Buffer with the reciprocal of the linear prefactor (e.g. kappa*k^2). Either one buffer per nonlinear_reciprocal, or no buffer names, or `0` to skip linear reciprocal buffers for a given variable.
- nonlinear_reciprocalBuffer with the reciprocal of the non-linear contribution
C++ Type:std::vector<std::string>
Controllable:No
Description:Buffer with the reciprocal of the non-linear contribution
- reciprocal_bufferBuffer with the reciprocal of the integrated buffer
C++ Type:std::vector<std::string>
Controllable:No
Description:Buffer with the reciprocal of the integrated buffer
SecantSolver
The SecantSolver has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.
Implicit secant solver time integration.
Overview
Nonlinear solver using a secant update of the reciprocal nonlinear operator to accelerate fixed-point iterations. Useful when a Jacobian is expensive or unavailable.
Example Input File Syntax
[TensorSolver<<<{"href": "../../syntax/TensorSolver/index.html"}>>>]
type = SecantSolver
buffer = psi
substeps = 3
reciprocal_buffer = psibar
linear_reciprocal = linear
nonlinear_reciprocal = psi3bar
[](test/tests/tensor_compute/rotating_grain_secant.i)Input Parameters
- absolute_tolerance1e-09Convergence tolerance.
Default:1e-09
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Convergence tolerance.
- damping1Damping factor for the update step.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Damping factor for the update step.
- dt_epsilon0.0001Semi-implicit stable timestep to bootstrap secant solve.
Default:0.0001
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Semi-implicit stable timestep to bootstrap secant solve.
- forward_bufferThese buffers are updated with the corresponding buffers from forward_buffer_old. No integration is performed. Buffer forwarding is used only to resolve cyclic dependencies.
C++ Type:std::vector<std::string>
Controllable:No
Description:These buffers are updated with the corresponding buffers from forward_buffer_old. No integration is performed. Buffer forwarding is used only to resolve cyclic dependencies.
- forward_buffer_newNew values to update `forward_buffer` with.
C++ Type:std::vector<std::string>
Controllable:No
Description:New values to update `forward_buffer` with.
- max_iterations30Maximum number of secant solver iteration.
Default:30
C++ Type:unsigned int
Controllable:No
Description:Maximum number of secant solver iteration.
- relative_tolerance1e-09Convergence tolerance.
Default:1e-09
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Convergence tolerance.
- root_computePrimary compute object that updates the buffers. This is usually a ComputeGroup object. A ComputeGroup encompassing all computes will be generated automatically if the user does not provide this parameter.
C++ Type:std::string
Controllable:No
Description:Primary compute object that updates the buffers. This is usually a ComputeGroup object. A ComputeGroup encompassing all computes will be generated automatically if the user does not provide this parameter.
- substeps1secant solver substeps per time step.
Default:1
C++ Type:unsigned int
Controllable:No
Description:secant solver substeps per time step.
- verboseFalseShow convergence history.
Default:False
C++ Type:bool
Controllable:No
Description:Show convergence history.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.