Solver

Linear

Thunderbolt.SchurComplementLinearSolverType
SchurComplementLinearSolver(inner_alg::AbstractLinearAlgorithm)

A solver for block systems of the form

\[\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & 0 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \end{bmatrix}\]

with small zero block of size $N_2 \times N_2$ and invertible $A_{11}$ with size $N_1 \times N_1$. The inner linear solver is responsible to solve for $N_2$ systems of the form $A_{11} z_i = c_i$.

source

Nonlinear

Time

Missing docstring.

Missing docstring for BackwardEulerSolver. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ForwardEulerSolver. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AdaptiveForwardEulerSubstepper. Check Documenter's build log for details.

Thunderbolt.LoadDrivenSolverType
LoadDrivenSolver{IS, T, PFUN}

Solve the nonlinear problem F(u,t)=0 with given time increments Δton some interval [t_begin, t_end] where t is some pseudo-time parameter.

source

Operator Splitting Module

Missing docstring.

Missing docstring for Thunderbolt.OS.GenericSplitFunction. Check Documenter's build log for details.

Operator Splitting Adaptivity

Thunderbolt.ReactionTangentControllerType
ReactionTangentController{LTG <: OS.LieTrotterGodunov, T <: Real} <: OS.AbstractOperatorSplittingAlgorithm

A timestep length controller for LieTrotterGodunov [13] operator splitting using the reaction tangent as proposed in [22] The next timestep length is calculated as

\[\sigma\left(R_{\max }\right):=\left(1.0-\frac{1}{1+\exp \left(\left(\sigma_{\mathrm{c}}-R_{\max }\right) \cdot \sigma_{\mathrm{s}}\right)}\right) \cdot\left(\Delta t_{\max }-\Delta t_{\min }\right)+\Delta t_{\min }\]

Fields

  • ltg::LTG: LieTrotterGodunov algorithm
  • σ_s::T: steepness
  • σ_c::T: offset in R axis
  • Δt_bounds::NTuple{2,T}: lower and upper timestep length bounds
source