Seismic

Base class for all seismic models

class burnman.seismic.Seismic1DModel[source]

Bases: object

Base class for all the seismological models.

evaluate(vars_list, depth_list)[source]

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

internal_depth_list(mindepth=0.0, maxdepth=1e+99)[source]

Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.

Parameters:

mindepth : float

Minimum depth value to be returned [m]

maxdepth

Maximum depth value to be returned [m]

Returns:

depths : array of floats

Depths [m].

pressure(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

pressure : float or array of floats

Pressure(s) at given depth(s) in [Pa].

v_p(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_p : float or array of floats

P wave velocity at given depth(s) in [m/s].

v_s(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_s : float or array of floats

S wave velocity at given depth(s) in [m/s].

v_phi(depth)[source]
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

density(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

density : float or array of floats

Density at given depth(s) in [kg/m^3].

G(depth)[source]
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)[source]
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QK(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

Qk : float or array of floats

Quality factor (dimensionless) for bulk modulus at given depth(s).

QG(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

QG : float or array of floats

Quality factor (dimensionless) for shear modulus at given depth(s).

depth(pressure)[source]
Parameters:

pressure : float or array of floats

Pressure(s) [Pa] to evaluate depth at.

Returns:

depth : float or array of floats

Depth(s) [m] for given pressure(s)

gravity(depth)[source]
Parameters:

depth : float or array of floats

Depth(s) [m] to evaluate gravity at.

Returns:

gravity : float or array of floats

Gravity for given depths in [m/s^2]

Class for 1D Models

class burnman.seismic.SeismicTable[source]

Bases: burnman.seismic.Seismic1DModel

This is a base class that gets a 1D seismic model from a table indexed and sorted by radius. Fill the tables in the constructor after deriving from this class. This class uses burnman.seismic.Seismic1DModel

Note: all tables need to be sorted by increasing depth. self.table_depth needs to be defined Alternatively, you can also overwrite the _lookup function if you want to access with something else.

internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)[source]
pressure(depth)[source]
gravity(depth)[source]
v_p(depth)[source]
v_s(depth)[source]
QK(depth)[source]
QG(depth)[source]
density(depth)[source]
depth(pressure)[source]
radius(pressure)[source]
G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

Models currently implemented

class burnman.seismic.PREM[source]

Bases: burnman.seismic.SeismicTable

Reads PREM (1s) (input_seismic/prem.txt, [DA81]). See also burnman.seismic.SeismicTable.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)
class burnman.seismic.Slow[source]

Bases: burnman.seismic.SeismicTable

Inserts the mean profiles for slower regions in the lower mantle (Lekic et al. 2012). We stitch together tables ‘input_seismic/prem_lowermantle.txt’, ‘input_seismic/swave_slow.txt’, ‘input_seismic/pwave_slow.txt’). See also burnman.seismic.SeismicTable.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)
class burnman.seismic.Fast[source]

Bases: burnman.seismic.SeismicTable

Inserts the mean profiles for faster regions in the lower mantle (Lekic et al. 2012). We stitch together tables ‘input_seismic/prem_lowermantle.txt’, ‘input_seismic/swave_fast.txt’, ‘input_seismic/pwave_fast.txt’). See also burnman.seismic.Seismic1DModel.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)
class burnman.seismic.STW105[source]

Bases: burnman.seismic.SeismicTable

Reads STW05 (a.k.a. REF) (1s) (input_seismic/STW105.txt, [KED08]). See also burnman.seismic.SeismicTable.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)
class burnman.seismic.IASP91[source]

Bases: burnman.seismic.SeismicTable

Reads REF/STW05 (input_seismic/STW105.txt, [KED08]). See also burnman.seismic.SeismicTable.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)
class burnman.seismic.AK135[source]

Bases: burnman.seismic.SeismicTable

Reads AK135 (input_seismic/ak135.txt, [KEB95]). See also burnman.seismic.SeismicTable.

G(depth)
Parameters:

depth : float or array of floats

Shear modulus at given for depth(s) in [Pa].

K(depth)
Parameters:

depth : float or array of floats

Bulk modulus at given for depth(s) in [Pa]

QG(depth)
QK(depth)
density(depth)
depth(pressure)
evaluate(vars_list, depth_list)

Returns the lists of data for a Seismic1DModel for the depths provided

Parameters:

vars_list : array of str

Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’

depth_list : array of floats

Array of depths [m] to evaluate seismic model at.

Returns:

Array of values shapes as (len(vars_list),len(depth_list)).

gravity(depth)
internal_depth_list(mindepth=0.0, maxdepth=10000000000.0)
pressure(depth)
radius(pressure)
v_p(depth)
v_phi(depth)
Parameters:

depth_list : float or array of floats

Depth(s) [m] to evaluate seismic model at.

Returns:

v_phi : float or array of floats

bulk sound wave velocity at given depth(s) in [m/s].

v_s(depth)

Attenuation Correction

burnman.seismic.attenuation_correction(v_p, v_s, v_phi, Qs, Qphi)[source]

Applies the attenuation correction following Matas et al. (2007), page 4. This is simplified, and there is also currently no 1D Q model implemented. The correction, however, only slightly reduces the velocities, and can be ignored for our current applications. Arguably, it might not be as relevant when comparing computations to PREM for periods of 1s as is implemented here. Called from burnman.main.apply_attenuation_correction()

Parameters:

v_p : float

P wave velocity in [m/s].

v_s : float

S wave velocitiy in [m/s].

v_phi : float

Bulk sound velocity in [m/s].

Qs : float

shear quality factor [dimensionless]

Qphi: float

bulk quality factor [dimensionless]

Returns:

v_p : float

corrected P wave velocity in [m/s].

v_s : float

corrected S wave velocitiy in [m/s].

v_phi : float

corrected Bulk sound velocity in [m/s].