tardis.workflows.v_inner_solver module

class tardis.workflows.v_inner_solver.InnerVelocitySimulationSolver(configuration, mean_optical_depth='rossland', tau=None)[source]

Bases: SimpleSimulation

TAU_TARGET = -0.40546510810816444
check_convergence(estimated_values)[source]

Check convergence status for a dict of estimated values

Parameters:
estimated_valuesdict

Estimates to check convergence

Returns:
bool

If convergence has occurred

estimate_v_inner()[source]

Compute the Rossland Mean Optical Depth, Estimate location where v_inner makes t=2/3 (or target) Extrapolate with exponential fits

Need some way to return and inspect the optical depths for later logging

get_convergence_estimates(transport_state)[source]

Compute convergence estimates from the transport state

Parameters:
transport_stateMonteCarloTransportState

Transport state object to compute estimates

Returns:
dict

Convergence estimates

EstimatedRadiationFieldProperties

Dilute radiation file and j_blues dataclass

print_mask(mask)[source]
property property_mask
reproject(a1, m1, a2, m2)[source]

Reprojects two sub_arrays defined by a set of masks onto an array where the masks of both objects are true

let A1, A2 be arrays of size gemetry.no_of_shells and

a1 = A1[m1], a2 = A2[m2]

find a1*, a2* s.t.

a1* = A1[m1 & m2], a2* = A2[m1 & m2]

this is equivalent to

a1* = A1[m1][m2[m1]] = a1[m2[m1]], a2* = A2[m2][m1[m2]] = a2[m1[m2]]

Parameters:
a1np.ndarray

A sub array of an array with the shape of a geometry property

m1np.ndarray(bool)

Mask such that the parrent array accessed at this mask gives a1

a2np.ndarray

A sub array of an array with the shape of a geometry property

m2np.ndarray(bool)

Mask such that the parrent array accessed at this mask gives a2

Returns:
a1*

reprojection of a1 onto m1 & m2

a2*

reprojection of a2 onto m1 & m2

run()[source]

Run the TARDIS simulation until convergence is reached

solve_plasma(estimated_radfield_properties, mask)[source]

Update the plasma solution with the new radiation field estimates

Parameters:
estimated_radfield_propertiesEstimatedRadiationFieldProperties

The radiation field properties to use for updating the plasma

radiation_field: tardis.plasma.radiation_field.RadiationField

Current radiation field object from the last iteration

Raises:
ValueError

If the plasma solver radiative rates type is unknown

solve_simulation_state(estimated_values)[source]

Update the simulation state with new inputs computed from previous iteration estimates.

Parameters:
estimated_valuesdict

Estimated from the previous iterations

Returns:
next_valuesdict

The next values assigned to the simulation state