underworld.function.analytic module

This module provides analytic solution functions to the Stokes flow equations.

Module Summary

classes:

underworld.function.analytic.SolDB3d SolDB2d and solDB3d from:
underworld.function.analytic.SolM
underworld.function.analytic.SolNL
underworld.function.analytic.SolCx The boundary conditions are free-slip everywhere on a unit domain.
underworld.function.analytic.SolKz The boundary conditions are free-slip everywhere on a unit domain.
underworld.function.analytic.SolDB2d SolDB2d and solDB3d from:
underworld.function.analytic.SolKx The boundary conditions are free-slip everywhere on a unit domain.

Module Details

classes:

class underworld.function.analytic.SolDB3d(Beta=4.0, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

SolDB2d and solDB3d from:

Dohrmann, C.R., Bochev, P.B., A stabilized finite element method for the Stokes problem based on polynomial pressure projections, Int. J. Numer. Meth. Fluids 46, 183-201 (2004).

class underworld.function.analytic.SolM(eta0=1.0, m=1, n=1.0, r=1.5, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

class underworld.function.analytic.SolNL(eta0=1.0, n=1.0, r=1.5, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

class underworld.function.analytic.SolCx(viscosityA=1.0, viscosityB=2.0, xc=0.25, nx=1, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

The boundary conditions are free-slip everywhere on a unit domain. There is a viscosity jump in the x direction at \(x=xc\). The flow is driven by the following density perturbation:

\[\rho = \sin (nz \pi z) \cos (nx \pi x)\]
Parameters:
  • viscosityA (float) – Viscosty of region A.
  • viscosityB (float) – Viscosty of region B.
  • xc (float) – Location for viscosity jump.
  • nx (unsigned) – Wavenumber in x axis.
class underworld.function.analytic.SolKz(sigma=1.0, nx=1, nz=1.0, B=1.0, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

The boundary conditions are free-slip everywhere on a unit domain. The viscosity varies exponentially in the z direction and is given by \(\eta = \exp (2 B z)\). The flow is driven by the following density perturbation:

\[\rho = -\sigma \sin (nz \pi z) \cos (nx \pi x).\]
Parameters:
  • sigma (float) – Density perturbation amplitude.
  • nx (float) – Wavenumber in x axis.
  • nz (unsigned) – Wavenumber in axis.
  • B (float) – Viscosity parameter
class underworld.function.analytic.SolDB2d(*args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

SolDB2d and solDB3d from:

Dohrmann, C.R., Bochev, P.B., A stabilized finite element method for the Stokes problem based on polynomial pressure projections, Int. J. Numer. Meth. Fluids 46, 183-201 (2004).

class underworld.function.analytic.SolKx(sigma=1.0, nx=1.0, nz=1, B=1.1512925465, *args, **kwargs)[source]

Bases: underworld.function.analytic._SolBase

The boundary conditions are free-slip everywhere on a unit domain. The viscosity varies exponentially in the x direction and is given by \(\eta = \exp (2 B x)\). The flow is driven by the following density perturbation:

\[\rho = -\sigma \sin (nz \pi z) \cos (nx \pi x).\]
Parameters:
  • sigma (float) – Density perturbation amplitude.
  • nx (float) – Wavenumber in x axis.
  • nz (unsigned) – Wavenumber in axis.
  • B (float) – Viscosity parameter