Contrast Agents - Marmottant

Devito

class stride.physics.marmottant.devito.MarmottantDevito(**kwargs)[source]

Bases: ProblemTypeBase

This class represents the bubble oscillatory behaviour through the Marmottant model, implemented using Devito.

Parameters:
  • name (str, optional) – Name of the PDE, defaults to an automatic name.

  • grid (Grid, optional) – Existing grid, if not provided one will be created. Either a grid or space, time and slow_time need to be provided.

  • space (Space, optional) –

  • time (Time, optional) –

  • slow_time (SlowTime, optional) –

Notes

For forward execution of the PDE, the following parameters can be used:

x_0ParticleField

Spatial location of the bubble population, in [m].

r_0SparseField

Initial radius of the bubble population, in [m].

vpfloat or ScalarField

The speed of sound in the surrounding liquid, in [m/s].

rhofloat or ScalarField

The density of the surrounding liquid, in [kg/m^3].

sigmafloat or ScalarField

The surface tension of the surrounding liquid, in [N/m].

mufloat or ScalarField

The viscosity of the surrounding liquid, in [Pa*s].

p_0float

The ambient pressure, in [Pa].

pTraces or devito.TimeFunction

The excitation pressure, in [Pa].

kappafloat

The polytropic gas exponent, in [-].

kappa_sfloat

The surface dilatational viscosity from the monolayer, in [N].

chifloat

The elastic compression modulus of the monolayer, in [N/m].

r_bucklefloat

The buckling radius of the bubble, in [m].

r_breakfloat

The break radius of the bubble, in [m].

interpolation_typestr, optional

Type of bubble interpolation (linear for bi-/tri-linear or hicks for sinc interpolation), defaults to linear.

problemProblem

Sub-problem being solved by the PDE.

async after_forward(*args, **kwargs)[source]

Clean up after the state run and retrieve the time traces.

Parameters:

problem (Problem) – Sub-problem being solved by the PDE.

Returns:

Final distribution of mass.

Return type:

ScalarField

async before_forward(r_0, x_0=None, vp=1540.0, rho=997, sigma=0.073, mu=0.002, p_0=101325, p=0.0, kappa=1.07, kappa_s=5e-09, chi=0.4, r_buckle=None, r_break=None, **kwargs)[source]

Prepare the problem type to run the state or forward problem.

Parameters:
  • x_0 (ParticleField) – Spatial location of the bubble population, in [m].

  • r_0 (SparseField) – Initial radius of the bubble population, in [m].

  • vp (float or ScalarField) – The speed of sound in the surrounding liquid, in [m/s].

  • rho (float or ScalarField) – The density of the surrounding liquid, in [kg/m^3].

  • sigma (float or ScalarField) – The surface tension of the surrounding liquid, in [N/m].

  • mu (float or ScalarField) – The viscosity of the surrounding liquid, in [Pa*s].

  • p_0 (float) – The ambient pressure, in [Pa].

  • p (Traces) – The excitation pressure, in [Pa].

  • kappa (float) – The polytropic gas exponent, in [-].

  • kappa_s (float) – The surface dilatational viscosity from the monolayer, in [N].

  • chi (float) – The elastic compression modulus of the monolayer, in [N/m].

  • r_buckle (float) – The buckling radius of the bubble, in [m].

  • r_break (float) – The break radius of the bubble, in [m].

  • interpolation_type (str, optional) – Type of bubble interpolation (linear for bi-/tri-linear or hicks for sinc interpolation), defaults to linear.

  • problem (Problem) – Sub-problem being solved by the PDE.

clear_operators()[source]
property comms
property head
classmethod local(*args, uid=None, **kwargs)
classmethod local_parameter(*args, uid=None, **kwargs)
property logger
property loop
property monitor
property node
classmethod parameter(*args, uid=None, **kwargs)
classmethod remote(*args, **kwargs)
async run_forward(*args, **kwargs)[source]

Run the state or forward problem.

Parameters:

problem (Problem) – Sub-problem being solved by the PDE.

property runtime
async classmethod select_worker(runtime=None)

Select an available worker.

Parameters:

runtime (str or Runtime, optional) – If a valid runtime is given, this will be selected as the target worker.

Returns:

UID of the target worker.

Return type:

str

space_order = 0
sub_stencil(**kwargs)[source]
time_order = 2
property worker
property zmq_context