Stochastic inversion
Single parameter inference
Now that we know how to compute the rock physics responses, we move towards performing stochastic inversion for rock physics parameters given some rock conductivity and the corresponding uncertainty.
Note
When performing stochastic inversion, make sure you output the vectors from the models, even if its a (1,1) or (1,) vector
# Creating synthetic data
m = Poe2010([1000.0], 100.0)
resp = forward(m, [])
err_resp = RockphyCond(0.01 .* abs.(resp.σ))Rock physics Response : RockphyCond
log₁₀ conductivity (S/m) : [0.044462295866947964]Then create an a priori using corresponding distribution, here Poe2010Distribution. In the above, we want to infer only for temperature and water content in olivine, so we'll define the distribution as such.
Note
Note the resemblance between (Poe2010)[@ref] and (Poe2010Distribution)[@ref]
mdist = Poe2010Distribution(MvNormal([1400.0], [400.0;]), [100.0])Poe2010Distribution{Distributions.DiagNormal, Vector{Float64}}(DiagNormal(
dim: 1
μ: [1400.0]
Σ: [160000.0;;]
)
, [100.0])Then defining the likelihood
rdist = RockphyCondDistribution(Porosity.normal_dist)RockphyCondDistribution{typeof(normal_dist)}(SubsurfaceCore.normal_dist)and putting everything together to perform the inference using stochastic inverse[@ref]
m_cache = mcmc_cache(mdist, rdist, 1000, Prior());
mcmc_chain_prior = stochastic_inverse(resp, err_resp, [], m_cache);
m_cache = mcmc_cache(mdist, rdist, 1000, NUTS());
mcmc_chain_posterior = stochastic_inverse(resp, err_resp, [], m_cache);Chains MCMC chain (1000×13×1 Array{Float64, 3}):
Iterations = 501:1:1500
Number of chains = 1
Samples per chain = 1000
Wall duration = 8.12 seconds
Compute duration = 8.12 seconds
parameters = m0[:T][1]
internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size
Summary Statistics
parameters mean std mcse ess_bulk ess_tail rhat ⋯
Symbol Float64 Float64 Float64 Float64 Float64 Float64 ⋯
m0[:T][1] 1000.3356 9.6382 0.5054 367.6093 646.7308 0.9990 ⋯
1 column omitted
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
m0[:T][1] 981.2187 993.6542 1000.4107 1006.9460 1019.6952Code for this figure
f = Figure()
ax = Axis(f[1, 1]; title="T(K)")
i = mcmc_chain_prior.name_map[1][1]
dat_prior = mcmc_chain_prior[i][:]
dat_posterior = mcmc_chain_posterior[i][:]
density!(ax, dat_prior; label="prior")
density!(ax, dat_posterior; label="posterior")
f[1, 2] = Legend(f, ax)
Double parameter inference
Lets try to also infer the water content along with the temperature. Everything remains the same, except that now, in ps_nt, the vector corresponding to water content Ch2o_ol will be replaced by a corresponding distribution.
mdist = Poe2010Distribution(MvNormal([1200.0], [400.0;]), product_distribution([Uniform(50.0, 150.0)]))
rdist = RockphyCondDistribution(Porosity.normal_dist)
m_cache = mcmc_cache(mdist, rdist, 1000, Prior());
mcmc_chain_prior = stochastic_inverse(resp, err_resp, [], m_cache);
m_cache = mcmc_cache(mdist, rdist, 1000, NUTS());
mcmc_chain_posterior = stochastic_inverse(resp, err_resp, [], m_cache);Chains MCMC chain (1000×14×1 Array{Float64, 3}):
Iterations = 501:1:1500
Number of chains = 1
Samples per chain = 1000
Wall duration = 5.94 seconds
Compute duration = 5.94 seconds
parameters = m0[:T][1], m0[:Ch2o_ol][1]
internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size
Summary Statistics
parameters mean std mcse ess_bulk ess_tail r ⋯
Symbol Float64 Float64 Float64 Float64 Float64 Floa ⋯
m0[:T][1] 1010.1813 53.4920 5.0997 106.2147 193.3005 1.0 ⋯
m0[:Ch2o_ol][1] 99.1010 28.5236 2.8731 96.0001 102.0039 1.0 ⋯
2 columns omitted
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
m0[:T][1] 929.6088 963.4604 1006.8675 1049.3010 1112.1988
m0[:Ch2o_ol][1] 53.1164 75.7607 98.2167 123.3631 147.9431Code for this figure
f = Figure()
ax1 = Axis(f[1, 1]; title="T(K)")
i = mcmc_chain_prior.name_map[1][1]
dat_prior = mcmc_chain_prior[i][:]
dat_posterior = mcmc_chain_posterior[i][:]
density!(ax1, dat_prior; label="prior")
density!(ax1, dat_posterior; label="posterior")
ax2 = Axis(f[1, 2]; title="water conc. (ppm)")
i = mcmc_chain_prior.name_map[1][2]
dat_prior = mcmc_chain_prior[i][:]
dat_posterior = mcmc_chain_posterior[i][:]
density!(ax2, dat_prior; label="prior")
density!(ax2, dat_posterior; label="posterior")
f[2, 1:2] = Legend(f, ax2; orientation=:horizontal)
Two-phase inference
Lets combine SEO3 with Sifre2014 and also try to infer the porosity.
# Creating synthetic data
m = two_phase_modelType(SEO3, Sifre2014, HS1962_plus)
ps_nt = (; T=[1400.0] .+ 273, Ch2o_m=[100.0], Cco2_m=[100.0], ϕ=[0.1])
model = m(ps_nt)
resp = forward(model, [])
err_resp = RockphyCond(0.01 .* abs.(resp.σ))
m = two_phase_modelDistributionType(SEO3Distribution, Sifre2014Distribution, HS1962_plus)
ps_nt_dist = (;
T=MvNormal([1000.0], [400.0;]), Ch2o_m=product_distribution([Uniform(50.0, 150.0)]),
Cco2_m=[100.0], ϕ=product_distribution([Uniform(0.01, 0.2)]))
mdist = m(ps_nt_dist)
rdist = RockphyCondDistribution(Porosity.normal_dist)RockphyCondDistribution{typeof(normal_dist)}(SubsurfaceCore.normal_dist)m_cache = mcmc_cache(mdist, rdist, 1000, Prior());
mcmc_chain_prior = stochastic_inverse(resp, err_resp, [], m_cache);
m_cache = mcmc_cache(mdist, rdist, 1000, NUTS());
mcmc_chain_posterior = stochastic_inverse(resp, err_resp, [], m_cache);Chains MCMC chain (1000×15×1 Array{Float64, 3}):
Iterations = 501:1:1500
Number of chains = 1
Samples per chain = 1000
Wall duration = 7.8 seconds
Compute duration = 7.8 seconds
parameters = m0[:ϕ][1], m0[:T][1], m0[:Ch2o_m][1]
internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size
Summary Statistics
parameters mean std mcse ess_bulk ess_tail rh ⋯
Symbol Float64 Float64 Float64 Float64 Float64 Float ⋯
m0[:ϕ][1] 0.1520 0.0274 0.0022 141.3522 93.7814 0.99 ⋯
m0[:T][1] 1617.2052 25.7900 2.1920 136.6497 99.9684 0.99 ⋯
m0[:Ch2o_m][1] 100.9552 28.3087 2.1027 170.0038 186.5376 1.00 ⋯
2 columns omitted
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
m0[:ϕ][1] 0.1062 0.1287 0.1526 0.1768 0.1959
m0[:T][1] 1579.5792 1594.4144 1613.4405 1637.8417 1665.1622
m0[:Ch2o_m][1] 53.3138 76.0117 100.2298 125.1963 147.2592Code for this figure
f = Figure()
labels = ["ϕ", "T (K)", "water conc. (ppm)"]
for i in 1:3
axi = Axis(f[1, i]; title=labels[i])
idx = mcmc_chain_prior.name_map[1][i]
dat_prior = mcmc_chain_prior[idx][:]
dat_posterior = mcmc_chain_posterior[idx][:]
density!(axi, dat_prior; label="prior")
density!(axi, dat_posterior; label="posterior")
end
f[2, 1:3] = Legend(f, f.content[end]; orientation=:horizontal)┌ Warning: Assignment to `dat_prior` in soft scope is ambiguous because a global variable by the same name exists: `dat_prior` will be treated as a new local. Disambiguate by using `local dat_prior` to suppress this warning or `global dat_prior` to assign to the existing global variable.
└ @ stochastic_inverse.md:171
┌ Warning: Assignment to `dat_posterior` in soft scope is ambiguous because a global variable by the same name exists: `dat_posterior` will be treated as a new local. Disambiguate by using `local dat_posterior` to suppress this warning or `global dat_posterior` to assign to the existing global variable.
└ @ stochastic_inverse.md:172
Multi rock physics inference
Things work similarly here, but we provide an example for convenience:
m = multi_rp_modelType(SEO3, anharmonic_poro, Nothing, Nothing)
ps_nt = (; T=[1000.0] .+ 273, P=3.0, ρ=3300.0, Ch2o_m=1000.0, ϕ=0.1)
model = m(ps_nt)
resp = forward(model, [])
err_resp = multi_rp_response(RockphyCond(0.01 .* abs.(resp.cond.σ)),
RockphyElastic(0.01 .* resp.elastic.K, 0.01 .* resp.elastic.G,
0.01 .* resp.elastic.Vp, 0.01 .* resp.elastic.Vs),
Nothing,
Nothing)
ps_nt_dist = (; T=product_distribution([Uniform(1200.0, 1400.0)]), P=[3.0], ρ=[3300.0],
Ch2o_m=MvNormal([100.0], [20.0;]), ϕ=product_distribution([Uniform(0.01, 0.2)]))
m1 = multi_rp_modelDistributionType(SEO3Distribution, anharmonic_poroDistribution, Nothing, Nothing)
mdist = m1(ps_nt_dist)
# rdist = RockphyCondDistribution(Porosity.normal_dist)
rdist = Porosity.multi_rp_responseDistribution(RockphyCondDistribution(normal_dist),
RockphyElasticDistribution(normal_dist, normal_dist, normal_dist, normal_dist),
Nothing, Nothing)m_cache = mcmc_cache(mdist, rdist, 1000, Prior());
mcmc_chain_prior = stochastic_inverse(
resp, err_resp, [], m_cache; response_fields=[:Vp, :Vs, :σ]);
m_cache = mcmc_cache(mdist, rdist, 1000, NUTS());
mcmc_chain_posterior = stochastic_inverse(
resp, err_resp, [], m_cache; response_fields=[:Vp, :Vs, :σ]);Chains MCMC chain (1000×14×1 Array{Float64, 3}):
Iterations = 501:1:1500
Number of chains = 1
Samples per chain = 1000
Wall duration = 7.93 seconds
Compute duration = 7.93 seconds
parameters = m0[:T][1], m0[:ϕ][1]
internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size
Summary Statistics
parameters mean std mcse ess_bulk ess_tail rhat ⋯
Symbol Float64 Float64 Float64 Float64 Float64 Float64 ⋯
m0[:T][1] 1273.4037 7.3635 0.2297 1026.2756 729.8951 1.0029 ⋯
m0[:ϕ][1] 0.1001 0.0050 0.0002 1000.9804 698.9634 1.0005 ⋯
1 column omitted
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
m0[:T][1] 1258.8647 1268.4511 1273.4346 1278.2173 1287.8642
m0[:ϕ][1] 0.0903 0.0967 0.1000 0.1034 0.1094Code for this figure
f = Figure()
labels = ["T (K)", "ϕ"]
for i in 1:2
axi = Axis(f[1, i]; title=labels[i])
idx = mcmc_chain_prior.name_map[1][i]
dat_prior = mcmc_chain_prior[idx][:]
dat_posterior = mcmc_chain_posterior[idx][:]
density!(axi, dat_prior; label="prior")
density!(axi, dat_posterior; label="posterior")
end
f[2, 1:2] = Legend(f, f.content[end]; orientation=:horizontal)┌ Warning: Assignment to `dat_prior` in soft scope is ambiguous because a global variable by the same name exists: `dat_prior` will be treated as a new local. Disambiguate by using `local dat_prior` to suppress this warning or `global dat_prior` to assign to the existing global variable.
└ @ stochastic_inverse.md:241
┌ Warning: Assignment to `dat_posterior` in soft scope is ambiguous because a global variable by the same name exists: `dat_posterior` will be treated as a new local. Disambiguate by using `local dat_posterior` to suppress this warning or `global dat_posterior` to assign to the existing global variable.
└ @ stochastic_inverse.md:242
Multi rock physics with two phase
As a last example, lets take the two phases case above and see if we can do a better job at inference if we also had the Vp, Vs data
# Synthetic data
m_mix = two_phase_modelType(SEO3, Sifre2014, HS1962_plus)
m = multi_rp_modelType(typeof(m_mix), anharmonic, Nothing, Nothing)
ps_nt = (; T=[1200.0] .+ 273, Ch2o_m=[100.0], Cco2_m=[100.0], ϕ=[0.1], P=[3.0], ρ=[3300.0])
model = m(ps_nt)
resp = forward(model, [])
err_resp = multi_rp_response(RockphyCond(0.01 .* abs.(resp.cond.σ)),
RockphyElastic(0.01 .* resp.elastic.K, 0.01 .* resp.elastic.G,
0.01 .* resp.elastic.Vp, 0.01 .* resp.elastic.Vs),
Nothing,
Nothing)
# Defining apriori
ps_nt_dist = (; T=product_distribution([Uniform(1270.0, 1670.0)]),
Ch2o_m=product_distribution([Uniform(50.0, 150.0)]), Cco2_m=[100.0],
ϕ=product_distribution([Uniform(0.01, 0.2)]), P=[3.0], ρ=[3300.0])
m_mixdist = two_phase_modelDistributionType(SEO3Distribution, Sifre2014Distribution, HS1962_plus)
m = multi_rp_modelDistributionType(typeof(m_mixdist), anharmonicDistribution, Nothing, Nothing)
mdist = m(ps_nt_dist);
rdist = Porosity.multi_rp_responseDistribution(RockphyCondDistribution(normal_dist),
RockphyElasticDistribution(normal_dist, normal_dist, normal_dist, normal_dist),
Nothing, Nothing)
m_cache = mcmc_cache(mdist, rdist, 1000, Prior());
mcmc_chain_prior = stochastic_inverse(
resp, err_resp, [], m_cache; response_fields=[:Vp, :Vs, :σ]);
m_cache = mcmc_cache(mdist, rdist, 1000, NUTS());
mcmc_chain_posterior = stochastic_inverse(
resp, err_resp, [], m_cache; response_fields=[:Vp, :Vs, :σ]);┌ Info: variables to be inferred : [:ϕ, :T, :Ch2o_m]
│ variables used for inference : [:Vp, :Vs, :σ]
└ model type : multi_rp_modelType{two_phase_modelType{SEO3, Sifre2014, HS1962_plus}, anharmonic, Nothing, Nothing}
Sampling 0%| | ETA: N/A
Sampling 0%|▎ | ETA: 0:00:38
Sampling 1%|▍ | ETA: 0:00:19
Sampling 2%|▋ | ETA: 0:00:13
Sampling 2%|▉ | ETA: 0:00:10
Sampling 2%|█ | ETA: 0:00:08
Sampling 3%|█▎ | ETA: 0:00:06
Sampling 4%|█▌ | ETA: 0:00:05
Sampling 4%|█▋ | ETA: 0:00:05
Sampling 4%|█▉ | ETA: 0:00:04
Sampling 5%|██▏ | ETA: 0:00:04
Sampling 6%|██▎ | ETA: 0:00:03
Sampling 6%|██▌ | ETA: 0:00:03
Sampling 6%|██▊ | ETA: 0:00:03
Sampling 7%|███ | ETA: 0:00:03
Sampling 8%|███▏ | ETA: 0:00:02
Sampling 8%|███▍ | ETA: 0:00:02
Sampling 8%|███▋ | ETA: 0:00:02
Sampling 9%|███▊ | ETA: 0:00:02
Sampling 10%|████ | ETA: 0:00:02
Sampling 10%|████▎ | ETA: 0:00:02
Sampling 10%|████▍ | ETA: 0:00:02
Sampling 11%|████▋ | ETA: 0:00:02
Sampling 12%|████▉ | ETA: 0:00:02
Sampling 12%|█████ | ETA: 0:00:01
Sampling 12%|█████▎ | ETA: 0:00:01
Sampling 13%|█████▌ | ETA: 0:00:01
Sampling 14%|█████▋ | ETA: 0:00:01
Sampling 14%|█████▉ | ETA: 0:00:01
Sampling 14%|██████▏ | ETA: 0:00:01
Sampling 15%|██████▎ | ETA: 0:00:01
Sampling 16%|██████▌ | ETA: 0:00:01
Sampling 16%|██████▊ | ETA: 0:00:01
Sampling 16%|██████▉ | ETA: 0:00:01
Sampling 17%|███████▏ | ETA: 0:00:01
Sampling 18%|███████▍ | ETA: 0:00:01
Sampling 18%|███████▌ | ETA: 0:00:01
Sampling 18%|███████▊ | ETA: 0:00:01
Sampling 19%|████████ | ETA: 0:00:01
Sampling 20%|████████▎ | ETA: 0:00:01
Sampling 20%|████████▍ | ETA: 0:00:01
Sampling 20%|████████▋ | ETA: 0:00:01
Sampling 21%|████████▉ | ETA: 0:00:01
Sampling 22%|█████████ | ETA: 0:00:01
Sampling 22%|█████████▎ | ETA: 0:00:01
Sampling 22%|█████████▌ | ETA: 0:00:01
Sampling 23%|█████████▋ | ETA: 0:00:01
Sampling 24%|█████████▉ | ETA: 0:00:01
Sampling 24%|██████████▏ | ETA: 0:00:01
Sampling 24%|██████████▎ | ETA: 0:00:01
Sampling 25%|██████████▌ | ETA: 0:00:01
Sampling 26%|██████████▊ | ETA: 0:00:01
Sampling 26%|██████████▉ | ETA: 0:00:01
Sampling 26%|███████████▏ | ETA: 0:00:01
Sampling 27%|███████████▍ | ETA: 0:00:01
Sampling 28%|███████████▌ | ETA: 0:00:01
Sampling 28%|███████████▊ | ETA: 0:00:01
Sampling 28%|████████████ | ETA: 0:00:01
Sampling 29%|████████████▏ | ETA: 0:00:00
Sampling 30%|████████████▍ | ETA: 0:00:00
Sampling 30%|████████████▋ | ETA: 0:00:00
Sampling 30%|████████████▊ | ETA: 0:00:00
Sampling 31%|█████████████ | ETA: 0:00:00
Sampling 32%|█████████████▎ | ETA: 0:00:00
Sampling 32%|█████████████▌ | ETA: 0:00:00
Sampling 32%|█████████████▋ | ETA: 0:00:00
Sampling 33%|█████████████▉ | ETA: 0:00:00
Sampling 34%|██████████████▏ | ETA: 0:00:00
Sampling 34%|██████████████▎ | ETA: 0:00:00
Sampling 34%|██████████████▌ | ETA: 0:00:00
Sampling 35%|██████████████▊ | ETA: 0:00:00
Sampling 36%|██████████████▉ | ETA: 0:00:00
Sampling 36%|███████████████▏ | ETA: 0:00:00
Sampling 36%|███████████████▍ | ETA: 0:00:00
Sampling 37%|███████████████▌ | ETA: 0:00:00
Sampling 38%|███████████████▊ | ETA: 0:00:00
Sampling 38%|████████████████ | ETA: 0:00:00
Sampling 38%|████████████████▏ | ETA: 0:00:00
Sampling 39%|████████████████▍ | ETA: 0:00:00
Sampling 40%|████████████████▋ | ETA: 0:00:00
Sampling 40%|████████████████▊ | ETA: 0:00:00
Sampling 40%|█████████████████ | ETA: 0:00:00
Sampling 41%|█████████████████▎ | ETA: 0:00:00
Sampling 42%|█████████████████▍ | ETA: 0:00:00
Sampling 42%|█████████████████▋ | ETA: 0:00:00
Sampling 42%|█████████████████▉ | ETA: 0:00:00
Sampling 43%|██████████████████ | ETA: 0:00:00
Sampling 44%|██████████████████▎ | ETA: 0:00:00
Sampling 44%|██████████████████▌ | ETA: 0:00:00
Sampling 44%|██████████████████▊ | ETA: 0:00:00
Sampling 45%|██████████████████▉ | ETA: 0:00:00
Sampling 46%|███████████████████▏ | ETA: 0:00:00
Sampling 46%|███████████████████▍ | ETA: 0:00:00
Sampling 46%|███████████████████▌ | ETA: 0:00:00
Sampling 47%|███████████████████▊ | ETA: 0:00:00
Sampling 48%|████████████████████ | ETA: 0:00:00
Sampling 48%|████████████████████▏ | ETA: 0:00:00
Sampling 48%|████████████████████▍ | ETA: 0:00:00
Sampling 49%|████████████████████▋ | ETA: 0:00:00
Sampling 50%|████████████████████▊ | ETA: 0:00:00
Sampling 50%|█████████████████████ | ETA: 0:00:00
Sampling 50%|█████████████████████▎ | ETA: 0:00:00
Sampling 51%|█████████████████████▍ | ETA: 0:00:00
Sampling 52%|█████████████████████▋ | ETA: 0:00:00
Sampling 52%|█████████████████████▉ | ETA: 0:00:00
Sampling 52%|██████████████████████ | ETA: 0:00:00
Sampling 53%|██████████████████████▎ | ETA: 0:00:00
Sampling 54%|██████████████████████▌ | ETA: 0:00:00
Sampling 54%|██████████████████████▋ | ETA: 0:00:00
Sampling 55%|██████████████████████▉ | ETA: 0:00:00
Sampling 55%|███████████████████████▏ | ETA: 0:00:00
Sampling 56%|███████████████████████▎ | ETA: 0:00:00
Sampling 56%|███████████████████████▌ | ETA: 0:00:00
Sampling 56%|███████████████████████▊ | ETA: 0:00:00
Sampling 57%|████████████████████████ | ETA: 0:00:00
Sampling 57%|████████████████████████▏ | ETA: 0:00:00
Sampling 58%|████████████████████████▍ | ETA: 0:00:00
Sampling 58%|████████████████████████▋ | ETA: 0:00:00
Sampling 59%|████████████████████████▊ | ETA: 0:00:00
Sampling 60%|█████████████████████████ | ETA: 0:00:00
Sampling 60%|█████████████████████████▎ | ETA: 0:00:00
Sampling 60%|█████████████████████████▍ | ETA: 0:00:00
Sampling 61%|█████████████████████████▋ | ETA: 0:00:00
Sampling 62%|█████████████████████████▉ | ETA: 0:00:00
Sampling 62%|██████████████████████████ | ETA: 0:00:00
Sampling 62%|██████████████████████████▎ | ETA: 0:00:00
Sampling 63%|██████████████████████████▌ | ETA: 0:00:00
Sampling 64%|██████████████████████████▋ | ETA: 0:00:00
Sampling 64%|██████████████████████████▉ | ETA: 0:00:00
Sampling 64%|███████████████████████████▏ | ETA: 0:00:00
Sampling 65%|███████████████████████████▎ | ETA: 0:00:00
Sampling 66%|███████████████████████████▌ | ETA: 0:00:00
Sampling 66%|███████████████████████████▊ | ETA: 0:00:00
Sampling 66%|███████████████████████████▉ | ETA: 0:00:00
Sampling 67%|████████████████████████████▏ | ETA: 0:00:00
Sampling 68%|████████████████████████████▍ | ETA: 0:00:00
Sampling 68%|████████████████████████████▌ | ETA: 0:00:00
Sampling 68%|████████████████████████████▊ | ETA: 0:00:00
Sampling 69%|█████████████████████████████ | ETA: 0:00:00
Sampling 70%|█████████████████████████████▎ | ETA: 0:00:00
Sampling 70%|█████████████████████████████▍ | ETA: 0:00:00
Sampling 70%|█████████████████████████████▋ | ETA: 0:00:00
Sampling 71%|█████████████████████████████▉ | ETA: 0:00:00
Sampling 72%|██████████████████████████████ | ETA: 0:00:00
Sampling 72%|██████████████████████████████▎ | ETA: 0:00:00
Sampling 72%|██████████████████████████████▌ | ETA: 0:00:00
Sampling 73%|██████████████████████████████▋ | ETA: 0:00:00
Sampling 74%|██████████████████████████████▉ | ETA: 0:00:00
Sampling 74%|███████████████████████████████▏ | ETA: 0:00:00
Sampling 74%|███████████████████████████████▎ | ETA: 0:00:00
Sampling 75%|███████████████████████████████▌ | ETA: 0:00:00
Sampling 76%|███████████████████████████████▊ | ETA: 0:00:00
Sampling 76%|███████████████████████████████▉ | ETA: 0:00:00
Sampling 76%|████████████████████████████████▏ | ETA: 0:00:00
Sampling 77%|████████████████████████████████▍ | ETA: 0:00:00
Sampling 78%|████████████████████████████████▌ | ETA: 0:00:00
Sampling 78%|████████████████████████████████▊ | ETA: 0:00:00
Sampling 78%|█████████████████████████████████ | ETA: 0:00:00
Sampling 79%|█████████████████████████████████▏ | ETA: 0:00:00
Sampling 80%|█████████████████████████████████▍ | ETA: 0:00:00
Sampling 80%|█████████████████████████████████▋ | ETA: 0:00:00
Sampling 80%|█████████████████████████████████▊ | ETA: 0:00:00
Sampling 81%|██████████████████████████████████ | ETA: 0:00:00
Sampling 82%|██████████████████████████████████▎ | ETA: 0:00:00
Sampling 82%|██████████████████████████████████▌ | ETA: 0:00:00
Sampling 82%|██████████████████████████████████▋ | ETA: 0:00:00
Sampling 83%|██████████████████████████████████▉ | ETA: 0:00:00
Sampling 84%|███████████████████████████████████▏ | ETA: 0:00:00
Sampling 84%|███████████████████████████████████▎ | ETA: 0:00:00
Sampling 84%|███████████████████████████████████▌ | ETA: 0:00:00
Sampling 85%|███████████████████████████████████▊ | ETA: 0:00:00
Sampling 86%|███████████████████████████████████▉ | ETA: 0:00:00
Sampling 86%|████████████████████████████████████▏ | ETA: 0:00:00
Sampling 86%|████████████████████████████████████▍ | ETA: 0:00:00
Sampling 87%|████████████████████████████████████▌ | ETA: 0:00:00
Sampling 88%|████████████████████████████████████▊ | ETA: 0:00:00
Sampling 88%|█████████████████████████████████████ | ETA: 0:00:00
Sampling 88%|█████████████████████████████████████▏ | ETA: 0:00:00
Sampling 89%|█████████████████████████████████████▍ | ETA: 0:00:00
Sampling 90%|█████████████████████████████████████▋ | ETA: 0:00:00
Sampling 90%|█████████████████████████████████████▊ | ETA: 0:00:00
Sampling 90%|██████████████████████████████████████ | ETA: 0:00:00
Sampling 91%|██████████████████████████████████████▎ | ETA: 0:00:00
Sampling 92%|██████████████████████████████████████▍ | ETA: 0:00:00
Sampling 92%|██████████████████████████████████████▋ | ETA: 0:00:00
Sampling 92%|██████████████████████████████████████▉ | ETA: 0:00:00
Sampling 93%|███████████████████████████████████████ | ETA: 0:00:00
Sampling 94%|███████████████████████████████████████▎ | ETA: 0:00:00
Sampling 94%|███████████████████████████████████████▌ | ETA: 0:00:00
Sampling 94%|███████████████████████████████████████▊ | ETA: 0:00:00
Sampling 95%|███████████████████████████████████████▉ | ETA: 0:00:00
Sampling 96%|████████████████████████████████████████▏ | ETA: 0:00:00
Sampling 96%|████████████████████████████████████████▍ | ETA: 0:00:00
Sampling 96%|████████████████████████████████████████▌ | ETA: 0:00:00
Sampling 97%|████████████████████████████████████████▊ | ETA: 0:00:00
Sampling 98%|█████████████████████████████████████████ | ETA: 0:00:00
Sampling 98%|█████████████████████████████████████████▏| ETA: 0:00:00
Sampling 98%|█████████████████████████████████████████▍| ETA: 0:00:00
Sampling 99%|█████████████████████████████████████████▋| ETA: 0:00:00
Sampling 100%|█████████████████████████████████████████▊| ETA: 0:00:00
Sampling 100%|██████████████████████████████████████████| Time: 0:00:00
Sampling 100%|██████████████████████████████████████████| Time: 0:00:00
┌ Info: variables to be inferred : [:ϕ, :T, :Ch2o_m]
│ variables used for inference : [:Vp, :Vs, :σ]
└ model type : multi_rp_modelType{two_phase_modelType{SEO3, Sifre2014, HS1962_plus}, anharmonic, Nothing, Nothing}
Sampling 0%| | ETA: N/A
┌ Info: Found initial step size
└ ϵ = 0.05
Sampling 1%|▎ | ETA: 0:13:01
Sampling 1%|▍ | ETA: 0:06:57
Sampling 2%|▋ | ETA: 0:04:32
Sampling 2%|▉ | ETA: 0:03:28
Sampling 3%|█▏ | ETA: 0:02:44
Sampling 3%|█▎ | ETA: 0:02:18
Sampling 4%|█▌ | ETA: 0:01:57
Sampling 4%|█▋ | ETA: 0:01:43
Sampling 5%|█▉ | ETA: 0:01:31
Sampling 5%|██▏ | ETA: 0:01:22
Sampling 6%|██▍ | ETA: 0:01:15
Sampling 6%|██▌ | ETA: 0:01:09
Sampling 7%|██▊ | ETA: 0:01:03
Sampling 7%|███ | ETA: 0:00:59
Sampling 8%|███▏ | ETA: 0:00:55
Sampling 8%|███▍ | ETA: 0:00:51
Sampling 9%|███▋ | ETA: 0:00:48
Sampling 9%|███▊ | ETA: 0:00:45
Sampling 10%|████ | ETA: 0:00:43
Sampling 10%|████▎ | ETA: 0:00:41
Sampling 11%|████▍ | ETA: 0:00:39
Sampling 11%|████▋ | ETA: 0:00:37
Sampling 12%|████▉ | ETA: 0:00:35
Sampling 12%|█████ | ETA: 0:00:34
Sampling 13%|█████▎ | ETA: 0:00:32
Sampling 13%|█████▌ | ETA: 0:00:31
Sampling 14%|█████▋ | ETA: 0:00:30
Sampling 14%|█████▉ | ETA: 0:00:28
Sampling 15%|██████▏ | ETA: 0:00:27
Sampling 15%|██████▎ | ETA: 0:00:27
Sampling 16%|██████▌ | ETA: 0:00:26
Sampling 16%|██████▊ | ETA: 0:00:25
Sampling 17%|███████ | ETA: 0:00:24
Sampling 17%|███████▏ | ETA: 0:00:23
Sampling 18%|███████▍ | ETA: 0:00:22
Sampling 18%|███████▌ | ETA: 0:00:22
Sampling 19%|███████▊ | ETA: 0:00:21
Sampling 19%|████████ | ETA: 0:00:20
Sampling 20%|████████▎ | ETA: 0:00:20
Sampling 20%|████████▍ | ETA: 0:00:19
Sampling 21%|████████▋ | ETA: 0:00:19
Sampling 21%|████████▉ | ETA: 0:00:18
Sampling 22%|█████████ | ETA: 0:00:18
Sampling 22%|█████████▎ | ETA: 0:00:17
Sampling 23%|█████████▌ | ETA: 0:00:17
Sampling 23%|█████████▋ | ETA: 0:00:16
Sampling 24%|█████████▉ | ETA: 0:00:16
Sampling 24%|██████████▏ | ETA: 0:00:16
Sampling 25%|██████████▎ | ETA: 0:00:15
Sampling 25%|██████████▌ | ETA: 0:00:15
Sampling 26%|██████████▊ | ETA: 0:00:14
Sampling 26%|██████████▉ | ETA: 0:00:14
Sampling 27%|███████████▏ | ETA: 0:00:14
Sampling 27%|███████████▍ | ETA: 0:00:13
Sampling 28%|███████████▋ | ETA: 0:00:13
Sampling 28%|███████████▊ | ETA: 0:00:13
Sampling 29%|████████████ | ETA: 0:00:13
Sampling 29%|████████████▏ | ETA: 0:00:12
Sampling 30%|████████████▍ | ETA: 0:00:12
Sampling 30%|████████████▋ | ETA: 0:00:12
Sampling 31%|████████████▉ | ETA: 0:00:11
Sampling 31%|█████████████ | ETA: 0:00:11
Sampling 32%|█████████████▎ | ETA: 0:00:11
Sampling 32%|█████████████▌ | ETA: 0:00:11
Sampling 33%|█████████████▋ | ETA: 0:00:11
Sampling 33%|█████████████▉ | ETA: 0:00:10
Sampling 34%|██████████████▏ | ETA: 0:00:10
Sampling 34%|██████████████▎ | ETA: 0:00:10
Sampling 35%|██████████████▌ | ETA: 0:00:10
Sampling 35%|██████████████▊ | ETA: 0:00:10
Sampling 36%|██████████████▉ | ETA: 0:00:09
Sampling 36%|███████████████▏ | ETA: 0:00:09
Sampling 37%|███████████████▍ | ETA: 0:00:09
Sampling 37%|███████████████▌ | ETA: 0:00:09
Sampling 38%|███████████████▊ | ETA: 0:00:09
Sampling 38%|████████████████ | ETA: 0:00:09
Sampling 39%|████████████████▏ | ETA: 0:00:08
Sampling 39%|████████████████▍ | ETA: 0:00:08
Sampling 40%|████████████████▋ | ETA: 0:00:08
Sampling 40%|████████████████▊ | ETA: 0:00:08
Sampling 41%|█████████████████ | ETA: 0:00:08
Sampling 41%|█████████████████▎ | ETA: 0:00:08
Sampling 42%|█████████████████▌ | ETA: 0:00:08
Sampling 42%|█████████████████▋ | ETA: 0:00:07
Sampling 43%|█████████████████▉ | ETA: 0:00:07
Sampling 43%|██████████████████ | ETA: 0:00:07
Sampling 44%|██████████████████▎ | ETA: 0:00:07
Sampling 44%|██████████████████▌ | ETA: 0:00:07
Sampling 45%|██████████████████▊ | ETA: 0:00:07
Sampling 45%|██████████████████▉ | ETA: 0:00:07
Sampling 46%|███████████████████▏ | ETA: 0:00:07
Sampling 46%|███████████████████▍ | ETA: 0:00:06
Sampling 47%|███████████████████▌ | ETA: 0:00:06
Sampling 47%|███████████████████▊ | ETA: 0:00:06
Sampling 48%|████████████████████ | ETA: 0:00:06
Sampling 48%|████████████████████▏ | ETA: 0:00:06
Sampling 49%|████████████████████▍ | ETA: 0:00:06
Sampling 49%|████████████████████▋ | ETA: 0:00:06
Sampling 50%|████████████████████▊ | ETA: 0:00:06
Sampling 50%|█████████████████████ | ETA: 0:00:06
Sampling 51%|█████████████████████▎ | ETA: 0:00:05
Sampling 51%|█████████████████████▍ | ETA: 0:00:05
Sampling 52%|█████████████████████▋ | ETA: 0:00:05
Sampling 52%|█████████████████████▉ | ETA: 0:00:05
Sampling 53%|██████████████████████▏ | ETA: 0:00:05
Sampling 53%|██████████████████████▎ | ETA: 0:00:05
Sampling 54%|██████████████████████▌ | ETA: 0:00:05
Sampling 54%|██████████████████████▋ | ETA: 0:00:05
Sampling 55%|██████████████████████▉ | ETA: 0:00:05
Sampling 55%|███████████████████████▏ | ETA: 0:00:05
Sampling 56%|███████████████████████▍ | ETA: 0:00:05
Sampling 56%|███████████████████████▌ | ETA: 0:00:05
Sampling 57%|███████████████████████▊ | ETA: 0:00:04
Sampling 57%|████████████████████████ | ETA: 0:00:04
Sampling 58%|████████████████████████▏ | ETA: 0:00:04
Sampling 58%|████████████████████████▍ | ETA: 0:00:04
Sampling 59%|████████████████████████▋ | ETA: 0:00:04
Sampling 59%|████████████████████████▊ | ETA: 0:00:04
Sampling 60%|█████████████████████████ | ETA: 0:00:04
Sampling 60%|█████████████████████████▎ | ETA: 0:00:04
Sampling 61%|█████████████████████████▍ | ETA: 0:00:04
Sampling 61%|█████████████████████████▋ | ETA: 0:00:04
Sampling 62%|█████████████████████████▉ | ETA: 0:00:04
Sampling 62%|██████████████████████████ | ETA: 0:00:04
Sampling 63%|██████████████████████████▎ | ETA: 0:00:04
Sampling 63%|██████████████████████████▌ | ETA: 0:00:03
Sampling 64%|██████████████████████████▋ | ETA: 0:00:03
Sampling 64%|██████████████████████████▉ | ETA: 0:00:03
Sampling 65%|███████████████████████████▏ | ETA: 0:00:03
Sampling 65%|███████████████████████████▎ | ETA: 0:00:03
Sampling 66%|███████████████████████████▌ | ETA: 0:00:03
Sampling 66%|███████████████████████████▊ | ETA: 0:00:03
Sampling 67%|████████████████████████████ | ETA: 0:00:03
Sampling 67%|████████████████████████████▏ | ETA: 0:00:03
Sampling 68%|████████████████████████████▍ | ETA: 0:00:03
Sampling 68%|████████████████████████████▌ | ETA: 0:00:03
Sampling 69%|████████████████████████████▊ | ETA: 0:00:03
Sampling 69%|█████████████████████████████ | ETA: 0:00:03
Sampling 70%|█████████████████████████████▎ | ETA: 0:00:03
Sampling 70%|█████████████████████████████▍ | ETA: 0:00:03
Sampling 71%|█████████████████████████████▋ | ETA: 0:00:03
Sampling 71%|█████████████████████████████▉ | ETA: 0:00:03
Sampling 72%|██████████████████████████████ | ETA: 0:00:02
Sampling 72%|██████████████████████████████▎ | ETA: 0:00:02
Sampling 73%|██████████████████████████████▌ | ETA: 0:00:02
Sampling 73%|██████████████████████████████▋ | ETA: 0:00:02
Sampling 74%|██████████████████████████████▉ | ETA: 0:00:02
Sampling 74%|███████████████████████████████▏ | ETA: 0:00:02
Sampling 75%|███████████████████████████████▎ | ETA: 0:00:02
Sampling 75%|███████████████████████████████▌ | ETA: 0:00:02
Sampling 76%|███████████████████████████████▊ | ETA: 0:00:02
Sampling 76%|███████████████████████████████▉ | ETA: 0:00:02
Sampling 77%|████████████████████████████████▏ | ETA: 0:00:02
Sampling 77%|████████████████████████████████▍ | ETA: 0:00:02
Sampling 78%|████████████████████████████████▋ | ETA: 0:00:02
Sampling 78%|████████████████████████████████▊ | ETA: 0:00:02
Sampling 79%|█████████████████████████████████ | ETA: 0:00:02
Sampling 79%|█████████████████████████████████▏ | ETA: 0:00:02
Sampling 80%|█████████████████████████████████▍ | ETA: 0:00:02
Sampling 80%|█████████████████████████████████▋ | ETA: 0:00:02
Sampling 81%|█████████████████████████████████▉ | ETA: 0:00:02
Sampling 81%|██████████████████████████████████ | ETA: 0:00:01
Sampling 82%|██████████████████████████████████▎ | ETA: 0:00:01
Sampling 82%|██████████████████████████████████▌ | ETA: 0:00:01
Sampling 83%|██████████████████████████████████▋ | ETA: 0:00:01
Sampling 83%|██████████████████████████████████▉ | ETA: 0:00:01
Sampling 84%|███████████████████████████████████▏ | ETA: 0:00:01
Sampling 84%|███████████████████████████████████▎ | ETA: 0:00:01
Sampling 85%|███████████████████████████████████▌ | ETA: 0:00:01
Sampling 85%|███████████████████████████████████▊ | ETA: 0:00:01
Sampling 86%|███████████████████████████████████▉ | ETA: 0:00:01
Sampling 86%|████████████████████████████████████▏ | ETA: 0:00:01
Sampling 87%|████████████████████████████████████▍ | ETA: 0:00:01
Sampling 87%|████████████████████████████████████▌ | ETA: 0:00:01
Sampling 88%|████████████████████████████████████▊ | ETA: 0:00:01
Sampling 88%|█████████████████████████████████████ | ETA: 0:00:01
Sampling 89%|█████████████████████████████████████▏ | ETA: 0:00:01
Sampling 89%|█████████████████████████████████████▍ | ETA: 0:00:01
Sampling 90%|█████████████████████████████████████▋ | ETA: 0:00:01
Sampling 90%|█████████████████████████████████████▊ | ETA: 0:00:01
Sampling 91%|██████████████████████████████████████ | ETA: 0:00:01
Sampling 91%|██████████████████████████████████████▎ | ETA: 0:00:01
Sampling 92%|██████████████████████████████████████▌ | ETA: 0:00:01
Sampling 92%|██████████████████████████████████████▋ | ETA: 0:00:01
Sampling 93%|██████████████████████████████████████▉ | ETA: 0:00:01
Sampling 93%|███████████████████████████████████████ | ETA: 0:00:01
Sampling 94%|███████████████████████████████████████▎ | ETA: 0:00:00
Sampling 94%|███████████████████████████████████████▌ | ETA: 0:00:00
Sampling 95%|███████████████████████████████████████▊ | ETA: 0:00:00
Sampling 95%|███████████████████████████████████████▉ | ETA: 0:00:00
Sampling 96%|████████████████████████████████████████▏ | ETA: 0:00:00
Sampling 96%|████████████████████████████████████████▍ | ETA: 0:00:00
Sampling 97%|████████████████████████████████████████▌ | ETA: 0:00:00
Sampling 97%|████████████████████████████████████████▊ | ETA: 0:00:00
Sampling 98%|█████████████████████████████████████████ | ETA: 0:00:00
Sampling 98%|█████████████████████████████████████████▏| ETA: 0:00:00
Sampling 99%|█████████████████████████████████████████▍| ETA: 0:00:00
Sampling 99%|█████████████████████████████████████████▋| ETA: 0:00:00
Sampling 100%|█████████████████████████████████████████▊| ETA: 0:00:00
Sampling 100%|██████████████████████████████████████████| Time: 0:00:06
Sampling 100%|██████████████████████████████████████████| Time: 0:00:07Code for this figure
f = Figure()
labels = ["ϕ", "T (K)", "water conc. (ppm)"]
for i in 1:3
axi = Axis(f[1, i]; title=labels[i])
idx = mcmc_chain_prior.name_map[1][i]
dat_prior = mcmc_chain_prior[idx][:]
dat_posterior = mcmc_chain_posterior[idx][:]
density!(axi, dat_prior; label="prior")
density!(axi, dat_posterior; label="posterior")
end
f[2, 1:3] = Legend(f, f.content[end]; orientation=:horizontal)┌ Warning: Assignment to `dat_prior` in soft scope is ambiguous because a global variable by the same name exists: `dat_prior` will be treated as a new local. Disambiguate by using `local dat_prior` to suppress this warning or `global dat_prior` to assign to the existing global variable.
└ @ stochastic_inverse.md:171
┌ Warning: Assignment to `dat_posterior` in soft scope is ambiguous because a global variable by the same name exists: `dat_posterior` will be treated as a new local. Disambiguate by using `local dat_posterior` to suppress this warning or `global dat_posterior` to assign to the existing global variable.
└ @ stochastic_inverse.md:172