Impermeable objects#

This is the module that contains the impermeable objects classes of the DFN.

Notes

This module contains the impermeable object classes.

class andfn.impermeable_object.ImpermeableCircle(label, radius, center, frac0, ncoef=5, nint=10, **kwargs)[source]#

Bases: Element

__init__(label, radius, center, frac0, ncoef=5, nint=10, **kwargs)[source]#

Initializes the impermeable circle class.

Parameters:
  • label (str or int) – The label of the impermeable circle.

  • radius (float) – The radius of the impermeable circle.

  • ncoef (int) – The number of coefficients in the asymptotic expansion.

  • nint (int) – The number of integration points.

  • frac0 (Fracture) – The fracture object that the impermeable circle is associated with.

__str__()[source]#

Returns the string representation of the element.

Returns:

The string representation of the element.

Return type:

str

calc_omega(z)[source]#

Calculate the complex potential for the impermeable circle.

Parameters:

z (np.ndarray) – The points to calculate the complex potential at

Returns:

omega – The complex potential

Return type:

np.ndarray

calc_w(z)[source]#

Calculate the complex discharge vector for the impermeable circle.

Parameters:

z (np.ndarray) – The points to calculate the complex discharge vector at

Returns:

The complex discharge vector

Return type:

np.ndarray

solve()[source]#

Solve the coefficients of the impermeable circle.

z_array_tracking(n, offset=0.001)[source]#

Create an array of z points along the constant head line with an offset.

Parameters:
  • n (int) – The number of points to create

  • offset (float) – The offset to use

Returns:

The array of z points

Return type:

np.ndarray

class andfn.impermeable_object.ImpermeableEllipse(label, focis, nu, ncoef, nint, frac)[source]#

Bases: object

__init__(label, focis, nu, ncoef, nint, frac)[source]#

Initializes the impermeable ellipse class.

Parameters:
  • label (str or int) – The label of the impermeable ellipse.

  • focis (list) – The focis of the impermeable ellipse.

  • nu (float) – The angle of the major axis of the impermeable ellipse.

  • ncoef (int) – The number of coefficients in the asymptotic expansion.

  • nint (int) – The number of integration points.

  • frac (Fracture) – The fracture object that the impermeable ellipse is associated with.

__str__()[source]#

Return str(self).

class andfn.impermeable_object.ImpermeableLine(label, endpoints0, frac0, ncoef=5, nint=10, **kwargs)[source]#

Bases: Element

__init__(label, endpoints0, frac0, ncoef=5, nint=10, **kwargs)[source]#

Initialize the element.

Parameters:
  • label (str) – The label of the element.

  • id (int) – The id of the element.

  • type (int) –

    The type of the element. Element Types:

    0 = Intersection 1 = Bounding Circle 2 = Well 3 = Constant Head Line 4 = Impermeable Circle 5 = Impermeable Line

__str__()[source]#

Returns the string representation of the element.

Returns:

The string representation of the element.

Return type:

str

calc_omega(z)[source]#

Calculate the complex potential for the impermeable circle.

Parameters:

z (np.ndarray) – The points to calculate the complex potential at

Returns:

omega – The complex potential

Return type:

np.ndarray

calc_w(z)[source]#

Calculate the complex discharge vector for the impermeable circle.

Parameters:

z (np.ndarray) – The points to calculate the complex discharge vector at

Returns:

The complex discharge vector

Return type:

np.ndarray

solve()[source]#

Solve the coefficients of the impermeable circle.