SecantSolver

buildconstruction:Undocumented Class

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

  • 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

Required 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.

Advanced Parameters

Input Files