- 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
BroydenSolver
The BroydenSolver 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
Quasi-Newton nonlinear solver that updates an approximate Jacobian using Broyden's method to accelerate fixed-point iterations on the nonlinear reciprocal term.
Example Input File Syntax
[TensorSolver<<<{"href": "../../syntax/TensorSolver/index.html"}>>>]
type = BroydenSolver
substeps = 10
max_iterations = 1000
damping = 0.5
relative_tolerance = 1e-6
absolute_tolerance = 1e-5
buffer = 'c n1 n2 n3 n4'
dt_epsilon = 1e-5
reciprocal_buffer = 'c_bar n1_bar n2_bar n3_bar n4_bar'
linear_reciprocal = 'MkappaL2bar kappaLbar kappaLbar kappaLbar kappaLbar'
nonlinear_reciprocal = 'Mbar_mu_c_bar mu_n1_bar mu_n2_bar mu_n3_bar mu_n4_bar'
# verbose = true
[](benchmarks/02_oswald_ripening/2a_broyden.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.
- initial_jacobian_guess1Factor for the initial inverse jacobian guess.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Factor for the initial inverse jacobian guess.
- max_iterations5Maximum number of secant solver iteration.
Default:5
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.
- substeps1Solver substeps per time step.
Default:1
C++ Type:unsigned int
Controllable:No
Description: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.