- dt1The timestep size between solves
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The timestep size between solves
- end_time1e+30The end time of the simulation
Default:1e+30
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The end time of the simulation
- error_on_dtminTrueThrow error when timestep is less than dtmin instead of just aborting solve.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Throw error when timestep is less than dtmin instead of just aborting solve.
- normalize_solution_diff_norm_by_dtTrueWhether to divide the solution difference norm by dt. If taking 'small' time steps you probably want this to be true. If taking very 'large' timesteps in an attempt to *reach* a steady-state, you probably want this parameter to be false.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to divide the solution difference norm by dt. If taking 'small' time steps you probably want this to be true. If taking very 'large' timesteps in an attempt to *reach* a steady-state, you probably want this parameter to be false.
- num_steps4294967295The number of timesteps in a transient run
Default:4294967295
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of timesteps in a transient run
- reset_dtFalseUse when restarting a calculation to force a change in dt.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Use when restarting a calculation to force a change in dt.
- schemeimplicit-eulerTime integration scheme used.
Default:implicit-euler
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Time integration scheme used.
- verboseFalseSet to true to print additional information
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set to true to print additional information
Transient
Executioner for time varying simulations.
Normal Usage
The Transient
Executioner is the primary workhorse Executioner in MOOSE. Most simulations will use it.
At its most basic the Transient
Executioner allows a simulation to step through multiple steps in _time_... doing one nonlinear solve per timestep. Most of the time this type of execution will utilize one or more TimeDerivative
Kernels on the variables to solve for their time evolution.
Primary Parameters
The most important parameters for Transient
(beyond what Steady
already provides) are:
"dt": The initial timestep size
"num_steps": Number of steps to do
"end_time": Finish time for the simulation
"scheme": The TimeIntegrator to use (see below) - defaults to Implicit/Backward Euler.
See down below for the full list of parameters for this class.
TimeIntegrators
It's important to note that transient simulations generally use a TimeIntegrator. As mentioned above, there is a scheme
parameter that is shortcut syntax for selection of that TimeIntegrator. However, there is also a whole TimeIntegrator system for creating your own or specifying detailed parameters for time integration.
TimeSteppers
Similarly, the choice of how to move through time (the choice of timestep size) is important as well. The default TimeStepper is ConstantDT
but many other choices can be made using the TimeStepper system.
Load Steps
Transient
can also be used for simulations that don't necessarily need _time_. In this context a "transient" calculation can simply be thought of as a series of nonlinear solves. The time parameter will move forward - but what you do with it, or what it means is up to you.
One good example of this is doing "load steps" for a solid mechanics calculation. If the only thing that is desired is the final, steady state, solution, but getting to it is extremely difficult, then you might employ "load steps" to slowly ramp up a boundary condition so you can more easily solve from the initial state (the "initial condition") to the final configuration. In this case you would use "time" as a parameter to control how much of the force is applied (for instance, by using FunctionDirichletBC
).
In this case you don't use any TimeDerivative
Kernels. The "transient" behavior comes from changing a condition based on "time". What that "time" means is up to you to identify (generally, I like to just step through time = 1,2,3,4..
and define my functions so that at time = end_steps
the full load is applied.
Quasi-Transient
Similarly to Load Steps, you can use Transient
to do "Quasi-Transient" calculations. This is where some variables are evolving with time derivatives, while others are solved to steady state each step.
A classic example of this is doing coupled thermo-mechanics. It's very normal for the heat flow to move much more slowly than the solid mechanics. Therefore, classically, it is normal to have a time derivative for your heat conduction equation but none for the solid mechanics so that at each timestep the solid-mechanics is solved to a full steady state based on the current configuration of heat.
This idea works perfectly in MOOSE with Transient
: just simply only apply TimeDerivative
Kernels to the equations you want and leave them off for the others.
Solving To Steady State
Another use-case is to use Transient
to solve to a steady state. In this case there are a few built-in parameters to help detect steady state and stop the solve when it's reached. You can see them down below in the "Steady State Detection Parameters" section.
It is important to know that you must turn _on_ steady state detection using steady_state_detection = true
before the other two parameters will do anything. The parameter steady_state_tolerance
corresponds to in the following steady-state convergence criteria:
Input Parameters
- abort_on_solve_failFalseabort if solve not converged rather than cut timestep
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:abort if solve not converged rather than cut timestep
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- dtmax1e+30The maximum timestep size in an adaptive run
Default:1e+30
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The maximum timestep size in an adaptive run
- dtmin1e-12The minimum timestep size in an adaptive run
Default:1e-12
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The minimum timestep size in an adaptive run
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set the enabled status of the MooseObject.
- n_startup_steps0The number of timesteps during startup
Default:0
C++ Type:int
Unit:(no unit assumed)
Controllable:No
Description:The number of timesteps during startup
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- skip_exception_checkFalseSpecifies whether or not to skip exception check
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Specifies whether or not to skip exception check
- start_time0The start time of the simulation
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The start time of the simulation
- timestep_tolerance1e-12the tolerance setting for final timestep size and sync times
Default:1e-12
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:the tolerance setting for final timestep size and sync times
- use_multiapp_dtFalseIf true then the dt for the simulation will be chosen by the MultiApps. If false (the default) then the minimum over the master dt and the MultiApps is used
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:If true then the dt for the simulation will be chosen by the MultiApps. If false (the default) then the minimum over the master dt and the MultiApps is used
Advanced Parameters
- accept_on_max_fixed_point_iterationFalseTrue to treat reaching the maximum number of fixed point iterations as converged.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:True to treat reaching the maximum number of fixed point iterations as converged.
- auto_advanceFalseWhether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only.
- custom_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual.
Default:1e-50
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual.
- custom_ppPostprocessor for custom fixed point convergence check.
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:Postprocessor for custom fixed point convergence check.
- custom_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual.
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual.
- direct_pp_valueFalseTrue to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:True to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations.
- disable_fixed_point_residual_norm_checkFalseDisable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Disable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms.
- fixed_point_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.
Default:1e-50
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.
- fixed_point_algorithmpicardThe fixed point algorithm to converge the sequence of problems.
Default:picard
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The fixed point algorithm to converge the sequence of problems.
- fixed_point_force_normsFalseForce the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Force the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false.
- fixed_point_max_its1Specifies the maximum number of fixed point iterations.
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Specifies the maximum number of fixed point iterations.
- fixed_point_min_its1Specifies the minimum number of fixed point iterations.
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Specifies the minimum number of fixed point iterations.
- fixed_point_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.
- relaxation_factor1Fraction of newly computed value to keep.Set between 0 and 2.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Fraction of newly computed value to keep.Set between 0 and 2.
- transformed_postprocessorsList of main app postprocessors to transform during fixed point iterations
C++ Type:std::vector<PostprocessorName>
Unit:(no unit assumed)
Controllable:No
Description:List of main app postprocessors to transform during fixed point iterations
- transformed_variablesList of main app variables to transform during fixed point iterations
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:List of main app variables to transform during fixed point iterations
Fixed Point Iterations Parameters
- automatic_scalingFalseWhether to use automatic scaling for the variables.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to use automatic scaling for the variables.
- compute_scaling_once1 Whether the scaling factors should only be computed once at the beginning of the simulation through an extra Jacobian evaluation. If this is set to false, then the scaling factors will be computed during an extra Jacobian evaluation at the beginning of every time step. Vector entries correspond to each nonlinear system.
Default:1
C++ Type:std::vector<bool>
Unit:(no unit assumed)
Controllable:No
Description:Whether the scaling factors should only be computed once at the beginning of the simulation through an extra Jacobian evaluation. If this is set to false, then the scaling factors will be computed during an extra Jacobian evaluation at the beginning of every time step. Vector entries correspond to each nonlinear system.
- ignore_variables_for_autoscalingList of variables that do not participate in autoscaling. Vector entries correspond to each nonlinear system.
C++ Type:std::vector<std::vector<std::string>>
Unit:(no unit assumed)
Controllable:No
Description:List of variables that do not participate in autoscaling. Vector entries correspond to each nonlinear system.
- off_diagonals_in_auto_scaling0 Whether to consider off-diagonals when determining automatic scaling factors. Vector entries correspond to each nonlinear system.
Default:0
C++ Type:std::vector<bool>
Unit:(no unit assumed)
Controllable:No
Description:Whether to consider off-diagonals when determining automatic scaling factors. Vector entries correspond to each nonlinear system.
- resid_vs_jac_scaling_param0 A parameter that indicates the weighting of the residual vs the Jacobian in determining variable scaling parameters. A value of 1 indicates pure residual-based scaling. A value of 0 indicates pure Jacobian-based scaling. Vector entries correspond to each nonlinear system.
Default:0
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:A parameter that indicates the weighting of the residual vs the Jacobian in determining variable scaling parameters. A value of 1 indicates pure residual-based scaling. A value of 0 indicates pure Jacobian-based scaling. Vector entries correspond to each nonlinear system.
- scaling_group_variablesName of variables that are grouped together for determining scale factors. (Multiple groups can be provided, separated by semicolon). Vector entries correspond to each nonlinear system.
C++ Type:std::vector<std::vector<std::vector<std::string, std::allocator<std::string>>>>
Unit:(no unit assumed)
Controllable:No
Description:Name of variables that are grouped together for determining scale factors. (Multiple groups can be provided, separated by semicolon). Vector entries correspond to each nonlinear system.
Solver Variable Scaling Parameters
- check_auxFalseWhether to check the auxiliary system for convergence to steady-state. If false, then the nonlinear system is used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to check the auxiliary system for convergence to steady-state. If false, then the nonlinear system is used.
- steady_state_detectionFalseWhether or not to check for steady state conditions
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not to check for steady state conditions
- steady_state_start_time0Minimum amount of time to run before checking for steady state conditions.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Minimum amount of time to run before checking for steady state conditions.
- steady_state_tolerance1e-08Whenever the relative residual changes by less than this the solution will be considered to be at steady state.
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Whenever the relative residual changes by less than this the solution will be considered to be at steady state.
Steady State Detection Parameters
- contact_line_search_allowed_lambda_cuts2The number of times lambda is allowed to be cut in half in the contact line search. We recommend this number be roughly bounded by 0 <= allowed_lambda_cuts <= 3
Default:2
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of times lambda is allowed to be cut in half in the contact line search. We recommend this number be roughly bounded by 0 <= allowed_lambda_cuts <= 3
- contact_line_search_ltolThe linear relative tolerance to be used while the contact state is changing between non-linear iterations. We recommend that this tolerance be looser than the standard linear tolerance
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The linear relative tolerance to be used while the contact state is changing between non-linear iterations. We recommend that this tolerance be looser than the standard linear tolerance
- line_searchdefaultSpecifies the line search type (Note: none = basic)
Default:default
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the line search type (Note: none = basic)
- line_search_packagepetscThe solver package to use to conduct the line-search
Default:petsc
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The solver package to use to conduct the line-search
Solver Line Search Parameters
- l_abs_tol1e-50Linear Absolute Tolerance
Default:1e-50
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Linear Absolute Tolerance
- l_max_its10000Max Linear Iterations
Default:10000
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Max Linear Iterations
- l_tol1e-05Linear Relative Tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Linear Relative Tolerance
- reuse_preconditionerFalseIf true reuse the previously calculated preconditioner for the linearized system across multiple solves spanning nonlinear iterations and time steps. The preconditioner resets as controlled by reuse_preconditioner_max_linear_its
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:If true reuse the previously calculated preconditioner for the linearized system across multiple solves spanning nonlinear iterations and time steps. The preconditioner resets as controlled by reuse_preconditioner_max_linear_its
- reuse_preconditioner_max_linear_its25Reuse the previously calculated preconditioner for the linear system until the number of linear iterations exceeds this number
Default:25
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Reuse the previously calculated preconditioner for the linear system until the number of linear iterations exceeds this number
Linear Solver Parameters
- max_xfem_update4294967295Maximum number of times to update XFEM crack topology in a step due to evolving cracks
Default:4294967295
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Maximum number of times to update XFEM crack topology in a step due to evolving cracks
- update_xfem_at_timestep_beginFalseShould XFEM update the mesh at the beginning of the timestep
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Should XFEM update the mesh at the beginning of the timestep
Xfem Fixed Point Iterations Parameters
- mffd_typewpSpecifies the finite differencing type for Jacobian-free solve types. Note that the default is wp (for Walker and Pernice).
Default:wp
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the finite differencing type for Jacobian-free solve types. Note that the default is wp (for Walker and Pernice).
- petsc_optionsSingleton PETSc options
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Singleton PETSc options
- petsc_options_inameNames of PETSc name/value pairs
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Names of PETSc name/value pairs
- petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname"
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname"
Petsc Parameters
- multi_system_fixed_pointFalseWhether to perform fixed point (Picard) iterations between the nonlinear systems.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to perform fixed point (Picard) iterations between the nonlinear systems.
- multi_system_fixed_point_convergenceConvergence object to determine the convergence of the multi-system fixed point iteration. If unspecified, defaults to checking that every system is converged (based on their own convergence criterion)
C++ Type:ConvergenceName
Unit:(no unit assumed)
Controllable:No
Description:Convergence object to determine the convergence of the multi-system fixed point iteration. If unspecified, defaults to checking that every system is converged (based on their own convergence criterion)
- system_namesNames of the solver systems (both linear and nonlinear) that will be solved
C++ Type:std::vector<SolverSystemName>
Unit:(no unit assumed)
Controllable:No
Description:Names of the solver systems (both linear and nonlinear) that will be solved
Multiple Solver System Parameters
- n_max_nonlinear_pingpong100The maximum number of times the nonlinear residual can ping pong before requesting halting the current evaluation and requesting timestep cut for transient simulations
Default:100
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The maximum number of times the nonlinear residual can ping pong before requesting halting the current evaluation and requesting timestep cut for transient simulations
- nl_abs_div_tol1e+50Nonlinear Absolute Divergence Tolerance. A negative value disables this check.
Default:1e+50
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Absolute Divergence Tolerance. A negative value disables this check.
- nl_abs_step_tol0Nonlinear Absolute step Tolerance
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Absolute step Tolerance
- nl_abs_tol1e-50Nonlinear Absolute Tolerance
Default:1e-50
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Absolute Tolerance
- nl_div_tol1e+10Nonlinear Relative Divergence Tolerance. A negative value disables this check.
Default:1e+10
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Relative Divergence Tolerance. A negative value disables this check.
- nl_forced_its0The Number of Forced Nonlinear Iterations
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The Number of Forced Nonlinear Iterations
- nl_max_funcs10000Max Nonlinear solver function evaluations
Default:10000
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Max Nonlinear solver function evaluations
- nl_max_its50Max Nonlinear Iterations
Default:50
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Max Nonlinear Iterations
- nl_rel_step_tol0Nonlinear Relative step Tolerance
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Relative step Tolerance
- nl_rel_tol1e-08Nonlinear Relative Tolerance
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Nonlinear Relative Tolerance
- nonlinear_convergenceName of the Convergence object(s) to use to assess convergence of the nonlinear system(s) solve. If not provided, the default Convergence associated with the Problem will be constructed internally.
C++ Type:std::vector<ConvergenceName>
Unit:(no unit assumed)
Controllable:No
Description:Name of the Convergence object(s) to use to assess convergence of the nonlinear system(s) solve. If not provided, the default Convergence associated with the Problem will be constructed internally.
- num_grids1The number of grids to use for a grid sequencing algorithm. This includes the final grid, so num_grids = 1 indicates just one solve in a time-step
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of grids to use for a grid sequencing algorithm. This includes the final grid, so num_grids = 1 indicates just one solve in a time-step
- residual_and_jacobian_together0 Whether to compute the residual and Jacobian together. Vector entries correspond to each nonlinear system.
Default:0
C++ Type:std::vector<bool>
Unit:(no unit assumed)
Controllable:No
Description:Whether to compute the residual and Jacobian together. Vector entries correspond to each nonlinear system.
- snesmf_reuse_baseTrueSpecifies whether or not to reuse the base vector for matrix-free calculation
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Specifies whether or not to reuse the base vector for matrix-free calculation
- solve_typePJFNK: Preconditioned Jacobian-Free Newton Krylov JFNK: Jacobian-Free Newton Krylov NEWTON: Full Newton Solve FD: Use finite differences to compute Jacobian LINEAR: Solving a linear problem
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:PJFNK: Preconditioned Jacobian-Free Newton Krylov JFNK: Jacobian-Free Newton Krylov NEWTON: Full Newton Solve FD: Use finite differences to compute Jacobian LINEAR: Solving a linear problem
- splittingTop-level splitting defining a hierarchical decomposition into subsystems to help the solver. Outer-vector of this vector-of-vector parameter correspond to each nonlinear system.
C++ Type:std::vector<std::vector<std::string>>
Unit:(no unit assumed)
Controllable:No
Description:Top-level splitting defining a hierarchical decomposition into subsystems to help the solver. Outer-vector of this vector-of-vector parameter correspond to each nonlinear system.
- use_pre_SMO_residualFalseCompute the pre-SMO residual norm and use it in the relative convergence check. The pre-SMO residual is computed at the begining of the time step before solution-modifying objects are executed. Solution-modifying objects include preset BCs, constraints, predictors, etc.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Compute the pre-SMO residual norm and use it in the relative convergence check. The pre-SMO residual is computed at the begining of the time step before solution-modifying objects are executed. Solution-modifying objects include preset BCs, constraints, predictors, etc.
Nonlinear Solver Parameters
Restart Parameters
- time_period_endsThe end times of time periods
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The end times of time periods
- time_period_startsThe start times of time periods
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The start times of time periods
- time_periodsThe names of periods
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:The names of periods