SiCCrackingIterationAdaptiveDT

Adjust the timestep based on the number of iterations it takes to converge. Reject timestep for excessive cracking in CMC SiC

Description

This TimeStepper is designed to work in conjunction with DamagedSiCElasticityTensor to reject and cut the current timestep if the change in the Young's modulus between time steps is too large. It could be adapted to work with other material properties where convergence may depend on some potentially rapidly changing variable.

Input Parameters

  • change_limitMaximum material property fractional change limit

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum material property fractional change limit

  • dtThe default timestep size between solves

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The default timestep size between solves

  • trial_stressThe Postprocessor that will give the max vonmises stress in the cladding

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The Postprocessor that will give the max vonmises stress in the cladding

Required Parameters

  • cutback_factor0.5Factor to apply to timestep if difficult convergence occurs (if 'optimal_iterations' is specified). For failed solves, use cutback_factor_at_failure

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:Yes

    Description:Factor to apply to timestep if difficult convergence occurs (if 'optimal_iterations' is specified). For failed solves, use cutback_factor_at_failure

  • cutback_factor_at_failure0.5Factor to apply to timestep if a time step fails to converge.

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Factor to apply to timestep if a time step fails to converge.

  • force_step_every_function_pointFalseForces the timestepper to take a step that is consistent with points defined in the function

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the timestepper to take a step that is consistent with points defined in the function

  • growth_factor2Factor to apply to timestep if easy convergence (if 'optimal_iterations' is specified) or if recovering from failed solve

    Default:2

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:Yes

    Description:Factor to apply to timestep if easy convergence (if 'optimal_iterations' is specified) or if recovering from failed solve

  • iteration_windowAttempt to grow/shrink timestep if the iteration count is below/above 'optimal_iterations plus/minus iteration_window' (default = optimal_iterations/5).

    C++ Type:int

    Controllable:No

    Description:Attempt to grow/shrink timestep if the iteration count is below/above 'optimal_iterations plus/minus iteration_window' (default = optimal_iterations/5).

  • linear_iteration_ratioThe ratio of linear to nonlinear iterations to determine target linear iterations and window for adaptive timestepping (default = 25)

    C++ Type:unsigned int

    Controllable:No

    Description:The ratio of linear to nonlinear iterations to determine target linear iterations and window for adaptive timestepping (default = 25)

  • max_function_changeThe absolute value of the maximum change in timestep_limiting_function over a timestep

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute value of the maximum change in timestep_limiting_function over a timestep

  • optimal_iterationsThe target number of nonlinear iterations for adaptive timestepping

    C++ Type:int

    Controllable:No

    Description:The target number of nonlinear iterations for adaptive timestepping

  • post_function_sync_dtTimestep to apply after time sync with function point. To be used in conjunction with 'force_step_every_function_point'.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Timestep to apply after time sync with function point. To be used in conjunction with 'force_step_every_function_point'.

  • reject_large_stepFalseIf 'true', time steps that are too large compared to the ideal time step will be rejected and repeated

    Default:False

    C++ Type:bool

    Controllable:No

    Description:If 'true', time steps that are too large compared to the ideal time step will be rejected and repeated

  • reject_large_step_threshold0.1Ratio between the the ideal time step size and the current time step size below which a time step will be rejected if 'reject_large_step' is 'true'

    Default:0.1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Ratio between the the ideal time step size and the current time step size below which a time step will be rejected if 'reject_large_step' is 'true'

  • reset_dtFalseUse when restarting a calculation to force a change in dt.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Use when restarting a calculation to force a change in dt.

  • time_dtThe values of dt

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of dt

  • time_tThe values of t

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of t

  • timestep_limiting_functionA list of 'PiecewiseBase' type functions used to control the timestep by limiting the change in the function over a timestep

    C++ Type:std::vector<FunctionName>

    Unit:(no unit assumed)

    Controllable:No

    Description:A list of 'PiecewiseBase' type functions used to control the timestep by limiting the change in the function over a timestep

  • timestep_limiting_postprocessorIf specified, a list of postprocessor values used as an upper limit for the current time step length

    C++ Type:std::vector<PostprocessorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:If specified, a list of postprocessor values used as an upper limit for the current time step length

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.

  • enableTruewhether or not to enable the time stepper

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:whether or not to enable the time stepper

Advanced Parameters