Solving problems

CommonSolve.solveFunction
solve(prob::CauchyProblem[, alg::BoltzmannODE; verbose]) -> Solution
solve(prob::SorptivityCauchyProblem[, alg::BoltzmannODE; verbose]) -> Solution

Solve the problem prob.

Arguments

  • prob: problem to solve.
  • alg=BoltzmannODE(): algorithm to use.

Keyword arguments

  • verbose=true: whether warnings are emitted if solving is unsuccessful.

References

GERLERO, G. S.; BERLI, C. L. A.; KLER, P. A. Open-source high-performance software packages for direct and inverse solving of horizontal capillary flow. Capillarity, 2023, vol. 6, no. 2, p. 31-40.

See also: Solution, BoltzmannODE

solve(prob::DirichletProblem[, alg::BoltzmannODE; abstol, maxiters, d_dob_hint, verbose]) -> Solution

Solve the problem prob.

Arguments

  • prob: problem to solve.
  • alg=BoltzmannODE(): algorithm to use.

Keyword arguments

  • abstol=1e-3: absolute tolerance for the initial condition.
  • maxiters=100: maximum number of iterations.
  • verbose=true: whether warnings are emitted if solving is unsuccessful.

References

GERLERO, G. S.; BERLI, C. L. A.; KLER, P. A. Open-source high-performance software packages for direct and inverse solving of horizontal capillary flow. Capillarity, 2023, vol. 6, no. 2, p. 31-40.

See also: Solution, BoltzmannODE

solve(prob::FlowrateProblem[, alg::BoltzmannODE; abstol, maxiters, b_hint, verbose]) -> Solution
solve(prob::SorptivityProblem[, alg::BoltzmannODE; abstol, maxiters, b_hint, verbose]) -> Solution

Solve the problem prob.

Arguments

  • prob: problem to solve.
  • alg=BoltzmannODE(): algorithm to use.

Keyword arguments

  • abstol=1e-3: absolute tolerance for the initial condition.
  • maxiters=100: maximum number of iterations.
  • verbose=true: whether warnings are emitted if solving is unsuccessful.

References

GERLERO, G. S.; BERLI, C. L. A.; KLER, P. A. Open-source high-performance software packages for direct and inverse solving of horizontal capillary flow. Capillarity, 2023, vol. 6, no. 2, p. 31-40.

See also: Solution, BoltzmannODE, sorptivity

solve(::DirichletProblem{<:DiffusionEquation{1}}, ::MathiasAndSander[; maxiters]) -> Solution

Solve a Dirichlet problem using the pseudospectral method of Mathias and Sander (2021).

Keyword arguments

  • maxiters=100: maximum number of iterations.

References

MATHIAS, S. A.; SANDER, G. C. Pseudospectral methods provide fast and accurate solutions for the horizontal infiltration equation. Journal of Hydrology, 2021, vol. 598, p. 126407.

See also: MathiasAndSander, Solution

solve(prob::AbstractFiniteProblem{<:DiffusionEquation{1}}[, alg::FiniteDifference; abstol]) -> FiniteSolution

Solve the finite problem prob with a finite-difference scheme.

Uses backward Euler time discretization and a second-order central difference scheme for the fluxes.

Arguments

  • prob: problem to solve.
  • alg=FiniteDifference(pre=BoltzmannODE()): algorithm to use.

Keyword arguments

  • abstol=1e-3: nonlinear solver tolerance.
  • verbose=true: whether warnings are emitted if solving is unsuccessful.

solve(prob::DirichletProblem{<:DiffusionEquation{1}}, alg::FiniteDifference[; abstol]) -> Solution

Solve the DirichletProblem prob with a finite-difference scheme.

Arguments

  • prob: problem to solve.
  • alg: algorithm to use.

Keyword arguments

  • abstol=1e-3: nonlinear solver tolerance.
  • verbose=true: whether warnings are emitted if solving is unsuccessful.
Fronts.BoltzmannODEType
BoltzmannODE([; b_hint, d_dob_hint])

Default algorithm for solving semi-infinite problems.

Uses the Boltzmann transformation and (possibly repeated) ODE integration.

Keyword arguments

  • b_hint: optional hint for the boundary value.
  • d_dob_hint: optional hint for the boundary o-derivative.

References

GERLERO, G. S.; BERLI, C. L. A.; KLER, P. A. Open-source high-performance software packages for direct and inverse solving of horizontal capillary flow. Capillarity, 2023, vol. 6, no. 2, p. 31-40.

Fronts.FiniteDifferenceType
FiniteDifference([N; pre])

Finite difference–based algorithm.

Arguments

  • N=500: number of points in the spatial grid.

Keyword arguments

  • pre=nothing: set to BoltzmannODE() to speed up the solution of compatible AbstractFiniteProblems.

See also: solve, AbstractFiniteProblem, BoltzmannODE

Fronts.MathiasAndSanderType
MathiasAndSander([N])

Pseudospectral method of Mathias and Sander (2021).

Arguments

  • N=100: number of Chebyshev nodes.

References

MATHIAS, S. A.; SANDER, G. C. Pseudospectral methods provide fast and accurate solutions for the horizontal infiltration equation. Journal of Hydrology, 2021, vol. 598, p. 126407.

See also: solve