# fronts.Solution¶

class fronts.Solution(sol, ob, oi, D)

Solution to a problem.

Represents a continuously differentiable function $$\theta$$ of r and t such that:

$\dfrac{\partial\theta}{\partial t} = \nabla\cdot\left[D(\theta) \dfrac{\partial \theta}{\partial r}\mathbf{\hat{r}}\right]$

with r bounded at $$r_b(t)=o_b\sqrt t$$ on the left and unbounded to the right. For $$r<r_b(t)$$, the methods will evaluate to NaNs.

Parameters
• sol (callable) – Solution to an ODE obtained with ode. For any float or one-dimensional NumPy array o with values in the closed interval [ob, oi], sol(o)[0] are the values of $$\theta$$ at o, and sol(o)[1] are the values of the derivative $$d\theta/do$$ at o. sol will only be evaluated in this interval.

• ob (float) – Parameter $$o_b$$, which determines the behavior of the boundary in the problem.

• oi (float) – Value of the Boltzmann variable at which the solution can be considered to be equal to the initial condition. Cannot be less than ob.

• D (callable) – Function to evaluate $$D$$ at arbitrary values of the solution. Must be callable with a float or NumPy array as its argument.

__init__(sol, ob, oi, D)

Initialize self. See help(type(self)) for accurate signature.

Methods

 __init__(sol, ob, oi, D) Initialize self. d_do([r, t, o]) Boltzmann-variable derivative of the solution. d_dr(r, t) Spatial derivative of the solution. Spatial derivative of the solution at the boundary. d_dt(r, t) Time derivative of the solution. Time derivative of the solution at the boundary. flux(r, t) Diffusive flux. Boundary flux. rb(t) Boundary location.

Attributes

 b Boundary value of the solution. d_dob Derivative of the solution with respect to the Boltzmann variable at the boundary. i Initial value of the solution. ob Parameter $$o_b$$.
__call__(r=None, t=None, o=None)

Evaluate the solution.

Evaluates and returns $$\theta$$. May be called either with arguments r and t, or with just o.

Parameters
• r (None or float or numpy.ndarray, shape (n,), optional) – Location(s). If this parameter is used, t must also be given.

• t (None or float or numpy.ndarray, optional) – Time(s). Values must be positive.

• o (None or float or numpy.ndarray, shape (n,) optional) – Value(s) of the Boltzmann variable. If this parameter is used, neither r nor t can be given.

Returns

Return type

float or numpy.ndarray, shape (n,)

property b

Boundary value of the solution.

Type

float

d_do(r=None, t=None, o=None)

Boltzmann-variable derivative of the solution.

Evaluates and returns $$d\theta/do$$, the derivative of $$\theta$$ with respect to the Boltzmann variable. May be called either with arguments r and t, or with just o.

Parameters
• r (None or float or numpy.ndarray, shape (n,), optional) – Location(s). If this parameter is used, t must also be given.

• t (None or float or numpy.ndarray, shape (n,), optional) – Time(s). Values must be positive.

• o (None or float or numpy.ndarray, shape (n,), optional) – Value(s) of the Boltzmann variable. If this parameter is used, neither r nor t can be given.

Returns

Return type

float or numpy.ndarray, shape (n,)

property d_dob

Derivative of the solution with respect to the Boltzmann variable at the boundary.

Type

float

d_dr(r, t)

Spatial derivative of the solution.

Evaluates and returns $$\partial\theta/\partial r$$.

Parameters
Returns

Return type

float or numpy.ndarray, shape (n,)

d_drb(t)

Spatial derivative of the solution at the boundary.

Evaluates and returns $$\partial\theta/\partial r|_b$$. Equivalent to self.d_dr(self.rb(t), t).

Parameters

t (float or numpy.ndarray, shape (n,)) – Time(s). Values must be positive.

Returns

Return type

float or numpy.ndarray, shape (n,)

d_dt(r, t)

Time derivative of the solution.

Evaluates and returns $$\partial\theta/\partial t$$.

Parameters
Returns

Return type

float or numpy.ndarray, shape (n,)

d_dtb(t)

Time derivative of the solution at the boundary.

Evaluates and returns $$\partial\theta/\partial t|_b$$. Equivalent to self.d_dt(self.rb(t), t).

Parameters

t (float or numpy.ndarray, shape (n,)) – Time(s). Values must be positive.

Returns

Return type

float or numpy.ndarray, shape (n,)

flux(r, t)

Diffusive flux.

Returns the diffusive flux of $$\theta$$ in the direction $$\mathbf{\hat{r}}$$, equal to $$-D(\theta)\partial\theta/\partial r$$.

Parameters
Returns

Return type

float or numpy.ndarray, shape (n,)

fluxb(t)

Boundary flux.

Returns the diffusive flux of $$\theta$$ at the boundary, in the direction $$\mathbf{\hat{r}}$$. Equivalent to self.flux(self.rb(t), t).

Parameters

t (float or numpy.ndarray, shape (n,)) – Time(s). Values must be positive.

Returns

Return type

float or numpy.ndarray, shape (n,)

property i

Initial value of the solution.

Type

float

property ob

Parameter $$o_b$$.

Type

float

rb`(t)

Boundary location.

Returns $$r_b$$, the location of the boundary.

Depending on $$o_b$$, the boundary may be fixed at $$r=0$$ or it may move with time.

Parameters

t (float or numpy.ndarray) – Time(s). Values must not be negative.

Returns

rb – The return is of the same type and shape as t.

Return type